【问题标题】:Coordinates from UTM to Latitude and Longitude in pandas熊猫中从UTM到纬度和经度的坐标
【发布时间】:2016-06-19 18:42:03
【问题描述】:

我有一个 DataFrame,结果如下:

我想将这些坐标列从 WGS84 转换为 Lon & Lat,最后在我的数据框中添加这些新列:

对于转换,我使用以下代码,但我认为应该有更好的方法,无需将坐标列转换为列表并创建一个新的 DataFrame。

import pyproj as pp
from mpl_toolkits.basemap import Basemap
import pandas as pd

cx =dfb.COORDENADA_X.tolist()
cy =dfb.COORDENADA_Y.tolist()

utm15_wgs84 = pp.Proj(init='epsg:32615')

for ix, iy in zip(cx, cy):
    lon, lat = utm15_wgs84(ix, iy, inverse=True)
    print(lon, lat)

有什么建议吗?

【问题讨论】:

    标签: python pandas geopandas


    【解决方案1】:

    pandasDataFrame 中使用apply 函数。例如

    dfb[['wgs_x', 'wgs_y']] = dfb.apply(lambda row:utm15_wgs84(row['COORDENADA_X'], row['COORDENADA_Y'], inverse=True), axis=1).apply(pd.Series)
    

    【讨论】:

    • 嗨 warmoverflow,感谢您的回复...我收到以下错误消息 555 return inx,False,False,False 556 except: --> 557 raise TypeError('input must be an array , list, tuple or scalar') 558 else: 559 # 也许它们是普通的python数组? TypeError: ('input must be an array, list, tuple or scalar', u'occurred at index 0')
    • 我已修复的代码中有错误。请重试。
    • 不客气。请投票并接受这个答案。
    • @hammu 嗨,这段代码对你有用吗?我正在尝试使用相同的EPSG,但它的转换方式很糟糕,即使在您的价值观中,它也向我表明您重视`412595.19` 是-93.836697 任何想法?
    猜你喜欢
    • 2013-02-14
    • 2011-02-11
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2015-07-13
    • 1970-01-01
    • 2020-12-02
    相关资源
    最近更新 更多