Wir haben ein Python-Skript, das AutoCAD DWG-Dateien in SDE-Feature-Classes importiert. Diese DWG-Dateien werden von verschiedenen Drittanbietern erstellt und uns zum Import übermittelt. Einer der Schritte in unserem Importprozess ist die Erstellung einer PRJ-Datei für die DWG. Meistens funktioniert das gut, aber bei etwa 5 % der DWGs gibt es ein Problem beim Versuch, die PRJ-Datei zu erstellen. Wir verwenden arcpy.DefineProjection_management, um die PRJ zu erstellen, und es läuft immer durch, erstellt aber nicht immer die PRJ. Wenn es nicht funktioniert, wird kein Fehler ausgegeben. Der Code läuft einfach stillschweigend weiter, ohne die PRJ zu erstellen. Weiß jemand, was das Problem sein könnte oder hat ähnliche Probleme?
Python-Versionen: 2.7 und 3.13.7
Arcpy-Versionen: 10.9.1 und 3.6.4
SDE-Version: 10.9.1
def project(strFullWorkingFilePath, dblScaleFactor):
try:
# Skalierungsfaktor: Er wird mit dem False Northing und Easting multipliziert, um die Zeichnung zu verschieben.
# Verwenden Sie den Datentyp Decimal anstelle von float in der Berechnung der räumlichen Referenz.
sfi = Decimal(dblScaleFactor)
sf = Decimal(1.0)/Decimal(sfi)
fe_4204 = Decimal(1968500.0) * Decimal(sf)
fn_4204 = Decimal(13123333.33333333) * Decimal(sf)
# Erstellen Sie den Koordinatensystem-String, der in der PRJ-Datei der CAD-Datei gespeichert wird.
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]]"
# Werkzeug: Define Projection erstellt die korrekte PRJ-Datei neben der CAD-Datei.
arcpy.DefineProjection_management(strFullWorkingFilePath, Coordinate_System)