Resumen
Crea un determinado número de entidades de puntos aleatorios. Los puntos aleatorios se pueden generar en una ventana de extensión, dentro de entidades poligonales, en entidades de puntos o a lo largo de entidades de línea.
Más información sobre el funcionamiento de Crear puntos aleatorios
Uso
El área en la cual se generarán puntos aleatorios se puede definir con entidades obligadas de polígono, de punto o de línea, o con una ventana de extensión obligada.
El parámetro Cantidad de puntos se puede especificar como un número o como un campo numérico de la clase de entidad obligada que contenga los valores de la cantidad de puntos aleatorios que se deben ubicar en cada entidad. La opción de campo solamente es válida para entidades obligadas de polígono o de línea. Si la cantidad de puntos se proporciona como un número, esa cantidad de puntos aleatorios se generará dentro o a lo largo de cada entidad en la clase de entidad obligada.
Si utiliza una clase de entidad de restricción que tiene más de una entidad y desea especificar la cantidad total de puntos aleatorios que se generarán (diferente de la cantidad de puntos aleatorios que se colocarán dentro de cada entidad), primero debe usar la herramienta Disolver para que la clase de entidad de restricción contenga una única entidad y, a continuación, debe usar esa clase de entidad disuelta como clase de entidad obligada.
El sistema de coordenadas de la clase de entidad de salida será el sistema de coordenadas de la
- clase de entidad obligada si se ha especificado una.
- Marco de datos de mapa si se ha especificado una extensión obligada en el mapa usando una capa del mapa o la ruta de una clase de entidad
- Clase de entidad si se ha especificado una extensión obligada en Python usando la ruta de una clase de entidad.
- Entorno de geoprocesamiento de sistema de coordenadas de salida si se ha definido (e invalida los demás comportamientos que ya se han detallado)
- Desconocido si no se cumple ninguna de las opciones anteriores
Para asignar valores aleatorios a puntos ubicados de manera aleatoria, genere primero puntos aleatorios con esta herramienta. A continuación, utilice la herramienta Agregar campo para crear un nuevo campo numérico en la clase de entidad de puntos aleatorios. Los tipos de campo sugeridos son entero largo o flotante. Por último, utilice la herramienta Calcular campo para asignar valores aleatorios al campo vacío en la clase de entidad de puntos aleatorios. Para generar un número entero aleatorio entre a y b (incluidos), utilice la expresión de Python random.randint(a,b). Para generar un número flotante aleatorio entre a y b (exclusivamente), utilice la expresión de Python random.uniform(a,b). En el bloque de código, importe el módulo aleatorio utilizando la expresión import random.
El parámetro Extensión obligada se puede introducir como un conjunto de coordenadas x e y mínimas y máximas o como igual a la extensión de una capa de entidades o clase de entidad.
Si se especifican tanto una clase de entidad de restricción como una extensión de restricción, se usará el valor de la clase de entidad de restricción y se hará caso omiso del valor de la extensión de restricción.
Cuando no se puedan ubicar más puntos aleatorios dentro de un área obligada sin infringir la distancia mínima permitida especificada, la cantidad de puntos aleatorios del área obligada se reducirá al máximo posible dentro de la distancia mínima permitida.
El parámetro Distancia mínima permitida se puede especificar como una unidad lineal o un campo de las entidades obligadas que contengan valores numéricos. Este valor determina la distancia mínima permitida entre los puntos aleatorios que se encuentran dentro de cada entidad de entrada. La opción de campo solamente es válida para entidades obligadas de polígono o de línea. Los puntos aleatorios pueden estar dentro de la distancia mínima permitida si se generaron dentro de partes de entidades obligadas o a lo largo de ellas.
Si se utilizan entidades de puntos como la clase de entidad obligada, se crea un subconjunto aleatorio de entidades de puntos obligadas. No se generan ubicaciones de puntos nuevas.
Los valores positivos no enteros de los parámetros Cantidad de puntos y Distancia mínima permitida se redondean al número entero más cercano. Los valores no numéricos y negativos se establecen en 0.
Sintaxis
CreateRandomPoints(out_path, out_name, {constraining_feature_class}, {constraining_extent}, {number_of_points_or_field}, {minimum_allowed_distance}, {create_multipoint_output}, {multipoint_size})
Parámetro | Explicación | Tipo de datos |
out_path | Ubicación o espacio de trabajo en el que se crea la clase de entidad de puntos aleatorios. Esta ubicación o este espacio de trabajo ya debe existir. | Feature Dataset;Workspace |
out_name | Nombre de la clase de entidad de puntos aleatorios que se va a crear. | String |
constraining_feature_class (Opcional) | Los puntos aleatorios se generan dentro o a lo largo de las entidades en esta clase de entidad. La clase de entidad obligada puede ser punto, multipunto, línea o polígono. Los puntos se ubican de manera aleatoria dentro de las entidades poligonales, a lo largo de las entidades de línea o en ubicaciones de entidades de puntos. Cada entidad en esta clase de entidad tendrá el número especificado de puntos generados dentro de ella (por ejemplo, si especifica 100 puntos y la clase de entidad obligada tiene 5 entidades, se generarán 100 puntos aleatorios en cada entidad, que suman un total de 500 puntos). | Feature Layer |
constraining_extent (Opcional) | Los puntos aleatorios se generan dentro de la extensión. La extensión obligada se utiliza solamente si no se especifica una clase de entidad obligada. | Extent;Feature Layer;Raster Layer |
number_of_points_or_field (Opcional) | Cantidad de puntos que se generarán de manera aleatoria. La cantidad de puntos se puede especificar como un número entero largo o como un campo de las entidades obligadas que contiene valores numéricos que indican la cantidad de puntos aleatorios que se ubicarán en cada entidad. La opción de campo solamente es válida para entidades obligadas de polígono o de línea. Si la cantidad de puntos se proporciona como un número entero largo, esa cantidad de puntos aleatorios se generará dentro o a lo largo de cada entidad en la clase de entidad obligada. | Field; Long |
minimum_allowed_distance (Opcional) | Distancia más corta permitida entre dos puntos ubicados de manera aleatoria. Si se especifica un valor de 1 metro, todos los puntos aleatorios se ubicarán a más de 1 metro del punto más cercano. | Field; Linear Unit |
create_multipoint_output (Opcional) | Determina si la clase de entidad de salida será una entidad multiparte o una entidad de una parte.
| Boolean |
multipoint_size (Opcional) | Si la opción create_multipoint_output está establecida en MULTIPOINT, especifique la cantidad de puntos aleatorios que se colocarán en cada geometría multipunto. El valor predeterminado es 10. | Long |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_feature_class | La clase de entidad de puntos aleatorios de salida. | Clase de entidad |
Muestra de código
El script de la ventana de Python muestra cómo utilizar la herramienta CreateRandomPoints en el modo inmediato.
import arcpy
arcpy.CreateRandomPoints_management("c:/data/project", "samplepoints",
"c:/data/studyarea.shp", "", 500, "",
"POINT")
El siguiente script independiente de Python muestra cómo crear puntos aleatorios con valores aleatorios.
# 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")
El siguiente script independiente de Python muestra varios métodos para utilizar la herramienta 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)
Entornos
Información de licenciamiento
- Basic: Requiere 3D Analyst o Spatial Analyst
- Standard: Requiere 3D Analyst o Spatial Analyst
- Advanced: Sí