ランダム ポイントの作成(Create Random Points) (データ管理)
サマリ
指定された数のランダム ポイント フィーチャを作成します。ランダム ポイントは、一定の制限範囲内、ポリゴン フィーチャ内、ポイント フィーチャ上、またはライン フィーチャ上に生成することができます。
使用法
-
ランダム ポイントが生成されるエリアは、制限ポリゴン フィーチャ、制限ポイント フィーチャ、または制限ライン フィーチャか、制限範囲によって定義できます。
-
[ポイント数] パラメータには、数値を指定することも、各フィーチャ内に配置するランダム ポイントの数を示す値を含んでいる制限フィーチャクラスの数値フィールドを指定することもできます。このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。ポイントの数が数値を使用して指定されている場合、制限フィーチャクラスの各フィーチャ内または各フィーチャ上には、その数のランダム ポイントが生成されます。
複数のフィーチャを指定した制限フィーチャクラスを使用し、各フィーチャ内に配置されるランダム ポイントの数ではなく、生成するランダム ポイントの合計数を指定する場合は、まず [ディゾルブ(Dissolve)] ツールを使用して制限フィーチャクラスに単一のフィーチャのみが含まれるようにしてから、制限フィーチャクラスとしてディゾルブされたフィーチャクラスを使用します。
出力フィーチャクラスの座標系は、以下の座標系になります。
- 制限フィーチャクラスを指定した場合は、その座標系。
- 制限範囲を、マップのレイヤまたはフィーチャクラスへのパスを使用して ArcMap で指定した場合は、マップ データ フレームの座標系。
- 制限範囲を、フィーチャクラスへのパスを使用して Python で指定した場合は、フィーチャクラスの座標系。
- 出力座標系ジオプロセシング環境を設定している場合は、その座標系(これは、上述した他のすべての振舞いよりも優先されます)。
- 上記のいずれも適用されない場合は、不明です。
-
ランダムに配置されたポイントにランダム値を割り当てるには、まずこのツールを使用してランダム ポイントを生成します。次に、[フィールドの追加(Add Field)] ツールを使用して、ランダム ポイント フィーチャクラスに新しい数値フィールドを作成します。推奨されるフィールド タイプは、long integer または float です。次に、[フィールド演算(Calculate Field)] ツールを使用して、ランダム ポイント フィーチャクラスの空のフィールドにランダム値を割り当てます。a と b の間から(a と b を含む)ランダムな整数を生成するには、「random.randint(a,b)」という Python 式を使用します。a と b の間から(a と b を含まない)ランダムな浮動小数を生成するには、「random.uniform(a,b)」という Python 式を使用します。条件式の種類を PYTHON に設定し、a 値と b 値を置換し、「import random」という式を使用してコード ブロック セクションにランダム モジュールをインポートすることを忘れないでください。
-
[制限範囲] パラメータには、最小および最大の X 座標および Y 座標を手入力することも、既存のフィーチャ レイヤあるいはフィーチャクラスを選択して、その範囲をコピーすることもできます。
-
制限フィーチャクラスと制限範囲の両方の値が指定されている場合は、制限フィーチャクラスの値が使用され、制限範囲の値は無視されます。
-
指定した最小距離に違反せずにそれ以上制限エリア内にランダム ポイントを配置できない場合、制限エリア内のランダム ポイントの数は、最小距離を守って配置可能な最大数まで減少します。
-
[最小距離] パラメータには、長さ単位を指定することも、数値を含んでいる制限フィーチャからのフィールドを指定することもできます。この値により、各入力フィーチャ内のランダム ポイント間の最小距離が決定されます。このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。ランダム ポイントは、異なる制限フィーチャ内または異なる制限フィーチャ上に生成された場合は、最小距離内にあることがあります。
-
ポイント フィーチャを制限フィーチャクラスとして使用すると、制限ポイント フィーチャのランダムなサブセットが作成されます。新しいポイントの位置は生成されません。
-
[ポイント数] パラメータおよび [最小距離] パラメータの値は、正の整数値でなければ、最も近い整数に丸められます。値が数値でない場合、および負の値である場合は、0 に設定されます。
構文
パラメータ | 説明 | データ タイプ |
out_path |
ランダム ポイント フィーチャクラスが作成される場所またはワークスペース。この場所またはワークスペースはすでに存在している必要があります。 | Feature Dataset;Workspace |
out_name |
作成するランダム ポイント フィーチャクラスの名前。 | String |
constraining_feature_class (オプション) |
ランダム ポイントは、このフィーチャクラスのフィーチャ内またはフィーチャ上に生成されます。制限フィーチャクラスは、ポイント、マルチポイント、ライン、またはポリゴンのいずれかです。ポイントは、ポリゴン フィーチャ内、ライン フィーチャ上、またはポイント フィーチャの場所でランダムに配置されます。フィーチャクラスに含まれる各フィーチャ内には、指定された数のポイントが生成されます(たとえば、100 ポイントを指定したときに、制限フィーチャクラスに 5 つのフィーチャがある場合、各フィーチャに 100 のランダム ポイントが生成され、合計で 500 のポイントが生成されます)。 | Feature Layer |
constraining_extent (オプション) |
ランダム ポイントは、範囲内に生成されます。制限範囲は、制限フィーチャクラスが指定されていない場合にのみ使用されます。 | Extent;Feature Layer;Raster Layer |
number_of_points_or_field (オプション) |
ランダムの生成されるポイントの数。 これには、long integer タイプの数値を指定することも、各フィーチャ内に配置するランダム ポイントの数を示す数値を含んでいる制限フィーチャからのフィールドを指定することもできます。このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。ポイントの数が long integer タイプの数値を使用して指定されている場合、制限フィーチャクラスの各フィーチャ内または各フィーチャ上には、その数のランダム ポイントが生成されます。 | Field;Long |
minimum_allowed_distance (オプション) |
2 つのランダムに配置されたポイントの間の最小距離。値として「1 Meter」を指定すると、すべてのランダム ポイントの最も近いポイントまでの距離が 1 メートル以上になります。 | Field;Linear unit |
create_multipoint_output (オプション) |
出力フィーチャクラスがマルチパート フィーチャになるかシングルパート フィーチャになるかを決定します。
| Boolean |
multipoint_size (オプション) |
[マルチポイント出力フィーチャを作成] オプションが使用されている(オン/MULTIPOINT)場合、このパラメータは各マルチポイント ジオメトリに配置されるランダム ポイントの数を指定します。 | Long |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで CreateRandomPoints(ランダム ポイントの作成)ツールを使用する方法を示しています。
import arcpy
arcpy.CreateRandomPoints_management("c:/data/project", "samplepoints", "c:/data/studyarea.shp", "", 500, "", "POINT", "")
次のスタンドアロン Python スクリプトは、ランダム値でランダム ポイントを作成する方法を示しています。
#Name: RandomPointsRandomValues.py
#Purpose: create random points with random values
# Import system modules
import arcpy, os, random
from arcpy import env
# Create random points in the features of a constraining feature class
# Number of points for each feature determined by the value in the field specified
outGDB = "C:/data/county.gdb"
outName = "randpeople"
conFC = "C:/data/county.gdb/blocks"
numField = "POP2000"
arcpy.CreateRandomPoints_management(outGDB, outName, conFC, "", numField)
# set workspace
env.workspace = "C:/data/county.gdb"
# Create fields for random values
fieldInt = "fieldInt"
fieldFlt = "fieldFlt"
arcpy.AddField_management(outName, fieldInt, "LONG") # add long integer field
arcpy.AddField_management(outName, fieldFlt, "FLOAT") # add float field
# Calculate random values between 1-100 in the new fields
arcpy.CalculateField_management(outName, fieldInt, "random.randint(1,100)","PYTHON","import random")
arcpy.CalculateField_management(outName, fieldFlt, "random.uniform(1,100)","PYTHON","import random")
次のスタンドアロン Python スクリプトは、CreateRandomPoints(ランダム ポイントの作成)ツールのいくつかの使用方法を示しています。
#Name: RandomPoints.py
#Purpose: create several types of random points feature classes
# Import system modules
import arcpy, os
from arcpy import env
#set environment settings
env.overWriteOutput = True
# Create random points in an extent defined simply by numbers
outFolder = "C:/data"
numExtent = "0 0 1000 1000"
numPoints = 100
outName = "myRandPnts.shp"
env.outputCoordinateSystem = "Coordinate Systems/Projected Coordinate Systems/World/Miller Cylindrical (world).prj"
arcpy.CreateRandomPoints_management(outFolder, outName, "", numExtent, numPoints)
env.outputCoordinateSystem = ""
# Create random points in an extent defined by another feature class
outName = "testpoints.shp"
fcExtent = "C:/data/studyarea.shp"
arcpy.CreateRandomPoints_management(outFolder, outName, "", fcExtent, numPoints)
# Create random points in the features of a constraining feature class
# Number of points for each feature determined by the value in the field specified
outGDB = "C:/data/county.gdb"
outName = "randpeople"
conFC = "C:/data/county.gdb/blocks"
numField = "POP2000"
arcpy.CreateRandomPoints_management(outGDB, outName, conFC, "", numField)
#create random points in the features of a constraining
#feature class with a minimum allowed distance
outName = "constparcelpnts"
conFC = "C:/data/county.gdb/parcels"
numPoints = 10
minDistance = "5 Feet"
arcpy.CreateRandomPoints_management(outGDB, outName, conFC, "", numPoints, minDistance)
#Create random points with a multipoint output
outName = "randomMPs"
fcExtent = "C:/data/county.gdb/county"
numPoints = 100
numMP = 10
arcpy.CreateRandomPoints_management(outGDB, outName, "", fcExtent, numPoints, "", "MULTIPOINT", numMP)