[Thread Prev][Thread Next][Index]

Re: [ferret_users] Error to save spectrum and phase of FFT in period unit



Hi,

Thanks for the correction but it still not working correctly, If I use your first suggestion, the compilation
works well but the results are wrong. The axis still in frequency unit and the values are not change (the same as
in fft frequency unit). As i mentioned before, I'd like to save the fft and phase from spectral analysis which have period unit in x axis.

But if i use the second suggestion,
i got this error:

let AOUT = fft_uwnd
save/file=fft_period.nc per[l=1:`FFT_nf`], AOUT
 !-> LIST/FORMAT=CDF/file=fft_period.nc per[l=1:378], AOUT
 **ERROR: invalid command: /CLOBBER not specified and file exists: fft_period.nc
LIST/FORMAT=CDF/file=fft_period.nc per[l=1:378], AOUT
Command file, command group, or REPEAT execution aborted

Thanks a lot,
Antonio



On Fri, Aug 3, 2012 at 2:31 AM, Ansley Manke <ansley.b.manke@xxxxxxxx> wrote:
Hi -
My apologies. I made an editing error like I think you had done, originally! 

You have commands which define the FFT variables, but the script you had is making a plot so it lists pairs of variables to plot.  It has defined variables including "per", "fft_uwnd", and "FFT_uwndfftp"

So all you need is
!Save fft period unit
save/file=fft_period.nc per[l=1:`FFT_nf`], fft_uwnd

!Save phase in period unit
save/file=phase_period.nc per[l=1:`FFT_nf`], FFT_uwndfftp
Or if you want to rename variables you could do this, but watch out about variable names, there is already a variable called A in the script, so if you do a "LET A = " definition, you'd redefine that existing variable and ruin the calculation.
!Save fft period unit
let AOUT = fft_uwnd
save/file=fft_period.nc per[l=1:`FFT_nf`], AOUT

!Save phase in period unit
let BOUT = FFT_uwndfftp
save/file=phase_period.nc per[l=1:`FFT_nf`], BOUT



On 8/2/2012 3:16 PM, antonio avio wrote:
Hallo,

Thanks Ansley for the reply,
The main goal is to save the fft and phase from spectral analysis which have period unit in x axis.

Yes, I also did the same thing, but i still got the error message,
After compiling i got this error:

**ERROR: command syntax: per[l=1:378], fft_uwnd
          Definition contains multiple expressions
DEFINE VARIABLE A = per[l=1:378], fft_uwnd
Command file, command group, or REPEAT execution aborted

Thanks for the helps,
Antonio



On Thu, Aug 2, 2012 at 9:36 PM, Ansley Manke <ansley.b.manke@xxxxxxxx> wrote:
Hi
You are using "SET_UP per" as if it's a variable name.  The error message is telling you that variable names in Ferret cannot have a space in them.

Do you mean to say this?

!Save fft in period unit
let A = per[l=1:`FFT_nf`], fft_uwnd


On 8/2/2012 10:58 AM, antonio avio wrote:
Hallo,
I wonder why I got this error when i wanted to save the results of FFT analysis (period unit not frequency) in different nc files:

!Save fft in period unit
let A = SET_UP per[l=1:`FFT_nf`], fft_uwnd
 !-> DEFINE VARIABLE A = SET_UP per[l=1:378], fft_uwnd
 **ERROR: command syntax: SET_UP per[l=1:378], fft_uwnd
          SET_UP before per[l=1:378] is illegal
DEFINE VARIABLE A = SET_UP per[l=1:378], fft_uwnd
Command file, command group, or REPEAT execution aborted

Here is my command:

[SNIP]
!converting to Period
! Get the frequency increment used in the FFT.
      LET FFT_nf = `fft_uwnd,return=lend`
      LET FFT_nyquist = 0.5
      LET FFT_freq1 = FFT_nyquist/ FFT_nf

! Define a frequency axis.
      DEFINE AXIS/T=`FFT_freq1`:`FFT_nyquist`:`FFT_freq1` FAXIS
      DEFINE GRID/T=FAXIS gfftfreq
      LET a = T[g=gfftfreq]

! Define the period from the frequency axis.
      LET per = 1./a

! Plot period vs FFT Amplitudes showing the first 24 months where most of the energy is.
! The PPL commands clean up the appearance of the plot.

 SET VIEW ur
      PLOT/VS/LINE/HLIMITS=0:32:2/TITLE="Amplitude Spectrum"/SET_UP per[l=1:`FFT_nf`], fft_uwnd
      PPL XFOR (I2)
      PPL XLAB Period, months/cycle
      PPL YLAB 
      PPL PLOT
!****************************************************************************************************
! Compute and plot the phase using fftp.

      LET FFT_uwndfftp = fftp(fft_u[l=1:757])
      SET VARIABLE/TITLE="FFT Phase"/UNITS="deg" FFT_uwndfftp

      SET VIEW ll
      PLOT FFT_uwndfftp

      SET VIEW lr
      PLOT/VS/LINE/HLIMITS=0:32:2/TITLE="FFT Phase"/SET_UP per[l=1:`FFT_nf`],FFT_uwndfftp
      PPL XFOR (I2)
      PPL XLAB Period, months/cycle
      PPL YLAB Deg
      PPL PLOT

!Save fft period unit
let A = SET_UP per[l=1:`FFT_nf`], fft_uwnd
save/file=fft_period.nc A

!Save phase in period unit
let B = SET_UP per[l=1:`FFT_nf`], FFT_uwndfftp
save/file=phase_period.nc

!**********************************************************************************
Thanks for your help.

Antonio.





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

Privacy Policy | Disclaimer | Accessibility Statement