[GRASS-user] netCDF import via r.in.gdal

Luigi Ponti lponti at infinito.it
Tue Apr 14 05:42:17 EDT 2009


On 11/04/2009 11.39, Hamish wrote:
> Luigi wrote:
>   
>> I don't seem to be able to import netCDF via r.in.gdal
>> in grass-6.4.0RC3 osgeo4w version running on XP sp3.
>>
>> GRASS 6.4.0RC3 (UTM32):C:\ >r.in.gdal
>> input=SRF_1958.AVG.NC
>> output=SRF_1958.AVG location=ERA40_SRF
>> Warning 1: No UNIDATA NC_GLOBAL:Conventions attribute
>> Location <ERA40_SRF> created
>> ERROR: Selected band (1) does not exist
>>
>> Is this something that I should be able to manage to do?
>>     
>
> yes
>
>   
>> GRASS complains about bands -- the file includes georeferenced
>> daily climate variables. The file opens OK in viewers such as
>> Panoply <http://www.giss.nasa.gov/tools/panoply/>.
>>     
>
> what does the output of gdalinfo look like?
>   

This is what gdalinfo says:

    C:\Documents and Settings\Luigi\Desktop>gdalinfo
    C:\giotto\giotto_data\SRF_195
    AVG.NC
    Warning 1: No UNIDATA NC_GLOBAL:Conventions attribute
    Driver: netCDF/Network Common Data Format
    Files: C:\giotto\giotto_data\SRF_1958.AVG.NC
    Size is 512, 512
    Coordinate System is `'
    Metadata:
      NC_GLOBAL#domxmin=-1.262909e+001
      NC_GLOBAL#domxmax=4.295537e+001
      NC_GLOBAL#domymin=2.129965e+001
      NC_GLOBAL#domymax=6.144880e+001
      NC_GLOBAL#domzmin=1.050000e+003
      NC_GLOBAL#domzmax=1.050000e+003
    Subdatasets:
      SUBDATASET_1_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":lon
      SUBDATASET_1_DESC=[148x158] lon (32-bit floating-point)
      SUBDATASET_2_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":lat
      SUBDATASET_2_DESC=[148x158] lat (32-bit floating-point)
      SUBDATASET_3_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":ua
      SUBDATASET_3_DESC=[365x148x158] ua (32-bit floating-point)
      SUBDATASET_4_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":va
      SUBDATASET_4_DESC=[365x148x158] va (32-bit floating-point)
      SUBDATASET_5_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":drag
      SUBDATASET_5_DESC=[365x148x158] drag (32-bit floating-point)
      SUBDATASET_6_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":tg
      SUBDATASET_6_DESC=[365x148x158] tg (32-bit floating-point)
      SUBDATASET_7_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":ta
      SUBDATASET_7_DESC=[365x148x158] ta (32-bit floating-point)
      SUBDATASET_8_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":qa
      SUBDATASET_8_DESC=[365x148x158] qa (32-bit floating-point)
      SUBDATASET_9_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":rt
      SUBDATASET_9_DESC=[365x148x158] rt (32-bit floating-point)
      SUBDATASET_10_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":et
      SUBDATASET_10_DESC=[365x148x158] et (32-bit floating-point)
      SUBDATASET_11_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":rnfs
      SUBDATASET_11_DESC=[365x148x158] rnfs (32-bit floating-point)
      SUBDATASET_12_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":sh
      SUBDATASET_12_DESC=[365x148x158] sh (32-bit floating-point)
      SUBDATASET_13_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":lwn
      SUBDATASET_13_DESC=[365x148x158] lwn (32-bit floating-point)
      SUBDATASET_14_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":swn
      SUBDATASET_14_DESC=[365x148x158] swn (32-bit floating-point)
      SUBDATASET_15_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":lwd
      SUBDATASET_15_DESC=[365x148x158] lwd (32-bit floating-point)
      SUBDATASET_16_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":psrf
      SUBDATASET_16_DESC=[365x148x158] psrf (32-bit floating-point)
     
    SUBDATASET_17_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":tamax
      SUBDATASET_17_DESC=[365x148x158] tamax (32-bit floating-point)
     
    SUBDATASET_18_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":tamin
      SUBDATASET_18_DESC=[365x148x158] tamin (32-bit floating-point)
      SUBDATASET_19_NAME=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":rha
      SUBDATASET_19_DESC=[365x148x158] rha (32-bit floating-point)
    Corner Coordinates:
    Upper Left  (    0.0,    0.0)
    Lower Left  (    0.0,  512.0)
    Upper Right (  512.0,    0.0)
    Lower Right (  512.0,  512.0)
    Center      (  256.0,  256.0)

It is not clear what the coordinate system info means: is it just 
unprojected, i.e. I am supposed to import the file to a latlong location 
in GRASS?

>
> you might try to use gdal_translate extract a single band from
> the file and convert it into a GeoTiff. Then import the geotiff
> into grass. But anything gdal_translate can read r.in.gdal should
> be able to read too (with the right options).
>   

Found out that it is a multi-dataset file:

    C:\Documents and Settings\Luigi\Desktop>gdal_translate -of GTiff -b
    1 C:\giotto\
    giotto_data\SRF_1958.AVG.NC SRF_1958.AVG.tiff
    Warning 1: No UNIDATA NC_GLOBAL:Conventions attribute
    Input file contains subdatasets. Please, select one of them for reading.

Got info on subdatasets following directions at 
http://www.gdal.org/frmt_netcdf.html

    C:\giotto\giotto_data>gdalinfo NETCDF:"SRF_1958.AVG.NC":tamax

There is one subdataset per climate variable. Each subdataset has one 
band per day (365 bands). So I translated to geotiff as you suggested.

    C:\giotto\giotto_data>gdal_translate -of GTiff -b 1
    NETCDF:"SRF_1958.AVG.NC":tamax SRF_1958.AVG.tiff

I then tried to import in grass the geotiff. It imports and display fine 
when creating a new location, but no projection info is carried along so 
no way to use it with other layers/locations in my grass dataset. (by 
the way r.in.gdal in wxpython gui does not work grass6.4.0-rc3: I used 
the tcltk gui).

I have also tried to import a single band directly using r.in.gdal: as 
you pointed out, there is no reason it shouldn't work if gdal_translate 
works.

    r.in.gdal -e
    input=NETCDF:"C:\giotto\giotto_data\SRF_1958.AVG.NC":tamax
    output=SRF_1958.AVG band=1 location=ERA_40_SRF2

Imports fine but still unable to get projection info, so the data is 
useless. If Panoply <http://www.giss.nasa.gov/tools/panoply/> is able to 
plot the data on a global coastline, the proj info should be somewhere 
in the netCDF file: do you have an idea how I can make GRASS aware of 
the proj info?

Kind regards, many thanks for useful pointers and hints, and sorry for 
late reply,

Luigi


>
> see  http://grass.osgeo.org/wiki/MODIS#SST_.28Level_3.29
>
>
> Hamish
>
>
>
>       
>
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-user/attachments/20090414/a424e36f/attachment-0001.html


More information about the grass-user mailing list