首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用cdo (气候数据操作员)按日时间步长存储的变量的月度总和

使用cdo (气候数据操作员)按日时间步长存储的变量的月度总和
EN

Stack Overflow用户
提问于 2021-10-18 18:28:45
回答 2查看 262关注 1票数 2

我有一个40年的nc文件,用于记录每日时间分辨率的变量。我想在每个月的间隔上对这些进行求和,并尝试了以下方法:

代码语言:javascript
运行
复制
cdo monsum inputfile.nc outputfile.nc

虽然运行时没有错误,但我在输出文件中只得到了一帧。我预计会有一个更大的文件。

我认为这可能是输入文件中的时间问题。

已从ncdump-h input file复制信息

代码语言:javascript
运行
复制
dimensions:
       time = UNLIMITED ; // (14975 currently)
       longitude = 40 ;
       latitude = 66 ;
variables:
       double time(time) ;
               time:standard_name = "time" ;
               time:units = "days since 1979-1-1 00:00:00" ;
               time:calendar = "proleptic_gregorian" ;
               time:axis = "T" ;
       double longitude(longitude) ;
               longitude:standard_name = "projection_x_coordinate" ;
               longitude:long_name = "longitude" ;
               longitude:units = "degrees_east" ;
               longitude:axis = "X" ;
       double latitude(latitude) ;
               latitude:standard_name = "projection_y_coordinate" ;
               latitude:long_name = "latitude" ;
               latitude:units = "degrees_north" ;
               latitude:axis = "Y" ;
       int crs ;
               crs:proj4 = "+proj=longlat +datum=WGS84" ;
       float variable(time, latitude, longitude) ;
               variable :grid_mapping = "crs" ;
               variable :_FillValue = -3.4e+38f ;
               variable :missing_value = -3.4e+38f ;
               variable :proj4 = "+proj=longlat +datum=WGS84" ;
               variable :min = 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. ;
               variable :max = 6.5701843261719, 8.62581787109377, 6.24334106445315, 8.29082641601565, 7.59359130859377, 10.0182434082031, 9.76052246093752, 9.95830688476565, 10.3648010253906, 12.8482604980469, 13.1276489257813, 13.1267333984375, 10.9829345703125, 9.82497558593752, 10.1014953613281, 11.8195434570313, 13.9579711914063, 10.0517211914063, 9.37850341796877, 11.3964782714844, 13.0114074707031, 14.4672180175781, 11.4755798339844, 10.6639953613281, 11.3891540527344, 11.9616943359375, 13.7388854980469, 5.56426391601565, 7.07705078125002, 7.64479980468752, 8.25527343750002 ; // global attributes:
               :CDI = "Climate Data Interface version 1.9.10 (https://mpimet.mpg.de/cdi)" ;
               :Conventions = "CF-1.4" ;
               :created_by = "R, packages ncdf4 and raster (version 3.4-10)" ;
               :date = "2021-10-06 11:52:06" ;
               :history = "Mon Oct 18 13:50:40 2021: cdo setreftime,1979-01-01,00:00:00 kdd_AR_1979_2019.nc kdd_AR_1979_2019_adj.nc\n",

非常感谢您的帮助。很抱歉没有提供一个简单的可重现的例子。如果需要,我可以通过we-transfer或类似的方式共享数据。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-18 20:35:24

感谢Adrian Tompkins,他直接带我找到了答案。我必须修复这里用作输入的合并文件的时间轴。使用settaxis operator可以做到这一点。下面是完整命令的示例:

cdo settaxis,date,time[,inc] infile outfile

票数 2
EN

Stack Overflow用户

发布于 2021-10-18 19:56:38

CDO使用属性proj_params来标识项目参数。文件中对应的属性是proj4。您需要重命名此属性以自动应用项目参数:

代码语言:javascript
运行
复制
ncrename -a crs@proj4,proj_params file.nc

I found this answer here from Uwe Schulzweida

一旦你这样做了,我希望你可以用cdo正确地处理文件,让我知道它是否工作。如果没有,请发布cdo showdate file.nc的结果,因为这可以帮助理解CDO是否可以正确处理日期格式

编辑:此解决方案没有解决OP发布的时间处理问题,但我将把它留下来,因为对这些文件进行任何空间处理都需要它。使用坐标参考系统(CRS)的NetCDF文件需要确保它们符合CF,以便CDO能够正确处理它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69620853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档