当前位置: 首页 > 知识库问答 >
问题:

将NetCDF保存为使用xray的时间维度的子集

冀景明
2023-03-14

我有一个NetCDF,有一个变量(前)和四个维度(时间、高度、纬度和经度)。下载自https://coastwatch.pfeg.noaa.gov/erddap/griddap/erdGAtfnt10day_LonPM180.html

它是一个月复合,即。

我想为每个时间戳创建一个文件(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个输出文件,而不是一年一个月的输出文件。我如何按年-月进行保存(在我的情况下,与每个时间戳相同)?

提前谢谢

共有1个答案

姚胡媚
2023-03-14

您可以使用时间维度的日期时间组件将时间戳重新格式化为年份

months, datasets = zip(*ds.groupby(ds.time.dt.strftime("%Y%m")))
 类似资料:
  • 我从 https://disc.gsfc.nasa.gov/datasets 下载了几天的每日TRMM 3B42数据。文件名的格式为 但文件不包含任何时间维度。因此,当我使用 连接各种文件时,结果文件中缺少日期信息。我想知道如何在组合数据集中添加时间信息。 时间戳似乎是全局属性的一部分。以下是 的相关部分: 当我尝试使用它给出了 保留第一个文件的全局属性中的时间信息,这不是很有用。 当我试图在py

  • 软件包< code>ncdf4中的命令< code>ncdim_def旨在鼓励自动创建与尺寸相符的坐标变量,这是一个非常好的做法。 但是,它只允许为此坐标变量创建“双精度”或“整数”精度。出于外部原因,我需要将坐标变量“time”写为浮点数。 为此,我使用以下结构,其中包括与维度定义分开创建坐标变量(即。使用文档中描述的选项) 但是,这会返回错误: 事实上,由此产生的netcdf显示(ncdump

  • 我有一个 netcdf 数据文件,其中包含以下变量,显示在下面的 ncdump 代码段中: 我正在尝试从此文件中消除时间坐标变量,以便获得三维 netcdf 数据文件。基本上在netcdf文件中第一次拥有数据数据值,仅此而已。我试图用 ncks 完成此操作,这就是他们在进行谷歌搜索时显示我应该做的事情。我用 ncks 尝试了以下命令: 但我无法删除时间维度。我应该怎么做才能调整此命令以获得仅显示初

  • 我有一个netCDF文件。结构: 如何提取特定经纬度(比如86.45,-156.25)和时间(比如2016-01-10)的网格单元的值?精确的纬度/经度值可能不在坐标中,在这种情况下,我们需要最接近的纬度/经度值 我可以像这样提取特定经度的值: 然而,由于-20在经度坐标中不存在,因此这不起作用。

  • 我有两个NetCDF文件,每个文件都有不同的年份,我想将它们连接起来。它们似乎有相同的结构,时间是无限的维度,除了一个文件的经度是0:360,另一个文件的经度是-180:180。 这个问题解决了如何使用 R 中的栅格包来处理这个问题,但我想使用 nco。 我已经找到了转换的说明(提供如下)-180:180- 关于我的NetCDF文件的详细信息: 这是我在手册中找到的将-180:180转换为0:36

  • 我想用树莓派实时捕捉带有时间戳的视频帧。视频由USB摄像头使用python代码中的ffmpeg()函数制作。如何保存当前由USB摄像头在树莓派中制作的视频帧? 我尝试使用opencv的三个函数。cv2。VideoCapture可检测视频,保存帧。以下是代码,为简洁起见,未提及包含的库。 该代码保存了以前由网络摄像头制作的视频帧。它不保存当前由网络摄像头录制的视频帧。