将latlong更改为UTM坐标。错误:必须是实数,而不是str。

时间:2018-12-09 08:56:50

标签: pandas dataframe coordinates geopandas

我在将{'lc295480': {'childs': {'lc2897141': {'childs': {'lc5400843': {'childs': {}, 'txt': 'Loures', 'val': 'lc5400843'}, 'lc5400844': {'childs': {}, 'txt': 'Mafra', 'val': 'lc5400844'}}, 'txt': 'Lisboa', 'val': 'lc2897141'}, 'lc3920249': {'childs': {}, 'txt': 'Aveiro', 'val': 'lc3920249'}, 'lc5011694': {'childs': {}, 'txt': 'Leiria', 'val': 'lc5011694'}}, 'txt': 'Portugal', 'val': 'lc295480'}} 数据从Latlong(度)更改为UTM坐标时遇到问题。 这是示例数据:

csv

并且我尝试过这种方式来更改坐标

Date        Time    Latitude  Longitude
23/08/2018  9:00:00 -5.1661   119.4543
23/08/2018  9:00:01 -5.166    119.4544
23/08/2018  9:00:02 -5.1659   119.4544
23/08/2018  9:00:07 -5.1657   119.4546
23/08/2018  9:00:42 -5.162    119.4567
23/08/2018  9:00:43 -5.1614   119.4567
23/08/2018  9:00:44 -5.16     119.4548

但是我得到了df = pd.read_csv("data.csv") s = gpd.GeoSeries([Point(x,y) for x, y in zip(df['Longitude'], df['Latitude'])]) geo_df = gpd.GeoDataFrame(df[['Date','Time']], geometry=s) geo_df.crs = {'init': 'epsg:4326'} geo_df = geo_df.to_crs({'init': 'epsg:32750'}) geo_df

有解决问题的主意吗?

1 个答案:

答案 0 :(得分:0)

也许有帮助

geometry = [Point(xy) for xy in zip(df.Latitude, df.Longitude)]
df = df.drop(['Latitude', 'Longitude'], axis=1)
crs = {'init': 'epsg:4326'}
gdf = gpd.GeoDataFrame(df, crs=crs, geometry=geometry)
gdf = gdf.to_crs({'init': 'epsg:32750'})

检查herehere以获得更多详细信息