The plan is to use OpenMI 1.4.0 as run engine for our Hydrological models.
I like the idea of separating IO from the model and this is done by creating three IEngine components:
- Data Input (reading grid files)
- The model framework (compute the water balance)
- Data output (writing grid files)
and link them together.
One of the input grid files is temperature, with values in Kelvin.
The model works with temperature in Celsius.
I have set up a link from "Data Input" to "The model framework" for the parameter temperature, with Kelvin Quantity connecting to a Celsius Quantity.
The conversion from Kelvin to Celsius works fine, except for handling of missing values (-9999).
We have values[] = { 300, -9999, 301, 310, ...}. After converting, the values are in Celcius as expected.
But the -9999 value (representing missing value) is also converted, which is not what I expected.
I have located the converting to
Oatc.OpenMI.Sdk.Wrapper.SmartOuputLink.ConvertUnit(). I can't see any handling of missing values here.
Do I miss something or is this a forgotten missing value handling?
-Bård Grønbech (hydroinformatic system developer)
This has missed the cut for 1.4.1 and will be considerred 1.4.2 or 2.0