[Thread Prev][Thread Next][Index]

Re: [las_users] vector animation problem in LASv7.1



Hi all,
Arturo and I have worked out a solution for his installation, using the old LAS V6 interface for vector plots. However we are currently working on getting vector capabilities into LAS V7, and that will be part of the next release.

Ansley

On 7/7/2010 2:21 PM, aavilar@xxxxxx wrote:
Dear Las users,
I am getting the following error when trying to plot COADS wind vector
animation, I used both Firefox 3.6.6 and IE 8 and I got the same message
error:

Thanks for any help provided
Cheers
Arturo Avila

STOP -script mode, ERROR RUNNING SCRIPT
  **ERROR: variable unknown or not in data set: PVAR
DEFINE VARIABLE var_size = ABS( `pvar,RETURN=size`)
Command file, command group, or REPEAT execution aborted

go "$1"
  !->  go
"/usr/local/apache-tomcat-6.0.26/webapps/las/WEB-INF/classes/resources/ferret/temp/ferret_operation_1278537276739.jnl"
! Symbols from the server
                         DEFINE SYMBOL data_0_ID = uwnd
                                  DEFINE SYMBOL data_0_dataset_ID =
coads_climatology_cdf
                                  DEFINE SYMBOL data_0_dataset_name = COADS
climatology
                                  DEFINE SYMBOL data_0_dataset_url =
file:coads_climatology
                                  DEFINE SYMBOL data_0_ftds_url =
http://192.168.142.72:8080/thredds/dodsC/las/coads_climatology_cdf/data_coads_climatology.jnl
                                  DEFINE SYMBOL data_0_grid_type = regular
                                  DEFINE SYMBOL data_0_intervals = xyt
                                  DEFINE SYMBOL data_0_name = ZONAL WIND
                                  DEFINE SYMBOL data_0_points = xyt
                                  DEFINE SYMBOL data_0_region = region_0
                                  DEFINE SYMBOL data_0_title = ZONAL WIND
                                  DEFINE SYMBOL data_0_units = M/S
                                  DEFINE SYMBOL data_0_url = coads_climatology
                                  DEFINE SYMBOL data_0_var = uwnd
                                  DEFINE SYMBOL data_0_xpath =
/lasdata/datasets/coads_climatology_cdf/variables/uwnd
                                  DEFINE SYMBOL data_1_ID = vwnd
                                  DEFINE SYMBOL data_1_dataset_ID =
coads_climatology_cdf
                                  DEFINE SYMBOL data_1_dataset_name = COADS
climatology
                                  DEFINE SYMBOL data_1_dataset_url =
file:coads_climatology
                                  DEFINE SYMBOL data_1_ftds_url =
http://192.168.142.72:8080/thredds/dodsC/las/coads_climatology_cdf/data_coads_climatology.jnl
                                  DEFINE SYMBOL data_1_grid_type = regular
                                  DEFINE SYMBOL data_1_intervals = xyt
                                  DEFINE SYMBOL data_1_name = MERIDIONAL WIND
                                  DEFINE SYMBOL data_1_points = xyt
                                  DEFINE SYMBOL data_1_region = region_0
                                  DEFINE SYMBOL data_1_title = MERIDIONAL WIND
                                  DEFINE SYMBOL data_1_units = M/S
                                  DEFINE SYMBOL data_1_url = coads_climatology
                                  DEFINE SYMBOL data_1_var = vwnd
                                  DEFINE SYMBOL data_1_xpath =
/lasdata/datasets/coads_climatology_cdf/variables/vwnd
                                  DEFINE SYMBOL data_count = 2
                                  DEFINE SYMBOL ferret_fill_levels = 20c
                                  DEFINE SYMBOL ferret_fill_type = fill
                                  DEFINE SYMBOL ferret_format = txt
                                  DEFINE SYMBOL ferret_interpolate_data =
false
                                  DEFINE SYMBOL ferret_land_type = contour
                                  DEFINE SYMBOL ferret_palette =
light_centered
                                  DEFINE SYMBOL ferret_service_action =
Data_Extract_Frames
                                  DEFINE SYMBOL ferret_size = 0.5
                                  DEFINE SYMBOL ferret_time_step = 1
                                  DEFINE SYMBOL ferret_view = xyt
                                  DEFINE SYMBOL las_debug = false
                                  DEFINE SYMBOL las_output_type = json
                                  DEFINE SYMBOL operation_ID =
Animation_Frames_XY
                                  DEFINE SYMBOL operation_key =
7870B111BFFF3842C9B2020A2CD8B5C5
                                  DEFINE SYMBOL operation_name =
AnimationFrames
                                  DEFINE SYMBOL operation_service = ferret
                                  DEFINE SYMBOL operation_service_action =
Data_Extract_Frames
                                  DEFINE SYMBOL product_server_ps_timeout =
9999999999
                                  DEFINE SYMBOL product_server_ui_timeout = 20
                                  DEFINE SYMBOL product_server_use_cache =
true
                                  DEFINE SYMBOL region_0_t_hi = 15-Dec
                                  DEFINE SYMBOL region_0_t_lo = 15-Jan
                                  DEFINE SYMBOL region_0_x_hi = 180
                                  DEFINE SYMBOL region_0_x_lo = -180
                                  DEFINE SYMBOL region_0_y_hi = 89
                                  DEFINE SYMBOL region_0_y_lo = -89
                                  DEFINE SYMBOL result_count = 3
                                  DEFINE SYMBOL result_debug_ID = debug
                                  DEFINE SYMBOL result_debug_filename =
/usr/local/tomcat/webapps/las/output/7870B111BFFF3842C9B2020A2CD8B5C5_debug.txt
                                  DEFINE SYMBOL result_debug_type = debug
                                  DEFINE SYMBOL result_ferret_listing_ID =
ferret_listing
                                  DEFINE SYMBOL
