[Thread Prev][Thread Next][Index]

[las_users] vector animation problem in LASv7.1



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