eblondel / ows4R

R Interface for OGC Web-Services (OWS)

Home Page:https://eblondel.github.io/ows4R/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`describeCoverage` and `getDescription` not working properly on `https://ows.emodnet-humanactivities.eu/wcs`

annakrystalli opened this issue · comments

describeCoverage and getDescription don't seem to be working properly for https://ows.emodnet-humanactivities.eu/wcs. Specifically I seem to get a truncated WCSCoverageDescription when using versions 1.1.1 & 1.1.0

## Version 1.1.1 (same with version 1.1.0) 
library(ows4R)
#> Loading required package: geometa
#> Loading ISO 19139 XML schemas...
#> Loading ISO 19115 codelists...
#> Loading IANA mime types...
#> No encoding supplied: defaulting to UTF-8.
#> Loading required package: keyring
wcs1 <- WCSClient$new(url = "https://ows.emodnet-humanactivities.eu/wcs",
                      serviceVersion = "1.1.1",
                      logger = "DEBUG")
#> [ows4R][INFO] OWSGetCapabilities - Fetching https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=1.1.1&request=GetCapabilities
wcs1$describeCoverage("emodnet:2018_st_All_avg_POSTER")
#> [ows4R][INFO] WCSClient - Fetching coverageSummary description for 'emodnet:2018_st_All_avg_POSTER' ... 
#> [ows4R][INFO] WCSDescribeCoverage - Fetching https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=1.1.1&identifiers=emodnet:2018_st_All_avg_POSTER&request=DescribeCoverage
#> <WCSCoverageDescription>
#> ....|-- CoverageId: emodnet:2018_st_All_avg_POSTER
#> ....|-- SupportedCRS: urn:ogc:def:crs:EPSG::3035 
#> ....|-- SupportedCRS: EPSG:3035
#> ....|-- SupportedFormat: image/png 
#> ....|-- SupportedFormat: image/jpeg 
#> ....|-- SupportedFormat: image/tiff
#> Error in as.vector(x, "character"): cannot coerce type 'environment' to vector of type 'character'
wcs1$getCapabilities()$findCoverageSummaryById("emodnet:2018_st_All_avg_POSTER", exact = TRUE)$getDescription()
#> <WCSCoverageDescription>
#> ....|-- CoverageId: emodnet:2018_st_All_avg_POSTER
#> ....|-- SupportedCRS: urn:ogc:def:crs:EPSG::3035 
#> ....|-- SupportedCRS: EPSG:3035
#> ....|-- SupportedFormat: image/png 
#> ....|-- SupportedFormat: image/jpeg 
#> ....|-- SupportedFormat: image/tiff
#> Error in as.vector(x, "character"): cannot coerce type 'environment' to vector of type 'character'

Created on 2022-08-09 by the reprex package (v2.0.1)

However, it seems the server does have CoverageDescription information, as can be seen from the response to the following request: https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=1.1.1&identifiers=emodnet:2018_st_All_avg_POSTER&request=DescribeCoverage

