之前用scipy做过了二维数组的去趋势(detrend)了,就比如上次的那个sklearn里附带提到的,具体的可以去看看哈,如果有用的话。为什么要去除趋势等知识可以去搜索一下相关的资料看看。这个测试写得比较潦草,主要是下午还有课,就这样吧先,我会了,类似的相关分析,原理一样的,也很easy,但是既然如此,要不弄一个新东西,就是把周期分析展示到三维地图上来,比如这个,有意思吧,好吧,干饭接着上课了
好吧,干饭接着上课了
但是现在突然不想做这种二维数据的去趋势分析了,因为平时跟地图打交道挺多的,所以现在我想对空间上的数据做去趋势处理,那么有可能实现吗,答案是可以的
使用的数据还是老样子的那个ERSST的netcd三维数据,主要是也没啥其他的数据了哈哈哈,就将就用这个数据做一下测试了
这个nc的格式也是老样子的,(时间,纬度,经纬)这样的三维数据,很简单
要做三维格点数据的去趋势的原理,也是比较简单的,就是遍历每个格点,然后就是老方法scipy登场了
老套路,导入相关的木块并读取nc
from netCDF4 import Dataset as NetCDFFile
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.basemap import Basemap
nc = NetCDFFile('D:\JupyterContent\ERSSTv5.nc')
nc
提取值
lat = nc.variables['lat'][:]
lon = nc.variables['lon'][:]
time = nc.variables['time'][:]
tmp = nc.variables['tempanomaly'][:]
绘图出来看看大概,其实这都是老套路了绘图
接下来开始遍历每个格点并做去趋势处理,遍历的就是经纬格点,这就是做这个测试的原理,很easy吧
得出结果,拿去和最开始的那个对比一下,同样是求均值,第一个是没有去除趋势均值,这一个是已经去除趋势的均值,有什么发现了嘛