Opened 9 years ago
Closed 6 years ago
#950 closed enhancement (fixed)
Null value must be an integer or integer interval
Reported by: | olcl | Owned by: | Dimitar Misev |
---|---|---|---|
Priority: | major | Milestone: | 9.7 |
Component: | qlparser | Version: | development |
Keywords: | Cc: | Peter Baumann, Bang Pham Huu, Vlad Merticariu | |
Complexity: | Hard |
Description (last modified by )
Currently the Null value when ingesting using wcst must be an integer or integer interval.
The vast majority of our netcdf files are datatype float so this feature does not work.
The error we receive is :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ows:ExceptionReport version="2.0.0" xsd:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink"> <ows:Exception exceptionCode="InvalidPropertyValue"> <ows:ExceptionText>Nil value 9.96920996839e+36 not supported. Only integer, or integer interval (written as "integer:integer") values are supported.</ows:ExceptionText> </ows:Exception> </ows:ExceptionReport>
Change History (3)
comment:1 by , 9 years ago
Cc: | added |
---|---|
Complexity: | Medium → Hard |
Component: | undecided → qlparser |
Description: | modified (diff) |
Milestone: | → 10.0 |
Type: | defect → enhancement |
comment:2 by , 8 years ago
comment:3 by , 6 years ago
Cc: | added; removed |
---|---|
Milestone: | 10.0 → 9.7 |
Resolution: | → fixed |
Status: | new → closed |
A patch has been applied that fixes this issue and allows specifying floating point values.
Some relevant points:
- This changes RASBASE and requires
update_db.sh
to be run (otherwise an appropriate error will be logged in the rasserver logs) - When a single null value is specified (not an interval), values are considered to be null values if they are in the interval
[nullvalue - DBL_EPSILON, nullvalue + DBL_EPSILON]
. DBL_EPSILON is a standard epsilon value for doubles in C++ from the<cfloat>
header; more info here: https://en.wikipedia.org/wiki/Machine_epsilon - When an
*
is specified as an upper or lower bound for a null value interval, internally it's converted to a minimum or maximum double value - nan values are handled correctly as well (and not allowed in intervals)
Note:
See TracTickets
for help on using tickets.
with the current netcdf recipe, it supports an option to set Null value, by setting (i.e: "nilValue": "-99999" as ingredient http://rasdaman.org/wiki/WCSTImportGuide/GeneralRecipe, this is a solution with WCST_Import (if someone find this ticket for the same problem).