Re: [netcdf-java] Reduced Gaussian to Regular Lat/Lon Interpolation has odd spacing

Hi,

this file can be used as an example 
https://www.dropbox.com/s/of0a9q1vxuu83b0/dpd_test.grib but change code to the 
following:

NetcdfFile grib = NetcdfFile.open("/path/to/dpd_test.grib");
NetcdfDataset nds = new NetcdfDataset(grib);
GridDataset gds = new GridDataset(nds);

for (GridDatatype var : gds.getGrids()) {
        GridCoordSystem gcs = var.getCoordinateSystem();
        CoordinateAxis lon = gcs.getXHorizAxis();
        for (double value : (double[]) lon.read().get1DJavaArray(double.class)) 
{
                System.out.println(value);
        }
        System.out.println("...........");
        CoordinateAxis lat = gcs.getYHorizAxis();
        for (double value : (double[]) lat.read().get1DJavaArray(double.class)) 
{
                System.out.println(value);
        }
}

Resolution is around 0.225° but with the same kind of variation.

Regards,
Jochen

Am 17.04.2014 um 17:33 schrieb Jochen Kähler <jkaehler@xxxxxxxxxxxxxxx>:

> Hi all,
> 
> we’re using the netcdf lib to open Grib Files with Reduced Gaussian grids. 
> Those are automatically interpolated to Regular Lat Lon by QuasiRegular.java 
> as far as I got it. Also as far as I understood that code, I would expect 
> equal spacings between the gridpoints. 
> 
> However: what we get out looks like this…
> 
> Latitude Dimension starting at Greenwich:
> 0.000000000°
> 0.140624851°
> 0.281249702°
> 0.421874553°
> 0.562499404°
> 0.703124285°
> 0.843749106°
> 0.984373927°
> 1.124998808°
> 1.265623689°
> 1.406248569°
> 1.546873331°
> 1.687498212°
> 1.828123093°
> 1.968747854°
> 2.109372854°
> 2.249997616°
> 2.390622377°
> 2.531247377°
> 2.671872139°
> 2.812497139°
> 2.953121901°
> 3.093746662°
> 3.234371662°
> 3.374996424°
> 3.515621185°
> 3.656246185°
> 3.796870947°
> 3.937495708°
> 4.078120708°
> 4.218745708°
> 4.359370232°
> 4.499995232°
> 4.640620232°
> […]
> 
> …which results to a spacings as follows:
> 0.140624851°
> 0.140624851°
> 0.140624851°
> 0.140624851°
> 0.140624881°
> 0.140624821°
> 0.140624821°
> 0.140624881°
> 0.140624881°
> 0.140624881°
> 0.140624762°
> 0.140624881°
> 0.140624881°
> 0.140624762°
> 0.140625°
> 0.140624762°
> 0.140624762°
> 0.140625°
> 0.140624762°
> 0.140625°
> 0.140624762°
> 0.140624762°
> 0.140625°
> 0.140624762°
> 0.140624762°
> 0.140625°
> 0.140624762°
> 0.140624762°
> 0.140625°
> 0.140625°
> 0.140624523°
> 0.140625°
> 0.140625°
> 0.140624523°
> […]
> 
> …similar for longitude, starting far north:
> 89.89239502°
> 89.75300598°
> 89.61279297°
> 89.47238922°
> 89.33191681°
> 89.19141388°
> 89.05088806°
> 88.91035461°
> 88.76980591°
> 88.6292572°
> 88.4887085°
> 88.34815216°
> 88.2075882°
> 88.06703186°
> 87.9264679°
> 87.78591156°
> 87.6453476°
> 87.50478363°
> 87.36421967°
> 87.22364807°
> 87.08308411°
> 86.94252014°
> 86.80194855°
> 86.66138458°
> 86.52082062°
> 86.38024902°
> 86.23968506°
> 86.09911346°
> 85.9585495°
> 85.81797791°
> 85.67741394°
> 85.53684235°
> 85.39627838°
> 85.25570679°
> […]
> 
> …spacings:
> -0.139389038°
> -0.140213013°
> -0.140403748°
> -0.140472412°
> -0.14050293°
> -0.140525818°
> -0.140533447°
> -0.140548706°
> -0.140548706°
> -0.140548706°
> -0.140556335°
> -0.140563965°
> -0.140556335°
> -0.140563965°
> -0.140556335°
> -0.140563965°
> -0.140563965°
> -0.140563965°
> -0.140571594°
> -0.140563965°
> -0.140563965°
> -0.140571594°
> -0.140563965°
> -0.140563965°
> -0.140571594°
> -0.140563965°
> -0.140571594°
> -0.140563965°
> -0.140571594°
> -0.140563965°
> -0.140571594°
> -0.140563965°
> -0.140571594°
> -0.140571594°
> 
> …a bit too much for being just rounding issues.
> 
> Does anyone know why the spacing isn’t equal?
> 
> BTW: used latest netcdfAll.jar V 4.3.21 and the code is as follows:
> NetcdfFile grib = NetcdfFile.open("dsd_201201011200_120.grb");
> NetcdfDataset nds = new NetcdfDataset(grib);
> GridDataset gds = new GridDataset(nds);
> 
> for (GridDatatype var : gds.getGrids()) {
>       if ("2_metre_temperature_surface".equals(var.getFullName())) {
>               GridCoordSystem gcs = var.getCoordinateSystem();
>               CoordinateAxis lon = gcs.getXHorizAxis();
>               for (double value : (double[]) 
> lon.read().get1DJavaArray(double.class)) {
>                       System.out.println(value);
>               }
>               System.out.println("...........");
>               CoordinateAxis lat = gcs.getYHorizAxis();
>               for (double value : (double[]) 
> lat.read().get1DJavaArray(double.class)) {
>                       System.out.println(value);
>               }
>       }
> }             
> 
> Thanks a lot in advance & happy easter! ;-)
> 
> Jochen

Attachment: smime.p7s
Description: S/MIME cryptographic signature

  • 2014 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: