Hi,
In this user's list, we like to give general advice rather than
writing custom scripts for users. The next step is to apply the
definitions one after the other.
DEFINE AXIS/T/units=days/t0=1-jan-2005
day_axis
LET
temp_on_time = temp[gt=day_axis@asn]
This variable now
defines temperature on the calendar axis, day_axis. Now put temp_on_time
into your zaxreplace call, instead of temp.
-Ansley
Thank you Ansely,
I know this
script
What I don't
know is the combination of this script with the one that
converts sigma layers to depth.
I included both
scripts in my previous email. I want to first convert my zaxis
to depth instead of layers and after that don't know how to
combine that script with the one you provide and I already
provide in my previous email.
Could you
please read my last email one more time.
Step1: convert
zaxis to depth (i know)
Step2: define
taxis (i know)
Step3: plot
temp on these 2axes (which i dont know)
I need the last
step.
What you gave
me and I already know just fix znd set the time axis but still
gives the zaxis in layers....
Sara
On Tue, Oct 11, 2016 at 5:30 PM, Ansley C. Manke
Hi,
It depends a bit on what is in the file.
When an axis has the right coordinate values in the file,
but does not have the attributes that let Ferret know the
units of the axis, then you can use SET AXIS to add that
information. So if the axis in your dataset already has
the right day numbers, day 126 to 273, then
that would look something like this, and the variables
will plot with labeled dates:
set
axis/units=days/t0=1-jan-2005 `temp,return=taxis`
If the axis is
just steps, 1,2,3,... , then you would define the
correct axis, and use @ASN regridding to put the
variables onto that axis. Your definition needs the /T0
qualifier to define the time origin. (You do not need
/NPOINTS if you are using /L=lo:hi).
define
axis/t0= /units=
let
temp_on_time = temp[gt=day_axis@ASN]
Ansley
On 10/11/2016 9:18 AM, 'Sara
Sari' via _OAR PMEL Ferret Users wrote:
Thank you
Ansely,
I could
convert my yaxis to depths by using this script:
DEFINE
AXIS/z=1:20:1/unit=m/depth zdepth
LET
tempdepth=zaxreplace(temp,(-1)*zout,z[gz=zdepth]
shade/j=20/i=65/levels=(1,30,1)
tempdepth
now I want
to convert my time axis(xaxis) to date like
May-Sep /or setting it so that it shows the day
number of the year. I tried this code:
define
axis/l=126:273/npoint=148/units=days day_axis
yes? sh axis day_axis
name axis # pts
start end
DAY_AXIS T (DAYS) 148 r
126 273
Axis span (to cell edges) = 148
now I don't
know the rest of script so that I can plot
tempdepth on this axis.
I have
attached what my plot looks like.
and what I
want is to set the time axis to daynumber /or real
date.
Could you
please give me the script for that?
Thank you.
I also put
the show data command to see how my data are:
yes? sh d
currently SET data sets:
1> ./rhoneG_1.tsout3N (default)
name title
I J
K L M N
XOUT X-coordinate
1:193 1:87 ... ...
... ...
YOUT Y-coordinate
1:193 1:87 ... ...
... ...
ZOUT Z-coordinate
1:193 1:87 1:25 ...
... ...
DEPOUT Mean_water_depth
1:193 1:87 ... ...
... ...
TIME Time
... ... ...
1:148 ... ...
UVEL X-component_of_current
1:193 1:87 1:25 1:148 ...
...
VVEL Y-component_of_current
1:193 1:87 1:25 1:148 ...
...
TEMP Temperature
1:193 1:87 1:25 1:148
... ...
as you can see I have 148 time steps(daily
output), which starts from May 5th to Sep 30/2005.
I want to set
my time axis so that I can have 126 (daynumber of
May6th) to 273 (which is the daynumber of
Sep30th/2005).
Hi,
The syntax temp[gz(sigma) =
depthaxis] is an example only. It is
showing how to use there is a variable
in the file, or a variable that the user
has defined, called sigma, that is used
to make the conversion from layer to
depth or height.
It looks as if the variable that
defines the relation between depth and
layer is ZOUT. Look at the output of
the commands,
yes? show attributes zout
yes? show attributes temp
Does temp have a coordinates
attribute? If so does it list zout as a
coordinate variable? zout has a title
(the long_name attribute) of
Z-coordinate. Are its units given in
meters? Are there other attributes on
zout that give you an idea about its
role in the dataset?
On
10/4/2016 12:57 PM, Sara Sari wrote:
Thank you Ansley, but
the script that you gave me
produced no plot And I got a
white and empty plot.
Here are my show data
info:
currently SET
data sets:
1> ./rhoneG_1.tsout3N
(default)
name
title
I J K
L M N
XOUT
longitude
1:193
1:87 ... ...
... ...
YOUT
latitude
1:193
1:87 ...
... ... ...
ZOUT
Z-coordinate
1:193 1:87
1:25 ... ...
...
DEPOUT
Mean_water_depth
1:193 1:87 ...
... ... ...
TIME
Time
... ... ...
1:59 ... ...
UVEL
X-component_of_current
1:193 1:87 1:25
1:59 ... ...
VVEL
Y-component_of_current
1:193 1:87
1:25 1:59 ...
...
TEMP
Temperature
1:193 1:87
1:25 1:59 ...
...
I entered:
yes? define axis/z=0:65:5/units=m depthaxis
yes? let/units="Degree C" temp_z = temp[gz(sigma) = depthaxis]
as my max depth is 64m.
I also tried this:
define axis/z/from/units=m/depth my_z_axis=zout
**ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is ambiguous
but don't know what this error means and how I can fix it?
Regards
Sara
Hi
Ferret gets that
information from the
dataset. For many
model outputs, there
is a separate variable
in the dataset that
defines the depth as a
function of layer.
There are older
functions in Ferret
that will do this
operation, but the
best way is the
"Auxiliary Variable
Regridding" operation,
available in Ferret
v6.96 and higher. See:
The examples in the
Ferret manual define a
sigma function using
variables in the
file. I am guessing
that you may be using
a file that already
contains a variable
that defines the
conversion between
layers and depth. It
may be named something
else of course. Look
for the "coordinates"
attribute in the
dataset.
If your variable
is "temp", then part
of the ncdump output
of the file might look
like this:
float temp(zlev,lat,lon);
temp:units="Degree C";
temp:coordinates="model_level";
float sigma(zlev);
sigma:long_name="sigma";
sigma:positive="down";
sigma:units="m";
int model_level(zlev);
model_level:long_name="model level number";
model_level:positive="down";
The variable "temp", and
the coordinate variables
"sigma" and
"model_level" all have
the same z dimension
"zlev". The native grid
of temp is on the
model-level axis, just
level # 1, 2, 3... To
get a variable on a
depth axis, the data in
"sigma" can be used to
convert between the two.
So, you would define any
depth axis, with the
same units as "sigma".
Define your depth axis
to have depths with the
range of depth values
that appear in the sigma
coordinate variable in
your dataset.
yes? define axis/z=0:5000:10/units=m depthaxis
yes? let/units="Degree C" temp_z = temp[gz(sigma) = depthaxis]
Now you can make a plot
of the variable "temp_z"
and it will be on a
depth axis.
-Ansley
Hello
Ferret Users,
I
want to plot a
transect of temp
with region of
x=193 by y=87
points which has
25 layes in depth.
But I dont want to
have layers in my
yaxis when
plotting. I want
to have depth
instead of number
of layers. Could
you please tell me
What the script
is for that?
Thanks
|