12 votos

Crear capa de herramienta seleccionado características: ¿Cómo es la lista de características almacenada?

En ArcGIS Desktop, hay una herramienta llamada Create Layer from Selected Features. El uso de esta herramienta, que puede convertir una selección en una capa en ArcMap.

Es mi suposición de que existe una "lista de funciones" que está incrustado en la capa en algún lugar que los aislamientos de las características que se muestran en el mapa.

Yo habría pensado que la "lista de funciones" habría sido almacenados en un where cláusula en una consulta de definición como una lista de objectids. Por ejemplo: where objectid in(123,456,789,...). Sin embargo, este no es el caso.

Si la capa no tiene un WHERE cláusula o la consulta de definición, entonces ¿cómo es que la lista de características almacenados?

14voto

jbalk Puntos 581

Crear una Capa a partir De las Características Seleccionadas NO crear una DINÁMICA de la capa. La capa resultante no es dinámica. Se basa en un FIDset.

Si cambia la fuente de datos, la Fid va a cambiar y la selección de la capa se va a romper.

No hay ninguna cláusula where en una selección de la capa. Se basa en FIDset (la Fid, que fueron seleccionados cuando se utiliza "Crear capa de entidades seleccionadas').

Por favor, tenga en cuenta que si añadir o eliminar registros de la fuente de datos, la Fid va a cambiar, y la selección de la capa se muestran registros incorrectos.

Usted está confundiendo la selección de la capa con una capa de consulta, que almacena una cláusula where y es dinámica.

EDIT: La lista de características para una selección de la capa se almacena en la memoria. Es una mala práctica para el uso de selección de capas excepto para el trabajo temporal como no hay manera de recuperar el original de la selección una vez que la selección de salto de capa.

Para encontrar la lista de características en una selección de la capa, puede utilizar muchos métodos diferentes, incluyendo SearchCursor para construir una lista de Identificadores.

Algo como esto:

OIDlist = []
with arcpy.da.SearchCursor(layer, 'OBJECTID') as scur:
    for row in scur:
        OIDlist.append(row[0])

11voto

Frank Lowney Puntos 11

La mejor manera que yo he entendido cómo Create Layer from Selected Featureses esta referencia que encontré Crear una capa temporal para seleccionar funciones

La creación de una capa temporal permite hacer cosas, como hacer selecciones, sin afectar a la fuente de datos original. Esta capa no aparecerá en el ArcCatalog contenido, ya que es creado en la memoria y simplemente hace referencia a los datos almacenados en el disco. Estas capas se pueden utilizar como entrada para otras herramientas de geoprocesamiento dentro de su sesión de trabajo. Una vez que salga de la aplicación en memoria de las capas será eliminado.

La herramienta crear Capa de entidades en las Vistas de Capas y Tabla de conjunto de herramientas, dentro de la Gestión de Datos de Herramientas cuadro de herramientas. Haga clic en la herramienta crear Capa de entidades y haga clic en Abrir o haga doble clic en él para abrir la herramienta.

El mecanismo que se puede leer en que el espacio del disco sería cómo acceder al "conjunto de resultados"

También, como se mencionó anteriormente y de Esri cubierta de Trabajo con las características seleccionadas,

En este ejemplo, la capa que se crea a partir de las características seleccionadas sólo es útil como un trabajo temporal del conjunto de datos (por ejemplo, para utilizar como entrada en un modelo de geoprocesamiento). La nueva capa hace una lista de los FeatureIDs (Fid) o ObjectIDs (Oid) de las características seleccionadas y de ser válida cuando el origen de datos original está actualizado o cambiado.

También, aquí es más la discusión como la lectura en general,el Uso de espacio de trabajo en memoria, relativa a la in_memory espacio de trabajo. Esto es sólo la intención de para más información si usted está interesado.

2voto

Cohen Puntos 1649

Mi conjetura es que, la capa de Create Layer From Selected Features no se basa en un WHERE cláusula o una condición lógica, porque el conjunto de selección puede ser creado sin la participación de la lógica.

Por ejemplo, puede agregar manualmente/suprimir cualquiera de las características del conjunto de selección mediante el menú principal , por ejemplo arrastrar un cuadro, que puede ser de uno de los anteriores Seleccionar por Atributos/Ubicación.

Mi conjetura es que el conjunto de selección (IFeatureSelection) es sólo un amplio conjunto de resultados (que contiene copias de las Identificaciones de la capa original), en lugar de las normas que definen el conjunto de resultados. De ahí la advertencia en los enlaces de la documentación que la IDENTIFICACIÓN puede ser válido si el Id de la capa original de los cambios.

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