gher-uliege / DIVAnd.jl

DIVAnd performs an n-dimensional variational analysis of arbitrarily located observations
GNU General Public License v2.0
70 stars 11 forks source link

"climatology_bounds" instead of variable names #105

Closed ax1ine closed 1 year ago

ax1ine commented 2 years ago

Seems like something happen with the transition from the version 2.7.8 to 2.7.9 with defining variable names.

This is what I get in v.2.7.8 and below:

`

double climatology_bounds(time, nv) (no compression);
    climatology_bounds:units = days since 1900-01-01 00:00:00 ;

float Temperature(time, depth, lat, lon) (compression=5);
    Temperature:_FillValue = 9.969209968E36 ;
    Temperature:missing_value = 9.969209968E36 ;
    Temperature:units = degrees_C ;
    Temperature:standard_name = sea_water_temperature ;
    Temperature:long_name = sea water temperature ;
    Temperature:cell_methods = time: mean within years time: mean over years ;

float Temperature_L1(time, depth, lat, lon) (compression=5);
    Temperature_L1:_FillValue = 9.969209968E36 ;
    Temperature_L1:missing_value = 9.969209968E36 ;
    Temperature_L1:units = degrees_C ;
    Temperature_L1:standard_name = sea_water_temperature ;
    Temperature_L1:long_name = sea water temperature masked using relative error threshold 0.3 ;

float Temperature_L2(time, depth, lat, lon) (compression=5);
    Temperature_L2:_FillValue = 9.969209968E36 ;
    Temperature_L2:missing_value = 9.969209968E36 ;
    Temperature_L2:units = degrees_C ;
    Temperature_L2:standard_name = sea_water_temperature ;
    Temperature_L2:long_name = sea water temperature masked using relative error threshold 0.5 ;

float Temperature_relerr(time, depth, lat, lon) (compression=5);
    Temperature_relerr:units = 1 ;
    Temperature_relerr:long_name = Relative error of sea water temperature ;
    Temperature_relerr:valid_min = 0 ;
    Temperature_relerr:valid_max = 1 ;
    Temperature_relerr:_FillValue = 9.969209968E36 ;
    Temperature_relerr:missing_value = 9.969209968E36 ;

`

And in DIVAnd 2.7.9

`

double climatology_bounds(time, nv) (no compression);
    climatology_bounds:units = days since 1900-01-01 00:00:00 ;

double climatology_bounds(time, nv) ;
    climatology_bounds:units =  ;

double climatology_bounds(time, nv) ;
    climatology_bounds:units =  ;

double climatology_bounds(time, nv) ;
    climatology_bounds:units =  ;

double climatology_bounds(time, nv) ;
    climatology_bounds:units =  ;

`

DIVAnd 2.7.7 works, 2.7.8 works, 2.7.9 produces the error above. This problem doesn't depend neither on Julia (i tried 1.6 - 1.8), nor on NCDatasets (0.12.5 - 0.12.7).

ncvarattrib is defined as following: ncvarattrib = OrderedDict("units" => "degrees_C", "standard_name" => "sea_water_temperature", "long_name" => "sea water temperature")

Is there something new in the ncvarattrib format?

Alexander-Barth commented 2 years ago

I do not quite understand the output for DIVAnd 2.7.9. You can only have a single variable called climatology_bounds in a NetCDF file. The NetCDF format should not allow multiple variables with the same name.

Can you confirm that the issue persists with the latest version of NetCDF_jll ( v400.902.5+1) ? https://github.com/JuliaBinaryWrappers/NetCDF_jll.jl

If yes, can you make a minimal reproducer for this and provide the output of ]status --manifest

jmbeckers commented 1 year ago

Anything new here or can we close the issue ?

ctroupin commented 1 year ago

I propose to close and re-open if @ax1ine gets the issue again.