Очень простое исправление благодаря @ 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()
Примечание : необходимо было очистить данные, чтобы удалить явные выбросы, отфильтровывая не-Дублинские данные, используя geo pandas ' (gpd) функция пространственного соединения
VO_geo_clean = gpd.sjoin(VO_geo.to_crs('epsg:4326'), map_of_Dublin)
Результат: Данные VO, нанесенные на карту Дублина