CESM笔记——模式运行输出netCDF数据初步处理(NCO推荐)

其实这个笔记感觉更像是个安利帖吧,因为主要是想给大家推荐一个netCDF文件处理工具,NCO。

简直不要太好用!真心发现,找到一些好用的工具,科研效率上一个level。

模式的输出文件以netCDF格式为主,比如WRF-Chem, CESM的output都是nc格式,GEOS-Chem的output是nc4格式。

netCDF数据格式介绍:

NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的。广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等领域。[1]

CESM输出文件介绍:

以大气模块为例,大气的文件一般存在~/archive/atm/hist路径下,通常输出的为月平均结果(文件名中带h0),如需要其他频率的输出则需要自己手动设置(h1,h2……)

一般一个月有一个文件,一个文件中包含非常多的变量,但是我们在使用时可能只想要分析其中某几个变量,那么把所有数据都从服务器或者超算上导下来又非常慢,即使弄下来也非常占存储空间,读写也很慢。所以推荐使用NCO在服务器上对文件进行初步处理。

netCDF Operators (NCO) 介绍:

netCDF格式分析库,用于操作分析netCDF数据格式。

常用命令有以下这些,更具体的示例和用法可以去官网看。

图片来源:nco.sourceforge.net/#Definition 

CESM output常用命令介绍:

首先检查服务器是否支持NCO,一般如果是超算都支持。

module avail查看服务器支持的nco版本,比如我在tianhe上查看它就支持好几个版本

在.bashrc文件中module load对应icc的nco版本就好。比如我的bashrc中装的就是

 ncrcat :合并文件

示例:

ncrcat F_EP_02.cam.h0.000* 24month_F_EP_02.nc 

如图,本来这些输出文件time维度都是1,即每个文件都只对应了一个月平均数据,通过ncrcat可以将时间维度拼接,变成2年的数据,即time维度变成了24。

但是可能出现的一个问题,就是不能把time维度合并太大,否则会被killed

ncks: 文件切片

由于每个文件中包含非常多的变量,但具体到研究问题可能我们只关注其中几个变量,为了节省数据存储空间以及减小文件大小来加快读写速度,可以使用ncks切片功能将需要的变量切出来。

示例:

ncks -v O3,PSL,TS,FSDS,RELHUM 24month_F_CL_01.nc 24month_O3_meto1_F_CL_01.nc 

 切完之后查看文件大小,发现小了不是一点点呐~

有时候大家可能需要批处理一些文件,可以参考下面这个脚本cut_ts.sh:

#!/bin/tcsh -f

#----
foreach filename (cam5_som_ctrl_1.cam.h0.???????.nc)
echo $filename
set timeid = `echo $filename | cut -c 29-35`
ncks -v TS,PSL $filename cam5_som_ctrl_1_tp_psl_$timeid.nc

end
#----

foreach这行中的一堆问号表示的是文件名中的时间,把这段时间数字设成timeid,ncks这行就可以进行对应处理了。

运行的话就直接./cut_ts.sh就好啦。

nces: 计算集合平均

示例:

 nces 24month_O3_meto1_F_CL_0* 24month_O3_meto1_F_CL_ens_01_05.nc

这个命令就可以直接计算24month_O3_meteo1_F_CL_0* 这些文件的集合平均,超方便有没有!要不然手写matlab或者ncl代码,你得先把这些的文件list出来,挨个读一遍再求平均,现在一个命令就搞定啦!

So easy! 妈妈再也不用担心我的存储啦~

今天就说这三个命令,更多的大家自行去NCO网站探索吧~

NCO网站:NCO Homepage (sourceforge.net)

关于更详细的CESM output处理,推荐大家去看这个ppt:

https://www.cesm.ucar.edu/events/tutorials/2020/files/practical3-phillips.pdf

干货满满。

[1] netCDF 百度百科: netCDF_百度百科

  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
CESM是全球气候模型系统 (Community Earth System Model) 的一个版本。它是一个由多个组件组成的集合,包括大气、海洋、陆地和海冰模型。CESMpython版本称为python CESM。要了解更多关于python CESM的信息,您可以查看 "Downloading CESM2 (CESM2.1) — CESM CESM2.1 documentation"。此外,您还可以访问 "CESM_postprocessing"项目存储库,该存储库包含了基于CESM python的后处理代码,并提供了相关的文档和问题跟踪信息。如果您是NCAR用户,您可以在林间空地上访问这些数据集的说明。同时,您可以查看"BATCH_SYSTEM"来了解在该机器上使用的批处理系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [安装CESM记录](https://blog.csdn.net/mayubins/article/details/122190826)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [CESM_postprocessing:基于CESM python的后处理代码,文档和问题跟踪的项目存储库](https://download.csdn.net/download/weixin_42123191/18386442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J同学的大气笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值