Más

Seleccione filas aleatorias con python en arcgis


Soy nuevo en el uso de Python en ArcGIS y me pregunto: ¿cómo selecciono líneas aleatorias (o cada dos líneas) de una tabla de atributos? Debo seleccionar estas líneas y calcularlas, para que sean diferentes de las demás.

De hecho, tengo algunas condiciones. Por ejemplo: tendré que calcular el área de un polígono y el área es menor que 30 por ejemplo, tengo que seleccionar un punto aleatorio dentro de ese polígono y calcular su columna para que sea diferente a la otra.

Parte del cálculo del área ya está listo, solo falta obtener puntos seleccionados al azar.


Aquí hay un código para crear una capa (llamada "lines_layer") con la mitad de las filas seleccionadas al azar, que funcionará con ArcGIS 10.1+:

import arcpy import random fc = r'C:  path  to  features.shp '# Ruta a la clase de entidad con tabla de atributos para modificar object_ids = [r [0] para r en arcpy.da.SearchCursor (fc, [' OID @ '])] sample_size = len (object_ids) / 2 # Para seleccionar más o menos de la mitad, cambie el denominador random_ids = random.sample (object_ids, sample_size) oid_field = arcpy.Describe (fc) .OIDFieldName selection_query =' "{0 } "IN ({1}) '. Format (oid_field,', '. Join (random_ids)) arcpy.MakeFeatureLayer_management (fc," fc_layer ", selection_query)

Solo cambia elfcdefinición para apuntar a la ruta completa de la clase de entidad o shapefile cuyos campos desea calcular. (Un nombre de capa también funcionaría, si ya ha creado una capa de entidades a partir de ella. En ese caso, se seleccionaría la mitad de las entidades de la capa).

En su pregunta, parece que seleccionar cualquier otra línea puede ser lo suficientemente bueno, en cuyo caso lo dirigiría a la consulta utilizada en mi respuesta a esta pregunta.


Ver el vídeo: Extraer Una Muestra Aleatoria Simple Con Excel (Octubre 2021).