[Thread Prev][Thread Next][Index]

[las_users] las v7beta animation



Hello, we have just installed the LAS V7 Beta on Tomcat 6. While most of
the features seem to be working, we are having problems with animation.
Any attempt to animate a plot gives the error:

 **ERROR: command syntax: undefined
DEFINE SYMBOL var_size = 0 + `pvar,RETURN=size`
Command file, command group, or REPEAT execution aborted
STOP -script mode, ERROR RUNNING SCRIPT statement executed


and then the text of the .jnl file (copied below). This is with the
sample data sets. Is there a way to fix this? Thanks!

--Ethan




 **ERROR: command syntax: undefined
DEFINE SYMBOL var_size = 0 + `pvar,RETURN=size`
Command file, command group, or REPEAT execution aborted
STOP -script mode, ERROR RUNNING SCRIPT statement executed

go "$1"
 !-> go "/usr/local/tomcat/apache-tomcat-6.0.16/webapps/las/WEB-INF/classes/resources/ferret/temp/ferret_operation_1221148971036.jnl"
! Symbols from the server
                        DEFINE SYMBOL data_0_ID = speh
                                 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://nomads-d.ncdc.noaa.gov: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 = SPECIFIC HUMIDITY
                                 DEFINE SYMBOL data_0_points = xyt
                                 DEFINE SYMBOL data_0_region = region_0
                                 DEFINE SYMBOL data_0_title = SPECIFIC HUMIDITY
                                 DEFINE SYMBOL data_0_units = G/KG
                                 DEFINE SYMBOL data_0_url = coads_climatology
                                 DEFINE SYMBOL data_0_var = speh
                                 DEFINE SYMBOL data_0_xpath = /lasdata/datasets/coads_climatology_cdf/variables/speh
                                 DEFINE SYMBOL data_count = 1
                                 DEFINE SYMBOL ferret_fill_type = fill
                                 DEFINE SYMBOL ferret_interpolate_data = false
                                 DEFINE SYMBOL ferret_land_type = contour
                                 DEFINE SYMBOL ferret_mark_grid = no
                                 DEFINE SYMBOL ferret_service_action = Plot_2D_XY
                                 DEFINE SYMBOL ferret_size = 0.5
                                 DEFINE SYMBOL ferret_view = xy
                                 DEFINE SYMBOL las_debug = info
                                 DEFINE SYMBOL las_output_type = json
                                 DEFINE SYMBOL operation_ID = Plot_2D_XY
                                 DEFINE SYMBOL operation_key = 86B861C2958A15747B1F28E9D6A18A42
                                 DEFINE SYMBOL operation_name = Color plot
                                 DEFINE SYMBOL operation_service = ferret
                                 DEFINE SYMBOL operation_service_action = Plot_2D_XY
                                 DEFINE SYMBOL product_server_0_ps_timeout = 3600
                                 DEFINE SYMBOL product_server_0_ui_timeout = 20
                                 DEFINE SYMBOL product_server_0_use_cache = true
                                 DEFINE SYMBOL region_0_t_hi = undefined
                                 DEFINE SYMBOL region_0_t_lo = undefined
                                 DEFINE SYMBOL region_0_x_hi = 379
                                 DEFINE SYMBOL region_0_x_lo = 21
                                 DEFINE SYMBOL region_0_y_hi = 89
                                 DEFINE SYMBOL region_0_y_lo = -89
                                 DEFINE SYMBOL result_cancel_ID = cancel
                                 DEFINE SYMBOL result_cancel_filename = /usr/local/tomcat/current/webapps/las/output/86B861C2958A15747B1F28E9D6A18A42_cancel.txt
                                 DEFINE SYMBOL result_cancel_type = cancel
                                 DEFINE SYMBOL result_count = 6
                                 DEFINE SYMBOL result_debug_ID = debug
                                 DEFINE SYMBOL result_debug_filename = /usr/local/tomcat/current/webapps/las/output/86B861C2958A15747B1F28E9D6A18A42_debug.txt
                                 DEFINE SYMBOL result_debug_type = debug
                                 DEFINE SYMBOL result_map_scale_ID = map_scale
                                 DEFINE SYMBOL result_map_scale_filename = /usr/local/tomcat/current/webapps/las/output/86B861C2958A15747B1F28E9D6A18A42_map_scale.xml
                                 DEFINE SYMBOL result_map_scale_type = map_scale
                                 DEFINE SYMBOL result_plot_image_ID = plot_image
                                 DEFINE SYMBOL result_plot_image_filename = /usr/local/tomcat/current/webapps/las/output/86B861C2958A15747B1F28E9D6A18A42_plot_image.gif
                                 DEFINE SYMBOL result_plot_image_type = image
                                 DEFINE SYMBOL result_ref_map_ID = ref_map
                                 DEFINE SYMBOL result_ref_map_filename = /usr/local/tomcat/current/webapps/las/output/86B861C2958A15747B1F28E9D6A18A42_ref_map.gif
                                 DEFINE SYMBOL result_ref_map_type = image
                                 DEFINE SYMBOL result_rss_ID = rss
                                 DEFINE SYMBOL result_rss_filename = /usr/local/tomcat/current/webapps/las/output/C3F9E1945784BB63912EE8D3C3CB6DB4_rss.rss
                                 DEFINE SYMBOL result_rss_type = rss
         GO ($operation_service_action)
 !-> GO Plot_2D_XY
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! $Author: rhs $
!
! Plot_2d_XY.jnl decides which script to call to make a 2D plot.
! In the "old" LAS UI a 2D plot has for XY has different options and other
! UI characteristics than other 2D plots so it needs its own script.
!
IF ($ferret_view"|xy>1|*>0") THEN
 !-> IF 1 THEN
 
   !! Make a plot in XY...
   go xy_plot_2D
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $RCSfile: xy_plot_2D.jnl,v $
! $Revision: 1.12 $
!
! $Author: ansley $
! $Date: 2006/08/11 16:45:54 $
! 2006/07/19 Fix test of ($ferret_contour_levels"0|*>1")
! 3/7/2007: ACM. Put code to check that the region was not too small, resulting
!           in degenerate plot into LAS_initialize_data.jnl rather than in the
!           individual plot scripts.
! 3/29/2007 ACM Fix logic interpreting contents of ferret_interpolate_data
! 7/15/2007 ACM Add lines to remove labels when a degenerate 2D plot is made
!               This happens when the region chosen is smaller than a grid cell.
! 2/15/2008 ACM For a SHADE plot in curvilinear coordinates we may want the /MODULO qualifier
! 3/2008 ACM Use SHADE/TRIM for shade underlays of FILL plots (Ferret v6.1)
 
! XY_plot.jnl creates an XY plot for use with the Back End Server
! code that sits behind a Live Access Server (LAS).
!
! NOTE:  This code handles overlays but not differencing.
!
! TODO:  We should support user choice of the 'base layer' variable.
! TODO:  From the Ferret script writers' perspective it would be nice
! TODO:  if this were handled in the UI so that ($data_0_...) always
! TODO:  referred to the base layer.
 
 
! Set any Ferret modes
!
! NOTE:  Should we support any of the following Ferrt modes?
! NOTE:    ASCII_FONT, CALENDAR, DEPTH_LABEL, LABELS, LATIT_LABEL, LONG_LABEL
 
IF ($ferret_interpolate_data%0|false>0|true>1|1|0|*>1%) THEN SET MODE INTERPOLATE
 !-> IF 0 THEN SET MODE INTERPOLATE
 
DEFINE SYMBOL fview = `UPCASE("($ferret_view)")`
 !-> DEFINE SYMBOL fview = XY
 
! Define symbols associated with the regign and data and perform any
! initialization needed for this dataset.
!
! NOTE:  Adding support for a 'base layer' variable would mean passing
! NOTE:  some other argument.  For now, though, we always use 'data_0'
! NOTE:  for the base layer and region.
 
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 = 21
  DEFINE SYMBOL region_x_hi = `INT(100000 * ($($region)_x_hi)) / 100000`
 !-> DEFINE SYMBOL region_x_hi = 379
  DEFINE SYMBOL limits_x = ($region_x_lo):($region_x_hi)
 !-> DEFINE SYMBOL limits_x = 21:379
  DEFINE SYMBOL limits_x_m360 = `($region_x_lo)-360`:`($region_x_hi)-360`
 !-> DEFINE SYMBOL limits_x_m360 = -339:19
  DEFINE SYMBOL limits_x_p360 = `($region_x_lo)+360`:`($region_x_hi)+360`
 !-> DEFINE SYMBOL limits_x_p360 = 381:739
  DEFINE SYMBOL region_x = X=($region_x_lo):($region_x_hi)
 !-> DEFINE SYMBOL region_x = X=21:379
  DEFINE SYMBOL region_x_m360 X=`($region_x_lo)-360`:`($region_x_hi)-360`
 !-> DEFINE SYMBOL region_x_m360 X=-339:19
  DEFINE SYMBOL region_x_p360 X=`($region_x_lo)+360`:`($region_x_hi)+360`
 !-> DEFINE SYMBOL region_x_p360 X=381:739
  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 = 358
  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 = undefined
  DEFINE SYMBOL region_t_hi = ($($region)_t_hi)
 !-> DEFINE SYMBOL region_t_hi = undefined
  DEFINE SYMBOL limits_t \"($region_t_lo)\":\"($region_t_hi)\"
 !-> DEFINE SYMBOL limits_t \"undefined\":\"undefined\"
  DEFINE SYMBOL region_t T=\"($region_t_lo)\":\"($region_t_hi)\"
 !-> DEFINE SYMBOL region_t T=\"undefined\":\"undefined\"
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=21:379,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=21:379
  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=21:379,T="undefined":"undefined"
  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="undefined":"undefined"
  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="undefined":"undefined"
  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=21:379,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=21:379,Y=-89:89,T="undefined":"undefined"
  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="undefined":"undefined"
  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=21:379,Y=-89:89,T="undefined":"undefined"
  ELSE
  ENDIF
