Existe uma maneira do ArcPy identificar a versão de um documento de mapa (MXD). Estou trabalhando em uma solução para inventariar nossos MXDs e gostaria de saber se um documento é 8.1, 9.2, 10.0 etc.
Atualmente, estou usando o ArcGIS 10.0, mas se houver uma atualização na 10.1 que não exista na 10.0, eu gostaria de ouvir isso também.
Vejo que há uma pergunta anterior de Como você pode encontrar a versão do ArcGIS programaticamente? , mas faz referência a todas as soluções ArcObjects (que eu suponho que poderia chamar de python , mas preferiria não).
arcpy
arcgis-10.0
arcgis-10.1
mxd
RyanDalton
fonte
fonte
Respostas:
Sei que essa pergunta tem alguns meses, mas estou postando isso para ajudar outras pessoas. Eu desenvolvi esse kludge para analisar os números de versão dos documentos MXD. Ele basicamente lê os primeiros 4000 caracteres de um documento MXD e procura um número de versão. Eu testei com as versões 9.2, 9.3, 10.0 e 10.1 do MXD.
Aqui está um exemplo de digitalização de uma pasta para arquivos mxd e impressão da versão e nomes
O que retorna isso:
fonte
A função abaixo é baseada na ideia de Ryan, mas é um pouco mais direta. Os documentos de mapa do ArcGIS são na verdade documentos OLE, que podem ser analisados com o
oletools
módulo (disponível em pypi: https://pypi.python.org/pypi/oletools ). A função abre o arquivo e lê a string da versão. Testado com 9.0, 9.3, 10.1 e 10.3, mas deve funcionar com qualquer coisa (não tenho certeza sobre 3.x ...).fonte