Suite

Problème lors d'une transformation de coordonnées avec GDAL python


J'essaie de faire une transformation concordante du format du fichier de formes (3309) à google maps (4326).

Ce code fonctionne sur une boîte Centos 6.6 avec le python SCL 2.7 et une version personnalisée gdal 2.0. Une autre boîte configurée de la même manière donne une erreur. Il me semble que les deux références sont installées :

$ /opt/gdal-custom/bin/gdalsrsinfo epsg:3309 PROJ.4 : '+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 + datum=NAD27 +units=m +no_defs ' OGC WKT : PROJCS["NAD27 / California Albers", GEOGCS["NAD27", DATUM["North_American_Datum_1927", SPHEROID["Clarke 1866",6378206.4,294.9786982138982, AUTUM["SGHORITY" ,"7008"]], AUTORITE["EPSG","6267"]], PRIMEM["Greenwich",0, AUTORITE["EPSG","8901"]], UNITÉ["degré",0.0174532925199433, AUTORITE[" EPSG","9122"]], AUTORITE["EPSG","4267"]], PROJECTION["Albers_Conic_Equal_Area"], PARAMETRE["standard_parallel_1",34], PARAMETRE["standard_parallel_2",40.5], PARAMETRE["latitude_of_center ",0], PARAMETER["longitude_of_center",-120], PARAMETER["false_easting",0], PARAMETER["false_northing",-4000000], UNIT["metre",1, AUTORITÉ["EPSG","9001 "]], AXIS["X",EST], AXIS["Y",NORTH], AUTHORITY["EPSG","3309"]] $ /opt/gdal-custom/bin/gdalsrsinfo epsg:4326 PROJ.4 : '+proj=longlat +datum=WGS84 +no_defs ' OGC WKT : GEOGCS["WGS 84", DATUM["WGS_1984", S PHEROID["WGS 84",6378137,298.257223563, AUTORITE["EPSG","7030"]], AUTORITE["EPSG","6326"]], PRIMEM["Greenwich",0, AUTORITE["EPSG"," 8901"]], UNITÉ["degré",0.0174532925199433, AUTORITE["EPSG","9122"]], AUTORITE["EPSG","4326"]]

Extrait en question :

def coordonneTransformation(self,EpsgFrom,EpsgTo): from_ogrSpatialReference = osr.SpatialReference() to_ogrSpatialReference = osr.SpatialReference() from_ogrSpatialReference.ImportFromEPSG(EpsgFrom) to_ogrSpatialReference.ImportFgformationEPSGret print("CoordinateTransformation: ") pprint(retObj) return retObj… self.coordTransform = self.coordinateTransformation(4326,3309)… intersectgeometry = featuregeom.Intersection(poly) from pprint import pprint print ("Intersection : {0}".format (intersectgeometry.ExportToJson())) pprint (self.coordTransform) intersectgeometry.Transform(self.coordTransform)

Production:

 > Intersection : { "type": "LineString", "coordinates": [ [ 1286274.293049275642261, -89857.546843856573105, 0.0 ], [ 1284590.659783720737323, -90115.061295109800994, 0.0 ], [ 1279467.874491626396775, -92807.283673225002019, -90115.061295109800994, 0.0 ], [ 1279467.874491626396775, -92807.2853273225002019 0,0], [1270756,154574947431684, -98174,25142274517566, 0,0], [1.264.401,513631681911647, -104188,64924998767674, 0,0], [1.255.148,083878455683589, -111527,525126685388386, 0,0], [1.247.811,151507917791605, -119020,223048191517591, 0,0], [1.243.559,735155994538218, -124702,111474551726133, 0,0], [1235582,033464746084064 , -130480.617263145744801, 0.0 ] ] }  >

Trace de la pile:

Fichier "/opt/rh/httpd24/root/var/www/MyFile.py", ligne 380, dans MyFunction intersectgeometry.Transform(self.coordTransform) Fichier "/opt/rh/httpd24/root/var/www/wsgi- virtualenv/lib/python2.7/site-packages/GDAL-2.0.0-py2.7-linux-x86_64.egg/osgeo/ogr.py", ligne 5236, dans Transform return _ogr.Geometry_Transform(self, *args) RuntimeError : Erreur OGR : Erreur générale

Qu'est-ce que je fais mal?


self.coordTransform = self.coordinateTransformation(4326,3309)

Il semble que vos systèmes de coordonnées source et de destination soient mélangés.


Voir la vidéo: AutoCAD: Templaten tekeminen (Octobre 2021).