- To: John Caron <caron@xxxxxxxxxxxxxxxx>
- Subject: Re: [netcdf-java] 2 fix on GRIB1 reader
- From: johann sorel <johann.sorel@xxxxxxxxxxxx>
- Date: Fri, 02 Nov 2012 16:18:45 +0100
I guess I understand what's going on, Grib and Netcdf conventions
declare their datas in a different order.
So what do we choose ?1 - leave it like it is and it's the user work to iterator in the inverse order if file_format = "GRIB-X" 2 - flip the datas directly in the reader to match netcdf order, ( for all grib projections, painful job )
Does someone know how it's handle in other readers ? Johann Sorel Geomatys On 02/11/2012 12:25, johann sorel wrote:
Hello again,I have a similar problem, this time on NOAA grib 2 data with LatLon projection. values are flipped along the latitude axis again (same as bug 2 I reported previously)this starts to make me think the problem might be in geotoolkit. But usual netcdf files are displayed properly ...I would like to have a confirmation, here is a partial dump obtained with class NCDumpW : What I would like to know is : the line marked #1 is for latitude +78 or -78 ?netcdf /..../somegrib.grib2 { dimensions: lon = 288; lat = 157; time = 61; variables: float lat(lat=157); :units = "degrees_north"; float lon(lon=288); :units = "degrees_east"; int time(time=61); :units = "Hour since 2012-10-30T06:00:00.000Z"; :standard_name = "time";float Wind_direction_from_which_blowing_degree_true_surface(time=61, lat=157, lon=288); :long_name = "Wind direction (from which blowing) (degree true) @ Ground or water surface";:units = "deg"; :missing_value = NaNf; // float :abbreviation = "WDIR"; :grid_mapping = "LatLon_Projection"; :Grib_Variable_Id = "VAR_0-2-0_L1"; :Grib2_Parameter = 0, 2, 0; // int :Grib2_Level_Type = 1; // int :Grib2_Generating_Process_Type = "Forecast"; .... data: lat ={78.0, 77.0, 76.0, 75.0, 74.0, 73.0, 72.0, 71.0, ... , -74.0, -75.0, -76.0, -77.0, -78.0}lon ={0.0, 1.25, 2.5, 3.75, 5.0, 6.25, 7.5, 8.75, 10.0, ... , 355.0, 356.25, 357.5, 358.75}time = {0, 3, 6, 9, 12, 15, 18, 21, 24, ... , 174, 177, 180} Wind_direction_from_which_blowing_degree_true_surface = { { {56.78, 57.72, 61.87,... }, #1 {56.78, 57.72, 61.87,... }, {107.14, ... }, ... } } thanks. Johann Sorel On 02/11/2012 02:18, John Caron wrote:Hi johann : Thanks very much, these fixes will be in target-4.3.14 later tonight. John On 10/31/2012 5:41 AM, johann sorel wrote:Hello, I work with martin desruisseaux on the geotoolkit.org project. While trying to access datas from : http://www.globalmarinenet.com/grib_downloads.php I found a few bugs in the grib1 to netcdf metamodel. Those are GRIB 1 files with LatLon projections. grib/src/main/java/ucar/nc2/grib/grib1/Grib1Gds.java$LatLon There was 2 bugs in this projection creation : 1 - a copy/paste error when calculating the latitude delta. if (!Misc.closeEnough(deltaLat, calcDelta)) { log.debug("deltaLat != calcDeltaLat"); deltaLat = calcDelta; ----> was deltaLon = calcDelta; } 2 - wrong value order when datas start by the lower values. BEFORE if (deltaLat != GribNumbers.UNDEFINED) { deltaLat *= scale3; // undefined for thin grids if (la2 < la1) deltaLat *= -1.0; } else deltaLat = calcDelta; AFTER if (deltaLat != GribNumbers.UNDEFINED) { deltaLat *= scale3; // undefined for thin grids if (la2 < la1) { //flip declaration order float latemp = la1; la1 = la2; la2 = latemp; calcDelta *= -1.0; //we must also consider the cell corner, since we flipped the order //we should specify that the true value is at the BOTTOM-LEFT corner //but we can't show this information so we make a one cell displacement //to move the value on a TOP-LEFT corner. la1 -= calcDelta; la2 -= calcDelta; } } else { deltaLat = calcDelta; } I attached a snapshot of the visualized datas before and after fix over the indian ocean and the patched java class. Johann Sorel Geomatys _______________________________________________ netcdf-java mailing list netcdf-java@xxxxxxxxxxxxxxxxFor list information or to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/_______________________________________________ netcdf-java mailing list netcdf-java@xxxxxxxxxxxxxxxxFor list information or to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/_______________________________________________ netcdf-java mailing list netcdf-java@xxxxxxxxxxxxxxxxFor list information or to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/
- Follow-Ups:
- Re: [netcdf-java] 2 fix on GRIB1 reader
- From: John Caron
- Re: [netcdf-java] 2 fix on GRIB1 reader
- References:
- [netcdf-java] 2 fix on GRIB1 reader
- From: johann sorel
- Re: [netcdf-java] 2 fix on GRIB1 reader
- From: John Caron
- Re: [netcdf-java] 2 fix on GRIB1 reader
- From: johann sorel
- [netcdf-java] 2 fix on GRIB1 reader