为什么有些气象站坐标​​超出尼日利亚边界?

问题描述

以下代码行已用于绘制尼日利亚气象站的点(坐标),但不幸的是,有些气象站位于该国边界之外。我确认气象站的纬度和经度是准确的并经过仔细检查。对此副产品的任何建议/解决方案将不胜感激。谢谢。

...

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as feature
import cartopy.io.shapereader as shapereader
from cartopy.mpl.ticker import LongitudeFormatter,LatitudeFormatter
import pandas as pd

df = pd.read_csv("met_ngstation.csv")

countries = shapereader.natural_earth(resolution='10m',category='cultural',name='admin_0_countries')

# Find the Nigeria boundary polygon.
for country in shapereader.Reader(countries).records():
    if country.attributes['SU_A3'] == 'NGA':
        nigeria = country.geometry
        break
else:
    raise ValueError('Unable to find the NGA boundary.')

plt.figure(figsize=(20,10))
ax_map = plt.axes(projection=ccrs.PlateCarree())

ax_map.set_extent([-1,19,-1,17],ccrs.PlateCarree())

#ax_map.coastlines()
ax_map.add_feature(feature.COASTLINE,linewidth=.5)

ax_map.add_geometries([nigeria],ccrs.PlateCarree(),edgecolor='0.8',facecolor='none')

grid_lines = ax_map.gridlines(draw_labels=True)
grid_lines.top_labels = False
grid_lines.right_labels = False

lon_formatter = LongitudeFormatter(zero_direction_label=True)
lat_formatter = LatitudeFormatter()

ax_map.xaxis.set_major_formatter(lon_formatter)
ax_map.yaxis.set_major_formatter(lat_formatter)

plt.scatter(df['LONG'],df['LAT'],color='red',marker='.',transform=ccrs.PlateCarree())

#plt.savefig('coastlines_ng.pdf')
#plt.savefig('coastlines_ng.png')

plt.show()

'''

地图链接https://drive.google.com/file/d/1cNnylUOmi-Dg6ioZE0tQj7xCHRdMPIh8/view?usp=sharing

解决方法

正如@JodyKlymak 所建议的,这是输入数据的问题,而不是 cartopy。

您可以使用在线地图服务(例如 Google 地图)进行检查

Google map showing one of the scatter points offshore

从此图像中,您可以看到链接数据集中的“Eket”站,lon=7.95,lat=4.4,位于 Kwa Ibo 离岸约 10 公里处。这是典型的气象浮标

始终检查您的输入数据!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...