【发布时间】:2016-08-19 12:13:37
【问题描述】:
我希望将存储在 Pandas 数据框中的一系列坐标作为存储在 Pandas 数据框中的坐标,并定义一个函数,该函数将遍历每个条目,将其转换(BNG 东北向经纬度)并将其保存到新列同一行。 Elise Huard 的 function 看起来应该这样做
def proj_transform(df):
#bng = pyproj.Proj(init='epsg:27700')
bng = pyproj.Proj("+init=EPSG:27700")
#wgs84 = pyproj.Proj(init='epsg:4326')
wgs84 = pyproj.Proj("+init=EPSG:4326")
lats = pd.Series()
lons = pd.Series()
for idx, val in enumerate(df['Easting']):
lon, lat = pyproj.transform(bng,wgs84,df['Easting'][idx], df['Northing'][idx])
lats.set_value(idx, lat)
lons.set_value(idx, lon)
df['lat'] = lats
df['lon'] = lons
return df
但是一旦我尝试运行该函数,我就会收到以下错误。关于可能导致它的任何建议或替代方法作为工作回合。
RuntimeError: non-convergent inverse meridional dist
使用的数据样本;
Site Reference LA Reference Start Date Easting Northing
0 380500145 NaN 20130101 105175.0 105175.0
1 380500128 NaN 20060331 104000.0 104000.0
2 380500085 NaN 20030401 105055.0 105055.0
3 380500008 NaN 19980930 108480.0 108480.0
4 380500009 NaN 19980930 105415.0 105415.0
5 380500136 SHLAA20100101 105081.0 105081.0
6 380500038 NaN 19980930 105818.0 105818.0
【问题讨论】:
-
如果您添加一些产生此错误的小输入数据框可能会有所帮助。
-
...包括出现错误的行。