[Thread Prev][Thread Next][Index]

RE: [las_users] LAS 7.0beta + Tomcat6



Hi all,

I have also worked with LAS 1.1.1 and Tomcat 6.

The main thing to change is the one Greg has mentioned.
However, over time, you run into other more subtle problems.

My advice to you all is to stick with Tomcat 5.25 because you will always wonder if the problems you're having, have to do with Tomcat 6 or not.
I think it's safer to just go with Tomcat 5.25 so you can at least know the problems you have are not due to Tomcat.
Believe me, problems in LAS can be due to so many factors that it's worth eliminating obvious ones such as using Tomcat 5.25.
Unless you're a guru in tomcat, LAS, ferret, etc, I would stick to what the developer suggests to do.
To my knowledge, there no major differences between tomcat 6 and 5.25 and you always can run different version of tomcat on one machine.
Also, it will be easier to get help if you use the suggested software because the developers won't have to spend time wondering if Tomcat6 is the cause of the issue.

My $0.02,
Jerome.



> Date: Mon, 8 Sep 2008 09:57:13 -0600
> From: greg.keith@xxxxxxxx
> Subject: Re: [las_users] LAS 7.0beta + Tomcat6
> To: emanuele.lombardi@xxxxxxxxxxxxxxxx
> CC: oar.pmel.las_users@xxxxxxxx; ennpar@xxxxxxxxxxxxxx
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Emanuele and all -
>
> I installed LAS Armstrong 1.1.1 and used an RPM of Tomcat 6.0.16, and
> managed to get everything working, rather than using Tomcat 5.5.25 - I
> think the only Tomcat-specific changes I needed to make were to change
> all occurrences of {jakarta.home}/common/lib to {jakarta.home}/lib in
> the LAS build.xml file.
>
> Greg
>
> lele wrote:
> | Dear LAS people,
> |
> | I've just installed LAS 7.0 beta on my linux machine running Tomcat 6 and
> | Apache 2.2.3
> |
> | In the prerequisites of LAS 7.0 beta is written that "Tomcat 6+ won't
> work
> | with our installation scripts. You'll have to fudge it if you want to use
> | 6+. Bottom line: get 5.5.25."
> |
> | Despite of that I tried to install LAS 7.0beta on my running Tomcat 6
> and I
> | had no problem, so I thought It was all fine.
> |
> | Unfortunately I have the following problems:
> |
> | 1) the first plot I ask is properly done without any error (I can also
> zoom
> | it.), BUT the all the plot options are NULL
> |
> | 2) I get errors whenever I ask for any further plot (even the same
> variable of
> | the same file)
> |
> | I use the coads_climatology.cdf which comes with Ferret. As i said the
> first
> | plot is OK but if I click the "update plot" or if I change variable or
> file,
> | then I get an error.
> |
> | I'm not experienced in Ferret nor in Tomcat so I would really like to have
> | your kind help.
> |
> | Thank you very much from Italy,
> | Emanuele Lombardi
> |
> | This is the error log I get on the browser when I ask LAS to plot
> again "sea
> | level pressure" of the COADS climatology file:
> |
> | **ERROR: command syntax: ""
> | 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/share/apache-tomcat-6.0.14/webapps/las/WEB-INF/classes/resources/ferret/temp/ferret_operation_1220862786923.jnl"
> | ! Symbols from the server
> | DEFINE SYMBOL data_0_ID = slp
> | DEFINE SYMBOL data_0_dataset_ID =
> | coads_climatology_cdf
> | DEFINE SYMBOL data_0_dataset_name =
> | climatologia COADS
> | DEFINE SYMBOL data_0_dataset_url =
> | file:coads_climatology
> | DEFINE SYMBOL data_0_ftds_url =
> |
> http://giotto.casaccia.enea.it: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 = SEA LEVEL
> | PRESSURE
> | DEFINE SYMBOL data_0_points = xyt
> | DEFINE SYMBOL data_0_region = region_0
> | DEFINE SYMBOL data_0_title = SEA LEVEL
> | PRESSURE
> | DEFINE SYMBOL data_0_units = MB
> | DEFINE SYMBOL data_0_url =
> coads_climatology
> | DEFINE SYMBOL data_0_var = slp
> | DEFINE SYMBOL data_0_xpath
> | = /lasdata/datasets/coads_climatology_cdf/variables/slp
> | DEFINE SYMBOL data_count = 1
> | DEFINE SYMBOL ferret_fill_type = fill
> | DEFINE SYMBOL ferret_land_type = contour
> | DEFINE SYMBOL ferret_service_action =
> Plot_2D
> | DEFINE SYMBOL ferret_view = xt
> | DEFINE SYMBOL las_debug = debug
> | DEFINE SYMBOL operation_ID = Plot_2D
> | DEFINE SYMBOL operation_key =
> | 94F4B7FBF5B8D2431C3504373FDC2140
> | DEFINE SYMBOL operation_name = Color plot
> | DEFINE SYMBOL operation_service = ferret
> | DEFINE SYMBOL operation_service_action =
> | Plot_2D
> | 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 = ""
> | DEFINE SYMBOL region_0_t_lo = ""
> | DEFINE SYMBOL region_0_x_hi = 379.5
> | DEFINE SYMBOL region_0_x_lo = 20.5
> | DEFINE SYMBOL region_0_y_hi = 0
> | DEFINE SYMBOL region_0_y_lo = 0
> | DEFINE SYMBOL result_cancel_ID = cancel
> | DEFINE SYMBOL result_cancel_filename
> | =
> /usr/share/tomcat/webapps/las/output/94F4B7FBF5B8D2431C3504373FDC2140_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/share/tomcat/webapps/las/output/94F4B7FBF5B8D2431C3504373FDC2140_debug.txt
> | DEFINE SYMBOL result_debug_type = debug
> | DEFINE SYMBOL result_map_scale_ID =
> map_scale
> | DEFINE SYMBOL result_map_scale_filename
> | =
> /usr/share/tomcat/webapps/las/output/94F4B7FBF5B8D2431C3504373FDC2140_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/share/tomcat/webapps/las/output/94F4B7FBF5B8D2431C3504373FDC2140_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/share/tomcat/webapps/las/output/94F4B7FBF5B8D2431C3504373FDC2140_ref_map.gif
> | DEFINE SYMBOL result_ref_map_type = image
> | DEFINE SYMBOL result_rss_ID = rss
> | DEFINE SYMBOL result_rss_filename
> | =
> /usr/share/tomcat/webapps/las/output/747D8B169C804F15CE35DB2ADE2929FD_rss.rss
> | DEFINE SYMBOL result_rss_type = rss
> | GO ($operation_service_action)
> | !-> GO Plot_2D
> | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> | !
> | ! $Author: rhs $
> | !
> | ! Plot_2d.jnl decides which script to call to make a 2D plot.
> | ! In the "old" LAS UI a 2D plot has the same options and other
> | ! UI characteristics regardless of the view (except XY) so it's easier
> | ! to have one script like this to drive all the others.
> | ! In the new UI it's likely we'll define one operation per
> | ! dimension.
> | !
> | IF ($ferret_view"|xt>1|*>0") THEN
> | !-> IF 1 THEN
> |
> | !! Make a plot in XT...
> | go xt_plot_2D
> | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> | ! $RCSfile: xy_plot_2D.jnl,v $
> | ! $Revision: 1.12 $
> | !
> | ! $Author: ansley $
> | ! $Date: 2006/08/11 16:45:54 $
> | ! 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.
> | ! 3/2008 ACM Use SHADE/TRIM for shade underlays of FILL plots (Ferret
> v6.1)
> |
> |
> | ! XT_plot.jnl creates an XT 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 = XT
> |
> | ! 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 = 20.5
> | DEFINE SYMBOL region_x_hi = `INT(100000 * ($($region)_x_hi)) / 100000`
> | !-> DEFINE SYMBOL region_x_hi = 379.5
> | DEFINE SYMBOL limits_x = ($region_x_lo):($region_x_hi)
> | !-> DEFINE SYMBOL limits_x = 20.5:379.5
> | DEFINE SYMBOL limits_x_m360 = `($region_x_lo)-360`:`($region_x_hi)-360`
> | !-> DEFINE SYMBOL limits_x_m360 = -339.5:19.5
> | DEFINE SYMBOL limits_x_p360 = `($region_x_lo)+360`:`($region_x_hi)+360`
> | !-> DEFINE SYMBOL limits_x_p360 = 380.5:739.5
> | DEFINE SYMBOL region_x = X=($region_x_lo):($region_x_hi)
> | !-> DEFINE SYMBOL region_x = X=20.5:379.5
> | DEFINE SYMBOL region_x_m360 X=`($region_x_lo)-360`:`($region_x_hi)-360`
> | !-> DEFINE SYMBOL region_x_m360 X=-339.5:19.5
> | DEFINE SYMBOL region_x_p360 X=`($region_x_lo)+360`:`($region_x_hi)+360`
> | !-> DEFINE SYMBOL region_x_p360 X=380.5:739.5
> | 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 = 359
> | 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 = 0
> | DEFINE SYMBOL region_y_hi = `INT(1000 * ($($region)_y_hi)) / 1000`
> | !-> DEFINE SYMBOL region_y_hi = 0
> | DEFINE SYMBOL limits_y = ($region_y_lo):($region_y_hi)
> | !-> DEFINE SYMBOL limits_y = 0:0
> | DEFINE SYMBOL region_y = Y=($region_y_lo):($region_y_hi)
> | !-> DEFINE SYMBOL region_y = Y=0:0
> | 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 = 0
> | 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 = ""
> | DEFINE SYMBOL region_t_hi = ($($region)_t_hi)
> | !-> DEFINE SYMBOL region_t_hi = ""
> | DEFINE SYMBOL limits_t \"($region_t_lo)\":\"($region_t_hi)\"
> | !-> DEFINE SYMBOL limits_t \"""\":\"""\"
> | DEFINE SYMBOL region_t T=\"($region_t_lo)\":\"($region_t_hi)\"
> | !-> DEFINE SYMBOL region_t T=\"""\":\"""\"
> | 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=20.5:379.5,Y=0:0
> | 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=20.5:379.5
> | 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=20.5:379.5,T="""":""""
> | 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=0:0
> | 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=0:0,T="""":""""
> | 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="""":""""
> | 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=20.5:379.5,Y=0:0
> | 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=20.5:379.5,Y=0:0,T="""":""""
> | 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=0:0,T="""":""""
> | 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=20.5:379.5,Y=0:0,T="""":""""
> | ELSE
> | ENDIF
> | ELSE
> | ENDIF
> | ENDIF
> |
> | DEFINE SYMBOL region_full = ($region_xyzt)
> | !-> DEFINE SYMBOL region_full = X=20.5:379.5,Y=0:0,T="""":""""
> |
> |
> | ! 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=20.5:379.5
> | !-> DEFINE SYMBOL region_0_x = X=20.5:379.5
> | IF ($region_y"0|*>1") THEN DEFINE SYMBOL region_($num)_y = ($region_y)
> | !-> IF 1 THEN DEFINE SYMBOL region_0_y = Y=0:0
> | !-> DEFINE SYMBOL region_0_y = Y=0:0
> | 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="""":""""
> | !-> DEFINE SYMBOL region_0_t = T="""":""""
> | IF ($region_xt"0|*>1") THEN DEFINE SYMBOL region_($num)_xt = ($region_xt)
> | !-> IF 1 THEN DEFINE SYMBOL region_0_xt = X=20.5:379.5,T="""":""""
> | !-> DEFINE SYMBOL region_0_xt = X=20.5:379.5,T="""":""""
> | IF ($region_xy"0|*>1") THEN DEFINE SYMBOL region_($num)_xy = ($region_xy)
> | !-> IF 1 THEN DEFINE SYMBOL region_0_xy = X=20.5:379.5,Y=0:0
> | !-> DEFINE SYMBOL region_0_xy = X=20.5:379.5,Y=0:0
> | IF ($region_xz"0|*>1") THEN DEFINE SYMBOL region_($num)_xz = ($region_xz)
> | !-> IF 1 THEN DEFINE SYMBOL region_0_xz = X=20.5:379.5
> | !-> DEFINE SYMBOL region_0_xz = X=20.5:379.5
> | IF ($region_yt"0|*>1") THEN DEFINE SYMBOL region_($num)_yt = ($region_yt)
> | !-> IF 1 THEN DEFINE SYMBOL region_0_yt = Y=0:0,T="""":""""
> | !-> DEFINE SYMBOL region_0_yt = Y=0:0,T="""":""""
> | IF ($region_yz"0|*>1") THEN DEFINE SYMBOL region_($num)_yz = ($region_yz)
> | !-> IF 1 THEN DEFINE SYMBOL region_0_yz = Y=0:0
> | !-> DEFINE SYMBOL region_0_yz = Y=0:0
> | IF ($region_zt"0|*>1") THEN DEFINE SYMBOL region_($num)_zt = ($region_zt)
> | !-> IF 1 THEN DEFINE SYMBOL region_0_zt = T="""":""""
> | !-> DEFINE SYMBOL region_0_zt = T="""":""""
> |
> | ! 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 slp
> | !-> DEFINE SYMBOL data_var slp
> | IF ($data_($num)_units"0|*>1") THEN
> | !-> IF 1 THEN
> | DEFINE SYMBOL data_units (($data_($num)_units))
> | !-> DEFINE SYMBOL data_units (MB)
> | IF `STRINDEX("($data_units)", "((") GT 0` THEN \
> | DEFINE SYMBOL data_units ($data_($num)_units)
> | !-> IF 0 THEN DEFINE SYMBOL data_units MB
> | 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 SEA LEVEL PRESSURE
> | !-> DEFINE SYMBOL data_title SEA LEVEL PRESSURE
> | ELSE
> | ENDIF
> |
> | DEFINE SYMBOL ferret_plot_title "($data_title) ($data_units)"
> | !-> DEFINE SYMBOL ferret_plot_title "SEA LEVEL PRESSURE (MB)"
> |
> | ! 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 = slp.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 MB123
> | 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 MB
> | DEFINE SYMBOL data_units (`($data_var),RETURN=units`)
> | !-> DEFINE SYMBOL data_units (MB)
> | ENDIF
> | ENDIF
> |
> | DEFINE SYMBOL ferret_plot_title "($data_title) ($data_units)"
> | !-> DEFINE SYMBOL ferret_plot_title "SEA LEVEL PRESSURE (MB)"
> |
> | 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 =
> slp[d=1,X=20.5:379.5,Y=0:0,T="""":""""]
> | DEFINE SYMBOL ferret_plot_var_noregion = ($data_var)[d=($data_num)]
> | !-> DEFINE SYMBOL ferret_plot_var_noregion = slp[d=1]
> | DEFINE SYMBOL ferret_plot_base_var = ($ferret_plot_var)
> | !-> DEFINE SYMBOL ferret_plot_base_var =
> | slp[d=1,X=20.5:379.5,Y=0:0,T="""":""""]
> | DEFINE SYMBOL ferret_plot_base_var_noregion = ($data_var)[d=($data_num)]
> | !-> DEFINE SYMBOL ferret_plot_base_var_noregion = slp[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 = slp[d=1,X=20.5:379.5,Y=0:0]
> | DEFINE SYMBOL ferret_t_var = ($data_var)[d=($data_num),($region_t)]
> | !-> DEFINE SYMBOL ferret_t_var = slp[d=1,T="""":""""]
> |
> | ! 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 = slp[d=1,X=20.5:379.5,Y=0:0,T="""":""""]
> | DEFINE SYMBOL var_size = ($var_size"0") + `pvar,RETURN=size`
> |
> |
> |
> |
> |
>
> - --
> Greg Keith - Web System Administrator greg.keith(-at-)noaa.gov
> NOAA ESRL Physical Sciences Division http://www.esrl.noaa.gov/psd
> R/PSD, 325 Broadway, Boulder, CO phone: 303-497-6645
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (MingW32)
>
> iD8DBQFIxUtY8IR34NeP2BwRArJeAJ4hlSYS5ai7iejSXCHAVxoyd1uSbACfZk5R
> NrSJYXzCrZ8luSOWoJV12xQ=
> =F+Kk
> -----END PGP SIGNATURE-----
>


See how Windows connects the people, information, and fun that are part of your life. See Now

[Thread Prev][Thread Next][Index]


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

Privacy Policy | Disclaimer | Accessibility Statement