私たちはAutoCAD DWGファイルをSDEフィーチャクラスにインポートするpythonスクリプトを持っています。これらのDWGファイルは様々な第三者によって作成され、インポートのために送信されます。インポートプロセスの一つのステップはDWGのPRJファイルを作成することです。ほとんどの場合、これは問題なく動作しますが、約5%のDWGでPRJファイルの作成時に問題が発生します。PRJの作成にはarcpy.DefineProjection_managementを使用しており、常に実行されますが、必ずしもPRJを作成しません。作成されない場合でもエラーは発生しません。コードは単にPRJを作成せずに静かに進行します。何が問題か知っている方や同様の問題を経験した方はいらっしゃいますか?
Pythonバージョン: 2.7 と 3.13.7
Arcpyバージョン: 10.9.1 と 3.6.4
SDEバージョン: 10.9.1
def project(strFullWorkingFilePath, dblScaleFactor):
try:
# スケールファクター: 描画を移動するために偽の北方向と東方向に掛けられます。
# 空間参照計算にはfloatではなくDecimalデータ型を使用します。
sfi = Decimal(dblScaleFactor)
sf = Decimal(1.0)\/Decimal(sfi)
fe_4204 = Decimal(1968500.0) * Decimal(sf)
fn_4204 = Decimal(13123333.33333333) * Decimal(sf)
# CADファイルのPRJファイルに格納される座標系文字列を構築します。
Coordinate_System = "PROJCS['NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting'," + str(fe_4204) + "],PARAMETER['False_Northing'," + str(fn_4204) + "],PARAMETER['Central_Meridian',-99.0],PARAMETER['Scale_Factor'," + str(sf) + "],PARAMETER['Standard_Parallel_1',28.38333333333333],PARAMETER['Standard_Parallel_2',30.28333333333333],PARAMETER['Latitude_Of_Origin',27.83333333333333],UNIT['Foot_US',0.3048006096012192]]"
# ツール: Define ProjectionはCADファイルと並んで正しいPRJファイルを作成します。
arcpy.DefineProjection_management(strFullWorkingFilePath, Coordinate_System)