result_ferret_listing_filename =
/usr/local/tomcat/webapps/las/output/7870B111BFFF3842C9B2020A2CD8B5C5_ferret_listing.xml
                                  DEFINE SYMBOL result_ferret_listing_type
= xml
                                  DEFINE SYMBOL result_rss_ID = rss
                                  DEFINE SYMBOL result_rss_filename =
/usr/local/tomcat/webapps/las/output/8BE8BC8D3010FE453B73D74885FDB067_rss.rss
                                  DEFINE SYMBOL result_rss_type = rss
          GO ($operation_service_action)
  !->  GO Data_Extract_Frames
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! $Author: rhs $
!
! Extracting to a netCDF file and some text and table files have different
! options in the UI.  Need to separate them at this level to keep the UI
! happy.  All the Data_Extract* scripts launch the same list_data.jnl script.
GO list_frames
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $RCSfile: list_frames.jnl,v $
!
! $Author: Jing Y. Li $
! $Date: 2007/08/22
! 2007/11/27 ACM If the variable is a native curvilinear data variable,
operate
!                on the data field not the var,xcoord,ycoord which has been
!                defined as the *plot variable*". Specify the XY region
for the
!                variable using the i,j box limits previously computed.
!                Question: should the longitude/ latitude coordinates or
other
!                informatino about the curvilinear grid be listed in the
xml file?
!
! 4/28/2008 ACM refer always to ($data_var)[d=($data_num)] as there
!           may be other datasets open, e.g. for transformed variables.
! 4/28/2008 ACM Define tvar, used for getting time axis information, as
!           just t[gt=var] so that it isn't a huge variable to load in
tax_datestring.
!
! list_frames.jnl creates a listing in XML format for animation
! Assumes symbol ferret_listing is the output file.
! The listing file includes:
! - fill_levels      for 2D plots
! - contour_levels   for 2D plots
! - dep_axis_scale   for 1D plots
! - hasT             used to determine if the dataset has time axis
! - units            units of the time axis
! - frames           list of each individual time points

GO LAS_initialize_region 0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $RCSfile: LAS_initialize_region.jnl,v $
! $Revision: 1.1 $
!
! $Author: ansley $
! $Date: 2006/07/06 17:54:11 $
!
! The LAS_initialize_region.jnl script defines the following symbols
! based on the region associated with data_#:
!
! region_~_lo/hi   -- lo and hi points on a given axis
! region_~_range   -- numeric range on a given axis
! region_~         -- domain in 'lo:hi' notation
! region_full      -- synonym for 'region_xyzt'
!
! Incoming argument determines which region to use
! The default number is 0, and the default region is region_0.
! If we are making only a map, then there are no data_ symbols
! defined, so data_0_region is not set, but we can define region
! as region_0.
!
! ACM trac 267: Do not cancel any previously set limits or region symbols;
! The previous v6 UI as to how it worked in the old product server expects
! to inherit some or all region info from the first dataset for use by the
! second in comparisons etc. Keep this behavior.

DEFINE SYMBOL num ($1"0")
  !->  DEFINE SYMBOL num 0
DEFINE SYMBOL region_name data_($num)_region
  !->  DEFINE SYMBOL region_name data_0_region
DEFINE SYMBOL region ($($region_name)"region_0")
  !->  DEFINE SYMBOL region region_0

! NOTE:  Occasionally the LAS applet will send in a longitude or latitude
! NOTE:  that looks like "24.400000000000002".  Such long, numerically
! NOTE:  irrelevant numbers can overflow Ferret's maximum symbol length.
! NOTE:  Rounding longitudes and latitudes to the nearest .00001 seems
! NOTE:  reasonable for all but the most detailed datasets.

! NOTE:  'region_x_m360' and 'region_x_p360' are used for those
visualizations
! NOTE:  where Ferret doesn't auomatically deal with the modulo nature of
! NOTE:  longitude and allow the script writer to deal with this manually.

IF ($($region)_x_lo"0|*>1") THEN
  !->  IF 1 THEN
   DEFINE SYMBOL region_x_lo = `INT(100000 * ($($region)_x_lo)) / 100000`
  !->  DEFINE SYMBOL region_x_lo = -180
   DEFINE SYMBOL region_x_hi = `INT(100000 * ($($region)_x_hi)) / 100000`
  !->  DEFINE SYMBOL region_x_hi = 180
   DEFINE SYMBOL limits_x = ($region_x_lo):($region_x_hi)
  !->  DEFINE SYMBOL limits_x = -180:180
   DEFINE SYMBOL limits_x_m360 = `($region_x_lo)-360`:`($region_x_hi)-360`
  !->  DEFINE SYMBOL limits_x_m360 = -540:-180
   DEFINE SYMBOL limits_x_p360 = `($region_x_lo)+360`:`($region_x_hi)+360`
  !->  DEFINE SYMBOL limits_x_p360 = 180:540
   DEFINE SYMBOL region_x = X=($region_x_lo):($region_x_hi)
  !->  DEFINE SYMBOL region_x = X=-180:180
   DEFINE SYMBOL region_x_m360 X=`($region_x_lo)-360`:`($region_x_hi)-360`
  !->  DEFINE SYMBOL region_x_m360 X=-540:-180
   DEFINE SYMBOL region_x_p360 X=`($region_x_lo)+360`:`($region_x_hi)+360`
  !->  DEFINE SYMBOL region_x_p360 X=180:540
   IF `($region_x_hi) GE ($region_x_lo)` THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_x_range = `($region_x_hi) - ($region_x_lo)`
  !->  DEFINE SYMBOL region_x_range = 360
   ELSE
   ENDIF
ENDIF

