Quiero averiguar si un archivo o una geodatabase personal es 9.3, 10.0, 10.1, etc.
¿Hay una forma de hacer esto usando Python?
Quiero averiguar si un archivo o una geodatabase personal es 9.3, 10.0, 10.1, etc.
¿Hay una forma de hacer esto usando Python?
Intentaría la propiedad de liberación de Describe Workspace
http://resources.arcgis.com/en/help/main/10.1/index.html#/Workspace_properties/018v0000002v000000/
Aquí hay una solución ArcObjects + comtypes que funciona para mí en 10.0:
import arcpy
from ESRICOMHelpers import GetESRIModule, CType, NewObj
def GetGDBReleaseVersion(gdbPath):
"""Obtiene la versión de lanzamiento de la geodatabase dada."""
esriGeoDatabase = GetESRIModule("esriGeoDatabase")
esriGeoprocessing = GetESRIModule("esriGeoprocessing")
gpUtilities = NewObj(esriGeoprocessing.GPUtilities, esriGeoprocessing.IGPUtilities)
try:
dataset = gpUtilities.OpenDatasetFromLocation(gdbPath)
workspace = CType(dataset, esriGeoDatabase.IWorkspace)
gdbRelease = CType(workspace, esriGeoDatabase.IGeodatabaseRelease2)
return "%d.%d" % (gdbRelease.MajorVersion + 7, gdbRelease.MinorVersion)
except:
return None
if __name__ == "__main__":
print GetGDBReleaseVersion(r"C:\GISData\test.gdb")
Output:
\>>>
10.0
Descargue comtypes aquí y ESRICOMHelpers aquí. Si está en 10.1 asegúrese de ajustar el automation.py
de comtypes como se describe en esta respuesta.
Nota: ¡Tenga en cuenta que esto también devuelve 10.0 para las geodatabases 10.1 cuando se ejecuta desde ArcGIS 10.0! Editar: ¡En realidad esto devuelve 10.0 para una geodatabase de archivos 10.1 cuando se ejecuta desde ArcGIS 10.1 también! No estoy seguro de qué está pasando :|
¡Buena pregunta! En 10.0, no puedo encontrar ningún método de Python para describir la versión de la geodatabase. He probado usando la herramienta GP Actualizar geodatabase en 10.1 y podría ser útil.
"La herramienta Actualizar geodatabase solo funcionará con geodatabases de versiones anteriores".
Esto significa que podemos probar ejecutar esta herramienta sin seleccionar la opción "Actualizar geodatabase" solo para ver si se ejecutará (si la geodatabase es de la misma versión, no se ejecutará). Si lo hace, entonces es de la versión actual (solo se realizará la comprobación de los pre-requisitos y la geodatabase no se modificará).
En cuanto a probar 9.3 y 10.1, estaba pensando en intentar crear un conjunto de datos de muestra que solo sea posible crear en una geodatabase de la versión 10.0 / 10.1 y luego comprobar si se crea. Si no se crea, entonces es 9.3 / 10.1.
No es la solución más elegante aunque...
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.