Hi Ansley, Many thanks for your timely response. Indeed there is no problem with land outline option but for many reasons I need to resolve this problem (if it's possible !). As far as I known, there is no restricts access to external Thredds Data Servers. I noticed that this problem appears after a certain level of zoom. If I select "DT - Delayed time Data / DT - Global / DT - Global - (Maps of) Sea Level Anomalies And Formal Mapping Error" in http://las.aviso.oceanobs.com/las/getUI.do, ferret systematically generates the maps with the global region but when I zoom to the black sea area the maps generation become impossible. In attached file you can see the las.log extract for these both requests. I don't know why (in this extract) when I plot a little region (like the black sea) the LAS systematically repeats the line "ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductSe....." and after some time fails. At the moment, I don't understand what is different between this both request and I don't understand why we don't have the same behavior with your LAS http://oos.soest.hawaii.edu/las/ . If you have an idea or an advice to help address this issue, I thank you in advance. regards, Sébastien Le 22/08/2012 19:26, Ansley Manke a écrit : Hi Sebastien, |
LAS 2012-08-24T07:17:28.236 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="-82" high="81.97463620419"></range><range type="x" low="0" high="360"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:17:28.314 +0000 INFO - FerretBackendService - START: Plot_2D_XY LAS 2012-08-24T07:17:32.077 +0000 INFO - FerretBackendService - END: Plot_2D_XY LAS 2012-08-24T07:17:32.100 +0000 INFO - ProductServerAction - END: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="-82" high="81.97463620419"></range><range type="x" low="0" high="360"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:18:25.589 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:18:25.659 +0000 INFO - FerretBackendService - START: Plot_2D_XY LAS 2012-08-24T07:18:48.679 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:18:53.753 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:18:58.801 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:03.861 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:08.990 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:14.050 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:19.096 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:24.155 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:29.221 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:34.279 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:39.332 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:44.386 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:49.435 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:54.485 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:19:59.533 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:04.581 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:09.686 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:14.733 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:19.778 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:24.826 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:29.872 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:34.946 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:39.988 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:45.034 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:50.075 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:20:55.121 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:00.160 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:05.201 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:10.249 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:15.295 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:20.339 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:25.379 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:30.454 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:35.446 +0000 ERROR - FerretBackendService - Ferret backend request failed: A remote server was unable to deliver the data LAS needs to make your product. LAS 2012-08-24T07:21:35.451 +0000 INFO - FerretBackendService - END: Plot_2D_XY LAS 2012-08-24T07:21:35.495 +0000 INFO - ProductServerAction - START: http://atoll-las.vlandata.cls.fr:51080/las/ProductServer.do?xml=<?xml version="1.0"?><lasRequest href="file:las.xml"><link match="/lasdata/operations/operation[@ID='Plot_2D_XY_zoom']"></link><properties><ferret><view>xy</view><land_type>filled</land_type><set_aspect>default</set_aspect><mark_grid>no</mark_grid><contour_levels></contour_levels><fill_levels></fill_levels><contour_style>default</contour_style><palette>default</palette><deg_min_sec>default</deg_min_sec><margins>default</margins><use_graticules>default</use_graticules><size>0.5</size><image_format>default</image_format><interpolate_data>false</interpolate_data><expression></expression></ferret></properties><args><link match="/lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001"></link><region><range type="y" low="40.341796875" high="47.28515625"></range><range type="x" low="26.89453125" high="42.01171875"></range><point type="t" v="14-OCT-1992 00:00:00"></point></region></args></lasRequest> LAS 2012-08-24T07:21:35.502 +0000 ERROR - LASAction - A remote server was unable to deliver the data LAS needs to make your product. LAS 2012-08-24T07:21:35.503 +0000 ERROR - LASAction - **Internet Data error NetCDF: I/O failure (OPeNDAP/netCDF Error code -68) Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/smith_sandwell_topo_v8_2.nc SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/smith_sandwell_topo_v8_2.nc" Command file, command group, or REPEAT execution aborted ERROR RUNNING SCRIPT go "$1" !-> go "/opt/atoll/tomcat-las-aviso/webapps/las/WEB-INF/classes/resources/ferret/temp/ferret_operation_1345792705682.jnl" ! Symbols from the server DEFINE SYMBOL data_0_ID = grid_0001 DEFINE SYMBOL data_0_dataset_ID = dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched DEFINE SYMBOL data_0_dataset_name = global dt msla h merged DEFINE SYMBOL data_0_dataset_url = http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched DEFINE SYMBOL data_0_dsid = dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched DEFINE SYMBOL data_0_ftds_url = http://las.aviso.oceanobs.com/thredds/dodsC/las/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/data_atoll-aviso.vlandata.cls.fr_41080_thredds_dodsC_dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched.jnl DEFINE SYMBOL data_0_grid_type = regular DEFINE SYMBOL data_0_intervals = xyt DEFINE SYMBOL data_0_name = Maps of Sea Level Anomalies Merged DEFINE SYMBOL data_0_points = xyt DEFINE SYMBOL data_0_region = region_0 DEFINE SYMBOL data_0_title = Maps of Sea Level Anomalies Merged DEFINE SYMBOL data_0_units = cm DEFINE SYMBOL data_0_url = http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched DEFINE SYMBOL data_0_var = grid_0001 DEFINE SYMBOL data_0_xpath = /lasdata/datasets/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched/variables/grid_0001 DEFINE SYMBOL data_count = 1 DEFINE SYMBOL ferret_fill_type = fill DEFINE SYMBOL ferret_interpolate_data = false DEFINE SYMBOL ferret_land_type = filled DEFINE SYMBOL ferret_mark_grid = no DEFINE SYMBOL ferret_palette = rnb2 DEFINE SYMBOL ferret_script_prefix = oer_ DEFINE SYMBOL ferret_service_action = Plot_2D_XY DEFINE SYMBOL ferret_size = 0.5 DEFINE SYMBOL ferret_timeout = 60 DEFINE SYMBOL ferret_view = xy DEFINE SYMBOL las_debug = false DEFINE SYMBOL operation_ID = Plot_2D_XY_zoom DEFINE SYMBOL operation_key = 5E669651745AAEBB9DAF5BF730CB21FD DEFINE SYMBOL operation_name = Color plot DEFINE SYMBOL operation_service = ferret DEFINE SYMBOL operation_service_action = Plot_2D_XY DEFINE SYMBOL product_server_default_dsid = ocean_atlas_subset DEFINE SYMBOL product_server_default_operation = Plot_2D_XY_zoom DEFINE SYMBOL product_server_default_option = Options_2D_image_contour_xy_7 DEFINE SYMBOL product_server_default_varid = TEMP-ocean_atlas_subset DEFINE SYMBOL product_server_default_view = xy DEFINE SYMBOL product_server_ps_timeout = 3600 DEFINE SYMBOL product_server_ui_timeout = 20 DEFINE SYMBOL product_server_use_cache = true DEFINE SYMBOL product_server_version = 7.3 DEFINE SYMBOL region_0_t_hi = 14-OCT-1992 00:00:00 DEFINE SYMBOL region_0_t_lo = 14-OCT-1992 00:00:00 DEFINE SYMBOL region_0_x_hi = 42.01171875 DEFINE SYMBOL region_0_x_lo = 26.89453125 DEFINE SYMBOL region_0_y_hi = 47.28515625 DEFINE SYMBOL region_0_y_lo = 40.341796875 DEFINE SYMBOL result_cancel_ID = cancel DEFINE SYMBOL result_cancel_filename = /opt/atoll/tomcat-las-aviso/webapps/las/output/5E669651745AAEBB9DAF5BF730CB21FD_cancel.txt DEFINE SYMBOL result_cancel_type = cancel DEFINE SYMBOL result_count = 7 DEFINE SYMBOL result_debug_ID = debug DEFINE SYMBOL result_debug_filename = /opt/atoll/tomcat-las-aviso/webapps/las/output/5E669651745AAEBB9DAF5BF730CB21FD_debug.txt DEFINE SYMBOL result_debug_type = debug DEFINE SYMBOL result_map_scale_ID = map_scale DEFINE SYMBOL result_map_scale_filename = /opt/atoll/tomcat-las-aviso/webapps/las/output/5E669651745AAEBB9DAF5BF730CB21FD_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 = /opt/atoll/tomcat-las-aviso/webapps/las/output/5E669651745AAEBB9DAF5BF730CB21FD_plot_image.gif DEFINE SYMBOL result_plot_image_type = image DEFINE SYMBOL result_ref_map_ID = ref_map DEFINE SYMBOL result_ref_map_filename = /opt/atoll/tomcat-las-aviso/webapps/las/output/5E669651745AAEBB9DAF5BF730CB21FD_ref_map.gif DEFINE SYMBOL result_ref_map_type = image DEFINE SYMBOL result_rss_ID = rss DEFINE SYMBOL result_rss_filename = /opt/atoll/tomcat-las-aviso/webapps/las/output/72BCE29E6CF755C0C4E2E5D2D9BD3638_rss.rss DEFINE SYMBOL result_rss_type = rss DEFINE SYMBOL ui_0_default = file:ui.xml#PMELOceans 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. ! 3/2008 ACM Use SHADE/TRIM for shade underlays of FILL plots (Ferret v6.1) ! 3/2008 ACM For native curvilinear plots use MODULO qualifier only on SHADE plots ! 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 = 26.89453 DEFINE SYMBOL region_x_hi = `INT(100000 * ($($region)_x_hi)) / 100000` !-> DEFINE SYMBOL region_x_hi = 42.01172 DEFINE SYMBOL limits_x = ($region_x_lo):($region_x_hi) !-> DEFINE SYMBOL limits_x = 26.89453:42.01172 DEFINE SYMBOL limits_x_m360 = `($region_x_lo)-360`:`($region_x_hi)-360` !-> DEFINE SYMBOL limits_x_m360 = -333.1055:-317.9883 DEFINE SYMBOL limits_x_p360 = `($region_x_lo)+360`:`($region_x_hi)+360` !-> DEFINE SYMBOL limits_x_p360 = 386.8945:402.0117 DEFINE SYMBOL region_x = X=($region_x_lo):($region_x_hi) !-> DEFINE SYMBOL region_x = X=26.89453:42.01172 DEFINE SYMBOL region_x_m360 X=`($region_x_lo)-360`:`($region_x_hi)-360` !-> DEFINE SYMBOL region_x_m360 X=-333.1055:-317.9883 DEFINE SYMBOL region_x_p360 X=`($region_x_lo)+360`:`($region_x_hi)+360` !-> DEFINE SYMBOL region_x_p360 X=386.8945:402.0117 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 = 15.11719 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 = 40.341 DEFINE SYMBOL region_y_hi = `INT(1000 * ($($region)_y_hi)) / 1000` !-> DEFINE SYMBOL region_y_hi = 47.285 DEFINE SYMBOL limits_y = ($region_y_lo):($region_y_hi) !-> DEFINE SYMBOL limits_y = 40.341:47.285 DEFINE SYMBOL region_y = Y=($region_y_lo):($region_y_hi) !-> DEFINE SYMBOL region_y = Y=40.341:47.285 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 = 6.944 ELSE ENDIF ENDIF IF ($($region)_z_lo"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF IF ($add_region_z"0|*>1") THEN !-> IF 0 THEN 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 = 14-OCT-1992 00:00:00 DEFINE SYMBOL region_t_hi = ($($region)_t_hi) !-> DEFINE SYMBOL region_t_hi = 14-OCT-1992 00:00:00 DEFINE SYMBOL limits_t \"($region_t_lo)\":\"($region_t_hi)\" !-> DEFINE SYMBOL limits_t \"14-OCT-1992 00:00:00\":\"14-OCT-1992 00:00:00\" DEFINE SYMBOL region_t T=\"($region_t_lo)\":\"($region_t_hi)\" !-> DEFINE SYMBOL region_t T=\"14-OCT-1992 00:00:00\":\"14-OCT-1992 00:00:00\" ENDIF IF ($add_region_t"0|*>1") THEN !-> IF 0 THEN 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=26.89453:42.01172,Y=40.341:47.285 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=26.89453:42.01172 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=26.89453:42.01172,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" 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=40.341:47.285 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=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" 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="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" 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=26.89453:42.01172,Y=40.341:47.285 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=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" 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=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" 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=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" ELSE ENDIF ELSE ENDIF ENDIF DEFINE SYMBOL region_full = ($region_xyzt) !-> DEFINE SYMBOL region_full = X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" ! 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=26.89453:42.01172 !-> DEFINE SYMBOL region_0_x = X=26.89453:42.01172 IF ($region_y"0|*>1") THEN DEFINE SYMBOL region_($num)_y = ($region_y) !-> IF 1 THEN DEFINE SYMBOL region_0_y = Y=40.341:47.285 !-> DEFINE SYMBOL region_0_y = Y=40.341:47.285 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="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" !-> DEFINE SYMBOL region_0_t = T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" IF ($region_xt"0|*>1") THEN DEFINE SYMBOL region_($num)_xt = ($region_xt) !-> IF 1 THEN DEFINE SYMBOL region_0_xt = X=26.89453:42.01172,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" !-> DEFINE SYMBOL region_0_xt = X=26.89453:42.01172,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" IF ($region_xy"0|*>1") THEN DEFINE SYMBOL region_($num)_xy = ($region_xy) !-> IF 1 THEN DEFINE SYMBOL region_0_xy = X=26.89453:42.01172,Y=40.341:47.285 !-> DEFINE SYMBOL region_0_xy = X=26.89453:42.01172,Y=40.341:47.285 IF ($region_xz"0|*>1") THEN DEFINE SYMBOL region_($num)_xz = ($region_xz) !-> IF 1 THEN DEFINE SYMBOL region_0_xz = X=26.89453:42.01172 !-> DEFINE SYMBOL region_0_xz = X=26.89453:42.01172 IF ($region_yt"0|*>1") THEN DEFINE SYMBOL region_($num)_yt = ($region_yt) !-> IF 1 THEN DEFINE SYMBOL region_0_yt = Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" !-> DEFINE SYMBOL region_0_yt = Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" IF ($region_yz"0|*>1") THEN DEFINE SYMBOL region_($num)_yz = ($region_yz) !-> IF 1 THEN DEFINE SYMBOL region_0_yz = Y=40.341:47.285 !-> DEFINE SYMBOL region_0_yz = Y=40.341:47.285 IF ($region_zt"0|*>1") THEN DEFINE SYMBOL region_($num)_zt = ($region_zt) !-> IF 1 THEN DEFINE SYMBOL region_0_zt = T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" !-> DEFINE SYMBOL region_0_zt = T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00" ! 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 = 14-OCT-1992 00:00:00 LET iz = STRINDEX("($region_0_t_lo)", " 00:00:00") !-> DEFINE VARIABLE iz = STRINDEX("14-OCT-1992 00:00:00", " 00:00:00") IF `iz GT 0` THEN !-> IF 1 THEN DEFINE SYMBOL t_lab_lo = `SUBSTRING("($region_0_t_lo)", 1, iz-1)` !-> DEFINE SYMBOL t_lab_lo = 14-OCT-1992 ELSE 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 = 14-OCT-1992 00:00:00 LET iz = STRINDEX("($region_0_t_hi)", " 00:00:00") !-> DEFINE VARIABLE iz = STRINDEX("14-OCT-1992 00:00:00", " 00:00:00") IF `iz GT 0` THEN !-> IF 1 THEN DEFINE SYMBOL t_lab_hi = `SUBSTRING("($region_0_t_hi)", 1, iz-1)` !-> DEFINE SYMBOL t_lab_hi = 14-OCT-1992 ELSE 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. DEFINE SYMBOL num ($1"0") !-> DEFINE SYMBOL num 0 IF `($num) EQ 0 AND ($data_count) GT 1 and ($check_multi_regions_done"0|*>1) EQ 0` THEN !-> IF 0 THEN ENDIF ! 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 \"http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched\" ENDIF IF ($data_($num)_var"0|*>1") THEN DEFINE SYMBOL data_var ($data_($num)_var) !-> IF 1 THEN DEFINE SYMBOL data_var grid_0001 !-> DEFINE SYMBOL data_var grid_0001 DEFINE SYMBOL data_name ($data_($num)_name) !-> DEFINE SYMBOL data_name Maps of Sea Level Anomalies Merged IF `($data_($num)_name"0|*>1") EQ 0` THEN DEFINE SYMBOL data_name ($data_var) !-> IF 0 THEN DEFINE SYMBOL data_name grid_0001 DEFINE SYM var_num ($num) !-> DEFINE SYM var_num 0 ! Put quotes around variable name in case its a Ferret reserved name like Z ! (Apparently addXML now does this automatically, so check for it already being in ' ') IF ($data_($num)_var"0|*>1") THEN DEFINE SYMBOL data_var = `UPCASE("($data_var)")` !-> IF 1 THEN DEFINE SYMBOL data_var = `UPCASE("grid_0001")` !-> DEFINE SYMBOL data_var = `UPCASE("grid_0001")` !-> DEFINE SYMBOL data_var = GRID_0001 LET varlen = `STRLEN("($data_var)")` !-> DEFINE VARIABLE varlen = 9 IF `STRINDEX("($data_var)", "'") EQ 1 AND STRRINDEX("($data_var)", "'") EQ varlen` THEN !-> IF 0 THEN ELSE IF ($data_($num)_var"0|*>1") THEN DEFINE SYMBOL data_var_nq = ($data_var) !-> IF 1 THEN DEFINE SYMBOL data_var_nq = GRID_0001 !-> DEFINE SYMBOL data_var_nq = GRID_0001 IF ($data_($num)_var"0|*>1") THEN DEFINE SYMBOL data_var = '($data_var)' !-> IF 1 THEN DEFINE SYMBOL data_var = 'GRID_0001' !-> DEFINE SYMBOL data_var = 'GRID_0001' ENDIF ! If the grids werent the same but were reconciled with an add_var, add that. ! The variables must be the same size. Check and set up a nice message if not. IF ($add_to_var($num)"0|*>1") THEN !-> IF 0 THEN ENDIF ! 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 cm ENDIF ! Check for single quotes and remove them. They are ! not needed on units strings LET inquote = `STRINDEX("($data_($num)_units)", "'")` !-> DEFINE VARIABLE inquote = 0 IF `inquote GT 0` THEN !-> IF 0 THEN ENDIF IF ($data_units"0|*>1") THEN !-> IF 1 THEN DEFINE SYMBOL data_units (($data_($num)_units)) !-> DEFINE SYMBOL data_units (cm) IF `STRINDEX("($data_units)", "((") GT 0` THEN \ DEFINE SYMBOL data_units ($data_($num)_units) !-> IF 0 THEN DEFINE SYMBOL data_units cm 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 Maps of Sea Level Anomalies Merged !-> DEFINE SYMBOL data_title Maps of Sea Level Anomalies Merged ELSE ENDIF DEFINE SYMBOL variable_lab = ($data_title) !-> DEFINE SYMBOL variable_lab = Maps of Sea Level Anomalies Merged IF `($num) GT 0` THEN DEFINE SYMBOL variable_($num)_lab = ($data_title) !-> IF 0 THEN DEFINE SYMBOL variable_0_lab = Maps of Sea Level Anomalies Merged DEFINE SYMBOL units_lab = ($data_units) !-> DEFINE SYMBOL units_lab = (cm) IF `($num) GT 0` THEN DEFINE SYMBOL units_($num)_lab = ($data_units) !-> IF 0 THEN DEFINE SYMBOL units_0_lab = (cm) DEFINE SYMBOL ferret_plot_title "($data_title) ($data_units)" !-> DEFINE SYMBOL ferret_plot_title "Maps of Sea Level Anomalies Merged (cm)" ! SET DATA and check for errors SET DATA ($data_url) !-> SET DATA "http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched" ! Use PPLUS symbol editing to check for units sent in as "" PPL SET ulen $LENGTH(data_($num)_units) !-> PPL SET ulen $LENGTH(data_0_units) IF `($ulen) LE 2` THEN !-> IF 1 THEN PPL SET isquote1 $EXTRACT(1,1,data_($num)_units) !-> PPL SET isquote1 $EXTRACT(1,1,data_0_units) PPL SET isquote2 $EXTRACT(2,1,data_($num)_units) !-> PPL SET isquote2 $EXTRACT(2,1,data_0_units) IF `($isquote1%0|"">1|*>0%) OR ($isquote2%0|"">1|*>0%)` THEN \ DEFINE SYMBOL units_double_quotes = 1 !-> IF 0 THEN DEFINE SYMBOL units_double_quotes = 1 ENDIF IF `($units_double_quotes"0|*>1") EQ 0` THEN !-> IF 1 THEN LET ulen = STRLEN ("($data_($num)_units)") !-> DEFINE VARIABLE ulen = STRLEN ("cm") IF `(STRINDEX("($data_($num)_units)", "'") EQ 1) AND \ (STRRINDEX("($data_($num)_units)", "'") EQ ulen)` THEN \ DEFINE SYMBOL data_units `SUBSTRING("($data_($num)_units)", 2, ulen-2)` !-> IF 0 THEN DEFINE SYMBOL data_units `SUBSTRING("cm", 2, ulen-2)` ENDIF IF ($fer_last_error"0|0|1|*>1") THEN !-> IF 0 THEN ENDIF SET DATA "($data_($num)_url)" !-> SET DATA "http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched" DEFINE SYMBOL dset($num) = `($data_($num)_var),RETURN=dsetnum` !-> DEFINE SYMBOL dset0 = 1 ! Here do sanity checks on Ferret properties, such as dep_axis_scale GO LAS_check_fer_properties ! LAS_check_fer_properties.jnl ! ! Author: ansley ! $Date: 2010/10/13 ! ! Sanity check on Ferret properties. ! Add to this as needed ! IF ($ferret_dep_axis_scale"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ! Checks on ferret_dep_axis_scale ! End of file ------------ LAS_check_fer_properties.jnl------------------------------- ! 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 ! 3-Jun-2011 ACM Allow configuration to send in ferret_factor and ! ferret_factor_label to apply factor to variables and to add ! a nice label to the title/units string. ! 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 ! If a factor has been passed in, apply it IF ($ferret_factor"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF LET attlist = ($data_var).attnames !-> DEFINE VARIABLE attlist = 'GRID_0001'.attnames IF ($data_var_nq"0|*>1") THEN LET attlist = ($data_var_nq).attnames !-> IF 1 THEN LET attlist = GRID_0001.attnames !-> LET attlist = GRID_0001.attnames DEFINE SYMBOL data_var_only = `UPCASE("($data_var)")` !-> DEFINE SYMBOL data_var_only = 'GRID_0001' IF ($ferret_bad_flag"0|*>1") THEN SET VAR/BAD=($ferret_bad_flag) ($data_var) !-> IF 0 THEN SET VAR/BAD= 'GRID_0001' IF ($ferret_timelab_res"0|*>1") THEN SET MODE CALENDAR:($ferret_timelab_res) !-> IF 0 THEN SET MODE CALENDAR: ! 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 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 IF ($check_for_pseudonames"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF DEFINE SYMBOL ferret_plot_title "($data_title) ($data_units)" !-> DEFINE SYMBOL ferret_plot_title "Maps of Sea Level Anomalies Merged (cm)" IF ($ferret_factor_label"0|*>1") THEN !-> IF 0 THEN ELIF ($ferret_factor"0|*>1") THEN !-> ELIF 0 THEN ENDIF 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 = 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] 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 = 'GRID_0001'[d=1] DEFINE SYMBOL ferret_plot_var_($num)_noregion = ($data_var)[d=($data_num)] !-> DEFINE SYMBOL ferret_plot_var_0_noregion = 'GRID_0001'[d=1] DEFINE SYMBOL ferret_plot_base_var = ($ferret_plot_var) !-> DEFINE SYMBOL ferret_plot_base_var = 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] DEFINE SYMBOL ferret_plot_base_var_($num) = ($ferret_plot_var) !-> DEFINE SYMBOL ferret_plot_base_var_0 = 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] DEFINE SYMBOL ferret_plot_base_var_noregion = ($data_var)[d=($data_num)] !-> DEFINE SYMBOL ferret_plot_base_var_noregion = 'GRID_0001'[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 = 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285] DEFINE SYMBOL ferret_t_var = ($data_var)[d=($data_num),($region_t)] !-> DEFINE SYMBOL ferret_t_var = 'GRID_0001'[d=1,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] ! 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 = 'GRID_0001'[d=1,X=26.89453:42.01172] 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 = 'GRID_0001'[d=1] ! Apply any transforms that may have been specified. GO LAS_transforms ($num) !-> 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 ! 2D fill style IF `STRLEN("($ferret_view)") EQ 2` THEN !-> IF 1 THEN ! If ferret_contour_style is specified (from Plot Options on the UI), use that. ! Else if ferret_fill_type is specified, (comes from configuration), use that. ! Else use the default in the plot script IF `($ferret_contour_style"0|default>1|raster>1|shade>1|color_filled_contours>1|fill>1|color_filled_plus_lines>1|contour_lines>1|raster_plus_lines>1|*>0") EQ 0` THEN !-> IF 1 THEN IF ($ferret_fill_type"0|default>1|raster>1|shade>1|color_filled_contours>1|fill>1|color_filled_plus_lines>1|contour>1|contour_lines>1|raster_plus_lines>1|*>0") THEN\ DEFINE SYMBOL ferret_contour_style = ($ferret_fill_type"default|shade>raster|fill>default|contour>contour_lines|color_filled_plus_lines|*>default") !-> IF 1 THEN DEFINE SYMBOL ferret_contour_style = default !-> DEFINE SYMBOL ferret_contour_style = default ENDIF ! (check for Google Earth plots is inside LAS_set_strides) IF `($num)+1 EQ ($data_count)` THEN GO LAS_set_strides.jnl !-> IF 1 THEN GO LAS_set_strides.jnl !-> 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 ! ACM 4/2008 For descriptor data or for data whose axes are replaced cant ! do native strides. In these cases set up index strides with ! a call to LAS_set_strides_nonative ! 10-Jul-2008 ACM Fixes for Google Earth placemark strides ! 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. ! Ferret property subsample_t can be set to zero or false and ! prevent subsampling in time. IF `($ferret_subsample_t"1|0|1|true>1|false>0|*>1") EQ 0 AND ($ferret_view"|t>1|T>1|*>0")` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT ! If the operation is writing a netCDF file, that is done in chunks. Do not use strides IF `(STRINDEX( "($operation_ID)", "Data_Extract" ) NE 0) AND \ (STRINDEX( "($result_ferret_listing_type)", "netcdf" ) NE 0)` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT ! If we are computing auto-levels for an animation, striding is done in that script. ! no need for it here. IF ($its_autolev_animate"0|*>1") THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT ! See LAS_set_strides_curvilinear for first cut on dealing with strides and curvi data. ! If it is a native curvilinear plot then LAS_set_strides_curvilinear has been called. 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 ! Property-property plots have their own version of striding IF ($its_prop_prop_plot"0|0|1|*>1") THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT ! --------------------------------------------------------------------- ! Determine striding based on the memory allocation DEFINE SYMBOL memsize = ($FERRET_MEMORY"6.4")* 1.e6 !-> DEFINE SYMBOL memsize = 25.6* 1.e6 ! Cannot do native striding if this is a descriptor dataset, or if it is ! from a curvilienar dataset but working in the rectilinear portion. In ! this case set up index strides. DEFINE SYMBOL no_native = 0 IF ($data_var_only"0|*>1") THEN !-> IF 1 THEN DEFINE SYMBOL check_for_des = `($data_var_only)[d=($data_num)],RETURN=dsetpath` !-> DEFINE SYMBOL check_for_des = http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched ELSE ENDIF !IF `($analysis_def"0|*>1") EQ 0` THEN IF `STRINDEX("($check_for_des)", ".des") GT 0 OR ($no_native_strides_xy"0|*>1")` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF !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 = 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] DEFINE SYMBOL var_size = ($var_size"0") + `pvar,RETURN=size` !-> DEFINE SYMBOL var_size = 0 + 1380 ! The exception to the above is side-by-side plots; each var loaded separately IF `STRINDEX( "($operation_ID)", "Side" ) NE 0` THEN !-> IF 0 THEN ENDIF IF `($num)+1 EQ ($nvars)` THEN !-> IF 1 THEN LET ndims = 0 LET xsiz = `pvar,RETURN=isize` !-> DEFINE VARIABLE xsiz = 46 IF `xsiz GT 1` THEN LET ndims = `ndims + 1` !-> IF 1 THEN LET ndims = `ndims + 1` !-> LET ndims = `ndims + 1` !-> DEFINE VARIABLE ndims = 1 LET ysiz = `pvar,RETURN=jsize` !-> DEFINE VARIABLE ysiz = 30 IF `ysiz GT 1` THEN LET ndims = `ndims + 1` !-> IF 1 THEN LET ndims = `ndims + 1` !-> LET ndims = `ndims + 1` !-> DEFINE VARIABLE ndims = 2 LET zsiz = `pvar,RETURN=ksize` !-> DEFINE VARIABLE zsiz = 1 IF `zsiz GT 1` THEN LET ndims = `ndims + 1` !-> IF 0 THEN LET ndims = `ndims + 1` LET tsiz = `pvar,RETURN=lsize` !-> DEFINE VARIABLE tsiz = 1 IF `tsiz GT 1` THEN LET ndims = `ndims + 1` !-> IF 0 THEN LET ndims = `ndims + 1` LET varsiz = xsiz* ysiz* zsiz* tsiz DEFINE SYMBOL stride_for_mem = `INT( 1+ varsiz/(.5*($memsize)) )` !-> DEFINE SYMBOL stride_for_mem = 1 IF `ndims EQ 2` THEN DEFINE SYMBOL stride_for_mem = `INT(($stride_for_mem)^0.5)` !-> IF 1 THEN DEFINE SYMBOL stride_for_mem = `INT(1^0.5)` !-> DEFINE SYMBOL stride_for_mem = `INT(1^0.5)` !-> DEFINE SYMBOL stride_for_mem = 1 IF `ndims EQ 3` THEN DEFINE SYMBOL stride_for_mem = `INT(($stride_for_mem)^0.33)` !-> IF 0 THEN DEFINE SYMBOL stride_for_mem = `INT(1^0.33)` IF `ndims EQ 4` THEN DEFINE SYMBOL stride_for_mem = `INT(($stride_for_mem)^0.25)` !-> IF 0 THEN DEFINE SYMBOL stride_for_mem = `INT(1^0.25)` ENDIF ! If not a graphics product, apply the strides IF `STRINDEX( "($operation_ID)", "Grid_for_GE" ) NE 0` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT IF `STRINDEX( "($operation_ID)", "Plot" ) EQ 0 AND \ STRINDEX( "($operation_ID)", "zoom" ) EQ 0 AND \ STRINDEX( "($operation_ID)", "Anim" ) EQ 0 AND \ STRINDEX( "($operation_ID)", "Grid_for_GE" ) EQ 0` THEN !-> IF 0 THEN ENDIF ! If its a vector plot, let Ferret or a user setting of xskip,yskip decimate the vectors IF `STRINDEX( "($operation_ID)", "vector" ) NE 0` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT ! --------------------------------------------------------------------- ! Now for graphics or GE products, do striding by pixel size, often larger stride than ! needed to fit in Ferret memory LET maxpix = 600 ! default IF ($ferret_size"0|0.06667>1|*>0") THEN LET maxpix = 300 ! small !-> IF 0 THEN LET maxpix = 300 IF ($ferret_size"0|0.25>1|*>0") THEN LET maxpix = 500 ! medium !-> IF 0 THEN LET maxpix = 500 IF ($ferret_size"0|0.5>1|*>0") THEN LET maxpix = 600 ! default !-> IF 1 THEN LET maxpix = 600 !-> LET maxpix = 600 IF ($ferret_size"0|0.8333>1|*>0") THEN LET maxpix = 700 ! large !-> IF 0 THEN LET maxpix = 700 IF `STRLEN("($ferret_view)") EQ 1` THEN !-> IF 0 THEN ENDIF !IF `STRINDEX("($operation_ID)", "Anim" ) GT 0` THEN LET maxpix = 50 IF `($region_x_range"0|*>1") EQ 0` THEN !-> IF 0 THEN ENDIF IF `($region_y_range"0|*>1") EQ 0` THEN !-> IF 0 THEN ENDIF CANCEL SYMBOL no*axis DEFINE SYMBOL xaxname = `($data_var),RETURN=xaxis` !-> DEFINE SYMBOL xaxname = NBLONGITUDES IF `STRCMP("($xaxname)", "NORMAL") EQ 0` THEN DEFINE SYMBOL noxaxis = 1 !-> IF 0 THEN DEFINE SYMBOL noxaxis = 1 IF `(STRINDEX("($ferret_view)","x") NE 0) AND \ ($region_x_range"0|0|*>1") AND \ ($no_native_strides_xy"0|*>1") NE 1 AND \ ($region_x"0|0|*>1") AND \ (($noxaxis"0|1|*>1") NE 1)` THEN !-> IF 1 THEN LET xx = x[gx=($data_var)[d=($data_num)]] !-> DEFINE VARIABLE xx = x[gx='GRID_0001'[d=1]] LET pixsize = `xx[($region_x)@ngd]` !-> DEFINE VARIABLE pixsize = 46 IF ($ferret_google_plot"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF IF `pixsize GT maxpix` THEN DEFINE SYMBOL xstride = `INT((pixsize/maxpix)+1)` !-> IF 0 THEN DEFINE SYMBOL xstride = `INT((pixsize/maxpix)+1)` DEFINE SYMBOL xstride = `MAX(($xstride"1"), ($stride_for_mem"1"))` !-> DEFINE SYMBOL xstride = 1 ! Check whether X axis is modulo. check_modulo_factor.jnl checks whether the ! axis is modulo and if so, whether the stride is a factor of the lentgh of ! the axis, resetting it if possible to retain the modulo character of the axis. GO check_modulo_factor x ! check_modulo_factor.jnl ! Check whether stride is an integer factor of the axis length ! and attempt to reset it if not. ! Argument is axis direction: x or t DEFINE SYMBOL dir = `UPCASE("$1")` !-> DEFINE SYMBOL dir = X IF `($($dir)stride) LE 1` THEN EXIT/SCRIPT !-> IF 1 THEN EXIT/SCRIPT !-> EXIT/SCRIPT DEFINE SYMBOL axname = `($data_var)[d=($data_num)],RETURN=xaxis` !-> DEFINE SYMBOL axname = NBLONGITUDES IF `STRINDEX("($axname)", "(") EQ 0` THEN !-> IF 1 THEN IF `($xstride) GT 1 AND ($axis_stride_($axname)"0") EQ 0` THEN !-> IF 0 THEN ENDIF ENDIF IF ($SYMBOL no_region_x_range"0|*>1") THEN CANCEL SYMBOL region_x_range !-> IF 0 THEN CANCEL SYMBOL region_x_range ENDIF DEFINE SYMBOL xaxname = `($data_var),RETURN=yaxis` !-> DEFINE SYMBOL xaxname = NBLATITUDES IF `STRCMP("($xaxname)", "NORMAL") EQ 0` THEN DEFINE SYMBOL noyaxis = 1 !-> IF 0 THEN DEFINE SYMBOL noyaxis = 1 IF `(STRINDEX("($ferret_view)","y") NE 0) AND \ ($region_y_range"0|0|*>1") AND \ ($no_native_strides_xy"0|*>1") NE 1 AND \ ($region_y"0|0|*>1") AND \ (($noyaxis"0|1|*>1") NE 1)` THEN !-> IF 1 THEN LET yy = y[gy=($data_var)[d=($data_num)]] !-> DEFINE VARIABLE yy = y[gy='GRID_0001'[d=1]] LET pixsize = `yy[($region_y)@ngd]` !-> DEFINE VARIABLE pixsize = 30 IF ($ferret_google_plot"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF IF `pixsize GT maxpix` THEN DEFINE SYMBOL ystride = `2*INT((pixsize/maxpix)+1)` !-> IF 0 THEN DEFINE SYMBOL ystride = `2*INT((pixsize/maxpix)+1)` DEFINE SYMBOL ystride = `MAX(($ystride"1"), ($stride_for_mem"1"))` !-> DEFINE SYMBOL ystride = 1 DEFINE SYMBOL axname = `($data_var)[d=($data_num)],RETURN=yaxis` !-> DEFINE SYMBOL axname = NBLATITUDES IF `STRINDEX("($axname)", "(") EQ 0` THEN !-> IF 1 THEN IF `($ystride) GT 1 AND ($axis_stride_($axname)"0") EQ 0` THEN !-> IF 0 THEN ENDIF ENDIF IF ($SYMBOL no_region_y_range"0|*>1") THEN CANCEL SYMBOL region_y_range !-> IF 0 THEN CANCEL SYMBOL region_y_range ENDIF DEFINE SYMBOL xaxname = `($data_var),RETURN=zaxis` !-> DEFINE SYMBOL xaxname = NORMAL IF `STRCMP("($xaxname)", "NORMAL") EQ 0` THEN DEFINE SYMBOL nozaxis = 1 !-> IF 1 THEN DEFINE SYMBOL nozaxis = 1 !-> DEFINE SYMBOL nozaxis = 1 IF `(STRINDEX("($ferret_view)","z") NE 0) AND \ ($region_z_range"0|0|*>1") AND \ ($region_z"0|0|*>1") AND \ (($nozaxis"0|1|*>1") NE 1)` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ! If this is an animation then the time step is controlled by that. Do not do ! striding in time. DEFINE SYMBOL xaxname = `($data_var),RETURN=taxis` !-> DEFINE SYMBOL xaxname = TIME IF `STRCMP("($xaxname)", "NORMAL") EQ 0` THEN DEFINE SYMBOL notaxis = 1 !-> IF 0 THEN DEFINE SYMBOL notaxis = 1 LET trange = STRCMP("($region_t_lo%0%)", "($region_t_hi%1%)") !-> DEFINE VARIABLE trange = STRCMP("14-OCT-1992 00:00:00", "14-OCT-1992 00:00:00") IF `(STRINDEX("($ferret_view)","t") NE 0) AND \ ($region_t"0|0|*>1") AND ( ($DO_TRANS_1_SEAS_PER_YEAR"0") EQ 0) AND \ (trange NE 0 AND STRINDEX("($operation_ID)", "Animation_Frames") EQ 0) AND \ (($notaxis"0|1|*>1") NE 1)` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ! Add a label about the striding at the upper left. LET need_comma = 0 IF `($xstride"0|1>0|*>1") + ($ystride"0|1>0|*>1") + ($zstride"0|1>0|*>1") + ($tstride"0|1>0|*>1") GT 0` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ENDIF ENDIF ! End of $RCSfile ------------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. ! consolidate here so that all 2D plots use only ferret_fill_levels. ! Allow for config that may have used ferret_contour levels instead or also. IF ($ferret_fill_levels"0|*>1") THEN !-> IF 0 THEN ELSE IF ($ferret_contour_levels"0|*>1") THEN DEFINE SYMBOL ferret_fill_levels ($ferret_contour_levels) !-> IF 0 THEN DEFINE SYMBOL ferret_fill_levels ENDIF IF `($data_num) EQ 1` THEN !-> IF 1 THEN IF ($ferret_fill_levels"0|*>1") THEN DEFINE SYMBOL input_fill_levels = 1 !-> IF 0 THEN DEFINE SYMBOL input_fill_levels = 1 IF `STRLEN("($ferret_view)") EQ 2` THEN !-> IF 1 THEN IF `(STRINDEX("($operation_ID)", "Plot") GT 0) OR (STRINDEX("($operation_ID)", "zoom") GT 0)` \ THEN GO LAS_auto_levels !-> IF 1 THEN GO LAS_auto_levels !-> GO LAS_auto_levels ! LAS_auto_levels.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. ! acm 4/2010 Consolidate so that we use only ferret_fill_levels ! 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 is defined in LAS_initialize_variable.jnl, telling ! whether settings for levels was sent in ! Determine striding for speed in operating the STAT command LET memsize = 0.5* 1.e6 IF `($FERRET_VERSION"0") GE 6.2` THEN KEYMARK 1 ! annotate plot keys with the min and max !-> IF 1 THEN KEYMARK 1 !-> KEYMARK 1 ! Make sure its a 2D plot operation. DEFINE SYMBOL op = `UPCASE("($operation_ID)")` !-> DEFINE SYMBOL op = PLOT_2D_XY_ZOOM IF `STRLEN("($ferret_view)") NE 2` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT IF `STRINDEX("($op)", "VECTOR") GT 0` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT IF `STRINDEX("($op)", "PLOT") EQ 0 AND \ STRINDEX ("($op)", "POLY") EQ 0 AND \ STRINDEX ("($op)", "ZOOM") EQ 0 AND \ STRINDEX ("($op)", "CRUISE_SUMMARY") EQ 0` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT ! Levels for animations set in LAS_auto_levels_animate, ! called in list_frames.jnl IF `STRINDEX("($op)", "ANIMATION") GT 0` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT ! 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 IF `($ferret_diff_var"1|*>0") AND ($its_gridded_scattered"0|*>1")` THEN !-> IF 0 THEN ENDIF ! If requested with posinteger, create levels that are integers or multiples of ! integers, suitable for COUNTS. IF ($ferret_fill_levels"0|posinteger>1|*>0" ) THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ENDIF ENDIF 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 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 ! If other levels spec is given, return. IF ($ferret_fill_levels"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ! IF fill levels have not been set by the user or in the config, then ! use Ferrets auto-open-ended levels DEFINE SYMBOL ferret_fill_levels = ($num_fine_levels)v !-> DEFINE SYMBOL ferret_fill_levels = v IF ($ferret_center_levels"0|0|1") THEN \ DEFINE SYMBOL ferret_fill_levels = ($num_fine_levels)vc !-> IF 0 THEN DEFINE SYMBOL ferret_fill_levels = vc ! End of file ------------LAS_auto_levels.jnl-------------------------- ENDIF ENDIF ! End of $RCSfile ------------LAS_initialize_variable.jnl-------------------------- DEFINE SYMBOL variable_($1"0")_lab = ($ferret_plot_title) !-> DEFINE SYMBOL variable_0_lab = Maps of Sea Level Anomalies Merged (cm) IF `($1"0") EQ 0` THEN DEFINE SYMBOL variable_lab = ($ferret_plot_title) !-> IF 1 THEN DEFINE SYMBOL variable_lab = Maps of Sea Level Anomalies Merged (cm) !-> DEFINE SYMBOL variable_lab = Maps of Sea Level Anomalies Merged (cm) IF `STRLEN("($ferret_view)") GT 1 AND ($its_prop_prop_plot"0|*>1") EQ 0 AND \ ($itsa_vector_plot"0|*>1") EQ 0` THEN DEFINE SYMBOL qualifiers = ($qualifiers)/KEY=CONT !-> IF 1 THEN DEFINE SYMBOL qualifiers = /KEY=CONT !-> DEFINE SYMBOL qualifiers = /KEY=CONT IF ($ferret_expression"0|*>1") THEN GO LAS_expression !-> IF 0 THEN GO LAS_expression ! End of $RCSfile ------------LAS_initialize_data.jnl-------------------------- ! Check for errors (They often occur during dataset initialization.) IF ($error_status"0|*>1") THEN !-> IF 0 THEN ENDIF ! Check whether the region is too small to make a 2D plot on this grid. GO LAS_check_2d_region ! LAS_check_2d_region.jnl ! ! Author: ansley ! $Date: 2007/06/22 ! ACM 8/7/2007 - Apply expressions here. ! - Save symbols with information about too-small regions ! for use by labels_above_plot.jnl ! - If this is to be an overlay plot, and region is too small ! then overlay cant be done. Reset number of datasets to 1. ! ! Check whether the region is too small to make a 2D plot on this grid. ! Call after region and dataset have been initialized for 2D plot. ! Note should be able to do a SHADE plot ! Change ($data_var)[d=($data_num)] to the_plot_var_noregion CANCEL SYMBOL region_small* LET/D=($data_num) the_plot_var_noregion = ($ferret_plot_var_noregion) !-> DEFINE VARIABLE/D=1 the_plot_var_noregion = 'GRID_0001'[d=1] IF ($data_analysis_expr"0|*>1") THEN !-> IF 0 THEN ENDIF ! For curvilinear plots, check the Z and T regions IF `($do_curvi_xy"0") OR ($native_curvilinear_xy"0")` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF IF `($do_curvi_xy"0") AND ($native_curvilinear_xy"0")` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT IF `($do_hybrid_z"0") AND ($native_Z_plot"0")` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT IF `($do_curvi_xy_and_hybrid_z)` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT IF `($do_curvi_xy"0") OR ($do_hybrid_z"0") OR ($do_curvi_xy_and_hybrid_z"0")` THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT ! If doing a slice of a curvilinear variable then note that RETURN=shape is not ! always correct for these variables ! IF `STRINDEX ("($ferret_plot_var)", "sampled_var") GT 0` THEN EXIT/SCRIPT !(dont exit, test works for some cases) LET/D=($data_num) the_plot_var = ($ferret_plot_var) !-> DEFINE VARIABLE/D=1 the_plot_var = 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] LOAD the_plot_var DEFINE SYMBOL varshape = `the_plot_var,RETURN=shape` !-> DEFINE SYMBOL varshape = XY DEFINE SYMBOL viewshape = `UPCASE("($ferret_view)")` !-> DEFINE SYMBOL viewshape = XY IF `STRCMP("($varshape)", "POINT") EQ 0` THEN !-> IF 0 THEN ENDIF ! degenerated to a point. ! Requested regions that degenerate to a line. IF `STRLEN("($varshape)") EQ 1` THEN !-> IF 0 THEN ENDIF ! End of file ------------LAS_check_2d_region.jnl------------------------------- ! Check for errors IF ($error_status"0|ERROR>1") THEN !-> IF 0 THEN ENDIF ! Trying a hack to close the gap on GE plots. Not very effective !IF `(($native_curvilinear_xy"0") EQ 0) AND (($its_GE"0|*>1") EQ 1)` THEN ! LET delx = `xbox[gx=($ferret_plot_var),x=($region_x_lo)]` ! ! IF `($region_x_range) GT (360-1.1*delx)` THEN ! DEFINE SYMBOL region_0_x_lo = `($region_0_x_lo) - delx` ! DEFINE SYMBOL region_0_x_hi = `($region_0_x_hi) + delx` ! DEFINE SYMBOL qualifiers = ($qualifiers)/HLIM=($region_0_x_lo):($region_0_x_hi) ! GO LAS_initialize_region 0 ! ENDIF !ENDIF ! Here is variable 0 and its title DEFINE SYMBOL ferret_var_0 = ($ferret_plot_var) !-> DEFINE SYMBOL ferret_var_0 = 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] DEFINE SYMBOL ferret_title_0 = ($ferret_plot_title"($data_var)") !-> DEFINE SYMBOL ferret_title_0 = Maps of Sea Level Anomalies Merged (cm) IF ($ferret_plot_var_m360"0|*>1") THEN DEFINE SYMBOL ferret_var_m360_0 = ($ferret_plot_var_m360) !-> IF 0 THEN DEFINE SYMBOL ferret_var_m360_0 = ! Open the window, apply size, scale and WMS view options GO LAS_open_window ! LAS_open_window.jnl ! ! Author: ansley ! Date: 2007/02/12 ! 7/2010 ACM updates for V7.2 multi-variable plots ! ! The LAS_open_windw.jnl script takes care of everything having to ! do with starting the window. ! ! ! - Open the window with the desired size ! - Issue CANCEL MODE LOGO command ! - If an XY plot and if this has been requested, set the aspect ! ratio to match the region ! - If no margins (WMS style plot) is requested, set that up, ! including the /NOYADJUST plot qualifier. SET WINDOW/SIZE = ($ferret_size"0.5") !-> SET WINDOW/SIZE = 0.5 CANCEL MODE LOGO IF ($ferret_view"|xy>1|*>0") THEN !-> IF 1 THEN IF ($ferret_set_aspect"1|default>1|no>0|yes>1|0|1") THEN SET WINDOW/ASPECT = `($region_Y_range)/($region_X_range)`:axis !-> IF 1 THEN SET WINDOW/ASPECT = `6.944/15.11719`:axis !-> SET WINDOW/ASPECT = `6.944/15.11719`:axis !-> SET WINDOW/ASPECT = 0.4593446:axis ENDIF IF `($ferret_margins"1|0|1|false>0|true>1") EQ 0` THEN !-> IF 0 THEN ELSE ! For 2D plots, make room for the colorbar labels which sometimes get cut off. IF `STRLEN("($ferret_view)") EQ 2` THEN !-> IF 1 THEN DEFINE VIEW/X=0:0.95/Y=0:1 xspace SET VIEW xspace ELSE ENDIF ENDIF ! If the annotations are going to be collected and sent back to LAS for presentation, ! set up the viewport for small margins around the edge. IF ($ferret_annotations"0|*>1") THEN GO set_full_margins !-> IF 0 THEN GO set_full_margins IF ($ferret_koppen_var_2"0|*>1") THEN !-> IF 0 THEN ENDIF ! TODO: Should the creation of the ($qualifiers) symbol for standard ! TODO: 2D plots be separated out in a separate script called: ! TODO: LAS_2D_plot_qualifiers.jnl ! ! Build up the plot qualifiers !ACM note: All color plots use $ferret_fill_levels. Contour plots use $ferret_contour_levels. IF ($ferret_contour_style"0|contour_lines>1|*>0") THEN !-> IF 0 THEN ENDIF ELSE IF ($ferret_fill_levels"0|*>1") THEN !-> IF 1 THEN DEFINE SYMBOL qualifiers = ($qualifiers)/LEVELS=($ferret_fill_levels) !-> DEFINE SYMBOL qualifiers = /KEY=CONT/LEVELS=v ENDIF ENDIF IF ($ferret_plot_key"0|0|nokey>0|*>1") THEN !-> IF 0 THEN ENDIF IF ($ferret_use_graticules"1|0|*>1) THEN !-> IF 1 THEN SET MODE GRATICULE:(DASH,COLOR=black) ENDIF DEFINE SYMBOL qualifiers = ($qualifiers)/PALETTE=($ferret_palette"rainbow|default>rainbow|*>*) !-> DEFINE SYMBOL qualifiers = /KEY=CONT/LEVELS=v/PALETTE=rnb2 IF ($ferret_curvi_quals"0|*>1") THEN !-> IF 0 THEN ENDIF ! Set up for degrees-minutes-seconds labels on axes with units of degrees IF ($ferret_deg_min_sec"0|false>0|*>1") THEN GO LAS_set_deg_min_sec.jnl !-> IF 0 THEN GO LAS_set_deg_min_sec.jnl ! Set the plot type (SHADE or CONTOUR) DEFINE SYMBOL plot_type =($ferret_contour_style"FILL|default>FILL|raster>SHADE|color_filled_contours>FILL|color_filled_plus_lines>FILL|contour_lines>CONTOUR|raster_plus_lines>SHADE") !-> DEFINE SYMBOL plot_type =FILL ! For all FILL plots, we will first do a SHADE underlay to get the plot to draw all the way to the edges. DEFINE SYMBOL shade_underlay = FALSE IF ($plot_type"0|FILL>1|*>0) THEN DEFINE SYMBOL shade_underlay = TRUE !-> IF 1 THEN DEFINE SYMBOL shade_underlay = TRUE !-> DEFINE SYMBOL shade_underlay = TRUE ! Set the URL label for the first dataset. GO LAS_url_label 0 ! LAS_url_label.jnl ! Define upper-right labels with the url; the URL is not plotted automatically when the var is ! (the same thing may be done in transform scripts or in differencing setup; that is ok ! 1/2010 fix ticket 745 - immediate-mode expressions where the string contains an = sign ! trip up the command parsing. Break these definitions into two steps. IF `($n_right_labels"0") EQ 0` THEN DEFINE SYMBOL n_right_labels = 0 !-> IF 1 THEN DEFINE SYMBOL n_right_labels = 0 !-> DEFINE SYMBOL n_right_labels = 0 !IF `($data_$1_url"0|*>1") EQ 0` THEN EXIT/SCRIPT ! Instead of the URL use the dataset name or ID passed in to the ! (addXML gets this from the title attribute from the original dataset ! dataset if that attrib exists) LET got_dataset_label = 0 DEFINE SYMBOL num ($1"0") !-> DEFINE SYMBOL num 0 IF `got_dataset_label EQ 0` THEN !-> IF 1 THEN IF `($data_$1_dataset_id"0|*>1")+($data_$1_dataset_name"0|*>1") GT 0` THEN \ DEFINE SYMBOL n_right_labels = `($n_right_labels)+1` !-> IF 1 THEN DEFINE SYMBOL n_right_labels = `0+1` !-> DEFINE SYMBOL n_right_labels = `0+1` !-> DEFINE SYMBOL n_right_labels = 1 IF ($data_$1_dataset_id"0|*>1") THEN !-> IF 1 THEN DEFINE SYMBOL upper_right_($n_right_labels) = DATA SET: ($data_$1_dataset_id) !-> DEFINE SYMBOL upper_right_1 = DATA SET: dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched DEFINE SYMBOL upper_right_text_($n_right_labels) = DATA SET: ($data_$1_dataset_id) !-> DEFINE SYMBOL upper_right_text_1 = DATA SET: dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched LET got_dataset_label = 1 DEFINE SYMBOL dataset_title_($num)_lab = ($upper_right_text_($n_right_labels)) !-> DEFINE SYMBOL dataset_title_0_lab = DATA SET: dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched DEFINE SYMBOL dataset_title_lab = ($upper_right_text_($n_right_labels)) !-> DEFINE SYMBOL dataset_title_lab = DATA SET: dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched ENDIF IF ($data_$1_dataset_name"0|*>1") THEN !-> IF 1 THEN DEFINE SYMBOL upper_right_($n_right_labels) = DATA SET: ($data_$1_dataset_name) !-> DEFINE SYMBOL upper_right_1 = DATA SET: global dt msla h merged DEFINE SYMBOL upper_right_text_($n_right_labels) = DATA SET: ($data_$1_dataset_name) !-> DEFINE SYMBOL upper_right_text_1 = DATA SET: global dt msla h merged LET got_dataset_label = 1 DEFINE SYMBOL dataset_title_($num)_lab = ($upper_right_text_($n_right_labels)) !-> DEFINE SYMBOL dataset_title_0_lab = DATA SET: global dt msla h merged DEFINE SYMBOL dataset_title_lab = ($upper_right_text_($n_right_labels)) !-> DEFINE SYMBOL dataset_title_lab = DATA SET: global dt msla h merged ENDIF ENDIF ! If we didnt get a label from the above, use the URL IF `got_dataset_label EQ 0` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ! If labels are not going to be on the plots, save the url IF `STRINDEX("($data_$1_dataset_url)","http") NE 0` THEN !-> IF 1 THEN IF ($data_$1_dataset_url"0|*>1") THEN !-> IF 1 THEN DEFINE SYMBOL data_$1_urlpath = ($data_$1_dataset_url) !-> DEFINE SYMBOL data_0_urlpath = http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched ELSE ENDIF DEFINE SYMBOL dataset_url_($num)_lab = OPeNDAP URL: ($data_$1_urlpath) !-> DEFINE SYMBOL dataset_url_0_lab = OPeNDAP URL: http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched ELSE ENDIF IF `($num) GT 0` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ELSE IF `($dataset_url_0_lab"0|*>1")` THEN DEFINE SYMBOL dataset_url_lab ($dataset_url_0_lab) !-> IF 1 THEN DEFINE SYMBOL dataset_url_lab OPeNDAP URL: http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched !-> DEFINE SYMBOL dataset_url_lab OPeNDAP URL: http://atoll-aviso.vlandata.cls.fr:41080/thredds/dodsC/dataset-duacs-dt-upd-global-merged-msla-h-latlon-switched ENDIF IF ($data_0_dataset_institution"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ! If the dataset name or URL and is really long, split into multiple lines. ! Split if longer than 50, but if really long, use fewer 80-character lines. LET linelen = 50 LET slen = `STRLEN ("($upper_right_($n_right_labels))")` !-> DEFINE VARIABLE slen = 33 IF `slen GT 150` THEN LET linelen = 80 !-> IF 0 THEN LET linelen = 80 IF `(slen GT linelen)` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF DEFINE SYMBOL upper_right_($n_right_labels) = @AS($upper_right_($n_right_labels)) !-> DEFINE SYMBOL upper_right_1 = @ASDATA SET: global dt msla h merged IF `($n_right_labels"0") GT 1` THEN \ DEFINE SYMBOL upper_right_($n_right_labels) = @P2($upper_right_($n_right_labels)) !-> IF 0 THEN DEFINE SYMBOL upper_right_1 = @P2@ASDATA SET: global dt msla h merged ! For comparison plots get rid of the long ugly URL labels at the upper right. ! (DO this in the difference scripts!?? IF `got_dataset_label EQ 0` THEN !-> IF 0 THEN ENDIF ! End of $RCSfile ------------LAS_url_label.jnl-------------------------- IF ($ferret_curvi_quals"0|*>1") THEN !-> IF 0 THEN ENDIF ! Make a plot,needed to get the number of levels (SHADE/SET doesnt do it.) IF ($ferret_annotations"0|*>1") THEN !-> IF 0 THEN ENDIF ! Draw the plot and we are done IF `($data_count"0") EQ 1` THEN !-> IF 1 THEN DEFINE SYMBOL split_title = ($ferret_plot_title) !-> DEFINE SYMBOL split_title = Maps of Sea Level Anomalies Merged (cm) GO LAS_split_title ! LAS_split_title.jnl ! If a title is long, split into multiple lines at the location of an addition ! to the title. IF ($ferret_annotations"0|*>1") THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT LET slen = STRLEN ("($split_title)") !-> DEFINE VARIABLE slen = STRLEN ("Maps of Sea Level Anomalies Merged (cm)") IF `slen GT 80` THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ! End of $RCSfile ------------ LAS_split_title.jnl-------------------------- DEFINE SYMBOL ferret_plot_title = ($split_title) !-> DEFINE SYMBOL ferret_plot_title = Maps of Sea Level Anomalies Merged (cm) IF ($shade_underlay) THEN !-> IF TRUE THEN IF `($ferret_google_plot"0") EQ 0` THEN \ DEFINE SYMBOL shade_qualifiers = ($shade_qualifiers)/TRIM !-> IF 1 THEN DEFINE SYMBOL shade_qualifiers = /TRIM !-> DEFINE SYMBOL shade_qualifiers = /TRIM SHADE($qualifiers)($shade_qualifiers)/TITLE="($ferret_plot_title)"/SET ($ferret_var_0) !-> SHADE/KEY=CONT/LEVELS=v/PALETTE=rnb2/TRIM/TITLE="Maps of Sea Level Anomalies Merged (cm)"/SET 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] GO reset_labels ! reset_labels.jnl ! remove lots of labels as they are relocated by the scripts ! Define symbols used by the annotations xml IF ($xform_dms"0|*>1") THEN PPL XFOR (($xform_dms)) !-> IF 0 THEN PPL XFOR ( ) IF ($yform_dms"0|*>1") THEN PPL YFOR (($yform_dms)) !-> IF 0 THEN PPL YFOR ( ) IF ($axlab_command"0|*>1") THEN PPL ($axlab_command) !-> IF 0 THEN PPL IF ($tnmlab_command"0|*>1") THEN PPL ($tnmlab_command) !-> IF 0 THEN PPL IF ($axtic_command"0|*>1") THEN PPL ($axtic_command) !-> IF 0 THEN PPL IF ($axlen_command"0|*>1") THEN PPL ($axlen_command) !-> IF 0 THEN PPL IF ($axtype_command"0|*>1") THEN PPL ($axtype_command) !-> IF 0 THEN PPL if ($labnum_dset"0|*>1") THEN go unlabel ($labnum_dset) !-> if 1 THEN go unlabel 2 !-> go unlabel 2 ! usage: GO unlabel label_number ! where label_number is the label revealed by the command PPL LIST LABELS ! e.g. remove the "NOAA/PMEL TMAP" signature label from a plot ! yes? PLOT/SET_UP/I=1:100 SIN(I/6) ! yes? PPL LIST LABELS ! notice #2 is the one to remove ! yes? GO unlabel 2 ! yes? PPL PLOT ! test argument before performing any actions QUERY/IGNORE $1"<Usage: GO unlabel n, where n is a PLOT+ movable label number" !-> QUERY/IGNORE 2 ! remove the label by setting its location to the origin with no text content PPL LABS/NOUSER $1,0,0 @AS !-> PPL LABS/NOUSER 2,0,0 @AS set mode/last verify if ($labnum_datitl"0|*>1") THEN go unlabel ($labnum_datitl) !-> if 1 THEN go unlabel 3 !-> go unlabel 3 ! usage: GO unlabel label_number ! where label_number is the label revealed by the command PPL LIST LABELS ! e.g. remove the "NOAA/PMEL TMAP" signature label from a plot ! yes? PLOT/SET_UP/I=1:100 SIN(I/6) ! yes? PPL LIST LABELS ! notice #2 is the one to remove ! yes? GO unlabel 2 ! yes? PPL PLOT ! test argument before performing any actions QUERY/IGNORE $1"<Usage: GO unlabel n, where n is a PLOT+ movable label number" !-> QUERY/IGNORE 3 ! remove the label by setting its location to the origin with no text content PPL LABS/NOUSER $1,0,0 @AS !-> PPL LABS/NOUSER 3,0,0 @AS set mode/last verify if ($labnum_dods"0|*>1") THEN go unlabel ($labnum_dods) !-> if 1 THEN go unlabel 4 !-> go unlabel 4 ! usage: GO unlabel label_number ! where label_number is the label revealed by the command PPL LIST LABELS ! e.g. remove the "NOAA/PMEL TMAP" signature label from a plot ! yes? PLOT/SET_UP/I=1:100 SIN(I/6) ! yes? PPL LIST LABELS ! notice #2 is the one to remove ! yes? GO unlabel 2 ! yes? PPL PLOT ! test argument before performing any actions QUERY/IGNORE $1"<Usage: GO unlabel n, where n is a PLOT+ movable label number" !-> QUERY/IGNORE 4 ! remove the label by setting its location to the origin with no text content PPL LABS/NOUSER $1,0,0 @AS !-> PPL LABS/NOUSER 4,0,0 @AS set mode/last verify IF `STRLEN("($ferret_view)") EQ 2` THEN !-> IF 1 THEN IF `($ppl$zmin) GE 1.e35 AND ($ppl$zmax) LE -1.e35` THEN DEFINE SYMBOL nokey = 1 !-> IF 0 THEN DEFINE SYMBOL nokey = 1 IF `($nokey"0") EQ 0` THEN PPL SHAKEY 1,,,,,,,,,,1 !-> IF 1 THEN PPL SHAKEY 1,,,,,,,,,,1 !-> PPL SHAKEY 1,,,,,,,,,,1 ENDIF IF `($data_count"1") EQ 1` THEN !-> IF 1 THEN IF ($labnum_x"0|*>1") THEN !-> IF 0 THEN ENDIF IF ($labnum_y"0|*>1") THEN !-> IF 0 THEN ENDIF IF ($labnum_z"0|*>1") THEN !-> IF 0 THEN ENDIF IF ($labnum_t"0|*>1") THEN !-> IF 1 THEN DEFINE SYMBOL time_lab ($lab($labnum_t)) !-> DEFINE SYMBOL time_lab TIME : 14-OCT-1992 00:00 ENDIF IF ($labnum_calend"0|*>1") THEN !-> IF 0 THEN ENDIF ENDIF IF ($ferret_annotations"0|*>1") THEN !-> IF 0 THEN ENDIF IF ($ferret_annotations"0|*>1") THEN GO key_at_top !-> IF 0 THEN GO key_at_top LET add_urls = 1 IF `STRCMP("($data_0_dataset_name)", "($data_0_dataset_url)") EQ 0` THEN LET add_urls = 0 !-> IF 0 THEN LET add_urls = 0 DEFINE SYMBOL dataset_title_lab = DATASET: ($data_0_dataset_name) !-> DEFINE SYMBOL dataset_title_lab = DATASET: global dt msla h merged PPL SHADE IF `($LEV_NUM"0") GT 245/2` THEN PPL SHASET RESET !-> IF 0 THEN PPL SHASET RESET ($plot_type)($qualifiers)/OVER/NOLAB ($ferret_var_0) !-> CONTOUR/FILL/KEY=CONT/LEVELS=v/PALETTE=rnb2/OVER/NOLAB 'GRID_0001'[d=1,X=26.89453:42.01172,Y=40.341:47.285,T="14-OCT-1992 00:00:00":"14-OCT-1992 00:00:00"] IF ($native_curvilinear_xy"0|*>1") THEN !-> IF 0 THEN ENDIF ELSE ENDIF ENDIF ! One of the results is the data min and max. Save those here. DEFINE SYMBOL data_plotted_min = ($ppl$zmin) !-> DEFINE SYMBOL data_plotted_min = -24.39 DEFINE SYMBOL data_plotted_max = ($ppl$zmax) !-> DEFINE SYMBOL data_plotted_max = -2.925 IF ($ferret_contour_style"0|default>0|color_filled_plus_lines>1|raster_plus_lines>1|*>0") THEN !-> IF 0 THEN ENDIF ENDIF ENDIF ! One of the results is the data min and max. Save those here. DEFINE SYMBOL data_plotted_min = ($ppl$zmin) !-> DEFINE SYMBOL data_plotted_min = -24.39 DEFINE SYMBOL data_plotted_max = ($ppl$zmax) !-> DEFINE SYMBOL data_plotted_max = -2.925 ENDIF ! Overall header at the very top GO LAS_ferret_las_version_header ! Write whatever header we want onto a plot, across the top. ! ! Overall header at the very top. ! TODO: ACM 10/21/08 When we have this set up, pass in a label for ! the LAS version in the symbol ferret_las_version IF `($ferret_las_version"0|*>1") EQ 0` THEN \ DEFINE SYMBOL ferret_las_version = 7. !-> IF 1 THEN DEFINE SYMBOL ferret_las_version = 7. !-> DEFINE SYMBOL ferret_las_version = 7. DEFINE SYMBOL las_ferret_header_label = LAS ($ferret_las_version)/Ferret ($FERRET_VERSION) NOAA/PMEL !-> DEFINE SYMBOL las_ferret_header_label = LAS 7./Ferret 6.72 NOAA/PMEL DEFINE SYMBOL ferret_version_lab = ($FERRET_VERSION) !-> DEFINE SYMBOL ferret_version_lab = 6.72 DEFINE SYMBOL las_version_lab = ($las_version"LAS7.") !-> DEFINE SYMBOL las_version_lab = LAS7. DEFINE SYMBOL header_lab = (NOAA/PMEL) IF ($ferret_annotations%0|*>1%) THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT LABEL/NOUSER `($ppl$xlen)/2`, `($ppl$ylen)+1.2`, 0, 0, 0.12, ($las_ferret_header_label) !-> PPL %LABEL/NOUSER 4.8765, 5.993, 0, 0, 0.12, LAS 7./Ferret 6.72 NOAA/PMEL ! Add labels at the top for the location of overlaid lines ! and for URLs if they exist GO labels_above_plot !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! file: labels_above_plot.jnl ! ! Author: ansley ! Date: July 18, 2007 ! ACM 8/7/2007 - use symbols region_small* rather than looking for ! certain text within the labels for a more robust ! means of setting up for the region-too-small label. ! 7/2010 ACM updates for V7.2 multi-variable plots. Loop over labels. ! Add labels at the top for the location of overlaid lines, ! transformations, and for URLs if they exist ! 4/2011 ! If a special marker location has been sent in (nuclear reactor location) ! plot a marker. The value of the location should be x,y !DEFINE SYMBOL ferret_xy_location_mark = 141.03291,37.422974 IF ($ferret_xy_location_mark"0|*>1") THEN !-> IF 0 THEN ENDIF LET labdel = 0.2 LET labsiz = 0.1 IF ($ferret_annotations%0|*>1%) THEN EXIT/SCRIPT !-> IF 0 THEN EXIT/SCRIPT sh sym n_left_labels sh sym n_right_labels N_RIGHT_LABELS = "1" DEFINE SYMBOL num_labels = `MAX(($n_left_labels"0"), ($n_right_labels"0"))` !-> DEFINE SYMBOL num_labels = 1 ! Put the location labels in the upper left. ! If the script LAS_check_2d_region has set a label notifying us that ! the requested retion was too small, make that label larger. IF `($n_left_labels"0") GT 2` THEN !-> IF 0 THEN ENDIF IF ($n_left_labels"0|*>1") THEN !-> IF 0 THEN ENDIF ! Put any URL labels in the upper right ! Put any dataset labels in the upper right IF ($n_right_labels"0|0|*>1") THEN !-> IF 1 THEN LET labxloc = `($ppl$xlen)` !-> DEFINE VARIABLE labxloc = 9.753 IF ($long_right_label"0|0|*>1") THEN LET labxloc = `($ppl$xlen) + ($ppl$xorg) - 0.5` !-> IF 0 THEN LET labxloc = `9.753 + 1.200 - 0.5` LET labyloc = `($ppl$ylen) + labdel*($n_left_labels"1") ` ! start with loc of left-side labels !-> DEFINE VARIABLE labyloc = 4.993 IF ($long_right_label"0|0|*>1") THEN !-> IF 0 THEN ELSE LET labyloc = `labyloc + labdel*($n_right_labels)` !-> DEFINE VARIABLE labyloc = 5.193 ENDIF LET labyloc = `labyloc + ($extra_y_space"0")` !-> DEFINE VARIABLE labyloc = 5.193 IF ($its_prop_prop_plot"0") THEN LET labyloc = MAX(`labyloc`, `($ppl$ylen) + 0.7`) !-> IF 0 THEN LET labyloc = MAX(`labyloc`, `4.793 + 0.7`) REPEAT/RANGE=1:($n_right_labels)/NAME=m (DEFINE SYMBOL m = `m` ;\ LABEL/NOUSER `labxloc`, `labyloc`, 1, 0.0, `labsiz`, ($upper_right_($m)) ;\ LET labyloc = `labyloc - labdel` ;\ ) !-> REPEAT/RANGE=1:1/NAME=m (DEFINE SYMBOL m = `m` ; LABEL/NOUSER `labxloc`, `labyloc`, 1, 0.0, `labsiz`, ($upper_right_($m)) ; LET labyloc = `labyloc - labdel` ; ) !-> REPEAT: M:1 !-> (DEFINE SYMBOL m = `m` ; LABEL/NOUSER `labxloc`, `labyloc`, 1, 0.0, `labsiz`, ($upper_right_($m)) ; LET labyloc = `labyloc - labdel` ; ) !-> DEFINE SYMBOL m = `m` !-> DEFINE SYMBOL m = 1 !-> LABEL/NOUSER `labxloc`, `labyloc`, 1, 0.0, `labsiz`, ($upper_right_($m)) !-> PPL %LABEL/NOUSER 9.753, 5.193, 1, 0.0, 0.1, @ASDATA SET: global dt msla h merged !-> LET labyloc = `labyloc - labdel` !-> DEFINE VARIABLE labyloc = 4.993 ENDIF ! End of $RCSfile ---------- labels_above_plot.jnl---------------------------- ! Overlay additional cartography data (land mask, outlines, rivers, ...) GO land_overlay ! Overlay additional cartography data (land mask, outlines, rivers, ...) ! For land outline, if the region is smaller than 60 degrees in x or 30 degrees in y, ! use the more-detailed land outline script land_detail.jnl ! Setup when doing Vector plots on Google Earth IF `($its_GE"0|*>1") AND ($ferret_vector_1"0|*>1")` THEN !-> IF 0 THEN ENDIF IF ($ferret_land_type"1|none>0|contour>0|filled>1|shade>1|default>1|*>0") THEN !-> IF 1 THEN GO LAS_fland !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! $RCSfile: LAS_fland.jnl,v $ ! $Revision: 1.1 $ ! ! $Author: ansley $ ! $Date: 2006/07/06 17:54:11 $ ! ! LAS_fland.jnl automatically adjusts the resolution ! ! $1 = ignore the user specified resolution ! $2 = palette DEFINE SYMBOL fland_palette ($2"gray") !-> DEFINE SYMBOL fland_palette gray LET lon_range = `($region_X_hi) - ($region_X_lo)` !-> DEFINE VARIABLE lon_range = 15.11719 LET lat_range = `($region_Y_hi) - ($region_Y_lo)` !-> DEFINE VARIABLE lat_range = 6.944 LET fland_area = `(lon_range * lat_range) / (360 * 180)` !-> DEFINE VARIABLE fland_area = 0.001619966 ! If a tiny region then use smith_sandwell topo from PMEL server IF `fland_area LT 0.005` THEN !-> IF 1 THEN SET DATA/SAVE DEF SYM xlo_hack ($xaxis_min%0%) !-> DEF SYM xlo_hack 27.000000 DEF SYM xhi_hack ($xaxis_max%360%) !-> DEF SYM xhi_hack 42.00000 DEF SYM ylo_hack ($yaxis_min%-90%) !-> DEF SYM ylo_hack 40.405443 DEF SYM yhi_hack ($yaxis_max%90%) !-> DEF SYM yhi_hack 47.28500 DEF SYM map_reg = [x=($xlo_hack):($xhi_hack),y=($ylo_hack):($yhi_hack)] !-> DEF SYM map_reg = [x=27.000000:42.00000,y=40.405443:47.28500] USE "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/smith_sandwell_topo_v8_2.nc"