首页 文章

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

提问于
浏览
0

我有一个问题是将我的 csv 数据从Latlong(度)更改为UTM坐标 . 这是示例数据:

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

但我得到 TypeError: must be real number, not str

任何解决问题的想法?

1 回答

  • 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了解更多详情

相关问题