[ncl-talk] variable metadata getting overwritten when variable is written to a NetCDF4 file
Keith Lindsay
klindsay at ucar.edu
Mon Nov 2 19:28:14 MST 2015
Dave,
Thanks for your description of the subtleties of _FillValue and the
value-only assignment. Please note though that not only is the _FillValue
attribute getting added, the variable's pre-existing attributes are getting
lost. Do you consider this latter aspect a bug or feature? It is this that
I am more concerned about. Also, this removal of the pre-existing
attributes happens with NetCDF4 (for ncl version 6.3.0, but not 6.2.1) and
not with NetCDF3.
Keith
On Mon, Nov 2, 2015 at 5:13 PM, David Brown <dbrown at ucar.edu> wrote:
> Hi Keith,
> I think that what you are seeing is actually documented (although
> poorly apparently) behavior. At least, if, as I am assuming from your
> test script, the only attribute that gets passed through the
> value-only assignment is the _FillValue. The NCL Reference Manual says
> this about value-only assignment:
>
> "No dimension names, coordinate variables or attributes other than
> _FillValue are assigned. "
>
> In fact the _FillValue is a special attribute that even values (as
> opposed to variables) in NCL carry around. And it is propagated even
> through value-only assignment. That is because it is considered an
> essential component of the value.
>
> If in fact you are seeing other attributes get propagated let us know.
> Your test script only showed the _FillValue propagation as far as I
> could tell.
> -dave
>
>
>
>
>
>
> On Mon, Nov 2, 2015 at 9:03 AM, Keith Lindsay <klindsay at ucar.edu> wrote:
> > Hi,
> > Thanks Dennis. For other users that run into this behavior, a workaround
> to
> > avoid it is to ensure that the variable on the rhs of the problematic
> > assignment does not have the _FillValue attribute. I.e.
> > if (isatt(tmpvar, "_FillValue")) then
> > delete(tmpvar at _FillValue)
> > end if
> > Keith
> >
> >
> > On Mon, Nov 2, 2015 at 8:44 AM, Dennis Shea <shea at ucar.edu> wrote:
> >>
> >> A JIRA ticket [ NCL-2302 ] has been opened. THX
> >>
> >> On Mon, Nov 2, 2015 at 8:06 AM, Keith Lindsay <klindsay at ucar.edu>
> wrote:
> >> > Hi,
> >> >
> >> > I have come across an instance where I'm writing a variable to a file
> >> > and
> >> > the variable metadata in the file is getting overwritten, even though
> >> > I'm
> >> > using (/ ... /) on the right-hand side of the write to file statement.
> >> > That
> >> > is, the statement
> >> > f->$varname$ = (/ tmpvar /)
> >> > is overwriting the metadata for the file variable $varname$ in the
> file
> >> > pointed to by f. The attached script demonstrates the problem. This
> >> > seems
> >> > like an ncl bug to me.
> >> >
> >> > Details of my script that seem to matter are:
> >> > 1) the file is NetCDF4
> >> > 2) the file variable whose metadata is getting overwritten has been
> >> > defined
> >> > in the file but not written to yet
> >> > 3) the file variable whose metadata is getting overwritten does not
> have
> >> > the
> >> > _FillValue attribute
> >> > 4) the variable on rhs of write to file statement has _FillValue
> >> > attribute
> >> >
> >> > The problem happens with ncl 6.3.0 on yellowstone. It does not happen
> >> > with
> >> > ncl 6.2.1, though with 6.2.1 the _FillValue gets added to the file
> >> > variable's metadata, which is unexpected to me.
> >> >
> >> > Keith
> >> >
> >> > _______________________________________________
> >> > ncl-talk mailing list
> >> > ncl-talk at ucar.edu
> >> > List instructions, subscriber options, unsubscribe:
> >> > http://mailman.ucar.edu/mailman/listinfo/ncl-talk
> >> >
> >
> >
> >
> > _______________________________________________
> > ncl-talk mailing list
> > ncl-talk at ucar.edu
> > List instructions, subscriber options, unsubscribe:
> > http://mailman.ucar.edu/mailman/listinfo/ncl-talk
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20151102/df3fe396/attachment.html
More information about the ncl-talk
mailing list