Crear puntos aleatorios (Administración de datos)
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 en la opción Clase de entidad obligada que contenga los valores de 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, esa cantidad de puntos aleatorios se generará dentro o a lo largo de cada entidad en la clase de entidad obligada.
-
Para asignar valores aleatorios a los puntos ubicados de manera aleatoria, primero genere 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 (incluidos), utilice la expresión de Python random.uniform(a,b). No olvide establecer el Tipo de expresión en PYTHON, reemplazar los valores a y b, e importar el módulo aleatorio en la sección Código bloque con 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 los valores para Clase de entidad obligada y Extensión obligada, se utilizará el valor de Clase de entidad obligada y se ignorará el valor de Extensión obligada.
-
En el cuadro de diálogo de la herramienta, los valores de Extensión obligada se pueden restablecer con el botón Borrar.
Si utiliza una Clase de entidad obligada que tiene más de una entidad y desea especificar la cantidad total de puntos aleatorios que se generarán (a diferencia de la cantidad de puntos aleatorios que se colocarán dentro de cada entidad), primero debe disolver la clase de entidad obligada con la herramienta Disolver para que sólo contenga una entidad, después debe utilizar esa clase de entidad disuelta como Clase de entidad obligada.
-
Cuando no se puedan ubicar más puntos aleatorios dentro de un área obligada sin violar la especificación de distancia mínima permitida, la cantidad de puntos aleatorios que tenga el área obligada se reducirá lo máximo posible por debajo 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 o a lo largo de entidades obligadas diferentes.
-
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
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 las 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 un 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 se utiliza la opción Crear multipunto salida (marcada/MULTIPOINT), este parámetro especifica la cantidad de puntos aleatorios que se ubicarán en cada geometría multipunto. | Long |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la herramienta Crear puntos aleatorios en el modo inmediato:
import arcpy arcpy.CreateRandomPoints_management("c:/data/project", "samplepoints", "c:/data/studyarea.shp", "", 500, "", "POINT", "")
La siguiente secuencia de comandos de Python independiente muestra cómo crear puntos aleatorios con valores aleatorios:
#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")
La siguiente secuencia de comandos de Python independiente muestra varios métodos para utilizar la herramienta Crear puntos aleatorios:
#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)