4 votos

Cómo comprobar eficientemente para la función se superpone con Arcpy?

En un esfuerzo para reducir el tiempo de procesamiento, estoy buscando maneras de pre-proceso de los datos dentro de mi script. He ~18,000 featureclasses con ~500 características de cada uno (todos círculo sencillo polígonos) de la que quiero eliminar costera, área de la tierra (otra simplificado polígono) utilizando la función de Borrado.

Mi idea para reducir el tiempo de procesamiento total es comprobar que se superponen entre cada clase de entidad y el litoral del polígono. Si no se superponen, el script debe borrar de la tierra a partir de las características. Si no hay ninguna superposición, la secuencia de comandos debe continuar, y mirar en la siguiente clase de entidad.

Preguntas específicas:

  1. ¿Cuál es la más eficiente, Python forma de decir "si hay superposición, haga XX?" No puedo encontrar la documentación para hacer algo similar a "si se Superponen == True" además del método:

    MakeFeatureLayer-->SelectFeatureByLocation-->CopyFeature-->GetRowCount--> si RowCount>0

  2. Que esto sería realmente reducir el tiempo de procesamiento o estoy loco?

Estoy trabajando localmente en mi máquina, se ejecuta la secuencia de comandos en modo INACTIVO, con ArcGIS 10.1 (con todas las licencias) en una de 32 bits de Windows 7, 3.33 GHz Intel DuoCore, 4GB de RAM de la computadora. Gracias por tu aporte.

3voto

Nate Puntos 220

Datos del litoral es un caso donde el cuadro de delimitación espacial la indización puede ser de beneficio limitado. Considere el siguiente ejemplo.

enter image description here

Ambos polígonos a y B están dentro del cuadro delimitador de la tierra polígono. El software puede necesitar para trabajar a través de cada uno de los miles de vértices para identificar si los polígonos en realidad se superponen. Este trabajo podría ser reducido mediante la simplificación de la tierra polígono y la reducción del número de vértices.

Alternativamente, usted puede dividir la tierra polígono en una cuadrícula. Esto hará que los índices espaciales mucho más útil y reducir el número de vértices para el proceso. Basado en la cuadrícula se muestra a continuación, sólo los mosaicos en rojo sería identificado como de intersección usando el cuadro de delimitación espacial la indexación. Polígono B, se muestran como no intersección sin necesidad de proceso de la tierra vértices.

enter image description here

2voto

houbysoft Puntos 222

No sé si esta es todavía una cuestión abierta, pero una idea que se me ocurrió fue que si tenía los puntos/centroides de que su círculo de los polígonos que se han generado, usted podría ser capaz de obtener más rápidamente evaluar su distancia euclidiana desde la costa, seleccione aquellos por debajo de un umbral, y, a continuación, se relacionan estos puntos para la clase de entidad poligonal y el uso que de una sola operación de borrado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X