Skip to content

Returned dmrVersion should reflect current version (v2) rather than version from potentially-stale DMR++ #1262

@Mikejmnez

Description

@Mikejmnez

The dmrVersion = 1 | 2 attribute element within the dap response tells client APIs whether the data in the dap response is serialized according to the dap4 spec (dmrVersion=2) or if the data is serialized with Group data being serialized first (dmrVersion=1). The latest versions of the bes serializes data according to dmrVersion=2. See for example: http://test.opendap.org/opendap/dap4/SimpleGroup.nc4.h5.dmr.xml, which corresponds to Hyrax (1.17.1-691)

There is an issue, however, for Hyrax in the Cloud when there is a dmrpp that is "old". For example, this TEMPO example:

https://opendap.earthdata.nasa.gov/collections/C2930764281-LARC_CLOUD/granules/TEMPO_O3TOT_L3_V03_20250831T232841Z_S016.nc.dmr

The server has the version Hyrax (1.17.1-679). I ran that Hyrax version locally for a file with groups and the dmr has the attribute dmrVersion=2 meaning it fully supports it.

The issue is that, as in the TEMPO example above, the dmrVersion=1 in the dap response, BUT the data is serialized according to dmrVersion=2. As a result, data inside groups is deserialized incorrectly. IF I manually ignore this attribute in the dap response, and deserialize the dap response according to dmrVersion=2, the resulting data is correct.

@ndp-opendap mentioned there must be a caching issue, with the older dmrpp "next to the file". I looked at the DMRpp and indeed it has the dmrVersion=1 attribute, even though that version of Hyrax imposes the dmrVersion=2 serialization of the data.

<Dataset dapVersion="4.0" 
    dmrVersion="1.0" 
    name="TEMPO_O3TOT_L3_V03_20250831T232841Z_S016.nc" 
    ...
    dmrpp:trust="true" dmrpp:version="3.21.1-367>

Note that dmrpp version, corresponding to an "older" bes/hyrax (currently bes-3.21.1-1060).

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions