Quiero saber si un archivo o una geodatabase personal es 9.3, 10.0, 10.1, etc.
¿Hay alguna manera de hacer esto usando Python?
Quiero saber si un archivo o una geodatabase personal es 9.3, 10.0, 10.1, etc.
¿Hay alguna manera de hacer esto usando Python?
Respuestas:
Probaría la propiedad de lanzamiento Describe Workspace
http://resources.arcgis.com/en/help/main/10.1/index.html#/Workspace_properties/018v0000002v000000/
3,0,0
.
Aquí hay una solución de tipos de ArcObjects + que funciona para mí en 10.0:
import arcpy
from ESRICOMHelpers import GetESRIModule, CType, NewObj
def GetGDBReleaseVersion(gdbPath):
"""Gets the release version of the given geodatabase."""
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")
Salida:
>>> 10,0
Grab comtypes aquí y ESRICOMHelpers aquí. Si estás en 10.1, asegúrate de ajustar los tipos automation.py
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 lo que está pasando: |
release
devuelve lo mismo para las geodatabases de lanzamiento 10.0 y 10.1 también: resources.arcgis.com/en/help/main/10.1/index.html#/…
¡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 de actualización de geodatabase en 10.1 y podría ser útil.
"La herramienta Actualizar geodatabase solo funcionará con las geodatabases que se encuentran en una versión anterior".
Esto significa que podemos probar la ejecución de esta herramienta sin configurar 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 hará, entonces es de la versión actual (solo se realizará la verificación de requisitos previos y la geodatabase quedará intacta).
Con respecto a las pruebas 9.3 y 10.1: estaba pensando en intentar crear un conjunto de datos de muestra que sea posible crear solo en la geodatabase de la versión 10.0 / 10.1 y luego verificar si se creó. Si no, entonces es 9.3 / 10.1.
Aunque no es la solución más elegante ...