<wcs:CoverageDescriptions xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wcs/1.1.1 https://ows.emodnet-humanactivities.eu/geoserver/schemas/wcs/1.1.1/wcsDescribeCoverage.xsd">
<wcs:CoverageDescription>
<ows:Title>2018_st_All_avg_POSTER</ows:Title>
<ows:Abstract>Generated from GeoTIFF</ows:Abstract>
<ows:Keywords>
<ows:Keyword>2018_st_All_avg</ows:Keyword>
<ows:Keyword>WCS</ows:Keyword>
<ows:Keyword>GeoTIFF</ows:Keyword>
</ows:Keywords>
<wcs:Identifier>emodnet:2018_st_All_avg_POSTER</wcs:Identifier>
<ows:Metadata metadataType="TC211" xlink:type="simple" xlink:href="https://www.emodnet.eu/geonetwork/emodnet/eng/csw?service=CSW&version=2.0.2&request=GetRecordById&elementsetname=full&id=ccc4cd96-a838-4368-8a7f-9e2637a8b3ef&outputschema=http://www.isotc211.org/2005/gmd"/>
<wcs:Domain>
<wcs:SpatialDomain>
<ows:BoundingBox crs="urn:ogc:def:crs:OGC:1.3:CRS84" dimensions="2">
<ows:LowerCorner>-87.7064839294012 14.961111053032138</ows:LowerCorner>
<ows:UpperCorner>97.63302660959336 86.80081200297836</ows:UpperCorner>
</ows:BoundingBox>
<ows:BoundingBox crs="urn:ogc:def:crs:EPSG::3035" dimensions="2">
<ows:LowerCorner>-623000.0 604000.0</ows:LowerCorner>
<ows:UpperCorner>6885000.0 7035000.0</ows:UpperCorner>
</ows:BoundingBox>
<wcs:GridCRS>
<wcs:GridBaseCRS>urn:ogc:def:crs:EPSG::3035</wcs:GridBaseCRS>
<wcs:GridType>urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs</wcs:GridType>
<wcs:GridOrigin>-622500.0 7034500.0</wcs:GridOrigin>
<wcs:GridOffsets>1000.0 0.0 0.0 -1000.0</wcs:GridOffsets>
<wcs:GridCS>urn:ogc:def:cs:OGC:0.0:Grid2dSquareCS</wcs:GridCS>
</wcs:GridCRS>
</wcs:SpatialDomain>
</wcs:Domain>
<wcs:Range>
<wcs:Field>
<wcs:Identifier>contents</wcs:Identifier>
<wcs:Definition>
<ows:AllowedValues>
<ows:Range>
<ows:MinimumValue>-Infinity</ows:MinimumValue>
<ows:MaximumValue>Infinity</ows:MaximumValue>
</ows:Range>
</ows:AllowedValues>
</wcs:Definition>
<wcs:NullValue>-3.4028234663852886E38</wcs:NullValue>
<wcs:InterpolationMethods>
<wcs:InterpolationMethod>nearest</wcs:InterpolationMethod>
<wcs:InterpolationMethod>linear</wcs:InterpolationMethod>
<wcs:InterpolationMethod>cubic</wcs:InterpolationMethod>
<wcs:Default>nearest neighbor</wcs:Default>
</wcs:InterpolationMethods>
<wcs:Axis identifier="Bands">
<wcs:AvailableKeys>
<wcs:Key>GRAY_INDEX</wcs:Key>
</wcs:AvailableKeys>
</wcs:Axis>
</wcs:Field>
</wcs:Range>
<wcs:SupportedCRS>urn:ogc:def:crs:EPSG::3035</wcs:SupportedCRS>
<wcs:SupportedCRS>EPSG:3035</wcs:SupportedCRS>
<wcs:SupportedFormat>image/png</wcs:SupportedFormat>
<wcs:SupportedFormat>image/jpeg</wcs:SupportedFormat>
<wcs:SupportedFormat>image/tiff</wcs:SupportedFormat>
</wcs:CoverageDescription>
</wcs:CoverageDescriptions>

Version 2.0.1

With version 2.0.1 I actually get nothing or an error

## Version 2.0.1 
library(ows4R)
#> Loading required package: geometa
#> Loading ISO 19139 XML schemas...
#> Loading ISO 19115 codelists...
#> Loading IANA mime types...
#> No encoding supplied: defaulting to UTF-8.
#> Loading required package: keyring
wcs2 <- WCSClient$new(url = "https://ows.emodnet-humanactivities.eu/wcs",
                      serviceVersion = "2.0.1",
                      logger = "DEBUG")
#> [ows4R][INFO] OWSGetCapabilities - Fetching https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=2.0.1&request=GetCapabilities
wcs2$describeCoverage("emodnet:2018_st_All_avg_POSTER")
#> [ows4R][INFO] WCSClient - Fetching coverageSummary description for 'emodnet:2018_st_All_avg_POSTER' ...
#> NULL
wcs2$getCapabilities()$findCoverageSummaryById("emodnet:2018_st_All_avg_POSTER", exact = TRUE)$getDescription()
#> Error in eval(expr, envir, enclos): attempt to apply non-function

