【问题标题】:GeoPandas reprojection from 4326 to 3857 not working properly从 4326 到 3857 的 GeoPandas 重投影无法正常工作
【发布时间】:2019-10-08 15:17:48
【问题描述】:

我在将 GeoPandas 中的 DataFrame 从 EPSG:4326 投影到笔记本中的 EPSG:3857 时遇到了一些麻烦。我的原始数据集如下所示:

0       POLYGON ((-97.44573128938707 25.889635, -97.35...
1       POLYGON ((-97.61263173798922 25.995165, -97.57...
2       POLYGON ((-97.583158 25.96192090708935, -97.58...
3       POLYGON ((-97.461286 25.89270423248976, -97.46...
4       POLYGON ((-97.33941 25.926101719766, -97.33941...
                              ...                        
4971    POLYGON ((-102.906172 36.475082, -102.906172 3...
4972    POLYGON ((-102.772786 36.481234, -102.772786 3...
4973    POLYGON ((-102.639385 36.48728000000001, -102....
4974    POLYGON ((-102.50597 36.49322100000001, -102.5...
4975    POLYGON ((-102.37254 36.499056, -102.37254 36....
Name: geometry, Length: 4976, dtype: object

可视化:

当我尝试将其重新投影到 EPSG:3857 时:

reprojected = texas.to_crs(epsg=3857)

我得到了一些巨大的数字作为输出(显然不是正确的坐标):

0       POLYGON ((-10847609.18711273 2985418.174237921...
1       POLYGON ((-10866188.46006429 2998482.12034216,...
2       POLYGON ((-10862907.45855956 2994365.44865411,...
3       POLYGON ((-10849340.7295776 2985797.960665139,...
4       POLYGON ((-10835773.55531768 2989931.200110516...
                              ...                        
4971    POLYGON ((-11455462.66652503 4366190.37784271,...
4972    POLYGON ((-11440614.20492607 4367042.077273317...
4973    POLYGON ((-11425764.07353476 4367879.167666097...
4974    POLYGON ((-11410912.38367058 4368701.784074328...
4975    POLYGON ((-11396059.02401403 4369509.784691155...
Name: geometry, Length: 4976, dtype: object

关于为什么如此简单的重投影无法正常工作的任何想法?我尝试使用各种形式的to_crs 函数,包括texas.to_crs({'init': 'epsg:3857'}),并三重检查texas.crs 是否设置为{'init': 'epsg:4326'}

作为参考,我使用的是 GeoPandas 0.5.1 和 PyProj 2.3.1。 编辑:我也试过升级到 GeoPandas 0.6 只是为了好玩,但没有骰子:(。

提前致谢!

【问题讨论】:

  • 这可能与预计的界限有关。如果您查看示例 here,它在两个轴上也有大量数字。
  • 根据epsg.io,3857 是 pseudo mercator,在 x 中的范围为 -20026376.39 到 20026376.39,在 y 中的范围为 -20048966.10 到 20048966.10。所以你的价值观看起来并不那么愚蠢......

标签: python gis geopandas


【解决方案1】:

我认为这些数字是正确的。如果您查看此站点 (https://epsg.io/3857),您会发现您的值在预计范围内。

【讨论】:

  • 好耶!不敢相信我错过了。我认为混乱来自声称使用 EPSG:3857 的 Mapbox(该数据集的目标),但他们的 JS API 似乎可以使用 ESPG:4326 坐标(即不是像 3857 中那样大的数字)...跨度>
猜你喜欢
  • 2021-05-31
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 2019-07-03
  • 2017-07-30
  • 2020-11-28
相关资源
最近更新 更多