回答:
ワークスペースのリリースのプロパティを説明してみます
http://resources.arcgis.com/en/help/main/10.1/index.html#/Workspace_properties/018v0000002v000000/
3,0,0
。
これは、10.0で動作するArcObjects + comtypesソリューションです。
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")
出力:
>>> 10.0
グラブはcomtypesこことESRICOMHelpersこちら。10.1の場合automation.py
は、この回答で説明されているように、comtypeを微調整してください。
注: ArcGIS 10.0から実行すると、10.1ジオデータベースに対しても10.0が返されることに注意してください。編集:実際、ArcGIS 10.1から実行した場合も、10.1のファイルジオデータベースに対して10.0が返されます。何が起こっているのかわからない:|
release
だけでなく、両方の10.0と10.1のリリースのジオデータベースに同じプロパティを返します:resources.arcgis.com/en/help/main/10.1/index.html#/...
良い質問!10.0では、ジオデータベースのバージョンを記述するためのPythonメソッドが見つかりません。10.1でアップグレードジオデータベース GPツールを使用してテストしましたが、役立つ場合があります。
「ジオデータベースのアップグレードツールは、以前のリリースのジオデータベースに対してのみ機能します。」
これは、「ジオデータベースのアップグレード」オプションを設定せずに、このツールの実行をテストして、実行されるかどうかを確認できることを意味します(ジオデータベースのバージョンが同じ場合、実行されません)。表示される場合-現在のバージョンです(前提条件のチェックのみが実行され、ジオデータベースは変更されません)。
テスト9.3および10.1について-バージョン10.0 / 10.1のジオデータベースでのみ作成可能なサンプルデータセットを作成し、それが作成されるかどうかを確認しようと考えていました。そうでない場合-それは9.3 / 10.1です。
しかし、最もエレガントな解決策ではありません...