ELSE
  ENDIF
ENDIF
 
DEFINE SYMBOL region_full = ($region_xyzt)
 !-> DEFINE SYMBOL region_full = X=21:379,Y=-89:89,T="undefined":"undefined"
 
 
! 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=21:379
 !-> DEFINE SYMBOL region_0_x = X=21:379
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="undefined":"undefined"
 !-> DEFINE SYMBOL region_0_t = T="undefined":"undefined"
IF ($region_xt"0|*>1") THEN DEFINE SYMBOL region_($num)_xt = ($region_xt)
 !-> IF 1 THEN DEFINE SYMBOL region_0_xt = X=21:379,T="undefined":"undefined"
 !-> DEFINE SYMBOL region_0_xt = X=21:379,T="undefined":"undefined"
IF ($region_xy"0|*>1") THEN DEFINE SYMBOL region_($num)_xy = ($region_xy)
 !-> IF 1 THEN DEFINE SYMBOL region_0_xy = X=21:379,Y=-89:89
 !-> DEFINE SYMBOL region_0_xy = X=21:379,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=21:379
 !-> DEFINE SYMBOL region_0_xz = X=21:379
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="undefined":"undefined"
 !-> DEFINE SYMBOL region_0_yt = Y=-89:89,T="undefined":"undefined"
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="undefined":"undefined"
 !-> DEFINE SYMBOL region_0_zt = T="undefined":"undefined"
 
! 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 speh
 !-> DEFINE SYMBOL data_var speh
IF ($data_($num)_units"0|*>1") THEN
 !-> IF 1 THEN
   DEFINE SYMBOL data_units (($data_($num)_units))
 !-> DEFINE SYMBOL data_units (G/KG)
   IF `STRINDEX("($data_units)", "((") GT 0` THEN \
     DEFINE SYMBOL data_units ($data_($num)_units)
 !-> IF 0 THEN      DEFINE SYMBOL data_units G/KG
ENDIF
 
! Do not define data_units with an empty string
IF ($data_($num)_units%1|"">1|*>0%) THEN CANCEL SYMBOL data_units
 !-> IF 0 THEN CANCEL SYMBOL data_units
IF ($data_($num)_units%1|" ">1|*>0%) THEN CANCEL SYMBOL data_units
 !-> IF 0 THEN CANCEL SYMBOL data_units
 
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 SPECIFIC HUMIDITY
 !-> DEFINE SYMBOL data_title SPECIFIC HUMIDITY
ELSE
ENDIF
 
DEFINE SYMBOL ferret_plot_title "($data_title) ($data_units)"
 !-> DEFINE SYMBOL ferret_plot_title "SPECIFIC HUMIDITY (G/KG)"
 
! 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"
 
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
!
! 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
 
! 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.
 
LET anames = ($data_var).attnames
 !-> DEFINE VARIABLE anames = speh.attnames
IF `IS_ELEMENT_OF_STR (anames, "units") OR IS_ELEMENT_OF_STR (anames, "UNITS")` THEN
 !-> IF 1 THEN
   DEFINE SYMBOL data_var_units `($data_var),RETURN=units`123   ! check for empty units string.
 !-> DEFINE SYMBOL data_var_units G/KG123
   IF `STRLEN("($data_var_units)" ) EQ 3` THEN
 !-> IF 0 THEN
   ELSE
      DEFINE SYMBOL data_var_units `($data_var),RETURN=units`
 !-> DEFINE SYMBOL data_var_units G/KG
      DEFINE SYMBOL data_units (`($data_var),RETURN=units`)
 !-> DEFINE SYMBOL data_units (G/KG)
   ENDIF
ENDIF
 
DEFINE SYMBOL ferret_plot_title "($data_title) ($data_units)"
 !-> DEFINE SYMBOL ferret_plot_title "SPECIFIC HUMIDITY (G/KG)"
 
IF `($data_title"0|*>1") EQ 0` THEN
 !-> IF 0 THEN
