NetCDF 数据存储的基础知识

NetCDF 数据的存储

NetCDF 文件中的数据以数组形式存储。 例如,某个位置处随时间变化的温度以一维数组的形式存储。 某一区域在给定之间内的温度存储为二维数组。

三维 (3D) 数据(如某个区域内随时间变化的温度)或四维 (4D) 数据(如某个区域内随时间和高度变化的温度)以一系列二维数组的形式存储。

三维数据:随时间变化的区域数据
三维数据:随时间变化的区域数据
四维数据:随时间和高度变化的区域数据
四维数据:随时间和高度变化的区域数据

NetCDF 文件的基本组成部分

NetCDF 文件包含维度、变量和属性。 将这几部分结合起来使用可以说明数据以及面向数组的数据集中各数据字段之间关系的含义。 下图显示的是采用 CDL(网络公用数据格式语言)表示法来描述的 NetCDF 文件结构。 CDL 为 ASCII 格式,用于描述 netCDF 文件的内容。

CDL 文件
CDL 文件示例

维度、变量和属性的名称由任意的字母数字字符串(包括下划线和连字符)组成,并且以字母或下划线开头。 但是,以下划线开头的名称是供系统使用的保留名称。 netCDF 名称的大小写非常重要。

尺寸注记

NetCDF 维度包含名称和大小。 维度大小是一个任意的正整数。 每个 NetCDF 文件中只有一个维度的大小是“无限制”的。 这类维度是无限维度或记录维度。 具有无限维度的变量可以沿该维度增长到任意长度。

维度可以用来表示实际物理维度,例如时间、经度、纬度或高度。 维度还可以用来为其他量建立索引,例如,站点或模型的运行数。 可以在指定变量形状时多次使用同一维度。

变量

变量代表相同类型的值数组。 变量用来存储 NetCDF 文件中的大部分数据。 变量具有名称、数据类型以及在创建该变量时指定的维度列表所描述的 shape。 维度数称为秩(也称为维数)。 标量变量的秩为 0,矢量的秩为 1,矩阵的秩为 2。 变量还可以具有能够在变量创建后进行添加、删除或更改的相关属性。

坐标变量

与维度同名的一维变量称为坐标变量。 它与一个或多个数据变量的维度相关联,通常用于定义与该维度对应的物理坐标。

坐标变量对于 NetCDF 库来说没有特殊意义。 但是,使用此库的软件应以专门的方式处理坐标变量。

属性

NetCDF 的属性用于存储辅助数据或元数据。 大部分属性提供有关特定变量的信息。 这些属性通过变量名称和属性名称进行标识。

提供有关整个 NetCDF 文件的信息的属性称为全局属性。 这些属性通过属性名称以及空白变量名称(采用 CDL 格式)或特殊空白变量 ID(采用 C 或 Fortran 语言)进行标识。

约定

约定用来定义为每个变量中的数据提供确切描述的元数据及其空间和时态属性。 约定有助于使用不同数据源的用户确定哪些量具有可比性。 约定名称在 netCDF 文件中显示为全局属性。

netCDF 驱动程序按照 CF-1 建议的优先级顺序识别空间参考。 定义 netCDF 属性的空间参考的优先级顺序默认为 grid_mapping > srid > crs_wkt > EPSG_code > proj4_parms > spatial_ref > esri_pe_string

GDAL_NETCDF_CRS_ORDER=GIS 可以添加至 ArcGIS\Pro\bin 文件夹中的 gdalrc 文件,以更改 OGC/WKT 定义的较高优先级的默认行为:spatial_ref > EPSG_code > crs_wkt > srid > proj4_parms > grid_mapping > esri_pe_string

了解有关 netCDF 约定的更多信息

目前,ArcGIS 支持气候和预测 (CF) 以及海洋/大气合作研究数据服务 (COARDS) 约定。

注:

采用其他约定创建的 NetCDF 文件也可直接与 ArcGIS 结合使用。 有关详细信息,请参阅约定规范。