Skip to content

inconsistent DMRs / missing Dimension declarations when slices are present in dap4.ce #332

@Mikejmnez

Description

@Mikejmnez

I am looking at the dmr from SimpleGroup file, when subsetting by variable name, and I notice that the DMR drops the dimensions when the dap4.ce has a slice on one of the variables. I did not do a very exhaustive testing, just some simple scenario as to when this occur.

Consider the URL following http://test.opendap.org/opendap/dap4/SimpleGroup.nc4.h5.dmr with the 3 following Constraint Expressions which return identical data:

  1. ?dap4.ce=/time;/Z;/Pressure. The DMR is:
<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="http://test.opendap.org/opendap/dap4/SimpleGroup.nc4.h5" dapVersion="4.0" dmrVersion="1.0" name="SimpleGroup.nc4.h5">
    <Dimension name="time" size="1"/>
    <Dimension name="Z" size="1000"/>
    <Float32 name="time">
        <Dim name="/time"/>
    </Float32>
    <Float32 name="Z">
        <Dim name="/Z"/>
    </Float32>
    <Float32 name="Pressure">
        <Dim name="/Z"/>
        <Map name="/Z"/>
    </Float32>
    <Attribute name="description" type="String">
        <Value>A simple group for testing.</Value>
    </Attribute>
</Dataset>
  1. ?dap4.ce=/time[0:1:0];/Z[0:1:999];/Pressure
<?xml version="1.0" encoding="ISO-8859-1"?>
<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="http://test.opendap.org/opendap/dap4/SimpleGroup.nc4.h5" dapVersion="4.0" dmrVersion="1.0" name="SimpleGroup.nc4.h5">
    <Dimension name="Z" size="1000"/>
    <Float32 name="time">
        <Dim size="1"/>
    </Float32>
    <Float32 name="Z">
        <Dim size="1000"/>
    </Float32>
    <Float32 name="Pressure">
        <Dim name="/Z"/>
        <Map name="/Z"/>
    </Float32>
    <Attribute name="description" type="String">
        <Value>A simple group for testing.</Value>
    </Attribute>
</Dataset>
  1. ?dap4.ce=/time[0:1:0];/Z[0:1:999];/Pressure[0:1:999]. The DMR I get is:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="http://test.opendap.org/opendap/dap4/SimpleGroup.nc4.h5" dapVersion="4.0" dmrVersion="1.0" name="SimpleGroup.nc4.h5">
    <Float32 name="time">
        <Dim size="1"/>
    </Float32>
    <Float32 name="Z">
        <Dim size="1000"/>
    </Float32>
    <Float32 name="Pressure">
        <Dim size="1000"/>
    </Float32>
    <Attribute name="description" type="String">
        <Value>A simple group for testing.</Value>
    </Attribute>
</Dataset>

Expected behavior

Identical DMRs. Perhaps not in order in which variables are defined, but consistent Dim information. But in 2, time is no longer declared as a Dimension, and specially in 3 there are no declared Dimensions even though the data is the same. I think in particular, 3 can be a problem, since the DMR has no Dimensions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions