Más

¿Seleccionar por atributo usando geoprocesamiento sin usar capas?

¿Seleccionar por atributo usando geoprocesamiento sin usar capas?


Estoy seleccionando entidades basadas en atributos dentro de un complemento de ArcGIS. Las selecciones son bastante simples (por ejemplo, "DESCRIPCIÓN = izquierda"). ¿Existe alguna herramienta o método para hacer esto que no requiera pasar capas? ¿Existe un método simple de ArcObjects que pueda haber revisado?

Después de la selección, tendré que pasar las entidades seleccionadas a otro paso de geoprocesamiento, por lo que necesito obtener la selección de salida como una ruta (cadena).

Actualmente soy:

1) Crear una capa de entidades a partir de un archivo determinado.

2) Seleccionar entidades de la capa.

3) Guardar la capa usando Copiar características para obtener la salida como un nuevo shapefile.


Del tema de ayuda 'Uso del geoprocesamiento para desarrollar aplicaciones':

Las siguientes son algunas incorrecciones sobre el geoprocesamiento:

Declaración errónea-Las herramientas de geoprocesamiento solo toman conjuntos de datos en disco como entrada y solo escriben conjuntos de datos en discos. Otra forma en que se ha establecido esto es que el geoprocesamiento es solo "nombre de ruta a nombre de ruta". Solo las rutas de acceso a los conjuntos de datos se pueden utilizar como parámetros de entrada y salida.

  • De hecho, puede usar ArcObjects equivalentes en cualquier lugar donde se esperen clases de entidades. Por ejemplo, puede hacer lo siguiente:

    • Pase un objeto con IFeatureClass o IDataset como entrada a una herramienta en lugar de una cadena de nombre de ruta.

    • Cree clases de entidad en memoria, manipúlelas y utilícelas en herramientas de geoprocesamiento.

    • Utilice los objetos FeatureSet y RecordSet especiales en memoria en lugar de tablas y clases de entidad. Estos dos objetos se comportan como sus homólogos en disco.

Dicho esto, una capa ya es una representación bastante ligera de un subconjunto de datos, por lo que supongo que no habrá una gran diferencia entre usar un FeatureSet y una capa.


Cuando dices "no requiere pasar capas", si realmente te refieres no requiere guardar archivos en el disco para ejecutar su próximo paso de geoprocesamiento, entonces sí.

Como mencionó @blah, puede crear capas "en memoria" (en lugar de escribirlas en el disco). En Python o ModelBuilder, simplemente incluya "in_memory " delante del nombre de salida (de su comando de geoprocesamiento "Copiar entidades", como "in_memory tmp_copy_features"). Esto enviará la salida de su proceso gp a un espacio de trabajo de memoria y no lo escribirá en el disco.

Luego, simplemente puede pasar ese archivo "in_memory" a sus otros procesos de gp y se eliminará automáticamente cuando ya no sea necesario.

Para obtener más detalles, consulte la ayuda de ArcGIS 9.3 o la ayuda de ArcGIS 10.


Ver el vídeo: Incorporating select by attributes into a Model Builder expression