Zufällige Punkte erstellen (Data Management)
Zusammenfassung
Erstellt eine bestimmte Anzahl von zufälligen Punkt-Features. Zufällige Punkte können in einem Ausdehnungsfenster, in Polygon-Features, auf Punkt-Features oder entlang von Linien-Features erstellt werden.
Weitere Informationen zur Funktionsweise von "Zufällige Punkte erstellen"
Verwendung
-
Die Fläche, auf der die zufälligen Punkte erstellt werden, kann durch einschränkende Polygon-, Punkt- oder Linien-Features oder durch ein einschränkendes Ausdehnungsfenster definiert werden.
-
Der Parameter Anzahl Punkte kann als Zahl oder als Zahlenfeld in der Feature-Class-Beschränkung mit Werten angegeben werden, die definieren, wie viele zufällige Punkte in jedem Feature zu platzieren sind. Ein Feld ist nur zulässig, wenn die einschränkenden Features (auch: Beschränkungs-Features) Polygon- oder Linien-Features sind. Wenn Sie die Anzahl von Punkten als Zahl angeben, wird in bzw. auf jedem Feature in der Feature-Class-Beschränkung die angegebene Anzahl von Punkten erstellt.
Wenn Sie eine Feature-Class-Beschränkung verwenden, die mehr als ein Feature enthält, und Sie die Gesamtanzahl der zu erstellenden zufälligen Punkte angeben möchten (im Gegensatz zur Anzahl von zufälligen Punkten, die in jedem Feature zu platzieren sind), müssen Sie zuerst die einschränkende Feature-Class mit dem Werkzeug Zusammenführen (Dissolve) zusammenführen, sodass sie nur ein einziges Feature enthält, und dann diese zusammengeführte Feature-Class als Feature-Class-Beschränkung verwenden.
Das Koordinatensystem der Ausgabe-Feature-Class ist das Koordinatensystem der folgenden Elemente:
- Feature-Class-Beschränkung (falls angegeben)
- Kartendatenrahmen, wenn eine einschränkende Ausdehnung in ArcMap anhand eines Layers in der Karte oder des Pfads zu einer Feature-Class angegeben ist
- Feature-Class, wenn eine einschränkende Ausdehnung in Python anhand des Pfades zu einer Feature-Class angegeben ist
- Geoverarbeitungsumgebung für das Ausgabe-Koordinatensystem, falls diese festgelegt ist (und überschreibt alle anderen oben aufgeführten Verhalten)
- Unbekannt, falls keine der oben stehenden Optionen zutreffend ist
-
Um zufällig platzierten Punkten Zufallswerte zuzuweisen, erstellen Sie zunächst zufällige Punkte mit diesem Werkzeug. Erstellen Sie dann mit dem Werkzeug Feld hinzufügen in der Feature-Class mit den zufälligen Punkten ein neues Zahlenfeld. Empfohlene Feldtypen sind "Long Integer" oder "Float". Anschließend weisen Sie dem leeren Feld in der Feature-Class mit den zufälligen Punkten mit dem Werkzeug Feld berechnen Zufallswerte zu. Zum Erstellen einer zufälligen Ganzzahl zwischen a und b (einschließlich) verwenden Sie den Python-Ausdruck random.randint(a,b). Zum Erstellen einer zufälligen Gleitkommazahl zwischen a und b (ausschließlich) verwenden Sie den Python-Ausdruck random.uniform(a,b). Denken Sie daran, als Ausdruckstyp "PYTHON" festzulegen, die Werte a und b zu ersetzen und das Modul "random" mit dem Ausdruck import random in den Codesperre-Abschnitt zu importieren.
-
Der Parameter Ausdehnungsbeschränkung kann mit minimalen und maximalen X- und Y-Koordinaten oder mit der Ausdehnung eines Feature-Layers bzw. einer Feature-Class angegeben werden.
-
Bei Angabe einer einschränkenden Feature-Class und einer einschränkenden Ausdehnung wird der einschränkende Feature-Class-Wert verwendet und der einschränkende Ausdehnungswert ignoriert.
-
Wenn innerhalb einer Beschränkungsfläche keine zufälligen Punkte unter Einhaltung der Mindestentfernung mehr platziert werden können, wird die angegebene Anzahl der zufälligen Punkte innerhalb der Beschränkungsfläche auf die maximal mögliche Anzahl unter Einhaltung der Mindestentfernung reduziert.
-
Der Parameter Mindestens zulässige Entfernung kann als lineare Einheit oder als Feld aus den einschränkenden Features mit numerischen Werten angegeben werden. Mit diesem Wert wird die kürzeste zulässige Entfernung zwischen zufälligen Punkten innerhalb der einzelnen Eingabe-Features festgelegt. Ein Feld ist nur zulässig, wenn die einschränkenden Features (auch: Beschränkungs-Features) Polygon- oder Linien-Features sind. Zufällige Punkte können innerhalb der kürzesten zulässigen Entfernung liegen, wenn sie innerhalb bzw. auf unterschiedlichen einschränkenden Feature-Teilen erstellt wurden.
-
Bei Verwendung von Punkt-Features als Feature-Class-Beschränkung wird eine zufällige Teilmenge der einschränkenden Punkt-Features erstellt. Es werden keine neuen Punktpositionen erstellt.
-
Positive Nicht-Ganzzahl-Werte für die Parameter Anzahl Punkte und Mindestens zulässige Entfernung werden auf die nächste ganze Zahl gerundet. Nicht numerische und negative Werte werden auf null (0) gesetzt.
Syntax
Parameter | Erläuterung | Datentyp |
out_path |
Der Speicherort bzw. Workspace, in dem die Feature-Class mit den zufälligen Punkten erstellt wird. Dieser Speicherort bzw. Workspace muss bereits vorhanden sein. | Feature Dataset;Workspace |
out_name |
Der Name der zu erstellenden Feature-Class mit den zufälligen Punkten. | String |
constraining_feature_class (optional) |
Zufällige Punkte werden innerhalb bzw. auf den Features in dieser Feature-Class erstellt. Die einschränkende Feature-Class kann Punkt, Multipoint, Linie oder Polygon sein. Die Punkte werden per Zufallsprinzip innerhalb von Polygon-Features, entlang von Linien-Features oder auf Punkt-Features platziert. Für jedes Feature in dieser Feature-Class wird die angegebene Anzahl von Punkten erstellt (wenn Sie beispielsweise 100 Punkte angeben und die einschränkende Feature-Class 5 Features enthält, werden 100 zufällige Punkte in jedem Feature erstellt, also insgesamt 500 Punkte). | Feature Layer |
constraining_extent (optional) |
Zufällige Punkte werden innerhalb der Ausdehnung erstellt. Die Ausdehnungsbeschränkung wird nur verwendet, wenn keine Feature-Class-Beschränkung angegeben wurde. | Extent;Feature Layer;Raster Layer |
number_of_points_or_field (optional) |
Die Anzahl der zu erstellenden zufälligen Punkte. Die Anzahl von Punkten kann als Zahl vom Typ "Long Integer" oder als Feld aus den einschränkenden Features mit numerischen Werten angegeben werden, die definieren, wie viele zufällige Punkte in jedem Feature zu platzieren sind. Ein Feld ist nur zulässig, wenn die einschränkenden Features (auch: Beschränkungs-Features) Polygon- oder Linien-Features sind. Wenn Sie die Anzahl von Punkten als Zahl vom Typ "Long Integer" angeben, wird in bzw. auf jedem Feature in der Feature-Class-Beschränkung die angegebene Anzahl von Punkten erstellt. | Field;Long |
minimum_allowed_distance (optional) |
Die kürzeste Entfernung, die zwischen zwei zufällig platzierten Punkten zulässig ist. Bei Angabe von 1 Meter muss die Entfernung zwischen den zufälligen Punkten mindestens einen Meter betragen. | Field;Linear unit |
create_multipoint_output (optional) |
Gibt an, ob die Ausgabe-Feature-Class ein Multipart- oder ein Singlepart-Feature ist.
| Boolean |
multipoint_size (optional) |
Bei Verwendung der Option "Multipoint-Ausgabe erstellen" (aktiviert/MULTIPOINT) gibt dieser Parameter die Anzahl von zufälligen Punkten an, die in jeder Multipoint-Geometrie zu platzieren sind. | Long |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie das Werkzeug "CreateRandomPoints" im unmittelbaren Modus verwenden:
import arcpy
arcpy.CreateRandomPoints_management("c:/data/project", "samplepoints", "c:/data/studyarea.shp", "", 500, "", "POINT", "")
Das folgende eigenständige Python-Skript veranschaulicht, wie Sie zufällige Punkte mit Zufallswerten erstellen.
#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")
Das folgende eigenständige Python-Skript veranschaulicht mehrere Methoden zur Verwendung des Werkzeugs "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)