2014-10-19 6 views
5

я не испытывал в гис координатах преобразования, но удалось, используя эту страницу: http://all-geo.org/volcan01010/2012/11/change-coordinates-with-pyproj/ конвертировать шейпфайл координаты из EPSG: 28992 в EPSG: 4326 с помощью модуля питона pyproj, используя эти заявления:координаты преобразования с pyproj

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

Когда я перехожу назад и вводю эти координаты на картах Google, они дают мне правильные местоположения. Так что это нормально работает.

Теперь у меня есть еще один файл формы (ов), и я смотрю файл shapefile.prj, чтобы определить, какая проекция была использована. ESRI WKT соответствует ESRI: 102686, который я нашел здесь: http://epsg.io/102686 Поскольку код ESRI: 102686 не известен pyproj (дает ошибку), я должен использовать обозначение proj4, которое я получил с того же сайта (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) 

Получаю, например, координаты и использовать их в Google Maps: 60,275122729462495, -61,873986125999316 , который находится где-то в океане ...

Но мои результаты должны быть в Кембридже, штат Массачусетс в США, так что больше всего: 41,00000, -71, 5000000

Что я делаю неправильно?

ответ

4

решаемые, добавил preserve_units = True, как это:

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) 

Сейчас он работает отлично. Если необязательное ключевое слово «preserve_units» равно True, единицы в координатах проекции карты не должны быть метрами. См. here.

+0

Уру, это решило мою проблему! Знаете ли вы, почему? Я преобразовывал из EPSG 2230 – ForgetfulFellow

+0

Если необязательное ключевое слово 'preserve_units' равно True, единицы в координатах проекции карты не должны быть метрами. От: https://jswhit.github.io/pyproj/pyproj.Proj-class.html – musicformellons

Смежные вопросы