Есть ли способ с ArcPy определить версию документа карты (MXD). Я работаю над решением для инвентаризации наших MXD и хотел бы знать, является ли документ 8.1, 9.2, 10.0 и т. Д.
В настоящее время я использую ArcGIS 10.0, но если в 10.1 будет обновление, которого нет в 10.0, я был бы также признателен за это.
Я вижу, что есть предыдущий вопрос: Как вы можете найти версию ArcGIS программно? , но он ссылается на все решения ArcObjects (которые, я полагаю, я мог бы вызвать из python , но я бы предпочел не делать этого).
arcpy
arcgis-10.0
arcgis-10.1
mxd
RyanKDalton-OffTheGridMaps
источник
источник
Ответы:
Я знаю, что этому вопросу уже несколько месяцев, но я публикую его на тот случай, если он поможет другим. Я разработал этот ключ для анализа номеров версий из документов MXD. Он в основном читает первые 4000 или около того символов документа MXD и ищет номер версии. Я тестировал с MXD версий 9.2, 9.3, 10.0 и 10.1.
Вот пример сканирования папки для файлов mxd и печати версии и имен
Что возвращает это:
источник
Приведенная ниже функция основана на идее Райана, но немного более прямолинейна. Документы карты ArcGIS на самом деле являются документами OLE, которые можно проанализировать с помощью
oletools
модуля (доступно на pypi: https://pypi.python.org/pypi/oletools ). Функция открывает файл и читает строку версии. Протестировано с 9.0, 9.3, 10.1 и 10.3, но должно работать с чем угодно (не уверен насчет 3.x ...).источник