Hello Gianfranco,
Where are you getting your BUFR files? I think the current (as well as
older) version of netcdf-java does not handle BUFR data from NCEP very well
since NCEP 1) concatenates many BUFR messages into a single file and 2)
embeds the BUFR table in the BUFR file.
It's been a while since I worked with this context, so I'm struggling to
recall if your error is the same one that I was encountering.
-kevin.
On Mon, Apr 7, 2014 at 12:38 PM, ShInKurO <shinkywork@xxxxxxxx> wrote:
> Hi,
> I've many bufr files to read, I'm using your java library and I've just
> followed your example on:
>
>
> http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/reference/C
> ookbook.html#readSequences
>
> but with version 4.2+ I've this error:
>
> 13:34:23,007 INFO [stdout] (default task-1) TableLookup cant find Table B
> descriptor = 0-30-196 in tables none, wmo.v13.composite mode=wmoOnly
> 13:34:23,008 INFO [stdout] (default task-1) TableLookup cant find Table B
> descriptor = 0-29-201 in tables none, wmo.v13.composite mode=wmoOnly
> 13:34:23,008 INFO [stdout] (default task-1) TableLookup cant find Table B
> descriptor = 0-29-193 in tables none, wmo.v13.composite mode=wmoOnly
> 13:34:23,009 INFO [stdout] (default task-1) TableLookup cant find Table B
> descriptor = 0-29-194 in tables none, wmo.v13.composite mode=wmoOnly
> 13:34:23,009 INFO [stdout] (default task-1) TableLookup cant find Table B
> descriptor = 0-29-195 in tables none, wmo.v13.composite mode=wmoOnly
> 13:34:23,010 INFO [stdout] (default task-1) TableLookup cant find Table B
> descriptor = 0-29-196 in tables none, wmo.v13.composite mode=wmoOnly
> 13:34:23,010 INFO [stdout] (default task-1) TableLookup cant find Table B
> descriptor = 0-29-199 in tables none, wmo.v13.composite mode=wmoOnly
> 13:34:23,011 INFO [stdout] (default task-1) TableLookup cant find Table B
> descriptor = 0-29-200 in tables none, wmo.v13.composite mode=wmoOnly
> 13:34:23,011 INFO [stdout] (default task-1) TableLookup cant find Table D
> descriptor 3-21-250 in tables
> none,resource:/resources/bufrTables/wmo/TableD-121509.csv mode=wmoOnly
> 13:34:23,011 INFO [stdout] (default task-1) TableLookup cant find Table D
> descriptor 3-21-193 in tables
> none,resource:/resources/bufrTables/wmo/TableD-121509.csv mode=wmoOnly
> 13:34:23,012 INFO [stdout] (default task-1) Exception: BUFR file has
> incomplete tables
> 13:34:23,013 ERROR [stderr] (default task-1)
> java.lang.IllegalStateException: BUFR file has incomplete tables
> 13:34:23,013 ERROR [stderr] (default task-1) at
> ucar.nc2.iosp.bufr.BufrIosp.open(BufrIosp.java:99)
> 13:34:23,013 ERROR [stderr] (default task-1) at
> ucar.nc2.NetcdfFile.<init>(NetcdfFile.java:1439)
> 13:34:23,014 ERROR [stderr] (default task-1) at
> ucar.nc2.NetcdfFile.open(NetcdfFile.java:846)
> 13:34:23,014 ERROR [stderr] (default task-1) at
> ucar.nc2.NetcdfFile.open(NetcdfFile.java:479)
> 13:34:23,014 ERROR [stderr] (default task-1) at
> ucar.nc2.NetcdfFile.open(NetcdfFile.java:449)
> 13:34:23,014 ERROR [stderr] (default task-1) at
> ucar.nc2.NetcdfFile.open(NetcdfFile.java:436)
> 13:34:23,015 ERROR [stderr] (default task-1) at
> ucar.nc2.NetcdfFile.open(NetcdfFile.java:424)
>
> So I've taken your sources of 4.2 version (I've not found sources of latest
> version...) and I've modified them to try to read these my bufr files, but
> even if I'm able to read description of BUFR content I'm not able to read
> data section. I've just tried with your 4.3+ version but I've the same
> error.
>
> I'm trying to test this code to get values but I've zero returns:
>
>
> NetcdfFile ncfile = NetcdfFile.open(filename);
>
> Variable fvar = ncfile.findVariable("obs."+innerSeq);
>
> Array uhm =null;
>
> if (fvar!=null)
> uhm= fvar.read();
>
> Object uhmstr = null;
>
> if (uhm!=null)
> uhmstr =uhm.copyToNDJavaArray();
>
>
> DataType dtt = tmp_.getDataType();
>
> try
> {
> if (dtt.name().equalsIgnoreCase("int"))
> {
> pw.println(((int[])uhmstr)[0]);
> }
> else if (dtt.name().equalsIgnoreCase("byte"))
> {
> pw.println(((byte[])uhmstr)[0]);
> }
> else if (dtt.name().equalsIgnoreCase("short"))
> {
> pw.println(((short[])uhmstr)[0]);
> }
> else if (dtt.name().equalsIgnoreCase("char"))
> {
> pw.println(((char[])uhmstr)[0]);
> }
> else if (dtt.name().equalsIgnoreCase("double"))
> {
> pw.println(((double[])uhmstr)[0]);
> }
> }
> catch (Exception e)
> {
> ;
> }
>
>
> The CDL (readed from debug) is:
>
>
> netcdf D:\01-03-2014-09-00_R_SRI_@@@@_@@@@.BUFR {
> types:
> enum 0-29-2 { 'Cartesian' = 0, 'Polar' = 1, 'Other' = 2, 'Missing value'
> =
> 7};
> enum 0-30-31 { 'PPI' = 0, 'Composite' = 1, 'CAPPl' = 2, 'Vertical
> section'
> = 3, 'Alphanumeric data' = 4, 'Map of subject clutter' = 5, 'Map' = 6,
> 'Test
> picture' = 7, 'Comments' = 8, 'Map of ground occultation' = 9, 'Map of
> radar
> beam height' = 10, 'Other' = 14, 'Missing value' = 15};
> enum 0-33-3 { 'Data not suspect' = 0, 'Data slightly suspect' = 1, 'Data
> highly suspect' = 2, 'Data considered unfit for use' = 3, 'Quality
> information not given' = 7};
>
> variables:
>
> Sequence {
> int time;
> :units = "minutes since 2014-03-01T09:00:00Z";
> :long_name = "time of observation";
> :_CoordinateAxisType = "Time";
> byte WMO block number;
> :missing_value = 127B; // byte
> :BUFR:TableB_descriptor = "0-1-1";
> :BUFR:bitWidth = 7; // int
> short WMO station number;
> :missing_value = 1023S; // short
> :standard_name = "station_WMO_id";
> :BUFR:TableB_descriptor = "0-1-2";
> :BUFR:bitWidth = 10; // int
> short Year;
> :units = "Year";
> :missing_value = 4095S; // short
> :BUFR:TableB_descriptor = "0-4-1";
> :BUFR:bitWidth = 12; // int
> byte Month;
> :units = "Month";
> :missing_value = 15B; // byte
> :BUFR:TableB_descriptor = "0-4-2";
> :BUFR:bitWidth = 4; // int
> byte Day;
> :units = "Day";
> :missing_value = 63B; // byte
> :BUFR:TableB_descriptor = "0-4-3";
> :BUFR:bitWidth = 6; // int
> byte Hour;
> :units = "Hour";
> :missing_value = 31B; // byte
> :BUFR:TableB_descriptor = "0-4-4";
> :BUFR:bitWidth = 5; // int
> byte Minute;
> :units = "Minute";
> :missing_value = 63B; // byte
> :BUFR:TableB_descriptor = "0-4-5";
> :BUFR:bitWidth = 6; // int
> byte *NOT FOUND;
> :missing_value = 0B; // byte
> :BUFR:TableB_descriptor = "0-30-196";
> :BUFR:bitWidth = 0; // int
> short Latitude (coarse accuracy);
> :units = "degrees_north";
> :missing_value = 32767S; // short
> :scale_factor = 0.01f; // float
> :add_offset = -90.0f; // float
> :_CoordinateAxisType = "Lat";
> :BUFR:TableB_descriptor = "0-5-2";
> :BUFR:bitWidth = 15; // int
> short Longitude (coarse accuracy);
> :units = "degrees_east";
> :_Unsigned = "true";
> :missing_value = 65535L; // long
> :scale_factor = 0.01f; // float
> :add_offset = -180.0f; // float
> :_CoordinateAxisType = "Lon";
> :BUFR:TableB_descriptor = "0-6-2";
> :BUFR:bitWidth = 16; // int
> short Latitude (coarse accuracy)-1;
> :units = "degrees_north";
> :missing_value = 32767S; // short
> :scale_factor = 0.01f; // float
> :add_offset = -90.0f; // float
> :_CoordinateAxisType = "Lat";
> :BUFR:TableB_descriptor = "0-5-2";
> :BUFR:bitWidth = 15; // int
> short Longitude (coarse accuracy)-1;
> :units = "degrees_east";
> :_Unsigned = "true";
> :missing_value = 65535L; // long
> :scale_factor = 0.01f; // float
> :add_offset = -180.0f; // float
> :_CoordinateAxisType = "Lon";
> :BUFR:TableB_descriptor = "0-6-2";
> :BUFR:bitWidth = 16; // int
> short Latitude (coarse accuracy)-2;
> :units = "degrees_north";
> :missing_value = 32767S; // short
> :scale_factor = 0.01f; // float
> :add_offset = -90.0f; // float
> :_CoordinateAxisType = "Lat";
> :BUFR:TableB_descriptor = "0-5-2";
> :BUFR:bitWidth = 15; // int
> short Longitude (coarse accuracy)-2;
> :units = "degrees_east";
> :_Unsigned = "true";
> :missing_value = 65535L; // long
> :scale_factor = 0.01f; // float
> :add_offset = -180.0f; // float
> :_CoordinateAxisType = "Lon";
> :BUFR:TableB_descriptor = "0-6-2";
> :BUFR:bitWidth = 16; // int
> short Latitude (coarse accuracy)-3;
> :units = "degrees_north";
> :missing_value = 32767S; // short
> :scale_factor = 0.01f; // float
> :add_offset = -90.0f; // float
> :_CoordinateAxisType = "Lat";
> :BUFR:TableB_descriptor = "0-5-2";
> :BUFR:bitWidth = 15; // int
> short Longitude (coarse accuracy)-3;
> :units = "degrees_east";
> :_Unsigned = "true";
> :missing_value = 65535L; // long
> :scale_factor = 0.01f; // float
> :add_offset = -180.0f; // float
> :_CoordinateAxisType = "Lon";
> :BUFR:TableB_descriptor = "0-6-2";
> :BUFR:bitWidth = 16; // int
> short Number of pixels per column;
> :missing_value = 4095S; // short
> :BUFR:TableB_descriptor = "0-30-22";
> :BUFR:bitWidth = 12; // int
> short Number of pixels per row;
> :missing_value = 4095S; // short
> :BUFR:TableB_descriptor = "0-30-21";
> :BUFR:bitWidth = 12; // int
> short Pixel size on horizontal - 1;
> :units = "m";
> :_Unsigned = "true";
> :missing_value = 65535L; // long
> :scale_factor = 10.0f; // float
> :BUFR:TableB_descriptor = "0-5-33";
> :BUFR:bitWidth = 16; // int
> short Pixel size on horizontal - 2;
> :units = "m";
> :_Unsigned = "true";
> :missing_value = 65535L; // long
> :scale_factor = 10.0f; // float
> :BUFR:TableB_descriptor = "0-6-33";
> :BUFR:bitWidth = 16; // int
> byte *NOT FOUND-1;
> :missing_value = 0B; // byte
> :BUFR:TableB_descriptor = "0-29-201";
> :BUFR:bitWidth = 0; // int
> byte *NOT FOUND-2;
> :missing_value = 0B; // byte
> :BUFR:TableB_descriptor = "0-29-193";
> :BUFR:bitWidth = 0; // int
> byte *NOT FOUND-3;
> :missing_value = 0B; // byte
> :BUFR:TableB_descriptor = "0-29-194";
> :BUFR:bitWidth = 0; // int
> byte *NOT FOUND-4;
> :missing_value = 0B; // byte
> :BUFR:TableB_descriptor = "0-29-195";
> :BUFR:bitWidth = 0; // int
> byte *NOT FOUND-5;
> :missing_value = 0B; // byte
> :BUFR:TableB_descriptor = "0-29-196";
> :BUFR:bitWidth = 0; // int
> byte *NOT FOUND-6;
> :missing_value = 0B; // byte
> :BUFR:TableB_descriptor = "0-29-199";
> :BUFR:bitWidth = 0; // int
> byte *NOT FOUND-7;
> :missing_value = 0B; // byte
> :BUFR:TableB_descriptor = "0-29-200";
> :BUFR:bitWidth = 0; // int
> enum 0-29-2 Co-ordinate grid type;
> :units = "CodeTable 0-29-2";
> :BUFR:CodeTable = "0-29-2 (0-29-2)";
> :BUFR:TableB_descriptor = "0-29-2";
> :BUFR:bitWidth = 3; // int
> enum 0-30-31 Picture type;
> :units = "CodeTable 0-30-31";
> :BUFR:CodeTable = "0-30-31 (0-30-31)";
> :BUFR:TableB_descriptor = "0-30-31";
> :BUFR:bitWidth = 4; // int
> enum 0-33-3 Quality information;
> :units = "CodeTable 0-33-3";
> :BUFR:CodeTable = "0-33-3 (0-33-3)";
> :BUFR:TableB_descriptor = "0-33-3";
> :BUFR:bitWidth = 3; // int
> short Radar rainfall intensity;
> :units = "m s-1";
> :missing_value = 4095S; // short
> :scale_factor = 1.0E-7f; // float
> :BUFR:TableB_descriptor = "0-21-36";
> :BUFR:bitWidth = 12; // int
>
> Sequence {
> short Radar rainfall intensity;
> :units = "m s-1";
> :missing_value = 4095S; // short
> :scale_factor = 1.0E-7f; // float
> :BUFR:TableB_descriptor = "0-21-36";
> :BUFR:bitWidth = 12; // int
> } seq1;
>
> } obs(*);
>
>
> :history = "Direct read of BUFR data by CDM version 4.1";
> :location = "D:\\01-03-2014-09-00_R_SRI_@@@@_@@@@.BUFR";
> :BUFR:edition = 3; // int
> :BUFR:categoryName = "Radar data";
> :BUFR:category = 6; // int
> :BUFR:subCategory = 0; // int
> :BUFR:localSubCategory = -1; // int
> :BUFR:centerName = "255.255 (Missing value)";
> :BUFR:center = 255; // int
> :BUFR:subCenter = 255; // int
> :BUFR:table = 0; // int
> :BUFR:tableVersion = 11; // int
> :BUFR:localTableVersion = 6; // int
> :WMO Header = "";
> :Conventions = "BUFR/CDM";
> }
>
>
> I've just tested my code with another file found on the net here and it
> works:
>
>
> https://groups.google.com/group/nctoolbox/attach/b16b17201b1484e6/5900.20030
> 601.surface?part=4
>
> but with my files I've zero values. I've attached one of my files in this
> mail.
>
> Thanks in advance for your replies!
>
> Gianfranco
>
>
>
> --
> Z-Light e Z-Pro: servizi zimbra per caselle con dominio email.it, per
> tutti i dettagli
> Clicca qui
> http://posta.email.it/caselle-di-posta-email-it/?utm_campaign=email_Zlight_Pro&utm_source=footer/f
>
> Sponsor:
> Outlet Casa e cucina: tanti prodotti a prezzi scontatissimi, sopri di piu'
> Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=13289&d=7-4
> _______________________________________________
> netcdf-java mailing list
> netcdf-java@xxxxxxxxxxxxxxxx
> For list information or to unsubscribe, visit:
> http://www.unidata.ucar.edu/mailing_lists/
>
--
Kevin L. Manross
CIRA - NOAA/OAR/ESRL/GSD/ISB
Boulder, CO
303-497-6063
The contents of this message are mine personally and do not necessarily
reflect any position of NOAA