从 Irish Transverse Mercator (ITM) 投影到 WGS84 经纬度
Projecting from Irish Transverse Mercator (ITM) to WGS84 latitude-longitude
不幸的是,我从爱尔兰横轴墨卡托 (ITM) 到 WGS84 经纬度的投影似乎出错了,因为绘制的坐标与都柏林 sourced from the CSO 的地图不一致(见下文)。
My transformed coordinates plotted on a map of Dublin
转换后的数据来自 Irish Valuation Office and the ITM X & Y coordinates were fed into a function adapted from a previous Whosebug discussion,它使用 geopandas 的内置 points_from_xy 方法在坐标参考系之间转换坐标:
def create_geodf_from_GPS (df, latitude, longitude, crs):
locations = gpd.points_from_xy(longitude, latitude)
geo_df = gpd.GeoDataFrame(df, geometry=locations)
geo_df.crs = crs
return geo_df
VO_geo = create_geodf_from_GPS(VO, VO[" X ITM"], VO[" Y ITM"], crs = 'epsg:2157')
VO_geo = VO_geo.to_crs('epsg:4326')
有谁知道这里出了什么问题吗?
非常简单的修复感谢@joris
改变函数使用 x 和 y 作为 gpd.points_from_xy 的参数,而不是之前混合的经度和纬度:
def create_geodf_from_GPS (df, x, y, crs):
locations = gpd.points_from_xy(x, y)
geo_df = gpd.GeoDataFrame(df, geometry=locations)
geo_df.crs = crs
return geo_df
现在按预期绘制 WGS84 经纬度数据:
VO_geo = create_geodf_from_GPS(VO, x=VO[" X ITM"], y=VO[" Y ITM"], crs = 'epsg:2157')
VO_geo.to_crs('epsg:4326').plot()
注意:必须通过使用 geopandas 的 (gpd) 空间连接函数过滤掉非都柏林数据来清理数据以删除明显的异常值
VO_geo_clean = gpd.sjoin(VO_geo.to_crs('epsg:4326'), map_of_Dublin)
结果:
VO data plotted over a map of Dublin
不幸的是,我从爱尔兰横轴墨卡托 (ITM) 到 WGS84 经纬度的投影似乎出错了,因为绘制的坐标与都柏林 sourced from the CSO 的地图不一致(见下文)。
My transformed coordinates plotted on a map of Dublin
转换后的数据来自 Irish Valuation Office and the ITM X & Y coordinates were fed into a function adapted from a previous Whosebug discussion,它使用 geopandas 的内置 points_from_xy 方法在坐标参考系之间转换坐标:
def create_geodf_from_GPS (df, latitude, longitude, crs):
locations = gpd.points_from_xy(longitude, latitude)
geo_df = gpd.GeoDataFrame(df, geometry=locations)
geo_df.crs = crs
return geo_df
VO_geo = create_geodf_from_GPS(VO, VO[" X ITM"], VO[" Y ITM"], crs = 'epsg:2157')
VO_geo = VO_geo.to_crs('epsg:4326')
有谁知道这里出了什么问题吗?
非常简单的修复感谢@joris
改变函数使用 x 和 y 作为 gpd.points_from_xy 的参数,而不是之前混合的经度和纬度:
def create_geodf_from_GPS (df, x, y, crs):
locations = gpd.points_from_xy(x, y)
geo_df = gpd.GeoDataFrame(df, geometry=locations)
geo_df.crs = crs
return geo_df
现在按预期绘制 WGS84 经纬度数据:
VO_geo = create_geodf_from_GPS(VO, x=VO[" X ITM"], y=VO[" Y ITM"], crs = 'epsg:2157')
VO_geo.to_crs('epsg:4326').plot()
注意:必须通过使用 geopandas 的 (gpd) 空间连接函数过滤掉非都柏林数据来清理数据以删除明显的异常值
VO_geo_clean = gpd.sjoin(VO_geo.to_crs('epsg:4326'), map_of_Dublin)
结果: VO data plotted over a map of Dublin