温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - How to convert geospatial coordinates dataFrame to native x,y projection?
coordinates dataframe pandas python geospatial

python - 如何将地理空间坐标dataFrame转换为原始x,y投影?

发布于 2020-03-27 16:17:28

我有以下数据框,纬度和经度是地理坐标系中的纬度和经度。我正在尝试将这些坐标系转换为原始(x,y)投影。

我已经尝试过pyproj来处理单点问题,但是如何处理具有数千行的整个数据框。

       time                 lat        lon 
     0 2011-01-31 02:41:00  18.504273  -66.009332
     1 2011-01-31 02:42:00  18.504673  -66.006225

我想得到这样的东西:

       time                 lat        lon        x_Projn    y_Projn
     0 2011-01-31 02:41:00  18.504273  -66.009332 resp_x_val resp_y_val
     1 2011-01-31 02:42:00  18.504673  -66.006225 resp_x_val resp_y_val
     and so on...

以下是我尝试将经纬度转换为x,y系统的代码:

      from pyproj import Proj, transform

      inProj = Proj(init='epsg:4326')
      outProj = Proj(init='epsg:3857')
      x1,y1 = -105.150271116, 39.7278572773
      x2,y2 = transform(inProj,outProj,x1,y1)
      print (x2,y2)

输出:

      -11705274.637407782 4826473.692203013

感谢您的任何帮助。

查看更多

查看更多

提问者
Liza
被浏览
79
Marat 2017-03-14 12:57

不幸的是,pyproj只能逐点转换。我想这样的事情应该起作用:

import pandas as pd
from pyproj import Proj, transform

inProj = Proj(init='epsg:4326')
outProj = Proj(init='epsg:3857')

def towgs84(row):
    return pd.Series(transform(inProj, outProj, row["lat"], row["lon"]))

wsg84_df = df.apply(towgs84, axis=1)  # new coord dataframe with two columns