python 如何实现5°×5°的空间窗口滑动

python 如何实现5°×5°的空间窗口滑动

近期,在处理数据分析资料时,需要对数据进行空间窗口滑动,统计每个窗口内数据的数目等信息。举个例子,对数据进行每5°为间隔的经纬度滑动,每次都是一个5×5的窗口。其实,对于空间窗口的滑动,无非是对经纬度数据进行循环读取。对于纬度的滑动,在此之前我已经写过一些内容:

1、将纬度按照10°为区间进行划分,并筛选在不同区间内sss的个数

2、对一组list数据,进行区间划分

这次的方法就是再其基础上,加上对于经度的循环罢了,感兴趣的同学朋友可以翻看一下前面的内容。下面直接开始分享今天的算法教程吧~

我读取的数据主要是sea surface Temperature(sst),它是一个三维的数据(时间×纬度× 经度


#read nc file
path0='D:\\sst.nc'
ds=xr.open_dataset(path0).sortby("lat", ascending= True)#转换lat排序
sst=ds.sel(lat=slice(-20,20),time=slice('2010','2010'))#选择某一年的数据
###  读取经纬度数据
lons=sst.lon.data
lats=sst.lat.data
# 挑出nan值的数据,方便后面的数据计算
masker=(np.isfinite(sst_day) & np.isfinite(( olr_day))).data
# 17和144分别是经纬度的个数,也可以用sst.lat.shape[0]\sst.lon.shape[0]表示,我这里直接打出个数
for i in range(1,17,1): 
    for j  in range(1,144,1):
        sub_sst=( sst_day[:,i-1:i+2,j-1:j+2]).data[masker[:,i-1:i+2,j-1:j+2]]

这样,读取出来的sub_sst应该是循环到最好的一个5×5的空间窗口了。下面,大家就可以根据需要进行对应的计算就好了

											    		一个努力学习python的海洋菜鸡
											                 水平有限,欢迎指正!!!
											              欢迎关注、点赞、评论、收藏。
上一篇:内存和CPU排查基础


下一篇:在React项目中使用mapbox,实现兄弟组件传递参数显示鼠标移动地理坐标,并保留小数后两位