如何从 NCEI THREDDS 服务器下载和子集 netCDF 文件

How to download and subset netCDF files from NCEI THREDDS server

我正在尝试下载位于此处的文件并对其进行子集化:https://www.ncei.noaa.gov/thredds-ocean/catalog/ncei/archive/data/0129374/daily/catalog.html,但我不确定是我做错了什么还是 link 有问题。这是我第一次从该服务下载数据,所以我无法准确判断。

如果我将鼠标悬停在 link 上,我会看到第一个文件:https://www.ncei.noaa.gov/thredds-ocean/catalog/ncei/archive/data/0129374/daily/catalog.html?dataset=ncei/archive/data/0129374/daily/livneh_NAmerExt_15Oct2014.195001.nc

我试过使用 pydap 打开这个 url:

from pydap.client import open_url

open_url('https://www.ncei.noaa.gov/thredds-ocean/catalog/ncei/archive/data/0129374/daily/catalog.html?dataset=ncei/archive/data/0129374/daily/livneh_NAmerExt_15Oct2014.195001.nc')

但是我得到错误:

webob.exc.HTTPError: 404 Not Found

如果我使用 netCDF4 库,我会得到一个不同的错误:

import netCDF4

netCDF4.Dataset('https://www.ncei.noaa.gov/thredds-ocean/catalog/ncei/archive/data/0129374/daily/livneh_NAmerExt_15Oct2014.195001.nc')

这给了我:

OSError: [Errno -75] NetCDF: Malformed or unexpected Constraint: b'https://www.ncei.noaa.gov/thredds-ocean/catalog/ncei/archive/data/0129374/daily/catalog.html?dataset=ncei/archive/data/0129374/daily/livneh_NAmerExt_15Oct2014.195001.nc'

有没有可能是link有问题?我如何下载这些数据并对其进行子集化?

目前您使用的文件有误。您需要使用 OPENDAP link: https://www.ncei.noaa.gov/thredds-ocean/dodsC/ncei/archive/data/0129374/daily/livneh_NAmerExt_15Oct2014.195001.nc.html。然后删除其中的 html 部分。

我已经使用我的 nctoolkit 包对此进行了测试,它似乎工作正常:

import nctoolkit as nc
ds = nc.open_thredds("https://www.ncei.noaa.gov/thredds-ocean/dodsC/ncei/archive/data/0129374/daily/livneh_NAmerExt_15Oct2014.195001.nc")
ds.select(time = 0)
ds.plot()