社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python-时空超前滞后相关分析

happy科研 • 2 年前 • 1310 次点击  

今天决定来记录一下新的知识,那就是三维格点数据的超前和滞后(lead & lag)相关系数的计算与制图


再次之前已经测试过三维格点数据的常见的皮尔逊相关和斯皮尔曼,还有偏相关分析,如果没有阅读过的话可以点击如下内容跳转阅读。1.空间场的相关性分析,2,改进的相关性分析测试




So,常见的网格的相关性分析还是很容易搞定的,后期绘图即使使用Python还是GIS软件都可以很方便地可视化出来。But,现在需要研究的是超前和滞后的相关性分析,数据格式是netCDF。我相信大家都认识时间序列的自相关分析,该方法用来研究时间序列本身之间的相关性,比如今天天气的平均温和它自己过去一周的平均温之间的关系,结果图称为自相关图。那么针对一个空间场数据来说,我们要研究超前和滞后的相关关系,也是在时间维度上操作。


往往在做这类分析的时候需要找点关键的一个点。既然一维的时间序列可以做超前与之后分析,那么三维的按道理来说也是可以的,仅仅需要在时间维上做出相应的处理就行了。


我们知道netCDF中一般都有time维,So,这就好处理了。我们可以利用xarray来操作netCDF数据的时间维,corr_lead = xr.corr(1d序列,3维格点.shift(+-n),dim='time')。这样的话就实现了滞后和超前相关性分析。返回的结果是一个二维的相关系数场数据,因为时间维被缩减了。由于cartopy这个库比较难安装,所以我在colab中测试了一下,结果是可以的,写出nc文件用ArcGIS打开可以看看大概是什么一个样子。下图的那个reg是超前回归的,正在显示的这个是超前18个月的相关性分析。So,它的操作原理已经清楚了,但是时间有限,后面更多的操作和图形美化需要自己去实践了。




然后还可以通过公式计算出sig95 显著性水平,最后将相关系数和显著性值一起绘制到地图上就搞定了。Xarray虽然有corr这个方法,但是没有提供计算p值的方法,所以这里需要自己计算t值来获得p-value。最后预期得到的图形是这种样子的[https://www.nature.com/articles/s41598-018-33191-7]。



希望上述内容对三维netCDF格点数据的超前和滞后相关性分析有所启发。



往 期 推 荐
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/135711
 
1310 次点击