Преобразование географических координат из GEOSTAT в широту и долготу - PullRequest
0 голосов
/ 30 сентября 2018

Я нашел интересный источник данных по европейскому населению , который, я думаю, мог бы помочь мне в создании такой карты:

enter image description here

Исходный документ GEOSTAT_grid_POP_1K_2011_V2_0_1.csv выглядит следующим образом:

| TOT_P | GRD_ID | CNTR_CODE | METHD_CL | YEAR | DATA_SRC | TOT_P_CON_DT | |-------|---------------|-----------|----------|------|----------|--------------| | 8 | 1kmN2689E4337 | DE | A | 2011 | DE | other | | 7 | 1kmN2689E4341 | DE | A | 2011 | DE | other |

Географические координаты выглядят закодированными в столбце GRD_ID, указанном в этом документе Приложение1_WP1C_production-процедуры-bottom-up.pdf :

Идентификационные коды ячейки сетки основаны на координатах нижнего левого угла ячейки сетки, усеченных по размеру ячейки сетки (например, 1kmN4534E5066 является результатом координат Y = 4534672, X =5066332 и размер ячейки 1000)

Я думал, что смогу получить широту и длину, анализируя строки.Например, в Python:

import re
string = "1kmN2691E4341"
lat = float(re.sub('.*N([0-9]+)[EW].*', '\\1', string))/100
lng = float(re.sub('.*[EW]([0-9]+)', '\\1', string))/100

print lat, ",", lng

Вывод 26,91, 43,41

но это не имеет смысла, оно не соответствует местоположению в Европе!

Возможно, это относится к географической системе координат, о которой я не знаю.

1 Ответ

0 голосов
/ 30 сентября 2018

Благодаря комментарию Виктора я обнаружил, что система координат, используемая в моем файле, была EPSG:3035

Основываясь на реализации Proj4 в python, я смог добиться убедительного результата с помощью следующего кода:

#! /usr/bin/python
# coding: utf-8

import re
from pyproj import Proj, transform

string = "1kmN2326E3989"

x1 = int(re.sub('.*[EW]([0-9]+)', '\\1', string))*1000
y1 = int(re.sub('.*N([0-9]+)[EW].*', '\\1', string))*1000

inProj = Proj(init='EPSG:3035')
outProj = Proj(init='epsg:4326')

lng,lat = transform(inProj,outProj,x1,y1)
print lat,lng

Вывод: 43,9613760836 5,870517281

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...