Comprobar la existencia de datos

Para verificar la existencia de los datos en una secuencia de comandos, utilice la función Exists.

Exists(dataset)

Comprueba la existencia de las clases, tablas, datasets, shapefiles, espacios de trabajo, capas y otros archivos en el espacio de trabajo actual al momento de la ejecución. La función devuelve un Booleano que indica si el elemento existe.

Función Exists

Al verificar la existencia de los datos geográficos, debe utilizar la función Exists ya que ésta reconoce las rutas del catálogo. Una ruta de catálogo es una ruta de acceso que sólo reconoce ArcGIS. Por ejemplo: D:\Data\Final\Infrastructure.gdb\EastValley\powerlines se refiere a la clase de entidad powerlines que se encuentra en el dataset de entidades EastValley en la geodatabase de archivos Infrastructure. Esta no es una ruta de sistema válida en lo concerniente al sistema operativo Windows, ya que Infrastructure.gdb (una carpeta) no contiene un archivo llamado Infrastructure. En pocas palabras, Windows no tiene conocimiento de datasets de entidades o clases de entidades, entonces no se pueden utilizar las funciones de existencia de Python como os.path.exists. Por supuesto, en todo ArcGIS se conoce como manejarse con las rutas de catálogo. También se pueden utilizar rutas UNC (Universal Naming Convention).

import arcpy from arcpy import env  env.workspace = "d:/St_Johns/data.gdb" fc = "roads"  # Clip a roads feature class if it exists # if arcpy.Exists(fc):    arcpy.Clip_analysis(fc,"urban_area","urban_roads")
SugerenciaSugerencia:

La función Exists distingue el entorno del espacio de trabajo de geoprocesamiento permitiéndole especificar sólo el nombre de base.

Si los datos residen en una geodatabase corporativa, el nombre debe ser completo.

import arcpy from arcpy import env  env.workspace = "Database Connections/Bluestar.sde" fc = "ORASPATIAL.Rivers"  # Confirm that the feature class exists # if arcpy.Exists(fc):      print "Verified %s exists" % fc 

En las secuencias de comando, el comportamiento predeterminado de todas las herramientas es no sobrescribir cualquier salida que ya exista. Este comportamiento se puede modificar estableciendo la propiedad overwriteOutput como Verdadera (arcpy.env.overwriteOutput = Verdadero). Si se intenta sobrescribir cuando overwriteOutput es Falso, la herramienta fallará.

Temas relacionados


7/11/2012