Hi
I'm a first time user of VisAD, evaluating its potential for
a meteorological application. I'm having some degree of
difficulty getting started reading from a large NetCDF file.
Basically, I have this bit of code:
> public static void main(String[] args) throws Exception
> {
> // create a data reference for the image
> System.err.println("creating a data reference");
> final DataReference data_ref = new DataReferenceImpl("data");
>
> // open a NetCDF file with the time sequences
> System.err.println("opening the data sequence "+args[0]);
> Plain plain = new Plain();
> FlatField data_sequence = (FlatField) plain.open(args[0]);
> }
And I get this result:
> sun4:darren@krypton:bom-data> java ReadGrid a19970701.nc
> creating a data reference
> opening the data sequence a19970701.nc
> Exception in thread "main" visad.SetException: Gridded2DSet: samples do not
> form a valid grid (0,0)
> at visad.GriddedSet.create(Compiled Code)
> at visad.GriddedSet.create(Compiled Code)
> at visad.GriddedSet.create(Compiled Code)
> at visad.data.netcdf.in.NcFunction.getGriddedSet(Compiled Code)
> at visad.data.netcdf.in.NcFunction.getDomainSet(Compiled Code)
> at visad.data.netcdf.in.NcNestedFunction.<init>(Compiled Code)
> at visad.data.netcdf.in.NcFunction.newNcFunction(Compiled Code)
> at visad.data.netcdf.in.NcData.newNcData(Compiled Code)
> at visad.data.netcdf.in.NetcdfAdapter.getDataSet(Compiled Code)
> at visad.data.netcdf.in.NetcdfAdapter.<init>(Compiled Code)
> at visad.data.netcdf.Plain.open(Compiled Code)
> at ReadGrid.main(Compiled Code)
The header of the NetCDF file I'm trying to read looks like:
> netcdf a19970701 {
> dimensions:
> lon = 360 ;
> lat = 181 ;
> lvl = 19 ;
> time = UNLIMITED ; // (4 currently)
> char_size = 4 ;
> variables:
> float lon(lon) ;
> lon:long_name = "longitudes" ;
> lon:type = "ll " ;
> lon:units = "degrees_E" ;
> float lat(lat) ;
> lat:long_name = "latitudes" ;
> lat:type = "ll " ;
> lat:units = "degrees_N" ;
> float lvl(lvl) ;
> lvl:long_name = "vertical levels" ;
> lvl:type = "pressure" ;
> lvl:units = "hPa" ;
> lvl:positive = "down" ;
> float time(time) ;
> time:units = "days since 1997-06-30 23:00:00" ;
> char seg_type(time, char_size) ;
> seg_type:long_name = "segment of bmrc header type" ;
> int tm_step_size ;
> tm_step_size:long_name = "time step size" ;
> tm_step_size:units = "seconds" ;
> int base_date(time) ;
> base_date:long_name = "base date (YYYYMMDD) of this segment" ;
> int base_time(time) ;
> base_time:long_name = "base time (HHMM) of this segment" ;
> int valid_date(time) ;
> valid_date:long_name = "valid date (YYYYMMDD) of this
> segment" ;
> int valid_time(time) ;
> valid_time:long_name = "valid time (HHMM) of this segment" ;
> float sfc_geop(time, lat, lon) ;
> sfc_geop:grid_type = "spatial" ;
> sfc_geop:level_type = "single" ;
> float air_temp(time, lvl, lat, lon) ;
> air_temp:grid_type = "spatial" ;
> air_temp:level_type = "multi " ;
> float mix_rto(time, lvl, lat, lon) ;
> mix_rto:grid_type = "spatial" ;
> mix_rto:level_type = "multi " ;
> float zonal_wnd(time, lvl, lat, lon) ;
> zonal_wnd:grid_type = "spatial" ;
> zonal_wnd:level_type = "multi " ;
> float merid_wnd(time, lvl, lat, lon) ;
> merid_wnd:grid_type = "spatial" ;
> merid_wnd:level_type = "multi " ;
> float geop_ht(time, lvl, lat, lon) ;
> geop_ht:grid_type = "spatial" ;
> geop_ht:level_type = "multi " ;
> float mslp(time, lat, lon) ;
> mslp:grid_type = "spatial" ;
> mslp:level_type = "single" ;
>
> // global attributes:
> :history = "Produced by BMRC DP V15 19970711 15:48" ;
> :conventions = "COARDS" ;
> :modl_vrsn = "gam04e " ;
> :arch_vrsn = "g2.0 " ;
> :expt_id = "T79 " ;
> }
This file can be read with NetCDF 3.4. Don't ask me anything about the
data,
it's not mine! It is in excess of 100Mb, and I have tried difference VM
stack sizes.
Any suggestions would be appreciated.
Thanks
Darren
--
Darren Webb, B.Sc(Ma. & Comp. Sci.) Hons.
Distributed High Performance Computing Group
Department of Computer Science
University of Adelaide
South Australia 5005
AUSTRALIA
Phone: +61 0412 534 842
Email: darren@xxxxxxxxxxxxxxxxxx
WWW: http://www.cs.adelaide.edu.au/~darren
dopelar effect (n.)
the tendency of stupid ideas to seem smarter when they
come to you in rapid succession.