Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Daniel Goodman wrote:
Hi I am using the most up to date libraries. One of the files is attached. the code fragment is public boolean missingValues(Variable v) { Attribute missing = v.findAttribute("missing_value"); Thanks for your help Daniel
im not sure what you are seeing. this test is working for me: public void testBug() throws java.io.IOException {NetcdfFile ncfile = new NetcdfFile("C:/data/unknown/2ly7ca.pg.gmts.x3.nc");
Variable v = null; assert(null != (v = ncfile.findVariable("gm_field2max"))); Attribute att = v.findAttribute("missing_value"); assert(null != att); double val = att.getNumericValue().doubleValue(); assert close(-1.07374182E9, val): val; ncfile.close(); } boolean close( double d1, double d2) { return Math.abs((d1-d2)/d1) < 1.0e-5; }you are probably making some simple mistake; check that you are looking at the Variable you think you want.
heres what i get through the ncdump (C library): $ ncdump -h 2ly7ca.pg.gmts.x3.nc netcdf 2ly7ca.pg.gmts.x3 { dimensions: time = UNLIMITED ; // (180 currently) variables: double time(time) ; time:units = "calendar_month as %Y%m.%f" ; time:axis = "T" ; float gm_field2max(time) ;gm_field2max:comment = "Field from ukmo UM model run 2LY7C" ; gm_field2max:long_name = "GLOBAL MEAN U COMPNT OF WIND AFTER TIMESTEP" ;
gm_field2max:units = "" ; gm_field2max:missing_value = -1.073742e+009f ; gm_field2max:axis = "T" ; float gm_field3max(time) ;gm_field3max:comment = "Field from ukmo UM model run 2LY7C" ; gm_field3max:long_name = "GLOBAL MEAN V COMPNT OF WIND AFTER TIMESTEP" ;
gm_field3max:units = "" ; gm_field3max:missing_value = -1.073742e+009f ; gm_field3max:axis = "T" ; float gm_tasmin(time) ; gm_tasmin:comment = "Field from ukmo UM model run 2LY7C" ;gm_tasmin:long_name = "GLOBAL MEAN Daily minimum surface (1.5m) temperature" ;
gm_tasmin:units = "K" ;gm_tasmin:level_description = "1.5 meters above earth surface" ;
gm_tasmin:missing_value = -1.073742e+009f ; gm_tasmin:axis = "T" ; float gm_tasmax(time) ; gm_tasmax:comment = "Field from ukmo UM model run 2LY7C" ;gm_tasmax:long_name = "GLOBAL MEAN Daily maximum surface (1.5m) temperature" ;
gm_tasmax:units = "K" ;gm_tasmax:level_description = "1.5 meters above earth surface" ;
gm_tasmax:missing_value = -1.073742e+009f ; gm_tasmax:axis = "T" ; float gm_prmax(time) ; gm_prmax:comment = "Field from ukmo UM model run 2LY7C" ;gm_prmax:long_name = "GLOBAL MEAN Total precipitation rate" ;
gm_prmax:units = "kg/(m^2*s)" ; gm_prmax:level_description = "Earth surface" ; gm_prmax:missing_value = -1.073742e+009f ; gm_prmax:axis = "T" ; // global attributes: :Conventions = "GDT 1.3" ; :appendices = 1 ; :calendar = "360" ; :production = "lats" ; :alpham = 0.57f ; :asym_lambda = 0.15f ; :charnock = 0.012f ; :ct = 0.0001f ; :cw_land = 0.0001f ; :cw_sea = 2.e-005f ;:diff_coeff = 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008 f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 4000000.f ; :diff_coeff_q = 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+0 08f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 5.47e+008f, 1.5e+008f, 1.5e+008f, 1.5e+008f, 1.5e+008f, 1.5e+008f, 4000000.f ;
:diff_exp = "3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 " ; :diff_exp_q = "3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 1 " ; :dtheta = 0.02f ; :dtice = -5.f ;:eacf = 0.7f, 0.7f, 0.7f, 0.7f, 0.7f, 0.666f, 0.633f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f,
0.6f ; :eddydiff = 0.000375f ; :entcoef = 9.f ; :exptid = "2ly7 " ; :g0 = 10.f ; :i_cnv_ice_lw = "1 " ; :i_cnv_ice_sw = "3 " ; :i_st_ice_lw = "1 " ; :i_st_ice_sw = "2 " ; :ice_size = 2.5e-005f ; :kay_gwave = 20000.f ; :kay_lee_gwdrag = 300000.f ; :r_layers = "4 4 3 3 " ;:rhcrit = 0.95f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f,
0.9f ; :start_level_gwdrag = "3 " ; :vf1 = 2.f ; :z0fsea = 0.0013f ;:EXPTURL = "https://climateapps.oucs.ox.ac.uk//cgi-bin/rel2.2//expt/fromfile.pl?file=climate.cont&expt=142990 https://c limateapps.oucs.ox.ac.uk//cgi-bin/rel2.2//expt/fromfile.pl?file=climate.doub&expt=142990 https://climateapps.oucs.ox.ac.uk//cgi-bin/rel 2.2//expt/ncatts.pl?expt=142990 https://climateapps.oucs.ox.ac.uk//cgi-bin/rel2.2//expt/fromfile.pl?file=climate.spin&expt=142990 " ;
:comment = "blank" ; :institution = "climateprediction.net/ukmo" ; } heres what i get through the java library: netcdf C:/data/unknown/2ly7ca.pg.gmts.x3.nc { dimensions: time = UNLIMITED; // (180 currently) // (has coord.var) variables: double time(time); :units = "calendar_month as %Y%m.%f"; :axis = "T"; float gm_field2max(time); :comment = "Field from ukmo UM model run 2LY7C"; :long_name = "GLOBAL MEAN U COMPNT OF WIND AFTER TIMESTEP"; :units = ""; :missing_value = -1.07374182E9; // float :axis = "T"; float gm_field3max(time); :comment = "Field from ukmo UM model run 2LY7C"; :long_name = "GLOBAL MEAN V COMPNT OF WIND AFTER TIMESTEP"; :units = ""; :missing_value = -1.07374182E9; // float :axis = "T"; float gm_tasmin(time); :comment = "Field from ukmo UM model run 2LY7C"; :long_name = "GLOBAL MEAN Daily minimum surface (1.5m) temperature"; :units = "K"; :level_description = "1.5 meters above earth surface"; :missing_value = -1.07374182E9; // float :axis = "T"; float gm_tasmax(time); :comment = "Field from ukmo UM model run 2LY7C"; :long_name = "GLOBAL MEAN Daily maximum surface (1.5m) temperature"; :units = "K"; :level_description = "1.5 meters above earth surface"; :missing_value = -1.07374182E9; // float :axis = "T"; float gm_prmax(time); :comment = "Field from ukmo UM model run 2LY7C"; :long_name = "GLOBAL MEAN Total precipitation rate"; :units = "kg/(m^2*s)"; :level_description = "Earth surface"; :missing_value = -1.07374182E9; // float :axis = "T"; // Global Attributes: :Conventions = "GDT 1.3"; :appendices = 1; // int :calendar = "360"; :production = "lats"; :alpham = 0.57; // float :asym_lambda = 0.15; // float :charnock = 0.012; // float :ct = 1.0E-4; // float :cw_land = 1.0E-4; // float :cw_sea = 2.0E-5; // float:diff_coeff = 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 4000000.0; // float :diff_coeff_q = 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 5.47E8, 1.5E8, 1.5E8, 1.5E8, 1.5E8, 1.5E8, 4000000.0; // float
:diff_exp = "3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 "; :diff_exp_q = "3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 1 "; :dtheta = 0.02; // float :dtice = -5.0; // float:eacf = 0.7, 0.7, 0.7, 0.7, 0.7, 0.666, 0.633, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6; // float
:eddydiff = 3.75E-4; // float :entcoef = 9.0; // float :exptid = "2ly7 "; :g0 = 10.0; // float :i_cnv_ice_lw = "1 "; :i_cnv_ice_sw = "3 "; :i_st_ice_lw = "1 "; :i_st_ice_sw = "2 "; :ice_size = 2.5E-5; // float :kay_gwave = 20000.0; // float :kay_lee_gwdrag = 300000.0; // float :r_layers = "4 4 3 3 ";:rhcrit = 0.95, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9; // float
:start_level_gwdrag = "3 "; :vf1 = 2.0; // float :z0fsea = 0.0013; // float:EXPTURL = "https://climateapps.oucs.ox.ac.uk//cgi-bin/rel2.2//expt/fromfile.pl?file=climate.cont&expt=142990 https://climateapps.oucs.ox.ac.uk//cgi-bin/rel2.2//expt/fromfile.pl?file=climate.doub&expt=142990 https://climateapps.oucs.ox.ac.uk//cgi-bin/rel2.2//expt/ncatts.pl?expt=142990 https://climateapps.oucs.ox.ac.uk//cgi-bin/rel2.2//expt/fromfile.pl?file=climate.spin&expt=142990 ";
:comment = "blank"; :institution = "climateprediction.net/ukmo"; }
netcdf-java
archives: