气ython风雨 发表于 2024-3-6 18:59:57

meteva站点插值填色与白化


前言
说到插值大概会提到日常用的scipy的linear和cubic,克里金插值等等
meteva也有插值功能,不论是站点插网格,网格插站点,还是网格插网格统统都有
本文主要测试meteva的IDW与cressman站点插值
并基于插值后的数据测试插值后的白化效果

版本:python3.9

%matplotlib inline
%load_ext autoreload
%autoreload 2
import meteva.base as meb
from cnmaps import get_adm_maps, draw_maps, clip_contours_by_map
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 pandas as pd
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
import cmaps
plt.rcParams['font.sans-serif'] = ['Source Han Sans CN']
plt.rcParams['axes.unicode_minus'] = False# 用来正常显示负号

读取数据并绘制站点图


# 读取Micaps站点数据
provinces = BasicReader('/home/mw/input/china1656/china_map/china_map/China_Province_2022.shp')
filename = "/home/mw/input/meteva2260/20210719120000.000"# 替换为你的micaps文件路径
sta = meb.read_stadata_from_micaps3(filename)
sta.head()

lons = sta["lon"].values
lats = sta["lat"].values
pr = sta["data0"].values * units.degC
# 创建图形
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',pr, formatter=lambda v: format(v, '.1f'))

ax.add_geometries(provinces.geometries(), linewidth=.5, edgecolor='black', crs=ccrs.PlateCarree(),
                  facecolor='none')

plt.show()

站点插值格点:IDW与cressman插值
IDW
## 插值前要设置格点
grid1 = meb.grid(,)
sta1 = meb.interp_sg_idw(sta,grid1,nearNum = 2)cressman插值
sta2 = meb.interp_sg_cressman(sta,grid = grid1,r_list = ,nearNum = 100)

插值效果比较
map_extend =
axs = meb.creat_axs(2, map_extend,ncol=2,sup_fontsize=7)
cmap = cmaps.radar_1
image = meb.add_contourf(axs, sta1,cmap =cmap,add_colorbar=False)
#image = meb.add_scatter_text(axs, sta, tag=0, font_size=5)
image = meb.add_contourf(axs, sta2,cmap =cmap)
#image = meb.add_scatter_text(axs, sta, tag=0, font_size=5)


左边为IDW,右边为cressman

白化方法一:meteva内部函数白化(京津冀地区)
map_extend =
axs = meb.creat_axs(2, map_extend,ncol=2,sup_fontsize=7)
image = meb.add_contourf(axs, sta1,cmap =cmap,add_colorbar=False,clip =["beijing","tianjin","hebei"])
#image = meb.add_scatter_text(axs, sta, tag=0, font_size=5)
image = meb.add_contourf(axs, sta2,cmap =cmap,clip =["beijing","tianjin","hebei"])
#image = meb.add_scatter_text(axs, sta, tag=0, font_size=5)

白化方法二:基于cnmaps 白化(京津冀地区)
beijing = get_adm_maps(province='北京市', only_polygon=True, record='first')
tianjin = get_adm_maps(province='天津市', only_polygon=True, record='first')
hebei = get_adm_maps(province='河北省', only_polygon=True, record='first')

jingjinji = beijing + tianjin + hebei
# 创建图形
fig = plt.figure(figsize=(20, 12))

# 添加第一幅子图
ax1 = fig.add_subplot(221, projection=ccrs.PlateCarree())
ax1.set_extent()

cmap1 = cmaps.radar
# 绘制填色分布图
im1 = ax1.contourf(sta1.lon,sta1.lat,sta1.values,
                   cmap=cmap1,
                   transform=ccrs.PlateCarree(),
                   level=np.arange(0,28,2))
clip_contours_by_map(im1, jingjinji)
draw_maps(get_adm_maps(level='省'), linewidth=0.8, color='k')
fig.colorbar(im1, orientation='vertical')
# 添加第二幅子图
ax2 = fig.add_subplot(222, projection=ccrs.PlateCarree())

ax2.set_extent()

# 绘制填色分布图
im2 = ax2.contourf(sta2.lon, sta2.lat, sta2.values,
                   cmap=cmap1,
                   transform=ccrs.PlateCarree(),
                   level=np.arange(0, 28, 2))

# 添加色标
fig.colorbar(im2, orientation='vertical')
# 白化
clip_contours_by_map(im2, jingjinji)
draw_maps(get_adm_maps(level='省'), linewidth=0.8, color='k')

# 显示图形
plt.show()



meteva读取或插值后的数据为六维数组,因此绘图前需处理。metava好处在于便利,但需要注意其函数内部要素的排列比较严格,如报错时使用help(函数名)加以确认


文章来源于微信公众号:气ython风雨

LutherMib 发表于 2024-6-30 16:21:32

Balanset-1a销售:平衡和振动分析的理想工具

https://vibromera.eu/wp-content/uploads/2023/09/77-e1693745667801.jpg.webp

设备描述:
Balanset-1a是用于平衡和振动分析的双通道设备,非常适合平衡破碎机,风扇,谷物收割机切碎机,轴,离心机,涡轮机等转子。

特征:

振动计模式:
转速计:精确测量转速(RPM)。
相位:确定振动信号的相位角以进行精确分析。
1x振动:测量和分析主要频率分量。
FFT频谱:提供振动信号频谱的详细视图。
整体振动:测量和监测整体振动水平。
测量日志:保存测量数据以供分析。

平衡模式:
单平面平衡:平衡转子在一个平面,以减少振动.
双平面平衡:平衡两个平面中的转子以实现动态平衡。
极坐标图:在极坐标图上可视化不平衡,以实现精确的重量放置。
上次会话恢复:为方便起见,允许恢复上一个平衡会话。
公差计算器(ISO1940):根据ISO1940标准计算允许的不平衡值。
砂轮平衡:使用三个校正砝码来消除不平衡。

图表及图表:
一般图表:整体振动的可视化。
1x图形:显示主频率振动模式。
谐波图:显示谐波频率的影响。
频谱图:频谱的图形表示,用于深入分析。

附加功能:
存档:存储和访问以前的平衡会话。
报告:生成关于平衡结果的详细报告。
重新平衡:使用保存的数据轻松重复平衡过程。
批量生产平衡:适用于批量生产中的转子平衡。
英制和公制系统选项:在全球范围内提供兼容性和便利性。

价格;价格:
€1751

套餐包括:
测量单位
两个振动传感器
带磁性支架的光学传感器(激光转速表)
重量
软件(不包括笔记本电脑,可额外订购)
塑胶手提箱

滑轮平衡

今天订购Balanset-1a,确保您的转子精确平衡!
页: [1]
查看完整版本: meteva站点插值填色与白化