Nous avons un script python qui importe des fichiers AutoCAD DWG dans des classes d'entités SDE. Ces fichiers DWG sont créés par divers tiers et nous sont transmis pour importation. Une des étapes de notre processus d'importation est de créer un fichier PRJ pour le DWG. La plupart du temps, cela fonctionne bien mais environ 5 % des DWG posent problème lors de la création du fichier PRJ. Nous utilisons arcpy.DefineProjection_management pour créer le PRJ et il s'exécute toujours mais ne crée pas toujours le PRJ. Lorsqu'il ne le fait pas, aucune erreur n'est générée. Le code continue simplement silencieusement sans créer le PRJ. Quelqu'un sait-il quel pourrait être le problème ou a-t-il rencontré des problèmes similaires ?
Versions Python : 2.7 et 3.13.7
Versions Arcpy : 10.9.1 et 3.6.4
Version SDE : 10.9.1
def project(strFullWorkingFilePath, dblScaleFactor):
try :
# Facteur d'échelle : il est multiplié par le décalage nord et est pour déplacer le dessin.
# Utiliser le type Decimal au lieu de float dans le calcul de la référence spatiale.
sfi = Decimal(dblScaleFactor)
sf = Decimal(1.0)\/Decimal(sfi)
fe_4204 = Decimal(1968500.0) * Decimal(sf)
fn_4204 = Decimal(13123333.33333333) * Decimal(sf)
# Construire la chaîne du système de coordonnées qui sera stockée dans le fichier PRJ du fichier CAO.
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]]"
# Outil : Define Projection crée le fichier PRJ correct à côté du fichier CAO.
arcpy.DefineProjection_management(strFullWorkingFilePath, Coordinate_System)