IF ($($region)_y_lo"0|*>1") THEN
  !->  IF 1 THEN
   DEFINE SYMBOL region_y_lo = `INT(1000 * ($($region)_y_lo)) / 1000`
  !->  DEFINE SYMBOL region_y_lo = -89
   DEFINE SYMBOL region_y_hi = `INT(1000 * ($($region)_y_hi)) / 1000`
  !->  DEFINE SYMBOL region_y_hi = 89
   DEFINE SYMBOL limits_y = ($region_y_lo):($region_y_hi)
  !->  DEFINE SYMBOL limits_y = -89:89
   DEFINE SYMBOL region_y = Y=($region_y_lo):($region_y_hi)
  !->  DEFINE SYMBOL region_y = Y=-89:89
   IF `($region_y_hi) GE ($region_y_lo)` THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_y_range = `($region_y_hi) - ($region_y_lo)`
  !->  DEFINE SYMBOL region_y_range = 178
   ELSE
   ENDIF
ENDIF

IF ($($region)_z_lo"0|*>1") THEN
  !->  IF 0 THEN
   ENDIF
ENDIF

! NOTE:  Normally we use 'DEFINE SYMBOL ~ = ...'
! NOTE:  For the time axis we use 'DEFINE SYMBOL ~ ...' because the Ferret
! NOTE:  parser complains about unmatched quotes if we do it the other way.

IF ($($region)_t_lo"0|*>1") THEN
  !->  IF 1 THEN
   DEFINE SYMBOL region_t_lo = ($($region)_t_lo)
  !->  DEFINE SYMBOL region_t_lo = 15-Jan
   DEFINE SYMBOL region_t_hi = ($($region)_t_hi)
  !->  DEFINE SYMBOL region_t_hi = 15-Dec
   DEFINE SYMBOL limits_t \"($region_t_lo)\":\"($region_t_hi)\"
  !->  DEFINE SYMBOL limits_t \"15-Jan\":\"15-Dec\"
   DEFINE SYMBOL region_t T=\"($region_t_lo)\":\"($region_t_hi)\"
  !->  DEFINE SYMBOL region_t T=\"15-Jan\":\"15-Dec\"
ENDIF

! Now build up all possible multi-axis regions, being careful not to use
! commas when a region is missing

