1

在使用 Unidata IDV 通过 OPeNDAP 访问加尔维斯顿湾的 NOAA CO-OPS 海洋模型时:

http://opendap.co-ops.nos.noaa.gov/thredds/catalog/NOAA/GBOFS/MODELS/201302/catalog.html?dataset=NOAA/GBOFS/MODELS/201302/nos.gbofs_hsc.fields.nowcast。 20130201.t09z.nc

我收到一条错误消息“创建数据源时出错”。从他们的OPeNDAP 数据表中可以看出,许多NetCDF 气候和预报 (CF) 元数据约定都得到了满足,但显然不是全部。

有谁知道缺少什么或错误?

4

1 回答 1

2

你是对的,这个数据集有一些问题需要修复才能在IDV中工作:

  1. Conventions 属性显示“COARDS”,但COARDS适用于直线网格(1D 坐标变量),并且该数据是曲线网格(2D lon,lat 坐标变量)。CF 约定在这里是合适的,因此“约定”全局属性需要为 CF-1.0 或更高版本。

  2. 要符合 CF,需要为每个变量指定“坐标”属性。

  3. 这个模型有一个无量纲的垂直坐标,它要求“正”属性是“向上”,并且 sigma 值是负的,而不是正的。

幸运的是,您可以使用 NcML 解决这些问题。尝试使用以下内容创建文件“gbofs.ncml”并将其加载到 IDV 而不是 OPeNDAP URL。这种方法适用于任何使用 Unidata NetCDF-Java 库的软件,因此它不仅适用于 IDV,而且适用于PanoplyMatlab 的 NCTOOLBOX

<?xml version="1.0" encoding="UTF-8"?>
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2"
  location="http://opendap.co-ops.nos.noaa.gov/thredds/dodsC/NOAA/GBOFS/MODELS/201302/nos.gbofs.fields.nowcast.20130201.t03z.nc">
  <!--Change conventions from COARDS to CF-1.6 -->
  <attribute name="Conventions" value="CF-1.6"/>
  <!--The "positive" attribute is only for the z coordinate variable, so remove it from depth and elevation-->
  <variable name="zeta">
    <remove type="attribute" name="positive"/>
  </variable>
  <variable name="depth">
    <remove type="attribute" name="positive"/>
  </variable>
  <!-- Dimensionless vertical coordinates need "positive"=up, and negative sigma values -->
  <variable name="sigma">
    <attribute name="positive" value="up"/>
    <values> -0.1667 -0.4167 -0.5833 -0.7643 -0.9167 </values>
  </variable>
  <!-- Curvilinear grids need a "coordinates" attribute that identifies the coordinate variables-->
  <variable name="temp" shape="time sigma ny nx" type="float">
    <attribute name="coordinates" value="lon lat sigma time"/>
  </variable>
</netcdf>

我会向 NOAA CO-OPS 报告这个问题,希望他们将来能解决这个问题。这是来自 IDV 的屏幕截图,只是为了表明它有效: 来自 IDV 的屏幕抓取

于 2013-02-11T22:42:10.783 回答