将地理坐标从GEOSTAT转换为lat和lng

时间:2018-09-30 18:26:39

标签: python latitude-longitude geo

我发现了一个有趣的datasource of European Population,我认为它可以帮助我获得这样的地图:

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 |

此文档指示Appendix1_WP1C_production-procedures-bottom-up.pdfGRD_ID列中似乎要编码地理坐标:

  

网格单元格识别码基于网格单元格截断的网格单元格左下角坐标   单元格大小(例如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 :(得分:1)

由于Viktor的评论,我发现文件中使用的坐标系为((x (font . "wanted") (other . "d") (other . "c")) (w32 (font . "keep")))

基于python对EPSG:3035的实现,我可以使用以下代码获得令人信服的结果:

Proj4
  

输出:43.9613760836 5.870517281