ランダム ポイントの作成(Create Random Points) (データの管理)
サマリ
指定された数のランダム ポイント フィーチャを作成します。ランダム ポイントは、一定の制限範囲内、ポリゴン フィーチャ内、ポイント フィーチャ上、またはライン フィーチャ上に生成することができます。
使用法
-
ランダム ポイントが生成されるエリアは、制限ポリゴン フィーチャ、制限ポイント フィーチャ、または制限ライン フィーチャか、制限範囲によって定義できます。
-
[ポイント数] パラメータには、数値を指定することも、各フィーチャ内に配置するランダム ポイントの数を示す値を含んでいる [制限フィーチャクラス] の数値フィールドを指定することもできます。このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。ポイントの数が数値を使用して指定されている場合、制限フィーチャクラスの各フィーチャ内または各フィーチャ上には、その数のランダム ポイントが生成されます。
-
ランダムに配置されたポイントにランダム値を割り当てるには、まずこのツールを使用してランダム ポイントを生成します。次に、[フィールドの追加(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 座標を手入力することも、既存のフィーチャ レイヤあるいはフィーチャクラスを選択して、その範囲をコピーすることもできます。
-
[制限フィーチャクラス] と [制限範囲] の両方の値が指定されている場合は、[制限フィーチャクラス] の値が使用され、[制限範囲] の値は無視されます。
-
[制限範囲] の値は、ツールのダイアログ ボックスで [消去] ボタンを使用してリセットできます。
複数のフィーチャを指定した [制限フィーチャクラス] を使用し、各フィーチャ内に配置されるランダム ポイントの数ではなく、生成するランダム ポイントの合計数を指定する場合は、[ディゾルブ(Dissolve)] ツールを使用して単一のフィーチャだけを含むように制限フィーチャクラスをディゾルブした後、[制限フィーチャクラス] としてディゾルブされたフィーチャクラスを使用する必要があります。
-
最小距離を小さくしなければ制限エリア内にランダム ポイントを配置できなくなると、制限エリア内のランダム ポイントの数が最小距離で配置可能な最大数まで少なくなります。
-
[最小距離] パラメータには、長さ単位を指定することも、数値を含んでいる制限フィーチャからのフィールドを指定することもできます。この値により、各入力フィーチャ内のランダム ポイント間の最小距離が決定されます。このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。ランダム ポイントは、異なる制限フィーチャ内または異なる制限フィーチャ上に生成された場合は、最小距離内にあることがあります。
-
ポイント フィーチャを制限フィーチャクラスとして使用すると、制限ポイント フィーチャのランダムなサブセットが作成されます。新しいポイントの位置は生成されません。
-
[ポイント数] パラメータおよび [最小距離] パラメータの値は、正の整数値でなければ、最も近い整数に丸められます。値が数値でない場合、および負の値である場合は、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 ウィンドウ スクリプトは、Create Random Points(ランダム ポイントの作成)ツールをイミディエイト モードで使用する方法を示しています。
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 #Author: ESRI # 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 スクリプトは、Create Random Points(ランダム ポイントの作成)ツールのいくつかの使用方法を示しています。
#Name: RandomPoints.py #Purpose: create several types of random points feature classes #Author: ESRI # 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) #Creat 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)