如何使用 cartopy 和 matplotlib 从“natural_earth”在地图上的 csv 中绘制坐标?
How do I plot coordinates in csv on the map from from 'natural_earth" using cartopy and matplotlib?
我已经成功地从自然地球站点创建了一张地图(国家边界和海岸线),但我发现很难将某些站点的天气经度和纬度坐标绘制到地图上。经纬度坐标是附件中的CSV文件。
下面是到目前为止编译的代码和生成的地图:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as feature
import cartopy.io.shapereader as shapereader
[在此处输入图片描述][1]
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=(10, 5))
ax_map = plt.axes(projection=ccrs.PlateCarree())
ax_map.set_extent([-1, 19, -1, 17], ccrs.PlateCarree())
ax_map.add_feature(feature.COASTLINE, linewidth=.5)
ax_map.add_geometries([nigeria], ccrs.Geodetic(), edgecolor='0.8',
facecolor='none')
grid_lines = ax_map.gridlines(draw_labels=True)
plt.show()
请问如何在生成的地图上绘制 CSV 文件中的坐标?谢谢
图片说明:
[https://i.stack.imgur.com/07vzp.png]
link 到 CSV 文件:[https://drive.google.com/file/d/152UTebTc_sDbyKDXV3g52jYiVG4n6LEx/view?usp=sharing]
这需要两个步骤
读入csv数据到Python。您可以使用 numpy or pandas 来做到这一点,例如weather_stations = pd.read_csv('path_to_file.csv')
在您的地轴 ax_map
上使用 matplotlib 函数 scatter。您需要告诉 geoaxes 输入数据的坐标参考系统。看起来像 lons 和 lats,这是 Plate Carree 坐标参考系统。你用 kwarg transform
传递这个
获取我们在第 1 步中导入的数据:
ax_map.scatter(weather_stations['LONG'], weather_stations['LAT'], transform=ccrs.PlateCarree())
我已经成功地从自然地球站点创建了一张地图(国家边界和海岸线),但我发现很难将某些站点的天气经度和纬度坐标绘制到地图上。经纬度坐标是附件中的CSV文件。
下面是到目前为止编译的代码和生成的地图:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as feature
import cartopy.io.shapereader as shapereader
[在此处输入图片描述][1]
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=(10, 5))
ax_map = plt.axes(projection=ccrs.PlateCarree())
ax_map.set_extent([-1, 19, -1, 17], ccrs.PlateCarree())
ax_map.add_feature(feature.COASTLINE, linewidth=.5)
ax_map.add_geometries([nigeria], ccrs.Geodetic(), edgecolor='0.8',
facecolor='none')
grid_lines = ax_map.gridlines(draw_labels=True)
plt.show()
请问如何在生成的地图上绘制 CSV 文件中的坐标?谢谢
图片说明: [https://i.stack.imgur.com/07vzp.png]
link 到 CSV 文件:[https://drive.google.com/file/d/152UTebTc_sDbyKDXV3g52jYiVG4n6LEx/view?usp=sharing]
这需要两个步骤
读入csv数据到Python。您可以使用 numpy or pandas 来做到这一点,例如
weather_stations = pd.read_csv('path_to_file.csv')
在您的地轴
传递这个ax_map
上使用 matplotlib 函数 scatter。您需要告诉 geoaxes 输入数据的坐标参考系统。看起来像 lons 和 lats,这是 Plate Carree 坐标参考系统。你用 kwargtransform
获取我们在第 1 步中导入的数据:
ax_map.scatter(weather_stations['LONG'], weather_stations['LAT'], transform=ccrs.PlateCarree())