CMIP6 GCMs 数据结构与下载(笔记)

发布于 2021-04-26 02:53 ,所属分类:知识学习综合资讯

1 CMIP6 GCM数据结构


为了探索CMIP6 GCM 的数据结构,这里选择了加拿大CCCma开发的CanESM5读取tas_Amon_CanESM5_historical_r1i1p1f1_gn_185001-201412.nc文件数据,通过与Swart et al. 2019展示的冬季和夏季的tas全球分布结果对比来确认nc文件的数据结构。


1 温度标定Swart et al. 2019. The Canadian Earth SystemModel version 5 (CanESM5.0.3) Geosci. Model Dev., 12, 4823–4873, 2019


1.1 参考地理坐标设定

2为参考地理坐标,设定为

geoRefer =georasterref('RasterInterpretation', 'postings');

geoRefer.RasterSize = size(inputData); % In this case is [64,128]

geoRefer.LatitudeLimits = [-90 90];

geoRefer.LongitudeLimits= [-180 180];

geoRefer.ColumnsStartFrom='south';


2 参考地理坐标


1.2 CanESM5数据展示


原始MATLAB读取nc文件中tas矩阵A(参考图3)为128× 64

nc文件中,lat =linspace (-87.8638013437108, 87.8638013437108, 64);

nc文件中,lon =linspace (0, 357.187500000000, 128);


3 tas矩阵转换AàB


将矩阵A进行转置,得到矩阵B(参考图3)。将矩阵B与参考地理坐标进行匹配,可以得到:

4 tas(矩阵B)全球分布


观察图4,并将其与图1a比较可以发现:在图1a中非洲西部有明显的弧形带状低温梯度,而且中国青藏高原地区有明显的低温,南极明显的低温梯度;然而在图4中没有发现该现象,但是在澳大利亚西部发现了类似非洲的弧形带状低温梯度。由此推断可能是经度错位了。

经过查证,发现问题产生的原因是,在参考地理坐标中设定的经度为[-180180],但是MATLAB读取的nc文件经度为[0, 360]。二者的对应关系为:0-180是东经,180-360对应着西经的180-0

0-180 à [0 180]à [0E180E] 分别为GCM标记à正负号标记àEW标记

180-360à [-180,0] à [180W,0W] 分别为GCM标记à正负号标记àEW标记


5 经纬度标记


所以,需要将矩阵B进行截断并平移(参考图6),得到矩阵C.


6 tas矩阵转换AàBàC


将矩阵C与参考地理坐标进行匹配,可以得到正确的图7。图7和图1a和1b对比几乎是一致的,图7采用的是eqdcylin投影,图1a和1b采用的是Robinson投影。


7 tas(矩阵C)全球分布


1.3CanESM5数据视频展示


CanESM5 GCM 2011-2012年月尺度温度分布可以参考bilibili网站,

https://www.bilibili.com/video/BV1hA411V7Ze/


2 CMIP6 GCM 月尺度数据下载


2.1 ESGF属性(VariantLabelGrid Label


ESGF网页搜索CMIP6GCM数据的时候,VariantLabelGridLabel这两个属性会疑惑如何选择。VariantLabel属性中r*i*p*f*表示的具体意思不深究的情况下,可以用水文模型做类似理解:不同的参数组合条件下水文模型r2达到0.8以上,那么用这些不同的参数组合输出的不同的(但是相差不大的)水文模拟结果。所以,可以随便选择一组r*i*p*f*。仔细观察,r1i1p1f1具有最多的模型输出结果,为了下载方便,可以近似认为大多数科研机构提交GCM都运行了r1i1p1f1,尽管ESGF给出警告:

“WARNING: Not all models include a variant"r1i1p1f1", and across models, identical values of variant_label donot imply identical variants! To learn which forcing datasets were used in eachvariant, please check modeling group publications and documentation providedthrough ES-DOC.”

GridLabel属性有相关的解释,个人理解是网格的划分方式不同(原始网格、重新划分网格),利用ncdisp查看gngrgr1gr2文件的内容,发现经纬度也没很大区别(特别要注意的是,有的nc文件将latlon属性写出了latitudelongitude,在读取文件的时候可能会出错)。这个Grid Label属性在数据搜索的时候,不用选择。


  • "gm":"globalmean data",

  • "gn":"datareported on a model's native grid",

  • "gnz":"zonalmean data reported on a model's native latitude grid",

  • "gr":"regriddeddata reported on the data provider's preferred target grid",

  • "gr1":"regriddeddata reported on a grid other than the native grid and other than the preferredtarget grid",

  • "gr2":"regriddeddata reported on a grid other than the native grid and other than the preferredtarget grid",

  • "grz":"regriddedzonal mean data reported on the data provider's preferred latitude targetgrid"


2.2 基于Wget-MatlabCMIP6 GCM数据批量下载


GCM模式不断更新的情况下,无法根据GCM模型的名称来进行下载所需的情景。Wget的单次下载不宜过多,这里根据Variable来分批次下载。

Variable

Experiment ID

Frequency

Table ID

Variant Label

pr

historical, ssp126, ssp245, ssp370, ssp585

mon

Amon

r1i1p1f1

tas

historical, ssp126, ssp245, ssp370, ssp585

mon

Amon

r1i1p1f1

tasmin

historical, ssp126, ssp245, ssp370, ssp585

mon

Amon

r1i1p1f1

tasmax

historical, ssp126, ssp245, ssp370, ssp585

mon

Amon

r1i1p1f1


期望一次下载所有GCMs模式r1i1p1f1输出的在historical, ssp126, ssp245, ssp370,ssp585情景下的月尺度地表温度数据tas,需要设定如下:在ESGF任意节点(比如DKRZ节点)搜索数据,选择了r1i1p1f1Amonmontas、(historical, ssp126, ssp245, ssp370,ssp585),筛选得到GCM模式输出。这里注意,并不是所有的GCM都运行了r1i1p1f1,但是大多数GCM都运行了r1i1p1f1,为了简单起见,我们勾选该选项。点击Addall displayed results to Data Cart,进入MyData Cart界面,



点击WGETScript,依次下载如图所示的6WGETScript for ****,得到期望下载表温度数据tas所有GCMs的输出wget文件。



类似的操作下,得到降雨pr、最高地表温度tasmax、最低地表温度tasminwget文件。

这里注意,不同的机构保持的文件是不一样的,1850-2014年的数据,有的机构用1nc文件存储,有的用17nc文件存储,有的用165nc文件存储,在读取数据的时候要注意。


最后,利用download_esgf.m文件编写的小爬虫进行并行下载(运行爬虫参考bilibili网站,https://www.bilibili.com/video/BV1ph411U7Dw/)。

相关资源