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

2021/10/19 22:11:04

本文主要是介绍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的海洋菜鸡
											                 水平有限,欢迎指正!!!
											              欢迎关注、点赞、评论、收藏。


这篇关于python 如何实现5°×5°的空间窗口滑动的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程