ランダム ポイントの作成 (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
制限範囲
(オプション)

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

  • [現在の表示範囲] マップ ビュー - 範囲は、アクティブなマップまたはシーンに基づきます。 このオプションは、アクティブなマップが存在する場合にのみ使用できます。
  • [範囲の描画] 直角化して完了 - 範囲は、マップまたはシーンに描画された四角形に基づきます。 このオプションは、プロジェクト ジオデータベースにフィーチャクラスを作成し、レイヤーをマップに追加します。 フィーチャクラスの座標系はマップと同じです。
    注意:

    このオプションは、[環境] ダイアログ ボックスでは使用できません。 範囲データ タイプを使用するツール パラメーターまたはツール ダイアログ ボックスの [環境] タブからのみ使用できます。

    注意:

    編集タブで編集を有効/無効にする編集オプションがオンの場合、範囲を描画するには [編集] リボン タブで編集を有効化する必要があります。

  • [レイヤーの範囲] Layer - 範囲は、アクティブなマップ レイヤーに基づきます。 ドロップダウン リストを使用して使用可能なレイヤーを選択するか、[すべてのレイヤーのデータの範囲] オプションを使用して、ベースマップを除くすべてのアクティブなマップ レイヤーを組み合わせた範囲を取得します。 このオプションは、レイヤーを含むアクティブなマップが存在する場合にのみ使用できます。

    各マップ レイヤーには、次のオプションがあります。

    • [すべてのフィーチャ] すべて選択 - レイヤーのすべてのフィーチャの範囲。
    • [選択フィーチャ]Area from Selected Features - レイヤーの選択フィーチャの範囲。
    • [表示フィーチャ] Extent Indicator - レイヤーの表示フィーチャの範囲。
      注意:

      [選択フィーチャ] Area from Selected Features[表示フィーチャ] Extent Indicator オプションの範囲は、フィーチャ レイヤーでのみ使用できます。

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

    範囲の座標は、ArcPy Extent オブジェクトと同じ書式と順序 (x-min、y-min、x-max、y-max、空間参照) を使用して、クリップボードからコピーおよびクリップボードから貼り付けられます。

  • [範囲をリセット] リセット - 範囲はデフォルト値にリセットされます。
  • 手動入力した座標値 - 座標値は数値であり、アクティブなマップの座標系で表示する必要があります。
    注意:

    マップで、入力された座標と異なる表示単位が使用されることがあります。 基本方向 (N、S、E、W) を使用することはできません。 南と西の座標にはマイナス値の記号を使用します。

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)

関連トピック