ランダム ポイントの作成 (Create Random Points) (データ管理)

サマリー

指定された数のランダム ポイント フィーチャを作成します。 ランダム ポイントは、一定の制限範囲内、ポリゴン フィーチャ内、ポイント フィーチャ上、またはライン フィーチャ上に生成することができます。

ランダム ポイントの作成の仕組みの詳細

使用法

  • ランダム ポイントが生成されるエリアは、制限ポリゴン フィーチャ、制限ポイント フィーチャ、または制限ライン フィーチャか、制限範囲によって定義できます。

  • [ポイント数] パラメーターには、数値を指定することも、各フィーチャ内に配置するランダム ポイントの数を示す値を含んでいる制限フィーチャクラスの数値フィールドを指定することもできます。 このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。 ポイントの数が数値を使用して指定されている場合、制限フィーチャクラスの各フィーチャ内または各フィーチャ上には、その数のランダム ポイントが生成されます。

    複数のフィーチャを指定した制限フィーチャクラスを使用し、各フィーチャ内に配置されるランダム ポイントの数ではなく、生成するランダム ポイントの合計数を指定する場合は、まず [ディゾルブ (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 に設定されます。

パラメーター

ラベル説明データ タイプ
出力場所

ランダム ポイント フィーチャクラスが作成される場所またはワークスペース。 この場所またはワークスペースはすでに存在している必要があります。

Feature Dataset;Workspace
出力ポイント フィーチャクラス

作成するランダム ポイント フィーチャクラスの名前。

String
制限フィーチャクラス
(オプション)

ランダム ポイントは、このフィーチャクラスのフィーチャ内またはフィーチャ上に生成されます。 制限フィーチャクラスは、ポイント、マルチポイント、ライン、またはポリゴンのいずれかです。 ポイントは、ポリゴン フィーチャ内、ライン フィーチャ上、またはポイント フィーチャの場所でランダムに配置されます。 フィーチャクラスに含まれる各フィーチャ内には、指定された数のポイントが生成されます (たとえば、100 ポイントを指定したときに、制限フィーチャクラスに 5 つのフィーチャがある場合、各フィーチャに 100 のランダム ポイントが生成され、合計で 500 のポイントが生成されます)。

Feature Layer
制限範囲
(オプション)

ランダム ポイントは、範囲内に生成されます。 制限範囲は、制限フィーチャクラスが指定されていない場合にのみ使用されます。

  • [現在の表示範囲] マップ ビュー - 範囲は、アクティブなマップまたはシーンに基づきます。
  • [範囲の描画] 直角化して完了 - 範囲は、マップまたはシーンに描画された四角形に基づきます。
  • [レイヤーの範囲] レイヤー - 範囲は、アクティブなマップ レイヤーに基づきます。 使用可能なレイヤーを選択するか、[すべてのレイヤーのデータの範囲] オプションを使用します。 各マップ レイヤーには、次のオプションがあります。

    • [すべてのフィーチャ] すべて選択 - すべてのフィーチャの範囲。
    • [選択フィーチャ] 選択フィーチャからのエリア - 選択したフィーチャの範囲。
    • [表示フィーチャ] Extent Indicator - 表示フィーチャの範囲。

  • [参照] 参照 - 範囲はデータセットに基づきます。
  • [クリップボード] 貼り付け - 範囲をクリップボードにコピーしたり、クリップボードから貼り付けたりできます。
    • [範囲をコピー] コピー - 範囲と座標系をクリップボードにコピーします。
    • [範囲を貼り付け] 貼り付け - 範囲と座標系をクリップボードから貼り付けます。 クリップボードに座標系が含まれていない場合、マップの座標系が範囲に使用されます。
  • [範囲をリセット] リセット - 範囲はデフォルト値にリセットされます。

座標を手動で入力する場合、アクティブなマップの座標系の座標を数値で指定する必要があります。 マップで、入力した座標と異なる表示単位が使用されることがあります。 南と西の座標にはマイナス値の記号を使用します。

Extent; Feature Layer; Raster Layer
ポイント数 [値、またはフィールドを指定]
(オプション)

ランダムの生成されるポイントの数。

これには、long integer タイプの数値を指定することも、各フィーチャ内に配置するランダム ポイントの数を示す数値を含んでいる制限フィーチャからのフィールドを指定することもできます。 このフィールドのオプションは、ポリゴンまたはライン制限フィーチャに対してのみ有効です。 ポイントの数が long integer タイプの数値を使用して指定されている場合、制限フィーチャクラスの各フィーチャ内または各フィーチャ上には、その数のランダム ポイントが生成されます。

Field; Long
最小距離 [値、またはフィールドを指定]
(オプション)

2 つのランダムに配置されたポイントの間の最小距離。 値として「1 メートル」を指定すると、すべてのランダム ポイントの最も近いポイントまでの距離が 1 メートル以上になります。

Field; Linear Unit
マルチポイント フィーチャとして出力
(オプション)

出力フィーチャクラスがマルチパート フィーチャになるかシングルパート フィーチャになるかを決定します。

  • オフ - 出力はポイント ジオメトリ タイプになります (各ポイントは個別のフィーチャ)。 これがデフォルトです。
  • オン - 出力はマルチポイント ジオメトリ タイプになります (すべてのポイントが 1 つのフィーチャ)。
Boolean
マルチポイントごとの最大ポイント数
(オプション)

[マルチポイント出力フィーチャを作成] がオンの場合、各マルチポイント ジオメトリに配置されるランダム ポイントの数を指定します。

Long

派生した出力

ラベル説明データ タイプ
出力フィーチャクラス

出力ランダム ポイント フィーチャクラス。

Feature Class

arcpy.management.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
(オプション)

ランダム ポイントは、範囲内に生成されます。 制限範囲は、制限フィーチャクラスが指定されていない場合にのみ使用されます。

  • MAXOF - すべての入力データの最大範囲が使用されます。
  • MINOF - すべての入力データに共通する最小領域が使用されます。
  • DISPLAY - 範囲は、表示範囲と同じになります。
  • レイヤー名 - 指定したレイヤーの範囲が使用されます。
  • Extent オブジェクト - 指定したオブジェクトの範囲が使用されます。
  • 座標のスペース区切りの文字列 - 指定した文字列の範囲が使用されます。 座標は、x-min、y-min、x-max、y-max の順序で表されます。
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
(オプション)

出力フィーチャクラスがマルチパート フィーチャになるかシングルパート フィーチャになるかを決定します。

  • POINT出力はポイント ジオメトリ タイプになります (各ポイントは個別のフィーチャ)。 これがデフォルトです。
  • MULTIPOINT出力はマルチポイント ジオメトリ タイプになります (すべてのポイントが 1 つのフィーチャ)。
Boolean
multipoint_size
(オプション)

create_multipoint_outputMULTIPOINT に設定されている場合、各マルチポイント ジオメトリに配置されるランダム ポイントの数を指定します。 デフォルトは 10 です。

Long

派生した出力

名前説明データ タイプ
out_feature_class

出力ランダム ポイント フィーチャクラス。

Feature Class

コードのサンプル

CreateRandomPoints の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで CreateRandomPoints 関数を使用する方法を示しています。

import arcpy
arcpy.management.CreateRandomPoints("c:/data/project", "samplepoints", 
                                    "c:/data/studyarea.shp", "", 500, "", 
                                    "POINT")
CreateRandomPoints (ランダム ポイントの作成) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン 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.management.CreateRandomPoints(outGDB, outName, conFC, "", numField)

# set workspace
arcpy.env.workspace = "C:/data/county.gdb"

# Create fields for random values
fieldInt = "fieldInt"
fieldFlt = "fieldFlt"
arcpy.management.AddField(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.management.CalculateField(outName, fieldInt, "random.randint(1,100)", 
                                "PYTHON", "import random")
arcpy.management.CalculateField(outName, fieldFlt, "random.uniform(1,100)", 
                                "PYTHON", "import random")
CreateRandomPoints の例 3 (スタンドアロン スクリプト)

次のスタンドアロン 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.management.CreateRandomPoints(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.management.CreateRandomPoints(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.management.CreateRandomPoints(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.management.CreateRandomPoints(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.management.CreateRandomPoints(outGDB, outName, "", fcExtent, numPoints, 
                                    "", "MULTIPOINT", numMP)

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック