Firstly, I am having second thoughts about my suggested terms 'external' and
'internal'. A respected
colleague thought they meant the opposite of what I meant. So how about
just 'disk value' and 'memory value?
Or 'physical value' and 'logical value'?
> Date: Mon, 23 Apr 2001 13:47:05 -0600
> From: John Caron <caron@xxxxxxxxxxxxxxxx>
> Subject: Re: ncdigest V1 #587 (standard handling of scale/offset and missi
> ng data)
>
> > I assume you mean missing_value. There is no problem if missing_value
> is
> > merely a hint for output.
> > You simply alway ignore it (on input at least)!
>
> I am reading an existing file, theres no option of deleting or forcing
> renaming. I want to do as good of job as possible in extracting meaning
> out of the file. Someone has taken the time to add a missing_value
> attribute to the file. It doesnt seem reasonable to ignore it, because:
> if they are followng the UG conventions, it wont be there, so no
> problem. The fact that it exists means they arent following the
> conventions (or have made a mistake) so you dont know what logic they
> are following. In that case, I would fall back on what a reasonalble
> person would intend (who doesnt know about the conventions).
>
If there is no valid range defined, but missing_value is defined, then I can
see it makes sense to use a positive value
to define a valid max and a non-positive value to define a valid min. (i.e
treat it like _FillValue)
> I dont understand. If _FillValue can be legal, how can you construct a
> valid_range with it, using it as the valid_min or valid_max? It seems
> like contradictory uses.
>
There are two cases.
_FillValue is a valid value if it is within a valid range defined by
valid_range, valid_min, valid_max.
If none of these three attributes are defined then it is assumed that
_FillValue is a missing value &
should be used to define one end of the valid range.
So if you want to use _FillValue to initialize a variable to a valid value
0, then you must define at
least one of valid_range, valid_min, valid_max.