netcdf - 使用 xarray 将 NetCDF 保存为时间维度的子集
问题描述
我有一个带有一个变量(正面)和四个维度(时间、高度、纬度和经度)的 NetCDF。从https://coastwatch.pfeg.noaa.gov/erddap/griddap/erdGAtfnt10day_LonPM180.html下载
它是一个月度复合,即 <xarray.DataArray 'time' (time: 151)> array(['2001-01-16T12:00:00.000000000', '2001-02-16T00:00:00.000000000', ... '2013-12-16T12:00:00.000000000'],dtype='datetime64[ns]')。
我想为每个时间戳创建一个文件(无论是 NetCDF 还是 Geotif 都没有关系)。
我试过了:
ds = xr.open_dataset("Front_monthly2001to2013.nc", decode_times=True)
months, datasets = zip(*ds.groupby("time.month")) #.groupby("time.month")
paths = ["test%s.nc" % m for m in months]
xr.save_mfdataset(datasets, paths)
但随后它将所有月份分组,我得到 12 个输出文件,而不是每个年月的一个。如何按年保存(在我的情况下,与每个时间戳相同)?
提前致谢
解决方案
您可以使用时间维度的日期时间组件将时间戳重新格式化为年和月,并将其用于分组:
months, datasets = zip(*ds.groupby(ds.time.dt.strftime("%Y%m")))
推荐阅读
- python - 循环并合并以创建新列表
- python-3.x - fasttext 适用于 ubuntu 终端,但不适用于 jupyter notebook
- javascript - 结合正则表达式进行手机号码验证
- security - 如果非成熟的 ncc 管理的 IP 地址块,如何检查国家名称?
- c# - c# http内容中的HttpClient
- scala - spark文件处理时如何避免单条记录中间出现换行符
- c# - C# 访问本机 C++ DLL
- jquery - TYPO3 9.5 表单框架 AJAX
- android - 模拟器不起作用:无法执行应用程序
- c# - 从 C# 以编程方式恢复 ms-sql 系统数据库