【问题标题】:NcML aggregation of remote 3D and 4D variables?远程 3D 和 4D 变量的 NcML 聚合?
【发布时间】:2013-04-17 03:29:02
【问题描述】:

NcML 能否用于聚合 3D 和 4D 网格?我不确定,因为它们的维度数量不同。例如海面高度 (ssh) 和水温,其中 ssh 有三个维度 [time, lat, lon] 而 temp 有四个维度 [time, depth, lat, lon]?我的测试没有成功,所以我的预感是我必须将 3D 和 4D 变量分成单独的目录。但我希望其他人可能有其他建议?

虽然我尝试使用带有下面 sn-p 的“联合”聚合,但由于 3D 变量从 2008 年 12 月 28 日开始而 4D 变量从 2008 年 5 月 8 日开始,因此没有正确映射时间维度:

<?xml version="1.0" encoding="UTF-8"?>
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2">
  <attribute name="title" value="HYCOM test aggregation #1"/>
  <aggregation type="union">
    <!-- These are the 3D variables: -->
    <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycom2d"/>
    <!-- These are the 4D variables: -->
    <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomT"/>
    <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomS"/>
    <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomU"/>
    <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomV"/> 
  </aggregation>
</netcdf>

然后,我在“时间”维度上尝试了“joinExisting”聚合,但这仅适用于每个数据集都包含相同变量(它们不包含)的情况。根据我在聚合中首先列出的数据集,以下示例中会排除 3D 或 4D 变量:

<?xml version="1.0" encoding="UTF-8"?>
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2">
  <attribute name="title" value="HYCOM test aggregation #2"/>
  <aggregation dimName="time" type="joinExisting">
    <!-- These are the 3D variables: -->
    <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycom2d"/>
    <!-- These are the 4D variables: -->
    <aggregation type="union">
      <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomT"/>
      <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomS"/>
      <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomU"/>
      <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomV"/> 
    </aggregation>
  </aggregation>
</netcdf>

那么,有没有办法聚合这些数据集?我必须将 3D 和 4D 变量分开吗?

谢谢!, 约翰毛雷尔 太平洋岛屿海洋观测系统(PacIOOS) 夏威夷大学马诺阿分校

【问题讨论】:

    标签: xml netcdf thredds ncml


    【解决方案1】:

    约翰,

    由于您要加入的文件时间坐标不同但名称相同,因此您需要重命名其中一个文件。我原以为这个简单的 NcML 会起作用,只需在 3D 数据中重命名时间维度和时间变量的维度和名称

    <?xml version="1.0" encoding="UTF-8"?>
    <netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2">
        <attribute name="title" value="HYCOM test aggregation #1"/>
        <aggregation type="union">
            <!-- These are the 3D variables: -->
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycom2d">
                <dimension name="time2d" orgName="time"/>
                <variable name="time2d" orgName="time"/>
            </netcdf>
            <!-- These are the 4D variables: -->
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomT"/>
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomS"/>
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomU"/>
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomV"/> 
        </aggregation>
    </netcdf>
    

    但它没有,因为在我们更改变量和维度名称之前,NetCDF-Java 似乎以某种方式添加了一个属性_CoordinateAxes,其值为“time lon lat”。因此,如果我们从 3D 数据中删除该属性,它就会起作用:

    <?xml version="1.0" encoding="UTF-8"?>
    <netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2">
        <attribute name="title" value="HYCOM test aggregation #1"/>
        <aggregation type="union">
            <!-- These are the 3D variables: -->
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycom2d">
                <dimension name="time2d" orgName="time"/>
                <variable name="time2d" orgName="time"/>
                <variable name="qtot">
                    <remove type="attribute" name="_CoordinateAxes"/>
                </variable>
                <variable name="emp">
                    <remove type="attribute" name="_CoordinateAxes"/>
                </variable>
                <variable name="t_trend">
                    <remove type="attribute" name="_CoordinateAxes"/>
                </variable>
                <variable name="s_trend">
                    <remove type="attribute" name="_CoordinateAxes"/>
                </variable>
                <variable name="ssh">
                    <remove type="attribute" name="_CoordinateAxes"/>
                </variable>
                <variable name="mld">
                     <remove type="attribute" name="_CoordinateAxes"/>
                </variable>
                <variable name="mlp">
                     <remove type="attribute" name="_CoordinateAxes"/>
                </variable>
            </netcdf>
            <!-- These are the 4D variables: -->
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomT"/>
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomS"/>
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomU"/>
            <netcdf location="dods://apdrc.soest.hawaii.edu:80/dods/public_data/Model_output/HYCOM/global/hycomV"/> 
        </aggregation>
    </netcdf>
    

    这是生成数据集的 ToolsUI 屏幕截图,您可以在其中看到 3D 和 4D 变量:

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 2013-02-20
      • 2022-11-03
      • 2013-11-15
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多