2014-10-19 13 views
5

io non sono esperto in GIS coordinate di conversione, ma è riuscito, utilizzando questa pagina: http://all-geo.org/volcan01010/2012/11/change-coordinates-with-pyproj/ per convertire le coordinate shapefile da EPSG: 28992 per EPSG: 4326 utilizzando il modulo python pyproj usando queste dichiarazioni:coordinate conversione con pyproj

wgs84=pyproj.Proj("+init=EPSG:4326") 
epsg28992=pyproj.Proj("+init=EPSG:28992") 
pyproj.transform(epsg28992, wgs84,x,y) 

Quando eseguo il reverse e inserisco queste coordinate in google maps mi danno le posizioni corrette. Quindi sta funzionando bene.

Ora ho un altro shapefile (s) e guardo il file shapefile.prj per determinare quale proiezione è stata utilizzata. L'ESRI WKT corrisponde all'ESRI: 102686 che trovo qui: http://epsg.io/102686 Come l'ESRI: il codice 102686 non è noto con pyproj (dà errore), devo usare la notazione proj4 che ho ottenuto dallo stesso sito (http://epsg.io/102686):

wgs84=pyproj.Proj("+init=EPSG:4326") 
esri102686=pyproj.Proj("+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000.0000000001 +datum=NAD83 +units=us-ft +no_defs") 
pyproj.transform(esri102686, wgs84,x,y) 

Ottengo eg coordina e utilizzare questi in google maps: 60,275122729462495, -61,873986125999316 , che è da qualche parte nell'oceano ...

Ma i miei risultati dovrebbero essere a Cambridge, MA negli Stati Uniti, quindi più in giro: 41,00 mila, -71, 5000000

Cosa sto facendo male?

risposta

4

risolto, ha aggiunto preserve_units = True, in questo modo:

esri102686 = pyproj.Proj("+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333    +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000.0000000001 +datum=NAD83 +units=us-ft  +no_defs",preserve_units= True) 

Ora funziona benissimo. Se la parola chiave opzionale 'preserve_units' è True, le unità nelle coordinate di proiezione della mappa non sono forzate a essere metri. Vedi here.

+0

Urrà, questo ha risolto il mio problema! Sapresti per caso perché? Stavo convertendo da EPSG 2230 – ForgetfulFellow

+0

Se la parola chiave opzionale 'preserve_units' è True, le unità nelle coordinate di proiezione della mappa non sono forzate a essere metri. Da: https://jswhit.github.io/pyproj/pyproj.Proj-class.html – musicformellons

Problemi correlati