[Thread Prev][Thread Next][Index]

Re: [ferret_users] question about define axis t



Hi-
I'm replying here to the List too, as what you ask is a general question that does come up.

On 3/22/2011 10:50 AM, Otacilio Leandro wrote:
Hi Ansley,

The corrections that you shown works perfectly but still I have a big question.

What i need now is to correctly create a time axis with only one
timestep so i could concatenate all my files because the grid is
without a time axis like this:

yes? sh g temp
    GRID GJJ1
 name       axis              # pts   start                end
 XLON      LONGITUDE          720mr   179.8W(-179.8)       179.7E(179.7)
 YLAT      LATITUDE           360 r   89.75S               89.75N
 normal    Z
 normal    T
yes?

and this way i got an error with NCO:

ncrcat: ERROR input file temp-1900-01.cdf lacks a record dimension

I already try to do

define axis/t=1:1:1 axist    ! i don't know if this way to define this
axis is correct
let temp = tmp[gt=axist]

but after this the grid still the same.


There is a bit about this topic in the Users Guide, under the term "timestamp".  What happens is that regridding is only for interpolating (or otherwise changing) from one axis to another axis in the same direction.  So you can change from one time axis to another time axis using a regridding operation.  But if there is initially no time axis, regridding has no effect.

Instead we use the idea of "conformability". There's an index entry to that topic in the Users Guide.

For your example, we'd ADD a variable on the time axis, whose value is zero, to the variable with no time axis.  Your time-axis definition is fine, as a single-step abstract axis.  You could do something similar with a calendar axis,
define axis/t="1-jan-2010":"1-jan-2010":1/units=days axist
For your example, it would look something like this:
define axis/t=1:1:1 axist
let t1 = 0*t[gt=axist]
let tmp = temp + t1

sh g temp
    GRID GJJ1
 name       axis              # pts   start                end
 XLON      LONGITUDE          720mr   179.8W(-179.8)       179.7E(179.7)
 YLAT      LATITUDE           360 r   89.75S               89.75N
 normal    Z
 AXIST     T                    1 r   1                    1

    

Thanks again.

2011/3/21 Ansley Manke <ansley.b.manke@xxxxxxxx>:
Hi -
There was a typo in my previous message. There should not be an equals sign
after the file in the third line.

yes? define axis/x=1:90000:1 xindex
yes? define grid/x=xindex xinput
yes? file/skip=10000/FORM=free/grid=xinput/var="lon, lat, ..."

Then make the SCAT2GRIDGAUSS_XY calls with  arguments (lon, lat, var,
x[gx=xlon], y[gy=ylat], ...)


On 3/21/2011 12:07 PM, Ansley Manke wrote:

Hi Leandro

So, the input data don't include each and every longitude and latitude on
the grid you have defined with xlon and ylat.  This means that you need to
read the data on a single, long axis, and then call the regridding function
as you have done.  The FILE command you used with /grid=mygrid assumes that
all the locations are represented in your input file.

So, just define a long axis. If there were fewer than the  default
abstract-axis length of 20480 points, you could do this without defining an
axis at all (you'd just skip the /grid= qualifier), but you need a longer
axis. Use the length of the dataset, or some number longer than its length.

yes? define axis/x=1:90000:1 xindex
yes? define grid/x=xindex xinput
yes? file=/skip=10000/FORM=free/grid=xinput/var="lon, lat, ..."

Then make the SCAT2GRIDGAUSS_XY calls with  arguments (lon, lat, var,
x[gx=xlon], y[gy=ylat], ...)




On 3/21/2011 11:06 AM, Otacilio Leandro wrote:

Hi Ansley,

The data that i'm using is at a grid of 0.5 degree only over
continental areas. Because of that i'm using the scat2gridgauss
function.

The data also is organized with lon and lat at the first and second
columns and the months january until december at the columns 3-15. The
last column is the anual average for the year.

I'm seeding you the year of 1900 as exemple. My goal with this data is
to create only one cdf file with all monthly means of surface
temperature since 1900 until 2008. At this jnl script i'm trying to
create one cdf file per month and then concatenet them all using NCO.
If there's a simple way to this using ferret i'll apreciate if you
enlighten me.

Thank you again and continue the great job you are doing!

2011/3/21 Ansley Manke<Ansley.B.Manke@xxxxxxxx>:

hi-
I think that we need to find out how to read the data first.   Could you
send me a few lines from the start of your ascii file?

After you run the commands

define axis/x=-179.8:179.8:0.5/units=degrees xlon
define axis/y=-89.75:89.75:0.5/units=degrees ylat
define axis/t=1:1:1 axist
define grid/x=xlon/y=ylat/t=axist mygrid
file=/g=mygrid/skip=10000/FORM=free/var="lon, lat, var01, var02, var03,
var04, var05, var06, var07, var08, var09, var10, var11, var12, anual"
"air_temp2009/air_temp.$1"

This sequence would indicate that your data is already on an XY grid, at one
value of time.  How do these plots look?

yes? shade/L=1 lon
yes? shade/L=1 lat

yes? shade var01

If the data are are not already on a on the grid defined by xlon and ylat,
then the above FILE command is not the correct one to use.  If the data is
on a grid, then you don't need to call the scat2gridgauss function.


On 3/21/2011 4:36 AM, Otacilio Leandro wrote:

Ansley,

I've corrected the file line but still the problem continue. I'm
atacching the jnl script so you can verify any others erros.

Thank you very much.

2011/3/18 Ansley Manke<Ansley.B.Manke@xxxxxxxx>:

Hi -
In your FILE command, do you have quotes around the list of variable
names?
  It should look like,

file=/g=mygrid/var="lon, lat, value01, value02, ..."  ascii_file.txt



On 3/18/2011 8:29 AM, Otacilio Leandro wrote:

Hello,

I've got a data with 2D (x and y) climatological monthly temperature
over continental areas and i got some trouble at using it on ferret.
The data are separated by one file per year and i used the function
scat2gridgauss_xy to correctly read the data over the continent.
My goal with this data is create a cdf file varing at time (each
"timestep" is one month of the data).

I defined the axis this way:

define axis/x=-179.8:179.8:0.5/units=degrees xlon
define axis/y=-89.75:89.75:0.5/units=degrees ylat
define axis/t=1:1:1 axist

define grid/x=xlon/y=ylat/t=axist mygrid

But when i used

file=/g=mygrid/var= lon, lat, value01, value02 ... etc , ascii-file.txt

all values of the orignal data are exchanged for 12.8 as you can see
below.

Here is the stat of my variable:

             temp-1900-02
             LONGITUDE: 179.9E(-180.1) to 179.9E(179.9)
             LATITUDE: 90S to 90N
             Z:  N/A
             T: 1
             DATA SET: air_temp2009/air_temp.1900

  Total # of data points: 259200 (720*360*1*1)
  # flagged as bad  data: 259194
  Minimum value: 12.8
  Maximum value: 12.8
  Mean    value: 12.8 (unweighted average)
  Standard deviation: 7.178999E-07


I also tryed to regrid the variable using

let temp = tmp[g=mygrid]

but it also showed problems because the time axis is missing at temp
variable.

The way i defined the t axis is correct? The reason that i want a time
axis on my variable is to use NCO to concatened all cdfs that im going
to create. I tested using file without time axis and got an error from
NCO.

I'm using:

        FERRET v6.64
        Linux rh5 (gfortran) 2.6.18-164.11.1.el5 - 09/20/10

Thanks for the help.









[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce / NOAA / OAR / PMEL / Ferret

Privacy Policy | Disclaimer | Accessibility Statement