如何按常量阈值对 netcdf 变量进行子集化
我有一个 netcdf 文件,其中包含 1990-2001 年期间全球温度(tas、degC)数据,每天时间步长为 1x1deg 经纬度网格。
我只对tas天感兴趣> 10℃。
有没有一种方法可以使用 CDO 对 netcdf 文件进行子集化,并创建一个仅包含 tas days > 的新文件? 10℃?
gtc 运算符可能与我的问题有关,但它只创建带有 0 和 1 的掩码,而我需要真实值 > 10degC。
I have a netcdf file with global temperature (tas, degC) data over the 1990-2001 period at daily time-steps in a 1x1deg lat-lon grid.
I am interested only in tas days > 10degC.
Is there a way I can subset with CDO the netcdf file and create a new one with only tas days > 10degC?
The gtc
operator can be related to my issue but it only creates a mask with 0s and 1s, while I need true values >10degC.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不太确定你想要什么......如果你想将 T<10C 的所有值设置为缺失,那么你可以按如下方式执行此操作:
此技术与用于陆地-海洋掩模的技术相同- 请观看我关于屏蔽和创建陆海掩码了解更多详情。
I'm not quite sure what you want... if you want to set all the values where T<10C to missing, then you can do that as follows:
This technique is the same as one would use for a land-sea mask - see my videos on masking and creating a land sea mask for further details.
我同意 Adrian Tompkins 的观点,即所提出的工作流程并不太明智,因为任何子集都会丢弃网格信息,并从根本上否定使用 netCDF 数据的目的。建议的工作流程在 R 中使用数据帧或在 Python 中使用 pandas 更有意义。
但是,如果您必须在 CDO 中执行此操作,您可以使用 reducegrid 运算符,该运算符会将 netCDF 文件缩减为网格单元而不会丢失值,如下所示(改编自 Adrian Tompkins 的答案):
I agree with Adrian Tompkins that the workflow proposed is not overly sensible as any subsetting will throw away the grid info and essentially negate the purpose of using netCDF data in the first place. The work flow proposed would make more sense using dataframes either in R or pandas in Python.
However, if you have to do this in CDO you can use the reducegrid operator which will reduce the netCDF file to grid cells without missing values, as follows (adapated from Adrian Tompkins' answer):