怎么使用Python对站点数据执行径向基函数插值可视化
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章给大家介绍怎么使用Python对站点数据执行径向基函数插值可视化,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。以云南省2015年6月的29个气象站点数据为例进行径向基函数
千家信息网最后更新 2025年02月01日怎么使用Python对站点数据执行径向基函数插值可视化以云南省2015年6月的29个气象站点数据为例进行径向基函数(Rbf)插值。数据格式如下:
今天需要使用到cartopy库来绘图,因此需要先安装好,据说安装很烦人,可以去uci下载.whl文件来安装,安装好后先测试一下是否可以运行,如下简单测试:
首先,这是一个不成功的尝试,因为没能成功加载shp图层导致最后的插值没有落在特定的地理范围内。如果有伙伴知道这个问题的解决方法,希望不吝赐教。我相信只要是问题就一定存在解决方案。
那么现在就开始今天的测试,首先还是老套路导入所需要的库或模块,如下:
然后设置能够正常显示中文和负号
接下来用pandas读取整理好的数据,使用的数据是云南省2015年6月的降水数据和气温数据,文中只测试了降水的Rbf插值。
然后提取加载的xlsx数据里面的特定要素,比如经纬度,降水啥的
然后设置范围和格网化
接下来开始插值,function,我这里测试了3种,linear+cubic+gaussian,对于他们有啥区别哈哈,在最后我将分别展示这三种函数的模样
接下来加载云南省的shp图层以及修改经纬度啥的信息,就是这个位置我出错了,如果有知道解决方案的还请不吝赐教。
最后得到的结果就是这样的,下面这是linear结果:
接下来是cubic结果:
最后就是Gaussian的结果,如下:
这篇文章给大家介绍怎么使用Python对站点数据执行径向基函数插值可视化,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
首先,这是一个不成功的尝试,因为没能成功加载shp图层导致最后的插值没有落在特定的地理范围内。如果有伙伴知道这个问题的解决方法,希望不吝赐教。我相信只要是问题就一定存在解决方案。
那么现在就开始今天的测试,首先还是老套路导入所需要的库或模块,如下:
import numpy as np
import pandas as pd
from scipy.interpolate import Rbf
import cartopy.crs as ccrs
import cartopy.feature as cfeat
from cartopy.io.shapereader import Reader
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER,LATITUDE_FORMATTER
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#正常显示中文
plt.rcParams['axes.unicode_minus']=False#正常显示负号
climate = pd.read_excel('yunnanclimate.xlsx',header=None,sep='\s+',names=['站号','lon','lat','降水','气温'])#print(climate)
#读取climate里面的具体数据
lon = climate['lon']
lat = climate['lat']
rain_data = climate['降水']
#设置经纬度范围
slon = np.linspace(97.85,105.21,36)
slat = np.linspace(21.45,28.50,36)
slon,slat = np.meshgrid(slon,slat)
#开始插值,使用径向基函数Rbf
func = Rbf(lon,lat,rain_data,function='cubic')
rainX = func(slon,slat)
shp_path = r'D:\GeoCAS\Python\yunnan.shp'#设置绝对路径
proj = ccrs.PlateCarree()#设置投影
fig = plt.figure(figsize=(5,5),dpi=300)
ax = fig.subplots(1, 1, subplot_kw={'projection': proj})
extent = [97.85,105.21,21.45,28.50]#限定经纬度范围
reader = Reader(shp_path)#读取shp矢量
yunnan = cfeat.ShapelyFeature(reader.geometries(),proj,edgecolor='k',facecolor='none')#设定shp特征
ax.add_feature(yunnan,linewidth=0.5)
ax.set_extent(extent,crs=proj)
gl = ax.gridlines(crs=ccrs.PlateCarree(),draw_labels=True,linestyle='-')
gl.xlabels_top=False
gl.ylabels_right=False
gl.xformatter = LONGITUDE_FORMATTER#以经纬度格式显示xy轴
gl.yformatter = LATITUDE_FORMATTER
gl.xlabel_style={'size':6}#设置xy字体大小
gl.ylabel_style={'size':6}
h = ax.contourf(slon,slat,rainX,cmap='viridis',extend='both')
plt.colorbar(h,orientation='vertical')
plt.show()
关于怎么使用Python对站点数据执行径向基函数插值可视化就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
数据
插值
函数
经纬
经纬度
降水
测试
径向
接下来
结果
范围
站点
就是
云南
云南省
可视化
成功
不吝赐教
内容
方案
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
成都etc软件开发公司
网络安全弱口令是什么意思
行云数据库新建表
农家乐规划软件开发
自助机网络安全
服务器安全狗账户变更
河南网络技术服务标准
无线网络安全的论文题目
中兴服务器ip地址计算公式
数据库底层构造原理
excel表格数据库的排序
qq服务器错误怎么处理
网络安全信息化建设汇报会议纪要
武汉达梦数据库好吗
我的世界地狱死亡服务器崩溃
软件开发经理 面试技巧
计算机3级网络技术题型
我的世界服务器假矿插件怎么用
数据库企业应用
山西放心软件开发服务价钱
企业网络安全方案规划
深圳跑腿平台软件开发模板
镇江app软件开发制作公司
软件开发我都29了能学吗
socket服务器集群
小程序怎么实现连接云数据库
刀片服务器虚拟化
数据库dbs的缩写
大豪XY轴服务器说明书
新余软件开发公司