Re: IDV auto map projections

Hi

Back again.

The visible difference (what i can see) is in the attribute of variable
Lambert_Conformal where in CF is only one parallel, but we got two -
standard_parallel_1 and standard_parallel_2.

here is a sample file:
http://www.cs.cas.cz/~lehner/t2_070411_00.nc

Some more info below.

John Caron napsal(a):
Hi Lukas:

It can be a subtle problem to diagnose if a file is "really" following CF correctly.

You could try sending your file through here:

 http://motherlode.ucar.edu:8080/thredds/cdmValidate.html

and see if the results are helpful.

Outcome of validation:

Summary:

    * Dataset contains useable gridded data.
    * Some variables are not gridded fields; check that is what you expect.

Convention= CF-1.0

Coordinate Axes

Name    Declaration     AxisType        units   udunits         regular
lat     float lat(x=66, y=78)   Lat     degrees_north   0.017453292519943295 
rad        
lon     float lon(x=66, y=78)   Lon     degrees_east    0.017453292519943295 
rad        
time    int time(time=79)       Time    hours since 2007-04-11T00:00:00         
date    1.0
x       float x(x=66)   GeoX    m       m       9004.3
y       float y(y=78)   GeoY    m       m       9028.5

Grid Coordinate Systems
Name    X       Y       Vertical        Time
time lat y lon x        lon     lat             time

Grid variables
Name    Declaration     units   udunits         CoordSys
t2      float t2(time=79, x=66, y=78)   K       K       time lat lon

Non-Grid variables
Name    Declaration     units   udunits         CoordSys
Lambert_Conformal       int Lambert_Conformal                   

Seems to be fine


Or look at it in the ToolsUI program (Coordinate System Tab) and see what the INFO button tells you.

http://www.unidata.ucar.edu/software/netcdf-java/v2.2/webstart

Not much too:

<?xml version="1.0" encoding="UTF-8"?>

<netcdfDatasetInfo
location="/Volumes/fserver/storage/netcdf/Medard/domain2-test/t2/t2_070411_00.nc">

  <convention name="CF-1.0" />

  <axis name="lat" decl="float lat(x=66, y=78)" type="Lat"
units="degrees_north" udunits="0.017453292519943295 rad" />

  <axis name="lon" decl="float lon(x=66, y=78)" type="Lon"
units="degrees_east" udunits="0.017453292519943295 rad" />

  <axis name="x" decl="float x(x=66)" type="GeoX" units="m" udunits="m"
regular="9004.3" />

  <axis name="y" decl="float y(y=78)" type="GeoY" units="m" udunits="m"
regular="9028.5" />

  <axis name="time" decl="int time(time=79)" type="Time" units="hours
since 2007-04-11T00:00:00" udunits="date" regular="1.0" />

  <gridCoordSystem name="time lat y lon x" horizX="lon" horizY="lat"
time="time" />

  <grid name="t2" decl="float t2(time=79, x=66, y=78)" units="K"
udunits="K" coordSys="time lat lon" />

  <variable name="Lambert_Conformal" decl="int Lambert_Conformal"
coordSys=" " />

  <userAdvice>Dataset contains useable gridded data.</userAdvice>

  <userAdvice>Some variables are not gridded fields; check that is what
you expect.</userAdvice>

</netcdfDatasetInfo>



----------------------
Parsing with Convention = CF-1.0
 Coordinate Variable added = x
 Coordinate Variable added = y
 Coordinate Variable added = time
 CoordinateAxis = lat added; referenced from var= t2
 CoordinateAxis = lon added; referenced from var= t2
 created implicit coord System 'time lat y lon x' for var= t2



For background on Conventions:

http://www.unidata.ucar.edu/software/netcdf/conventions.html
http://www.unidata.ucar.edu/software/netcdf-java/reference/CSObjectModel.html
Here are the attributes and data of the file:

Attributes {
    lat {
        String long_name "latitude coordinate";
        String standard_name "latitude";
        String units "degrees_north";
    }
    lon {
        String long_name "longitude coordinate";
        String standard_name "longitude";
        String units "degrees_east";
    }
    x {
        String units "m";
        String long_name "x coordinate of projection";
        String standard_name "projection_x_coordinate";
    }
    y {
        String units "m";
        String long_name "y coordinate of projection";
        String standard_name "projection_y_coordinate";
    }
    Lambert_Conformal {
        String grid_mapping_name "lambert_conformal_conic";
        Float64 standard_parallel_1 30.0;
        Float64 standard_parallel_2 60.0;
        Float64 longitude_of_central_meridian 12.0;
        Float64 latitude_of_projection_origin 50.0;
    }
    time {
        String long_name "forecast (valid) time";
        String units "hours since 2007-04-10T06:00:00";
        String standard_name "time";
    }
    t2 {
        String long_name "2 m temperature";
        String units "K";
        String coordinates "lat lon";
        String grid_mapping "Lambert_Conformal";
    }
    NC_GLOBAL {
        String Conventions "CF-1.0";
    }
}

Dataset {
    Grid {
     ARRAY:
        Float32 lat[x = 66][y = 78];
     MAPS:
        Float32 x[x = 66];
        Float32 y[y = 78];
    } lat;
    Grid {
     ARRAY:
        Float32 lon[x = 66][y = 78];
     MAPS:
        Float32 x[x = 66];
        Float32 y[y = 78];
    } lon;
    Float32 x[x = 66];
    Float32 y[y = 78];
    Int32 Lambert_Conformal;
    Int32 time[time = 79];
    Grid {
     ARRAY:
        Float32 t2[time = 79][x = 66][y = 78];
     MAPS:
        Int32 time[time = 79];
        Float32 x[x = 66];
        Float32 y[y = 78];
    } t2;
}





Lukas Lehner wrote:
Hello

I'm using idv 2.2b2, is it automatically using the information in the netcdf header to draw the grid according to set up projection?
Because it is still showing data in original lat-lon projection.

I just don't know if this is idv feature or bug.

The data in netcdf file follow CF convention.

Thank you
Lukas