wcs2$getCapabilities()$
    getServiceIdentification()$
    getServiceTypeVersion()
#> [1] "2.0.1" "1.1.1" "1.1.0"

Created on 2022-08-09 by the reprex package (v2.0.1)

Version 2.0.1 is an accepted version though so should work no?

When I use https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=2.0.1&identifiers=emodnet:2018_st_All_avg_POSTER&request=DescribeCoverage

I similarly get an error

<ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd">
<ows:Exception exceptionCode="emptyCoverageIdList" locator="coverageId">
<ows:ExceptionText>Required parameter coverageId missing</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

but when I change to using coverageId to specify the coverage (https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=2.0.1&coverageId=emodnet:2018_st_All_avg_POSTER&request=DescribeCoverage) again I get a full coverageDescription

<wcs:CoverageDescriptions xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmlcov="http://www.opengis.net/gmlcov/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:wcsgs="http://www.geoserver.org/wcsgs/2.0" xsi:schemaLocation=" http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsDescribeCoverage.xsd http://www.geoserver.org/wcsgs/2.0 https://ows.emodnet-humanactivities.eu/geoserver/schemas/wcs/2.0/wcsgs.xsd">
<wcs:CoverageDescription gml:id="emodnet__2018_st_All_avg_POSTER">
<gml:description>Generated from GeoTIFF</gml:description>
<gml:name>2018_st_All_avg_POSTER</gml:name>
<gml:boundedBy>
<gml:Envelope srsName="http://www.opengis.net/def/crs/EPSG/0/3035" axisLabels="x y" uomLabels="m m" srsDimension="2">
<gml:lowerCorner>-623000.0 604000.0</gml:lowerCorner>
<gml:upperCorner>6885000.0 7035000.0</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<wcs:CoverageId>emodnet__2018_st_All_avg_POSTER</wcs:CoverageId>
<gml:coverageFunction>
<gml:GridFunction>
<gml:sequenceRule axisOrder="+1 +2">Linear</gml:sequenceRule>
<gml:startPoint>0 0</gml:startPoint>
</gml:GridFunction>
</gml:coverageFunction>
<gmlcov:metadata>
<gmlcov:Extension>
<ows:Keywords>
<ows:Keyword>2018_st_All_avg</ows:Keyword>
<ows:Keyword>WCS</ows:Keyword>
<ows:Keyword>GeoTIFF</ows:Keyword>
</ows:Keywords>
<ows:Metadata xlink:type="simple" xlink:href="https://www.emodnet.eu/geonetwork/emodnet/eng/csw?service=CSW&version=2.0.2&request=GetRecordById&elementsetname=full&id=ccc4cd96-a838-4368-8a7f-9e2637a8b3ef&outputschema=http://www.isotc211.org/2005/gmd"/>
</gmlcov:Extension>
</gmlcov:metadata>
<gml:domainSet>
<gml:RectifiedGrid gml:id="grid00__emodnet__2018_st_All_avg_POSTER" dimension="2">
<gml:limits>
<gml:GridEnvelope>
<gml:low>0 0</gml:low>
<gml:high>7507 6430</gml:high>
</gml:GridEnvelope>
</gml:limits>
<gml:axisLabels>i j</gml:axisLabels>
<gml:origin>
<gml:Point gml:id="p00_emodnet__2018_st_All_avg_POSTER" srsName="http://www.opengis.net/def/crs/EPSG/0/3035">
<gml:pos>-622500.0 7034500.0</gml:pos>
</gml:Point>
</gml:origin>
<gml:offsetVector srsName="http://www.opengis.net/def/crs/EPSG/0/3035">1000.0 0.0</gml:offsetVector>
<gml:offsetVector srsName="http://www.opengis.net/def/crs/EPSG/0/3035">0.0 -1000.0</gml:offsetVector>
</gml:RectifiedGrid>
</gml:domainSet>
<gmlcov:rangeType>
<swe:DataRecord>
<swe:field name="GRAY_INDEX">
<swe:Quantity>
<swe:description>GRAY_INDEX</swe:description>
<swe:nilValues>
<swe:NilValues>
<swe:nilValue reason="http://www.opengis.net/def/nil/OGC/0/unknown">-3.4028234663852886E38</swe:nilValue>
</swe:NilValues>
</swe:nilValues>
<swe:uom code="W.m-2.Sr-1"/>
<swe:constraint>
<swe:AllowedValues>
<swe:interval>-3.4028235E38 3.4028235E38</swe:interval>
</swe:AllowedValues>
</swe:constraint>
</swe:Quantity>
</swe:field>
</swe:DataRecord>
</gmlcov:rangeType>
<wcs:ServiceParameters>
<wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
<wcs:nativeFormat>image/tiff</wcs:nativeFormat>
</wcs:ServiceParameters>
</wcs:CoverageDescription>
</wcs:CoverageDescriptions>

Any ideas what might be going on?

Hi @annakrystalli yes, the problem starts within the WCS capabilities, that within this WCS version spec, at least through Geoserver (we would need to check), the Coverage Ids, are not identified with a ':' as namespace/layer identifier, but with a double underscore.
At now, the ows4R WCS client follows strictly what it finds in the capabilities, https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=2.0.1&request=GetCapabilities , meaning that if you try to search for emodnet__2018_st_All_avg_POSTER it will find it, and you will be able to get its description. On the other hand, if you try emodnet:2018_st_All_avg_POSTER, the capabilities doesn't list it so the layer is not found.

What geoserver does probably then at DescribeCoverage request level, is to add a patch to make the latter layer name work, although it's not correct if you look at the get Capabilities.

I'm not against a patch to allow some flexibility on this, but first we would need to look into the standard, to understand what belongs to it, from what belongs to GeoServer patching.

Thanks for all the info! This might be something I can handle in EMODnetWCS package but might be useful for ows4r to handle natively if it makes sense. Should I find out what type of server the human activities one is?

It's a GeoServer. Let me see if I can add some "glue" to allow ":" or "__" namespace separator

OK, I've played around a bit and have some updates (see reprex below).

In summary:

  • double underscore works but only in 2.0.1 version
  • getRange() doesn't work, but accessing the rangeType object of the description works. Is that how it should work?
## Use __ namespace
## Version 1.1.1 (same with version 1.1.0)
library(ows4R)
#> Loading required package: geometa
#> Loading ISO 19139 XML schemas...
#> Loading ISO 19115 codelists...
#> Loading IANA mime types...
#> No encoding supplied: defaulting to UTF-8.
#> Loading required package: keyring
wcs1 <- WCSClient$new(url = "https://ows.emodnet-humanactivities.eu/wcs",
                      serviceVersion = "1.1.1",
                      logger = "DEBUG")
#> [ows4R][INFO] OWSGetCapabilities - Fetching https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=1.1.1&request=GetCapabilities
wcs1$describeCoverage("emodnet__2018_st_All_avg_POSTER")
#> [ows4R][INFO] WCSClient - Fetching coverageSummary description for 'emodnet__2018_st_All_avg_POSTER' ...
#> NULL
wcs1$getCapabilities()$findCoverageSummaryById("emodnet__2018_st_All_avg_POSTER", exact = TRUE)$getDescription()
#> Error in eval(expr, envir, enclos): attempt to apply non-function


## Version 2.0.1
wcs2 <- WCSClient$new(url = "https://ows.emodnet-humanactivities.eu/wcs",
                      serviceVersion = "2.0.1",
                      logger = "DEBUG")
