[GRASS-user] pb. with netCDF row order

Nicolas Pérenne nicolas.perenne at free.fr
Tue Oct 26 16:39:02 EDT 2010


Hi Eduardo, 

I have downloaded your file and indeed as you guessed there is a way to
select the time index, and possibly also a level (altitude or depth)
index. It goes through optional positional arguments which are not
documented (sorry), because one has to guess that 'l' stands for the
time index and 'k' for the level one: 

bash> nc2grass.sh -h
Usage: nc2grass.sh [-h]
       nc2grass.sh [-x <axis name>] [-y <axis name>] [-z <axis name>]
                   [-t <axis name>] [-m <missing value>]
                   <netCDF file> <variable> <imin> <imax> <jmin> <jmax>
[<l> [<k>]]
  -h: help
  -x: axis name in input file. Default: longitude
  -y: axis name in input file. Default: latitude
  -z: axis name in input file. Default: z
  -t: axis name in input file. Default: time
  -m: missing value code in output header. Default: -9.99e+02

Actually in your case 'ncdump -h' shows that the missing value flag is
1.e+30f and you can tell GRASS about it using the -m option; my
experience is that you have to provide this flag with the very same
formatting given to awk in the script, that is "+1.00e+30" (check out
the default value). 

To get the first time index in your file: 
nc2grass.sh -m +1.00e+30 t2m.mean.KNMI.HA2.nc t2m 1 100 1 80 1 > \
t2m_l1.txt
latN latS lonE lonW:
74.7500000 35.2500000 34.7500000 -14.7500000

Or you can automate the extraction like this: 

bash> for l in 1 2 3 4; do
>nc2grass.sh -m +1.00e+30 t2m.mean.KNMI.HA2.nc t2m 1 100 1 80 $l > \
t2m_l$l.txt
>done
latN latS lonE lonW:
74.7500000 35.2500000 34.7500000 -14.7500000
latN latS lonE lonW:
74.7500000 35.2500000 34.7500000 -14.7500000
latN latS lonE lonW:
74.7500000 35.2500000 34.7500000 -14.7500000
latN latS lonE lonW:
74.7500000 35.2500000 34.7500000 -14.7500000
bash> ls
t2m_l1.txt  t2m_l2.txt  t2m_l3.txt  t2m_l4.txt  t2m.mean.KNMI.HA2.nc 

One potential shortcoming of the script though is that you may provide a
time index, or a time index and a level index, but not a level index
alone... a fix could be to provide 'k' and 'l' as options instead of
positional arguments. 

Hope it helps. 


Le mardi 26 octobre 2010 à 12:48 +0200, Eduardo Corbelle Rico a écrit : 
> Nicolas,
> 
> I've been struggling with the issue of row order in netCDF files and
> your post came perfect for me. Thank you very much for it.
> 
> I still have a problem that surely you or anyone in the list would find
> trivial: the file I'm trying to convert 
> 
> (downloadable in the Prudence project:
> http://prudence.dmi.dk/data/seasonal/KNMI/t2m.mean.KNMI.HA2.nc.gz )
> 
> has four time bands, which I can't write separately into different ascii
> files.
> 
> I'm using the script as...
> 
> ./nc2grass-0001.bin t2m.mean.KNMI.HA2.nc t2m 1 100 1 80 > t2m.txt
> 
> ...and the four time (seasonal) bands came together in the same ascii
> line.
> 
> Should I use any additional argument with the script to be able to get
> four separate ascii files?
> 
> Thanks a lot!
> 
> 






More information about the grass-user mailing list