We hebben een python-script dat AutoCAD DWG-bestanden importeert naar SDE feature classes. Deze DWG-bestanden worden gemaakt door verschillende derden en aan ons doorgegeven voor import. Een van de stappen in ons importproces is het maken van een PRJ-bestand voor de DWG. Meestal werkt dit prima, maar ongeveer 5% van de DWG's heeft een probleem bij het proberen te maken van het PRJ-bestand. We gebruiken arcpy.DefineProjection_management om het PRJ te maken en het wordt altijd uitgevoerd, maar maakt niet altijd het PRJ aan. Wanneer het dat niet doet, wordt er geen foutmelding gegeven. De code gaat gewoon stilletjes door zonder het PRJ te maken. Weet iemand wat het probleem kan zijn of heeft iemand soortgelijke problemen?
Python-versies: 2.7 en 3.13.7
Arcpy-versies: 10.9.1 en 3.6.4
SDE-versie: 10.9.1
def project(strFullWorkingFilePath, dblScaleFactor):
probeer:
# Schaalfactor: deze wordt vermenigvuldigd met de false northing en easting om de tekening te verplaatsen.
# Gebruik Decimal datatype in plaats van float in ruimtelijke referentie berekening.
sfi = Decimal(dblScaleFactor)
sf = Decimal(1.0)\/Decimal(sfi)
fe_4204 = Decimal(1968500.0) * Decimal(sf)
fn_4204 = Decimal(13123333.33333333) * Decimal(sf)
# Bouw de coördinatensysteemstring die wordt opgeslagen in het PRJ-bestand van het CAD-bestand.
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]]"
# Tool: Define Projection maakt het correcte PRJ-bestand naast het CAD-bestand.
arcpy.DefineProjection_management(strFullWorkingFilePath, Coordinate_System)