#> [ows4R][INFO] OWSGetCapabilities - Fetching https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=2.0.1&request=GetCapabilities
wcs2$describeCoverage("emodnet__2018_st_All_avg_POSTER")
#> [ows4R][INFO] WCSClient - Fetching coverageSummary description for 'emodnet__2018_st_All_avg_POSTER' ... 
#> [ows4R][INFO] WCSDescribeCoverage - Fetching https://ows.emodnet-humanactivities.eu/wcs?service=WCS&version=2.0.1&coverageId=emodnet__2018_st_All_avg_POSTER&request=DescribeCoverage
#> Loading required package: sf
#> Linking to GEOS 3.9.1, GDAL 3.4.0, PROJ 8.1.1; sf_use_s2() is TRUE
#> <WCSCoverageDescription>
#> ....|-- boundedBy <GMLEnvelope>
#> ........|-- lowerCorner: -623000 604000
#> ........|-- upperCorner: 6885000 7035000
#> ....|-- domainSet <GMLRectifiedGrid>
#> ........|-- limits <GMLElement>
#> ............|-- GridEnvelope <GMLElement>
#> ................|-- low <GMLElement>
#> ....................|-- value: 0 0
#> ................|-- high <GMLElement>
#> ....................|-- value: 7507 6430
#> ........|-- axisLabels <GMLElement>
#> ............|-- value: i j
#> ........|-- origin <GMLPoint>
#> ............|-- pos: -622500 7034500
#> ........|-- offsetVector <GMLElement>
#> ............|-- value: 1000.0 0.0
#> ........|-- offsetVector <GMLElement>
#> ............|-- value: 0.0 -1000.0
#> ....|-- coverageFunction <GMLGridFunction>
#> ........|-- sequenceRule <GMLElement>
#> ............|-- value: Linear
#> ........|-- startPoint <GMLElement>
#> ............|-- value: 0 0
#> ....|-- rangeType <GMLElement>
#> ........|-- DataRecord <GMLElement>
#> ............|-- field <GMLElement>
#> ................|-- Quantity <GMLElement>
#> ....................|-- description <GMLElement>
#> ........................|-- value: GRAY_INDEX
#> ....................|-- nilValues <GMLElement>
#> ........................|-- NilValues <GMLElement>
#> ............................|-- nilValue <GMLElement>
#> ................................|-- value: -3.4028234663852886E38
#> ....................|-- uom <GMLElement>
#> ....................|-- constraint <GMLElement>
#> ........................|-- AllowedValues <GMLElement>
#> ............................|-- interval <GMLElement>
#> ................................|-- value: -3.4028235E38 3.4028235E38
#> ....|-- metadata <GMLCOVExtension>
#> ........|-- Keywords <ISOElementSequence>
#> ............|-- Keyword: GeoTIFF
#> ........|-- Metadata[xlink:type=simple,xlink:href=https://www.emodnet.eu/geonetwork/emodnet/eng/csw?service=CSW&version=2.0.2&request=GetRecordById&elementsetname=full&id=ccc4cd96-a838-4368-8a7f-9e2637a8b3ef&outputschema=http://www.isotc211.org/2005/gmd]
#> ....|-- CoverageId <GMLElement>
#> ........|-- value: emodnet__2018_st_All_avg_POSTER
#> ....|-- ServiceParameters <ISOElementSequence>
#> ........|-- CoverageSubtype: RectifiedGridCoverage
#> ........|-- nativeFormat: image/tiff
wcs2$getCapabilities()$findCoverageSummaryById("emodnet__2018_st_All_avg_POSTER", exact = TRUE)$getDescription()
#> <WCSCoverageDescription>
#> ....|-- boundedBy <GMLEnvelope>
#> ........|-- lowerCorner: -623000 604000
#> ........|-- upperCorner: 6885000 7035000
#> ....|-- domainSet <GMLRectifiedGrid>
#> ........|-- limits <GMLElement>
#> ............|-- GridEnvelope <GMLElement>
#> ................|-- low <GMLElement>
#> ....................|-- value: 0 0
#> ................|-- high <GMLElement>
#> ....................|-- value: 7507 6430
#> ........|-- axisLabels <GMLElement>
#> ............|-- value: i j
#> ........|-- origin <GMLPoint>
#> ............|-- pos: -622500 7034500
#> ........|-- offsetVector <GMLElement>
#> ............|-- value: 1000.0 0.0
#> ........|-- offsetVector <GMLElement>
#> ............|-- value: 0.0 -1000.0
#> ....|-- coverageFunction <GMLGridFunction>
#> ........|-- sequenceRule <GMLElement>
#> ............|-- value: Linear
#> ........|-- startPoint <GMLElement>
#> ............|-- value: 0 0
#> ....|-- rangeType <GMLElement>
#> ........|-- DataRecord <GMLElement>
#> ............|-- field <GMLElement>
#> ................|-- Quantity <GMLElement>
#> ....................|-- description <GMLElement>
#> ........................|-- value: GRAY_INDEX
#> ....................|-- nilValues <GMLElement>
#> ........................|-- NilValues <GMLElement>
#> ............................|-- nilValue <GMLElement>
#> ................................|-- value: -3.4028234663852886E38
#> ....................|-- uom <GMLElement>
#> ....................|-- constraint <GMLElement>
#> ........................|-- AllowedValues <GMLElement>
#> ............................|-- interval <GMLElement>
#> ................................|-- value: -3.4028235E38 3.4028235E38
#> ....|-- metadata <GMLCOVExtension>
#> ........|-- Keywords <ISOElementSequence>
#> ............|-- Keyword: GeoTIFF
#> ........|-- Metadata[xlink:type=simple,xlink:href=https://www.emodnet.eu/geonetwork/emodnet/eng/csw?service=CSW&version=2.0.2&request=GetRecordById&elementsetname=full&id=ccc4cd96-a838-4368-8a7f-9e2637a8b3ef&outputschema=http://www.isotc211.org/2005/gmd]
#> ....|-- CoverageId <GMLElement>
#> ........|-- value: emodnet__2018_st_All_avg_POSTER
#> ....|-- ServiceParameters <ISOElementSequence>
#> ........|-- CoverageSubtype: RectifiedGridCoverage
#> ........|-- nativeFormat: image/tiff

