3 votos

Obtener nombres de catálogos ráster de una geodatabase de archivos programáticamente

Estoy tratando de obtener solo entradas de catálogos ráster de una geodatabase de archivos utilizando la API de geoprocesamiento arcgisscripting. Hasta ahora he podido hacer esto usando la función ListDatasets utilizando el argumento ALL. El problema es que también devuelve conjuntos de datos ráster y sospecho que también devolvería otros tipos si estuvieran presentes en la geodatabase de archivos. He probado el argumento Raster pero devuelve los conjuntos de datos ráster y omite los catálogos ráster. Supongo que podría filtrar los elementos devueltos de gp.ListDatasets("", "Raster") de los elementos devueltos de gp.ListDatasets("", "ALL") dejándome con lo que estoy buscando, sin embargo puede haber algún otro tipo del que no conozco que quedaría en la lista si estuviera presente.

Aquí está el código con el que estoy empezando:

import arcgisscripting
gp = arcgisscripting.create(9.3)
gp.workspace = r"C:\FileGeodatabase"
datasets = gp.ListDatasets("", "ALL")
for dataset in dataset:
    #Solo quiero catálogos ráster aquí...

Estoy buscando una forma de obtener solo catalogos ráster. ¿Qué enfoque garantizaría que solo estoy trabajando con catálogos ráster?

4voto

Arda Xi Puntos 1099

Prueba el argumento feature_type de RasterCatalog:

datasetList = arcpy.ListDatasets("C*", "RasterCatalog")

for dataset in datasetList:
    print dataset

EDICIÓN:

OK, lo anterior no funcionará en la versión 9.3, ¿qué tal si obtenemos el DatasetType de cada objeto y si es de tipo RasterCatalog, entonces lo listamos (código no probado a continuación)?

datasets = gp.ListDatasets("", "ALL")
for dataset in datasets:
    desc = gp.Describe(dataset)
    if desc.DatasetType == "RasterCatalog":
        # haz tu proceso

Aquí tienes una solución más elaborada para la versión 9.3 utilizando una lista por comprensión:

cats = [c for c in gp.ListDatasets() 
        if gp.Describe(c).DatasetType == "RasterCatalog"]

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