ENDIF
 
DEFINE SYMBOL ferret_plot_var = ($data_var)[d=($data_num),($region_full)]
 !-> DEFINE SYMBOL ferret_plot_var = speh[d=1,X=21:379,Y=-89:89,T="undefined":"undefined"]
DEFINE SYMBOL ferret_plot_var_noregion = ($data_var)[d=($data_num)]
 !-> DEFINE SYMBOL ferret_plot_var_noregion = speh[d=1]
DEFINE SYMBOL ferret_plot_base_var = ($ferret_plot_var)
 !-> DEFINE SYMBOL ferret_plot_base_var = speh[d=1,X=21:379,Y=-89:89,T="undefined":"undefined"]
DEFINE SYMBOL ferret_plot_base_var_noregion = ($data_var)[d=($data_num)]
 !-> DEFINE SYMBOL ferret_plot_base_var_noregion = speh[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 = speh[d=1,X=21:379,Y=-89:89]
DEFINE SYMBOL ferret_t_var = ($data_var)[d=($data_num),($region_t)]
 !-> DEFINE SYMBOL ferret_t_var = speh[d=1,T="undefined":"undefined"]
 
! 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
 !-> IF 0 THEN
ELIF ($do_curvi_xy) THEN ! Set up to deal with curvilinear XY data
 !-> ELIF 0 THEN
ELIF ($do_hybrid_z) THEN  ! Set up to deal with hybrid-Z data.
 !-> ELIF 0 THEN
ENDIF
 
! 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
 
IF `($variables_initialized) EQ ($data_count)` THEN
 !-> IF 1 THEN
 
! From the variable we can define striding.
! TODO: script works only for rectangular data so far...
 
!test stride for Google Earth
   IF `STRINDEX( "($operation_ID)", "GE" ) NE 0` THEN
 !-> IF 0 THEN
   ELSE
      GO LAS_set_strides.jnl
! LAS_set_strides.jnl
! ACM
 
! From the region and the grid we can define striding. Compute strides
! based first on Ferret memory and then if it is a graphics product, on
! pixel size.
! ACM 8/312/2007 Do not issue the SET AXIS/STRIDE= command if the stride is 1
!                This partially works around TRAC #224.
! ACM 3/2008  If the transform-to-1-season per year has been set then do not
!             stride in t
 
! TODO: When there's going to be a transformation or something, then these
! calculations may not be sufficient. Might be better done by the transform script.
 
! If the operation is writing a netCDF file, that is done in chunks. Do not use strides
 
IF `STRINDEX( "($operation_ID)", "Data_Extract_netCDF" ) NE 0` THEN EXIT/SCRIPT
 !-> IF 0 THEN EXIT/SCRIPT
 
! See LAS_set_strides_curvilinear for first cut on dealing with strides and curvi data.
IF ($ferret_curvi_coord_lat"0|0|*>1") THEN EXIT/SCRIPT
 !-> IF 0 THEN EXIT/SCRIPT
 
! Hybrid Z not dealt with here...
 
IF ($do_hybrid_z"0|0|1|*>1") THEN EXIT/SCRIPT
 !-> IF 0 THEN EXIT/SCRIPT
 
 
! Step 1  ---------------------------------------------------------------------
! Determine striding based on the memory allocation
 
DEFINE SYMBOL memsize = ($FERRET_MEMORY"6.4")* 1.e6
 !-> DEFINE SYMBOL memsize = 16* 1.e6
 
 
! cannot do native striding if this is a descriptor dataset.
 
DEFINE SYMBOL check_for_des =  `($data_var)[d=($data_num)],return=dsetpath`
 !-> DEFINE SYMBOL check_for_des =  /usr/local/ferret/fer_dsets/data/coads_climatology.cdf
IF `STRINDEX("($check_for_des)", ".des") GT 0` THEN
 !-> IF 0 THEN
endif
 
DEFINE SYMBOL nvars = ($data_count)
 !-> DEFINE SYMBOL nvars = 1
 
! If ($data_count) larger than 1 add the size of the variables.
LET pvar = ($ferret_plot_var)
 !-> DEFINE VARIABLE pvar = speh[d=1,X=21:379,Y=-89:89,T="undefined":"undefined"]
DEFINE SYMBOL var_size = ($var_size"0") + `pvar,RETURN=size`





-- 
Ethan Shepherd
Computer Systems Analyst, STG, Inc., Government Contractor
Remote Sensing and Applications Division
National Climatic Data Center
151 Patton Ave.
Asheville, NC 28801-5001
Ethan.Shepherd@xxxxxxxx
(828) 271-4474



[Thread Prev][Thread Next][Index]


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

Privacy Policy | Disclaimer | Accessibility Statement