! region_xy
IF ($region_x"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_y"0|*>1") THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_xy = ($region_x),($region_y)
  !->  DEFINE SYMBOL region_xy = X=-180:180,Y=-89:89
   ELSE
   ENDIF
ELSE
   ENDIF
ENDIF

! region_xz
IF ($region_x"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_z"0|*>1") THEN
  !->  IF 0 THEN
   ELSE
     DEFINE SYMBOL region_xz = ($region_x)
  !->  DEFINE SYMBOL region_xz = X=-180:180
   ENDIF
ELSE
   ENDIF
ENDIF

! region_xt
IF ($region_x"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_t"0|*>1") THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_xt = ($region_x),($region_t)
  !->  DEFINE SYMBOL region_xt = X=-180:180,T="15-Jan":"15-Dec"
   ELSE
   ENDIF
ELSE
   ENDIF
ENDIF

! region_yz
IF ($region_y"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_z"0|*>1") THEN
  !->  IF 0 THEN
   ELSE
     DEFINE SYMBOL region_yz = ($region_y)
  !->  DEFINE SYMBOL region_yz = Y=-89:89
   ENDIF
ELSE
   ENDIF
ENDIF

! region_yt
IF ($region_y"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_t"0|*>1") THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_yt = ($region_y),($region_t)
  !->  DEFINE SYMBOL region_yt = Y=-89:89,T="15-Jan":"15-Dec"
   ELSE
   ENDIF
ELSE
   ENDIF
ENDIF

! region_zt
IF ($region_z"0|*>1") THEN
  !->  IF 0 THEN
   ENDIF
ELSE
   IF ($region_t"0|*>1") THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_zt = ($region_t)
  !->  DEFINE SYMBOL region_zt = T="15-Jan":"15-Dec"
   ENDIF
ENDIF

! region_xyz
IF ($region_xy"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_z"0|*>1") THEN
  !->  IF 0 THEN
   ELSE
     DEFINE SYMBOL region_xyz = ($region_xy)
  !->  DEFINE SYMBOL region_xyz = X=-180:180,Y=-89:89
   ENDIF
ELSE
   ENDIF
ENDIF

! region_xyt
IF ($region_xy"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_t"0|*>1") THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_xyt = ($region_xy),($region_t)
  !->  DEFINE SYMBOL region_xyt = X=-180:180,Y=-89:89,T="15-Jan":"15-Dec"
   ELSE
   ENDIF
ELSE
   ENDIF
ENDIF

! region_yzt
IF ($region_yz"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_t"0|*>1") THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_yzt = ($region_yz),($region_t)
  !->  DEFINE SYMBOL region_yzt = Y=-89:89,T="15-Jan":"15-Dec"
   ELSE
   ENDIF
ELSE
   ENDIF
ENDIF

! region_xyzt
IF ($region_xyz"0|*>1") THEN
  !->  IF 1 THEN
   IF ($region_t"0|*>1") THEN
  !->  IF 1 THEN
     DEFINE SYMBOL region_xyzt = ($region_xyz),($region_t)
  !->  DEFINE SYMBOL region_xyzt = X=-180:180,Y=-89:89,T="15-Jan":"15-Dec"
   ELSE
   ENDIF
ELSE
   ENDIF
ENDIF

DEFINE SYMBOL region_full = ($region_xyzt)
  !->  DEFINE SYMBOL region_full = X=-180:180,Y=-89:89,T="15-Jan":"15-Dec"


! For sampling from a curvilinear variable, save the region definitions with
! the variable number.
IF ($region_x"0|*>1") THEN DEFINE SYMBOL region_($num)_x = ($region_x)
  !->  IF 1 THEN DEFINE SYMBOL region_0_x = X=-180:180
  !->  DEFINE SYMBOL region_0_x = X=-180:180
IF ($region_y"0|*>1") THEN DEFINE SYMBOL region_($num)_y = ($region_y)
  !->  IF 1 THEN DEFINE SYMBOL region_0_y = Y=-89:89
  !->  DEFINE SYMBOL region_0_y = Y=-89:89
IF ($region_z"0|*>1") THEN DEFINE SYMBOL region_($num)_z = ($region_z)
  !->  IF 0 THEN DEFINE SYMBOL region_0_z =
IF ($region_t"0|*>1") THEN DEFINE SYMBOL region_($num)_t = ($region_t)
  !->  IF 1 THEN DEFINE SYMBOL region_0_t = T="15-Jan":"15-Dec"
  !->  DEFINE SYMBOL region_0_t = T="15-Jan":"15-Dec"
IF ($region_xt"0|*>1") THEN DEFINE SYMBOL region_($num)_xt = ($region_xt)
  !->  IF 1 THEN DEFINE SYMBOL region_0_xt = X=-180:180,T="15-Jan":"15-Dec"
  !->  DEFINE SYMBOL region_0_xt = X=-180:180,T="15-Jan":"15-Dec"
IF ($region_xy"0|*>1") THEN DEFINE SYMBOL region_($num)_xy = ($region_xy)
  !->  IF 1 THEN DEFINE SYMBOL region_0_xy = X=-180:180,Y=-89:89
  !->  DEFINE SYMBOL region_0_xy = X=-180:180,Y=-89:89
IF ($region_xz"0|*>1") THEN DEFINE SYMBOL region_($num)_xz = ($region_xz)
  !->  IF 1 THEN DEFINE SYMBOL region_0_xz = X=-180:180
  !->  DEFINE SYMBOL region_0_xz = X=-180:180
IF ($region_yt"0|*>1") THEN DEFINE SYMBOL region_($num)_yt = ($region_yt)
  !->  IF 1 THEN DEFINE SYMBOL region_0_yt = Y=-89:89,T="15-Jan":"15-Dec"
  !->  DEFINE SYMBOL region_0_yt = Y=-89:89,T="15-Jan":"15-Dec"
IF ($region_yz"0|*>1") THEN DEFINE SYMBOL region_($num)_yz = ($region_yz)
  !->  IF 1 THEN DEFINE SYMBOL region_0_yz = Y=-89:89
  !->  DEFINE SYMBOL region_0_yz = Y=-89:89
IF ($region_zt"0|*>1") THEN DEFINE SYMBOL region_($num)_zt = ($region_zt)
  !->  IF 1 THEN DEFINE SYMBOL region_0_zt = T="15-Jan":"15-Dec"
  !->  DEFINE SYMBOL region_0_zt = T="15-Jan":"15-Dec"

! For SOCAT server labels, make time symbols w/o the trailing 00:00:00

IF ($region_0_t_lo"0|*>1") THEN
  !->  IF 1 THEN
    DEFINE SYMBOL t_lab_lo = ($region_0_t_lo)
  !->  DEFINE SYMBOL t_lab_lo = 15-Jan
    LET iz = STRINDEX("($region_0_t_lo)", " 00:00:00")
  !->  DEFINE VARIABLE iz = STRINDEX("15-Jan", " 00:00:00")
    IF `iz GT 0` THEN
  !->  IF 0 THEN
    ELSE
       LET iz = STRINDEX("($region_0_t_lo)", ":00:00")
  !->  DEFINE VARIABLE iz = STRINDEX("15-Jan", ":00:00")
       IF `iz GT 0` THEN DEFINE SYMBOL t_lab_lo =
`SUBSTRING("($region_0_t_lo)", 1, iz-1)`
  !->  IF 0 THEN DEFINE SYMBOL t_lab_lo = `SUBSTRING("15-Jan", 1, iz-1)`
    ENDIF
ENDIF

IF ($region_0_t_hi"0|*>1") THEN
  !->  IF 1 THEN
    DEFINE SYMBOL t_lab_hi = ($region_0_t_hi)
  !->  DEFINE SYMBOL t_lab_hi = 15-Dec
    LET iz = STRINDEX("($region_0_t_hi)", " 00:00:00")
  !->  DEFINE VARIABLE iz = STRINDEX("15-Dec", " 00:00:00")
    IF `iz GT 0` THEN
  !->  IF 0 THEN
    ELSE
       LET iz = STRINDEX("($region_0_t_hi)", ":00:00")
  !->  DEFINE VARIABLE iz = STRINDEX("15-Dec", ":00:00")
       IF `iz GT 0` THEN DEFINE SYMBOL t_lab_hi =
`SUBSTRING("($region_0_t_hi)", 1, iz-1)`
  !->  IF 0 THEN DEFINE SYMBOL t_lab_hi = `SUBSTRING("15-Dec", 1, iz-1)`
    ENDIF
ENDIF

! If no regions have been defined then we have an error.

IF ($region_full"1|*>0")  THEN
  !->  IF 0  THEN
ENDIF

! End of LAS_initialize_region.jnl
------------------------------------------------------
GO LAS_initialize_data 0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $RCSfile: LAS_initialize_data.jnl,v $
! $Revision: 1.2 $
!
! $Author: ansley $
! $Date: 2007/29/2007
!
! The LAS_initialize_data.jnl script takes care of everything having to
! do with initializing a datset for later use.
!
! LAS_initialize_data.jnl takes an argument that specifies which data
! item [0|1|2|3|...] to create symbols for.
!
! 3/2007:
! split up previous version of LAS_initialize_data.jnl into two;
! initialize the dataset and define the plot (or output listing) variable.
! This allows the custom init scripts to call LAS_initialize_dataset, then
! issue commands for the customization, then call LAS_initialize_variable
!
! 8/2007:
! The custom init scripts now consist of only SET DATA and the custom
commands.
! This lets F-TDS run first and call the init script to create the data set
! that will be used by the Ferret product script. When F-TDS is done it will
! not send the symbol ferret_init_script to the product scripts so we will
just skip
! that step.
!
! 8/2007:
! Some of the custom init scripts previously contained commands like SET
MEMORY
! or SET MODE which are intended to be executed by the product script
These need
! to be separated from commands for fixing grids or regridding which are
executed
! prior to the product script being run by F-TDS. These commands are to be
specified
! in the dataset configuration as ferret_init_commands, whose the value is
a set
! of Ferret commands separated by semicolons.
!
GO LAS_initialize_dataset ($1"0")
  !->  GO LAS_initialize_dataset 0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $RCSfile: LAS_initialize_dataset.jnl

! This is the first part of LAS_initialize_data.jnl used for standard and
! customized init scripts

! $Author: ansley, jing
! $Date: 2007/29/2007

! 6/29/2007
! Allow for data_0_units or data_1_units etc to be defined a null string or a
! string containing a single space. If data_0_units is either undefined or is
! one of these blank strings, then use the attnames syntax to see if the
dataset
! variable has units defined, and if so define the data_units symbol from
that.


! The LAS_initialize_data.jnl script takes care of everything having to
! do with initializing a datset for later use.
!
! LAS_initialize_data.jnl takes an argument that specifies which data
! item [0|1|2|3|...] to create symbols for.

!ACM_note: if we use a loop in the plot routine, we are not
! limited to 9 data items
! DEFINE SYMBOL num ($1"0|0|1|2|3|4|5|6|7|8|9")
DEFINE SYMBOL num ($1"0")
  !->  DEFINE SYMBOL num 0

! TODO:  It would be nice if the java code removed this dependency upon
! TODO:  whether an operation was 'chained' or not.

! Check whether the source data was part of a 'chained' operation.
!ACM note: How does this jibe with what I do below changing data_url to
data_num??

IF ($data_($num)_chained"0|1|*>1) THEN
  !->  IF 0 THEN
ELSE
   DEFINE SYMBOL data_url \"($data_($num)_url)\"
  !->  DEFINE SYMBOL data_url \"coads_climatology\"
ENDIF

IF ($data_($num)_var"0|*>1") THEN DEFINE SYMBOL data_var ($data_($num)_var)
  !->  IF 1 THEN DEFINE SYMBOL data_var uwnd
  !->  DEFINE SYMBOL data_var uwnd

! Use the units passed in from the XML unless they are null;
! in that case try to get from the dataset

! Do not define data_units with an empty string
IF ($data_($num)_units%1|"">1|*>0%) THEN
  !->  IF 0 THEN
ELIF ($data_($num)_units%1|" ">1|*>0%) THEN
  !->  ELIF 0 THEN
ELSE
    DEFINE SYMBOL data_units ($data_($num)_units)
  !->  DEFINE SYMBOL data_units M/S
ENDIF

IF ($data_units"0|*>1") THEN
  !->  IF 1 THEN
    DEFINE SYMBOL data_units (($data_($num)_units))
  !->  DEFINE SYMBOL data_units (M/S)
    IF `STRINDEX("($data_units)", "((") GT 0` THEN \
      DEFINE SYMBOL data_units ($data_($num)_units)
  !->  IF 0 THEN      DEFINE SYMBOL data_units M/S
ENDIF

IF ($data_($num)_name"0|1|*>1) THEN
  !->  IF 1 THEN
    IF ($data_($num)_title"0|*>1") THEN DEFINE SYMBOL data_title
($data_($num)_title)
  !->  IF 1 THEN DEFINE SYMBOL data_title ZONAL WIND
  !->  DEFINE SYMBOL data_title ZONAL WIND
ELSE
ENDIF

DEFINE SYMBOL ferret_plot_title "($data_title) ($data_units)"
  !->  DEFINE SYMBOL ferret_plot_title "ZONAL WIND (M/S)"

! TODO:  Use new error features in Ferret to turn off STDERR and check
! TODO:  for Ferret error symbols to see if the SET DATA command actually
worked.

! SET DATA and check for errors

SET DATA ($data_url)
  !->  SET DATA "coads_climatology"

LET ulen = STRLEN ("($data_($num)_units)")
  !->  DEFINE VARIABLE ulen = STRLEN ("M/S")
IF `(STRINDEX("($data_($num)_units)", "'") EQ 1) AND
(STRRINDEX("($data_($num)_units)", "'") EQ ulen)` THEN
  !->  IF 0 THEN
ENDIF

IF ($fer_last_error"0|*>1") THEN
  !->  IF 0 THEN
ENDIF

! End of $RCSfile
------------LAS_initialize_dataset.jnl--------------------------


IF ($ferret_init_script"0|*>1") THEN GO ($ferret_init_script) ($1"0")
  !->  IF 0 THEN GO   0

IF ($ferret_init_commands"0|*>1") THEN
  !->  IF 0 THEN
ENDIF

GO LAS_initialize_variable
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $RCSfile: LAS_initialize_variable.jnl
! $Revision: 1.1
!
! $Author: Ansley, Jing $
! $Date: 2007/29/2007
! ACM 4/2007 apply ferret_expression2 to second plot of comparisons.
! ACM 8/2007 Call LAS_auto_levels to set up auto contour/fill levels.
! 3/2008 ACM Use SHADE/TRIM for shade underlays of FILL plots (Ferret v6.1),
!            so no need to call LAS_define_region_plus_1.jnl
! 10-Jul-2008 ACM Define ferret_x_var, needed for listing data to files

! this is the second part of LAS_initialize_data.jnl

! Define the plot variable. For comparison plots, we want to save the
dataset number
! for each dataset.

DEFINE SYMBOL data_num = `($data_var),RETURN=dsetnum`
  !->  DEFINE SYMBOL data_num = 1
DEFINE SYMBOL data_($num)_num = `($data_var),RETURN=dsetnum`
  !->  DEFINE SYMBOL data_0_num = 1

LET attlist = ($data_var).attnames
  !->  DEFINE VARIABLE attlist = uwnd.attnames
DEFINE SYMBOL data_var_only = `UPCASE("($data_var)")`
  !->  DEFINE SYMBOL data_var_only = UWND

! setup for analysis ops on curvilinear grids
IF `IS_ELEMENT_OF_STR (attlist, "ferret_definition") GT 0 AND\
     ($ferret_curvi_coord_lon"0|*>1")` THEN
  !->  IF 0 THEN
ENDIF

! Be sure units and title are defined.
! If units are not defined, try to get units from the data variable.
! If the variable in the file has no units, leave data_units symbol
undefined.

! data_units should have been defined in LAS_initialize_dataset

IF ($data_units"0|*>1") THEN
  !->  IF 1 THEN
    DEFINE SYMBOL has_units = 1
ELSE
       ENDIF
    ENDIF
ENDIF

DEFINE SYMBOL ferret_plot_title "($data_title) ($data_units)"
  !->  DEFINE SYMBOL ferret_plot_title "ZONAL WIND (M/S)"

IF `($data_title"0|*>1") EQ 0` THEN
  !->  IF 0 THEN
   ENDIF
ENDIF


DEFINE SYMBOL ferret_plot_var = ($data_var)[d=($data_num),($region_full)]
  !->  DEFINE SYMBOL ferret_plot_var =
uwnd[d=1,X=-180:180,Y=-89:89,T="15-Jan":"15-Dec"]
IF ($analysis_def"0|*>1") THEN  ! analysis_def from curvi data or transform
  !->  IF 0 THEN
ENDIF

DEFINE SYMBOL ferret_plot_var_noregion = ($data_var)[d=($data_num)]
  !->  DEFINE SYMBOL ferret_plot_var_noregion = uwnd[d=1]
DEFINE SYMBOL ferret_plot_var_($num)_noregion = ($data_var)[d=($data_num)]
  !->  DEFINE SYMBOL ferret_plot_var_0_noregion = uwnd[d=1]

DEFINE SYMBOL ferret_plot_base_var = ($ferret_plot_var)
  !->  DEFINE SYMBOL ferret_plot_base_var =
uwnd[d=1,X=-180:180,Y=-89:89,T="15-Jan":"15-Dec"]
DEFINE SYMBOL ferret_plot_base_var_($num) = ($ferret_plot_var)
  !->  DEFINE SYMBOL ferret_plot_base_var_0 =
uwnd[d=1,X=-180:180,Y=-89:89,T="15-Jan":"15-Dec"]
DEFINE SYMBOL ferret_plot_base_var_noregion = ($data_var)[d=($data_num)]
  !->  DEFINE SYMBOL ferret_plot_base_var_noregion = uwnd[d=1]

! Needed for transform_seasonal, save variable definition without any
! time-region information that may be added, and also with the time region
only

DEFINE SYMBOL ferret_xyz_var = ($data_var)[d=($data_num),($region_xyz)]
  !->  DEFINE SYMBOL ferret_xyz_var = uwnd[d=1,X=-180:180,Y=-89:89]
DEFINE SYMBOL ferret_t_var = ($data_var)[d=($data_num),($region_t)]
  !->  DEFINE SYMBOL ferret_t_var = uwnd[d=1,T="15-Jan":"15-Dec"]

! ferret_x_var needed for listing data to files
DEFINE SYMBOL ferret_x_var = ($data_var)[d=($data_num),($region_x)]
  !->  DEFINE SYMBOL ferret_x_var = uwnd[d=1,X=-180:180]
IF `($region_x"0|*>1) EQ 0` THEN DEFINE SYMBOL ferret_x_var =
($data_var)[d=($data_num)]
  !->  IF 0 THEN DEFINE SYMBOL ferret_x_var = uwnd[d=1]

! Apply the expression in ferret_expression. $ represents the variable.

! Check if we are working with the second of two variables in comparison mode
IF ($variables_initialized"0|*>1") THEN
  !->  IF 0 THEN
ENDIF

! The side by side plots pretend that the second plot is plot 1, so
IF `STRCMP("($operation_service_action)", "Side2") EQ 0` THEN
  !->  IF 0 THEN
ENDIF

IF ($ferret_expression"0|*>1") THEN GO LAS_expression
  !->  IF 0 THEN GO LAS_expression

! Apply any transforms that may have been specified.
GO LAS_transforms ($variables_initialized"0|*>1")
  !->  GO LAS_transforms 0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! LAS_transforms.jnl
!
! $Author: ansley $
! $Date: 2006/09/27  $
! 2007/3/13 ACM changes for all slices of curvilinear data.
! 4/2007    ACM Apply Ferret symbols for any expression that may have been
defined

!
! LAS_transforms.jnl applies one or more transforms to $ferret_plot_var

! This script is called from LAS_initialize_data after the region and
! data have been initialized.
! Argument is the variable number (0 or 1 if this is a comparison)

DEFINE SYMBOL num ($1"0")
  !->  DEFINE SYMBOL num 0

!  Transform to 3-month seasonal averages, with desired centering
IF `($constraint_0_lhs"0|Seasonal_Regridding>1|*>0")` THEN
  !->  IF 0 THEN
ENDIF

! Transform to 1-season per year, centered on any month, with season being
1, 3, or 5 months long.
IF `STRINDEX("($constraint_0_lhs"0")", "Season_length") GT 0` THEN
  !->  IF 0 THEN
ENDIF

! See if the grid is curvilinear in XY, Hybrid Z or both

DEFINE SYMBOL do_curvi_xy = 0
DEFINE SYMBOL do_hybrid_z = 0
DEFINE SYMBOL do_curvi_xy_and_hybrid_z = 0

IF ($ferret_curvi_coord_lat"0|*>1") THEN DEFINE SYMBOL do_curvi_xy = 1
  !->  IF 0 THEN DEFINE SYMBOL do_curvi_xy = 1
IF ($ferret_thk_var"0|*>1") THEN  DEFINE SYMBOL do_hybrid_z = 1
  !->  IF 0 THEN  DEFINE SYMBOL do_hybrid_z = 1
IF `($do_curvi_xy) + ($do_hybrid_z) EQ 2` THEN DEFINE SYMBOL
do_curvi_xy_and_hybrid_z = 1
  !->  IF 0 THEN DEFINE SYMBOL do_curvi_xy_and_hybrid_z = 1

IF ($do_curvi_xy_and_hybrid_z) THEN GO transform_hybrid_z_curvi_xy
  !->  IF 0 THEN GO transform_hybrid_z_curvi_xy

! Set up to deal with hybrid-Z data.
IF `($do_hybrid_z) AND ($do_curvi_xy_and_hybrid_z"0") EQ 0` THEN \
    GO transform_hybrid_z.jnl
  !->  IF 0 THEN    GO transform_hybrid_z.jnl

! Set up to deal with curvilinear XY data
IF ($do_curvi_xy) THEN GO transform_curvi_xy.jnl
  !->  IF 0 THEN GO transform_curvi_xy.jnl

! End of $RCSfile
------------LAS_transforms.jnl-------------------------------


! Get any DEFINE VARIABLE analysis definitions
! This renames the data variable, and so redefines the symbol data_var
! and sets up the analysis: e.g. ,z=0:2000@ave

! unComment this for testing.

IF ($data_0_analysis_label"0|*>1") THEN
  !->  IF 0 THEN
    ENDIF
ENDIF

! Keep track of variables initialized, to tell us if next time we
! want ferret_expression or ferret_expression2

DEFINE SYMBOL variables_initialized `1 + ($variables_initialized"0")`
  !->  DEFINE SYMBOL variables_initialized 1

! From the variable we can define striding.
! TODO: script works only for rectangular data so far...

! (check for Google Earth plots is inside LAS_set_strides)
IF `($num)+1 EQ ($data_count)` THEN GO LAS_set_strides.jnl
  !->  IF 0 THEN GO LAS_set_strides.jnl

! to set non-native strides for dataset 1 on a difference plot.
IF `($no_native_strides_xy"0|*>1") AND ($set_ndx_strides"0|*>1") EQ 0` THEN
  !->  IF 0 THEN
ENDIF

! Mark whether there are contour levels set on first entry.
! Compute automatic open-ended levels.

IF `($data_num) EQ 1` THEN
  !->  IF 1 THEN
    IF ($ferret_contour_levels"0|*>1") THEN DEFINE SYMBOL
input_contour_levels = 1
  !->  IF 0 THEN DEFINE SYMBOL input_contour_levels = 1
    IF ($ferret_fill_levels"0|*>1") THEN DEFINE SYMBOL input_fill_levels = 1
  !->  IF 1 THEN DEFINE SYMBOL input_fill_levels = 1
  !->  DEFINE SYMBOL input_fill_levels = 1

    IF `STRLEN("($ferret_view)") EQ 2 AND STRINDEX("($operation_ID)",
"Plot") GT 0` THEN
  !->  IF 0 THEN
    ENDIF
    IF `STRLEN("($ferret_view)") EQ 2 AND STRINDEX("($operation_ID)",
"zoom") GT 0` THEN GO LAS_auto_levels
  !->  IF 0 THEN GO LAS_auto_levels

ENDIF

! End of $RCSfile
------------LAS_initialize_variable.jnl--------------------------

! End of $RCSfile
------------LAS_initialize_data.jnl--------------------------


! Here is the variable we will list out, with the region specified.
DEFINE SYMBOL ferret_list_var = ($ferret_plot_var)
  !->  DEFINE SYMBOL ferret_list_var =
uwnd[d=1,X=-180:180,Y=-89:89,T="15-Jan":"15-Dec"]

IF ($do_curvi_xy"0") THEN
  !->  IF 0 THEN
ELSE
    LET the_var = ($ferret_plot_var)
  !->  DEFINE VARIABLE the_var =
uwnd[d=1,X=-180:180,Y=-89:89,T="15-Jan":"15-Dec"]
    DEFINE SYMBOL imin `the_var,return=xstart`
  !->  DEFINE SYMBOL imin 179W(-179)
    DEFINE SYMBOL imax `the_var,return=iend`
  !->  DEFINE SYMBOL imax 80
    DEFINE SYMBOL isize `the_var,return=isize`
  !->  DEFINE SYMBOL isize 180
    DEFINE SYMBOL jmin `the_var,return=jstart`
  !->  DEFINE SYMBOL jmin 1
    DEFINE SYMBOL jmax `the_var,return=jend`
  !->  DEFINE SYMBOL jmax 90
    DEFINE SYMBOL jsize `the_var,return=jsize`
  !->  DEFINE SYMBOL jsize 90
ENDIF

DEFINE SYMBOL kmin `the_var,return=kstart`
  !->  DEFINE SYMBOL kmin 0
DEFINE SYMBOL kmax `the_var,return=kend`
  !->  DEFINE SYMBOL kmax 0
DEFINE SYMBOL ksize `the_var,return=ksize`
  !->  DEFINE SYMBOL ksize 1
DEFINE SYMBOL lmin `the_var,return=lstart`
  !->  DEFINE SYMBOL lmin 1
DEFINE SYMBOL lmax `the_var,return=lend`
  !->  DEFINE SYMBOL lmax 12
DEFINE SYMBOL lsize `the_var,return=lsize`
  !->  DEFINE SYMBOL lsize 12

! LAS_auto_levels_animate checks whether symbols for color levels
! have been set, and if not, sets them for the variable at all time steps.
GO LAS_auto_levels_animate
! LAS_auto_levels_animate.jnl
! ACM 8/22/2007
!
! acm 9/11/07 If its a descriptor file Ferret wont allow striding.
!             check for that case and just set num levels.
! acm* 2/2010 Set up a few things and then Use Ferret-s open-ended levels
!             if the levs havent been set by the user or configuration.
!             Allow for old algorithm if older Ferret is in place.

! Based on a variables value over its entire range, set strides
! if needed to quickly get stats on the variable. Use this to set levels.

! Argument: the variable to use in setting the levels.

! The symbol ferret_center_levels, if set to 1, forces the levels
! to be 2 std above and below zero. Otherwise use 2 std above
! and below the data mean

! This script should be done BEFORE any other striding is done.
! It operates on the variable on its entire native unstrided grid.

! input_fill_levels and input_contour_levels are symbols that are defined in
! LAS_initialize_variable.jnl, telling whether settings for levels were
! made

! Determine striding for speed in operating the STAT command
LET memsize = 0.5* 1.e6

! Make sure its a 2D plot operation.

DEFINE SYMBOL op = `UPCASE("($operation_ID)")`
  !->  DEFINE SYMBOL op = ANIMATION_FRAMES_XY

!IF `($ferret_view"|xy>1|*>0") NE 1` THEN EXIT/SCRIPT
IF `STRINDEX("($op)", "VECTOR") GT 0` THEN EXIT/SCRIPT
  !->  IF 0 THEN EXIT/SCRIPT

IF `STRINDEX("($op)", "ANIMATION") EQ 0` THEN EXIT/SCRIPT
  !->  IF 0 THEN EXIT/SCRIPT

! NOTE: animations have not been implemented for difference plots.
! If its a compare plot, and if the ($ferret_diff_var) is not yet defined,
! just return.

IF `($ferret_diff_var"1|*>0") AND STRINDEX("($op)", "COMPARE_PLOT") NE 0`
THEN
  !->  IF 0 THEN
ENDIF

DEFINE SYMBOL ferret_center_levels ($ferret_center_levels"0|1|TRUE>1|*>0")
  !->  DEFINE SYMBOL ferret_center_levels 0

! See if centered levels were requested, either by setting the symbol
ferret_center_levels
! or with a contour_levels or fill_levels that is centered.

! See if centered levels were requested, either by setting the symbol
ferret_center_levels
! or with a contour_levels or fill_levels that is centered.

! If contour levels requested with levels of nC, e.g. 20C, then get the
value to
! set num_fine_levels in the %RANGE command below

! In general if other levels spec is given, return. However if it is a
simple number,
! use that to set the number of fine levels.

IF ($ferret_contour_levels"0|*>1") THEN
  !->  IF 0 THEN
    ENDIF
    ENDIF
ENDIF


IF ($ferret_fill_levels"0|*>1") THEN
  !->  IF 1 THEN
    DEFINE SYMBOL up_fill_levels = `UPCASE("($ferret_fill_levels)")`
  !->  DEFINE SYMBOL up_fill_levels = 20C
    LET nc = `STRINDEX("($up_fill_levels)", "C")`
  !->  DEFINE VARIABLE nc = 3
    DEFINE SYMBOL ferret_center_levels = `nc GT 0`
  !->  DEFINE SYMBOL ferret_center_levels = 1
    IF `nc GT 0` THEN
  !->  IF 1 THEN
       LET slen = STRLEN ("($up_fill_levels)")
  !->  DEFINE VARIABLE slen = STRLEN ("20C")
       IF `slen GT 1` THEN DEFINE SYMBOL num_fine_levels = `SUBSTRING
("($up_fill_levels)", 1, slen-1)`
  !->  IF 1 THEN DEFINE SYMBOL num_fine_levels = `SUBSTRING ("20C", 1, slen-1)`
  !->  DEFINE SYMBOL num_fine_levels = `SUBSTRING ("20C", 1, slen-1)`
  !->  DEFINE SYMBOL num_fine_levels = 20
       CANCEL SYMBOL input_fill_levels  ! we will redefine the levels in
this script
    ENDIF
    LET other = `STRINDEX("($ferret_fill_levels)", "D")` + \
       `STRINDEX("($ferret_fill_levels)", "(")`+ \
       `STRINDEX("($ferret_fill_levels)", ".")`
  !->  DEFINE VARIABLE other = 0 +       0+       0
    IF `nc EQ 0 AND other EQ 0` THEN
  !->  IF 0 THEN
    ENDIF

    say IF `nc EQ 0 AND other NE 0` THEN EXIT/SCRIPT
  !->  MESSAGE/CONTINUE IF 0 THEN EXIT/SCRIPT
IF 0 THEN EXIT/SCRIPT

    IF `nc EQ 0 AND other NE 0` THEN EXIT/SCRIPT
  !->  IF 0 THEN EXIT/SCRIPT
ENDIF

! Apply to the variable on the requested region in x, y, z and all time.

IF `($ferret_plot_var"0|*>1") EQ 0` THEN EXIT/SCRIPT  !e.g. for insitu
plots may not have a plot_var
  !->  IF 0 THEN EXIT/SCRIPT

IF `($do_curvi_xy"0|*>1") EQ 0` THEN
  !->  IF 0 THEN
ELSE
    DEFINE SYMBOL ferret_plot_var = pvar
ENDIF

IF ($ferret_plot_var"0|sampled_var>1|*>0) THEN LET pvar = ($ferret_plot_var)
  !->  IF 0 THEN LET pvar = pvar

LET var_size = ABS( `pvar,RETURN=size`)




[Thread Prev][Thread Next][Index]


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

Privacy Policy | Disclaimer | Accessibility Statement