概要
指定された数のランダム ポイント フィーチャを作成します。ランダム ポイントは、一定の制限範囲内、ポリゴン フィーチャ内、ポイント フィーチャ上、またはライン フィーチャ上に生成することができます。
使用法
ランダム ポイントが生成されるエリアは、制限ポリゴン フィーチャ、制限ポイント フィーチャ、または制限ライン フィーチャか、制限範囲によって定義できます。
[ポイント数] パラメーターには、数値を指定することも、各フィーチャ内に配置するランダム ポイントの数を示す値を含んでいる制限フィーチャクラスの数値フィールドを指定することもできます。このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。ポイントの数が数値を使用して指定されている場合、制限フィーチャクラスの各フィーチャ内または各フィーチャ上には、その数のランダム ポイントが生成されます。
複数のフィーチャを指定した制限フィーチャクラスを使用し、各フィーチャ内に配置されるランダム ポイントの数ではなく、生成するランダム ポイントの合計数を指定する場合は、まず [ディゾルブ (Dissolve)] ツールを使用して制限フィーチャクラスに単一のフィーチャのみが含まれるようにしてから、制限フィーチャクラスとしてディゾルブされたフィーチャクラスを使用します。
出力フィーチャクラスの座標系は、以下の座標系になります。
- 制限フィーチャクラスを指定した場合は、その座標系。
- マップのレイヤーまたはフィーチャクラスへのパスを使用してマップで制限範囲を指定した場合は、マップ データ フレームの座標系。
- 制限範囲を、フィーチャクラスへのパスを使用して 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 式を使用します。コード ブロックでは、「import random」という式を使用してランダム モジュールをインポートします。
[制限範囲] パラメーターには、最小および最大の X 座標および Y 座標を手入力することも、既存のフィーチャ レイヤーあるいはフィーチャクラスを選択して、その範囲をコピーすることもできます。
制限フィーチャクラスと制限範囲の両方の値が指定されている場合は、制限フィーチャクラスの値が使用され、制限範囲の値は無視されます。
指定した最小距離に違反せずにそれ以上制限エリア内にランダム ポイントを配置できない場合、制限エリア内のランダム ポイントの数は、最小距離を守って配置可能な最大数まで減少します。
[最小距離] パラメーターには、長さ単位を指定することも、数値を含んでいる制限フィーチャからのフィールドを指定することもできます。この値により、各入力フィーチャ内のランダム ポイント間の最小距離が決定されます。このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。ランダム ポイントは、異なる制限フィーチャ内または異なる制限フィーチャ上に生成された場合は、最小距離内にあることがあります。
ポイント フィーチャを制限フィーチャクラスとして使用すると、制限ポイント フィーチャのランダムなサブセットが作成されます。新しいポイントの位置は生成されません。
[ポイント数] パラメーターおよび [最小距離] パラメーターの値は、正の整数値でなければ、最も近い整数に丸められます。値が数値でない場合、および負の値である場合は、0 に設定されます。
構文
CreateRandomPoints(out_path, out_name, {constraining_feature_class}, {constraining_extent}, {number_of_points_or_field}, {minimum_allowed_distance}, {create_multipoint_output}, {multipoint_size})
パラメーター | 説明 | データ タイプ |
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 メートル」を指定すると、すべてのランダム ポイントの最も近いポイントまでの距離が 1 メートル以上になります。 | Field; Linear Unit |
create_multipoint_output (オプション) | 出力フィーチャクラスがマルチパート フィーチャになるかシングルパート フィーチャになるかを決定します。
| Boolean |
multipoint_size (オプション) | create_multipoint_output が MULTIPOINT に設定されている場合、各マルチポイント ジオメトリに配置されるランダム ポイントの数を指定します。デフォルトは 10 です。 | Long |
派生した出力
名前 | 説明 | データ タイプ |
out_feature_class | 出力ランダム ポイント フィーチャクラス。 | フィーチャクラス |
コードのサンプル
次の 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
# 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
arcpy.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
# set environment settings
arcpy.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"
arcpy.env.outputCoordinateSystem = "Coordinate Systems/Projected Coordinate Systems/World/Miller Cylindrical (world).prj"
arcpy.CreateRandomPoints_management(outFolder, outName, "", numExtent, numPoints)
arcpy.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)
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst もしくは Spatial Analyst
- Standard: 次のものが必要 3D Analyst もしくは Spatial Analyst
- Advanced: はい