[Thread Prev][Thread Next][Index]

Re: [RE]Re: [want real z-axis]Re: [ferret_users] change axis



Hi Chan Joo,
Yes, I see that, but I think it's an error in the data. If we look at the original data before redefining the axes,

yes? USE/ORDER=ZT argo2900623_prof.nc
yes? shade pres

It looks to me as though the data is saved with gaps at the wrong level for L=17. It seems to me there should be missing data for levels 1 through 27 or so, then the data that's in the file, and then more missing data.  I think the same thing has happened with temperature as well. (imagine sliding the data at L=17 L up and it would fit the pattern seen everywhere else).

yes? list/k=1 pres, temp
             DATA SET: ./argo2900623_prof.nc
             T: 0.5 to 35.5
             Z: 1
 Column  1: PRES is SEA PRESSURE (decibar)
 Column  2: TEMP is SEA TEMPERATURE IN SITU ITS-90 SCALE (degree_Celsius)
            PRES   TEMP
...
13   / 13:    4.8  31.57
14   / 14:    4.6  32.10
15   / 15:    4.4  31.98
16   / 16:    4.6  32.25
17   / 17:  192.5  21.48
18   / 18:    4.9  31.09
19   / 19:    4.8  31.80



We could exclude the data for L=17, below is your script, showing how to do that. I've marked my changes with ! ** . It might be worth asking the data providers what they think about what is in the file.

By the way, if you are working with data from different sets of profiles or different experiments, and you want to compare them, you might want to define a consistent output Z axis for all data. You can define any Z axis and use it as the third argument to the ZAXREPLACE function.  This axis can have any number of coordinate values.  This might look like this, for example.

define axis/z/depth/units=decibars   pzaxis = {1, 10, 20, 30, 50, 75, 100, 150, 200, 300, 400, 600, 1000, 1200, 1500}
let/units="`temperature,r=units`"/title="`temperature,r=title`" \
    temp_on_pres=zaxreplace(temperature,z[gz=zpres],z[gz=zpres])

Here is the script, with my changes which define new varables, replacing the data at L=17 with the missing-value flag.

cancel data/all
use/order=ZT 2900623_prof.nc
!Define a time axis based on JULD
def axis/t/t0="1-jan-1950:00:00"/units=days tday=juld
!
let zz=z[gz=temp]
def axis/z/units=levels/depth zlev=zz
!
! ** Define pres_fix, excluding data at L=17.
! ** Use pres_fix in the next command defining pressure= pres_fix[...
!
let/bad=`pres,r=bad`/units="`pres,r=units`"/title="`pres,r=title`" \
    pres_fix = if l eq 17 then `pres,r=bad` else pres
let/units="`pres_fix,r=units`"/title="`pres_fix,r=title`" \
    pressure=pres_fix[gz=zlev@asn,gt=tday@asn]
!
! ** Define temp_fix, excluding data at L=17.
! ** Use temp_fix in the next command defining temperature= temp_fix[...
!
let/bad=`temp,r=bad`/units="`temp,r=units`"/title="`temp,r=title`" \
    temp_fix = if l eq 17 then `temp,r=bad` else temp
let/units="`temp_fix,r=units`"/title="`temp_fix,r=title`" \
    temperature=temp_fix[gz=zlev@asn,gt=tday@asn]
!
set vi ul
shade/vlim=1:48:-5 pres

! **
set vi ll
shade pressure

!Define an output Z axis with units of pressure, based on the data at the first time step.
def axis/z/units=decibars/depth zpres=pressure[l=1]
!
!Call zaxreplace to put the temperature data on this new pressure axis
let/units="`temperature,r=units`"/title="`temperature,r=title`" \
    temp_on_pres=zaxreplace(temperature,z[gz=zpres],z[gz=zpres])
!
set vi ur
sha temp_on_pres



Chan Joo Jang wrote:

Hi Ansley,

Thanks for your prompt and detailed explanation.

I attached  journal and figure files. In the figures the variable "pres" on left panel clearly shows that it has different depth values for the same level: in the figure, I added a circle mark for that. 

 I also found that pres in most of argo float data is time-varing.

So, I would be appreciated if you can provide the ZAXREPLACE function that can handle time-varing z-axis.

Chan Joo  

 


GIF image


[Thread Prev][Thread Next][Index]

Contact Us
Dept of Commerce / NOAA / OAR / PMEL / TMAP

Privacy Policy | Disclaimer | Accessibility Statement