Quero descobrir se um arquivo ou um geodatabase pessoal é 9.3, 10.0, 10.1, etc.
Existe uma maneira de fazer isso usando Python?
Quero descobrir se um arquivo ou um geodatabase pessoal é 9.3, 10.0, 10.1, etc.
Existe uma maneira de fazer isso usando Python?
Respostas:
Eu tentaria a propriedade de liberação Describe Workspace
http://resources.arcgis.com/en/help/main/10.1/index.html#/Workspace_properties/018v0000002v000000/
3,0,0
.
Aqui está uma solução ArcObjects + comtypes que funciona para mim na 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")
Resultado:
>>> 10.0
Pegue comtypes aqui e ESRICOMHelpers aqui. Se você estiver na versão 10.1, certifique-se de ajustar os comtipos ', automation.py
conforme descrito nesta resposta .
Nota: Esteja avisado de que isso também retorna 10.0 para 10.1 geodatabases quando executado a partir do ArcGIS 10.0! Edit: Na verdade, isso retorna 10.0 para um geodatabase 10.1 quando executado a partir do ArcGIS 10.1 também! Não tenho certeza do que está acontecendo: |
release
retornos de propriedade da mesma para ambos os 10.0 e 10.1 geodatabases libertação, bem como: resources.arcgis.com/en/help/main/10.1/index.html#/...
Boa pergunta! Na 10.0, não consigo encontrar nenhum método Python para descrever a versão do geodatabase. Testei usando a ferramenta GP do geodatabase de atualização na versão 10.1 e pode ser útil.
"A ferramenta Upgrade Geodatabase funciona apenas com geodatabases que estão em uma versão anterior."
Isso significa que podemos testar a execução dessa ferramenta sem definir a opção "Atualizar geodatabase" apenas para ver se ela será executada (se o geodatabase for da mesma versão, não será executado). Se for - então é da versão atual (somente a verificação de pré-requisitos será realizada e o banco de dados geográfico permanecerá intocado).
Sobre os testes 9.3 e 10.1 - Eu estava pensando em tentar criar um conjunto de dados de amostra que é possível criar apenas no geodatabase da versão 10.0 / 10.1 e depois verificar se ele foi criado. Se não - então é 9.3 / 10.1.
Não é a solução mais elegante ...