两种micaps站点数据的简单绘制方法
相信大家刚接触到micaps数据是一头雾水,还好有对应的可视化库。
今天给大家演示两种micaps站点数据的快速绘制方法。
导入可视化库
import meteva.base as meb
import metpy.calc as mpcalc
import metpy.plots as mpplots
from metpy.units import units
from metpy.calc import reduce_point_density
import matplotlib.pyplot as plt
import numpy as np
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from cartopy.io.shapereader import BasicReader
from cartopy.mpl.gridliner import LATITUDE_FORMATTER, LONGITUDE_FORMATTER
plt.rcParams['font.sans-serif'] = ['Source Han Sans CN']
plt.rcParams['axes.unicode_minus'] = False# 用来正常显示负号
Warning: ecCode
数据读取:micaps第三类数据
provinces = BasicReader('/home/mw/input/china1656/china_map/china_map/China_Province_2022.shp')
filename = "/home/mw/input/meteva2260/t.000"# 替换为你的micaps文件路径
sta = meb.read_stadata_from_micaps3(filename)
sta.head()
数据处理
# 读取经度、纬度、温度
lons = sta["lon"].values
lats = sta["lat"].values
方法一:使用metpy站点绘制
# 创建图形
fig = plt.figure(figsize=(15, 12))
ax = fig.add_subplot(111,projection=ccrs.PlateCarree())
ax.add_feature(cfeature.LAND)
ax.add_feature(cfeature.OCEAN)
ax.add_feature(cfeature.COASTLINE)
ax.set_extent( )
# 创建站点图
stationplot = mpplots.StationPlot(ax, lons, lats, transform=ccrs.PlateCarree(),
fontsize=10)
# 绘制温度分布
stationplot.plot_parameter('NW', temperature, formatter=lambda v: format(v, '.1f'))
ax.add_geometries(provinces.geometries(), linewidth=.5, edgecolor='black', crs=ccrs.PlateCarree(),
facecolor='none')
# gl = ax.gridlines(
# draw_labels=True,
# alpha=0.5,
# linewidth=1,
# color='k',
# linestyle='--')
# gl.xlabels_top = False# 关闭顶端标签
# gl.ylabels_right = False# 关闭右侧标签
# gl.xformatter = LONGITUDE_FORMATTER# x轴设为经度格式
# gl.yformatter = LATITUDE_FORMATTER# y轴设为纬度格式
plt.show()
方法二:使用meteva库内置函数绘制
map_extend =
axs = meb.creat_axs(
1,
map_extend,
sup_title="2022年9月4日t2",
add_index=[
"a"],
sup_fontsize=8)
image = meb.add_scatter_text(axs, sta, tag=0, font_size=8,cmap =meb.cmaps.temp_2m)
代码量上meteva库更适合新手练习。
文章来源于微信公众号:气ython风雨
页:
[1]