## getRange

wcs2$describeCoverage("emodnet__2018_st_All_avg_POSTER")$getRange()
#> [ows4R][INFO] WCSClient - Fetching coverageSummary description for 'emodnet__2018_st_All_avg_POSTER' ...
#> list()
wcs2$describeCoverage("emodnet__2018_st_All_avg_POSTER")$rangeType
#> [ows4R][INFO] WCSClient - Fetching coverageSummary description for 'emodnet__2018_st_All_avg_POSTER' ...
#> <GMLElement>
#> ....|-- DataRecord <GMLElement>
#> ........|-- field <GMLElement>
#> ............|-- Quantity <GMLElement>
#> ................|-- description <GMLElement>
#> ....................|-- value: GRAY_INDEX
#> ................|-- nilValues <GMLElement>
#> ....................|-- NilValues <GMLElement>
#> ........................|-- nilValue <GMLElement>
#> ............................|-- value: -3.4028234663852886E38
#> ................|-- uom <GMLElement>
#> ................|-- constraint <GMLElement>
#> ....................|-- AllowedValues <GMLElement>
#> ........................|-- interval <GMLElement>
#> ............................|-- value: -3.4028235E38 3.4028235E38
wcs2$getCapabilities()$findCoverageSummaryById("emodnet__2018_st_All_avg_POSTER", exact = TRUE)$getDescription()$getRange()
#> list()
wcs2$getCapabilities()$findCoverageSummaryById("emodnet__2018_st_All_avg_POSTER", exact = TRUE)$getDescription()$rangeType
#> <GMLElement>
#> ....|-- DataRecord <GMLElement>
#> ........|-- field <GMLElement>
#> ............|-- Quantity <GMLElement>
#> ................|-- description <GMLElement>
#> ....................|-- value: GRAY_INDEX
#> ................|-- nilValues <GMLElement>
#> ....................|-- NilValues <GMLElement>
#> ........................|-- nilValue <GMLElement>
#> ............................|-- value: -3.4028234663852886E38
#> ................|-- uom <GMLElement>
#> ................|-- constraint <GMLElement>
#> ....................|-- AllowedValues <GMLElement>
#> ........................|-- interval <GMLElement>
#> ............................|-- value: -3.4028235E38 3.4028235E38

Created on 2022-08-16 by the reprex package (v2.0.1)

With respect to range and rangeType, see my comments at #80 (comment)

@annakrystalli for usage matters, could you use the Discussion panel? in case there is a bug or feature request, we will convert it to ticket