[Thread Prev][Thread Next][Index]
[las_users] Re: Bug in "LAS_url_label.jnl" in Las v8
Hi Akshay,
Thank you for the report. We had found this as well, and the fix will be
in the next LAS release. I've attached the repaired script for your
convenience.
Ansley
On 10/18/2013 9:42 AM, Akshay Hegde wrote:
Hi I found a bug in LAS_url_label.jnl while dealing with mysql
database, the same script in in old las v7 is working fine...you can
confirm it using default insitu demo datasets.
here is a log
LAS 2013-10-09T18:35:26.482 +0530 INFO - FerretBackendService - Wed
Oct 09 18:35:26 IST 2013:START: Plot_insitu_XY_locations
LAS 2013-10-09T18:35:26.608 +0530 ERROR - FerretBackendService - Wed
Oct 09 18:35:26 IST 2013:Ferret backend request failed: An error
occurred in the service that was creating your product.
LAS 2013-10-09T18:35:26.609 +0530 INFO - FerretBackendService - Wed
Oct 09 18:35:26 IST 2013:END: Plot_insitu_XY_locations
LAS 2013-10-09T18:35:26.640 +0530 ERROR - LASAction - An error
occurred in the service that was creating your product.
LAS 2013-10-09T18:35:26.640 +0530 ERROR - LASAction - **ERROR: command
syntax: DATASET_URL_LAB = ???
DEFINE SYMBOL dataset_url_lab =
Command file, command group, or REPEAT execution aborted
ERROR RUNNING SCRIPT
go "$1"
Thanks and Regards,
Akshay Hegde
CSIR-National Institute of Oceanography,
Dona Paula, Panjim, Goa -403004
! 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 `($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)
DEFINE SYMBOL num ($1"0")
LET got_dataset_label = 0
IF `got_dataset_label EQ 0` 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 ($data_$1_dataset_id"0|*>1") THEN
DEFINE SYMBOL upper_right_($n_right_labels) = DATA SET: ($data_$1_dataset_id)
DEFINE SYMBOL upper_right_text_($n_right_labels) = DATA SET: ($data_$1_dataset_id)
LET got_dataset_label = 1
DEFINE SYMBOL dataset_title_($num)_lab = ($upper_right_text_($n_right_labels))
DEFINE SYMBOL dataset_title_lab = ($upper_right_text_($n_right_labels))
ENDIF
IF ($data_$1_dataset_name"0|*>1") THEN
DEFINE SYMBOL upper_right_($n_right_labels) = DATA SET: ($data_$1_dataset_name)
DEFINE SYMBOL upper_right_text_($n_right_labels) = DATA SET: ($data_$1_dataset_name)
LET got_dataset_label = 1
DEFINE SYMBOL dataset_title_($num)_lab = ($upper_right_text_($n_right_labels))
DEFINE SYMBOL dataset_title_lab = ($upper_right_text_($n_right_labels))
ENDIF
ENDIF
! If we didnt get a label from the above, use the URL
IF `got_dataset_label EQ 0` THEN
IF `STRINDEX("($data_$1_url)","http") NE 0` THEN
IF ($data_$1_dataset_url"0|*>1") THEN
DEFINE SYMBOL data_$1_urlpath = ($data_$1_dataset_url)
ELSE
DEFINE SYMBOL data_$1_urlpath = ($data_$1_url)
ENDIF
DEFINE SYMBOL n_right_labels = `($n_right_labels)+1`
DEFINE SYMBOL upper_right_($n_right_labels) = OPeNDAP URL: ($data_$1_urlpath)
DEFINE SYMBOL upper_right_text_($n_right_labels) = OPeNDAP URL ($data_$1_urlpath)
ELSE
DEFINE SYMBOL n_right_labels = `($n_right_labels)+1`
DEFINE SYMBOL upper_right_($n_right_labels) = DATA SET: `($data_var)[d=($data_num)],RETURN=dset`
DEFINE SYMBOL upper_right_($n_right_labels) = DATA SET: ($data_$1_url)
DEFINE SYMBOL upper_right_text_($n_right_labels) = DATA SET: ($data_$1_url)
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 ($data_$1_dataset_url"0|*>1") THEN
DEFINE SYMBOL data_$1_urlpath = ($data_$1_dataset_url)
ELSE
DEFINE SYMBOL data_$1_urlpath = ($data_$1_url)
ENDIF
DEFINE SYMBOL dataset_url_($num)_lab = OPeNDAP URL: ($data_$1_urlpath)
ELSE
DEFINE SYMBOL dataset_url_($num)_lab = DATA SET: ($data_$1_dataset_url)
ENDIF
IF `($num) EQ 0` THEN
DEFINE SYMBOL dataset_url_lab = ($dataset_url_($num)_lab)
IF `STRINDEX("($dataset_url_lab)", "http") EQ 0` THEN
IF ($data_0_ftds_url"0|*>1") THEN DEFINE SYMBOL dataset_url_lab = ($data_0_ftds_url)
ENDIF
ENDIF
IF `($num) GT 0` THEN
! For annotations, without the (1) and (2)
IF `STRCMP("($dataset_url_0_lab)", "($dataset_url_($num)_lab)") NE 0` THEN \
DEFINE SYMBOL diffurl = 1
IF ($ferret_annotations"0|*>1") THEN
IF `($add_0_url"0|*>1") EQ 0 AND ($dataset_url_0_lab"0|*>1")` THEN
DEFINE SYMBOL dataset_url_lab ($dataset_url_0_lab)
IF ($diffurl"0|*>1") THEN
IF ($itsa_vector_plot"0|*>1") THEN
DEFINE SYMBOL dataset_url_lab ($dataset_url_lab),
ELSE
DEFINE SYMBOL dataset_url_lab ($dataset_url_lab) minus
ENDIF
DEFINE SYMBOL add_0_url = 1
ENDIF
IF ($diffurl"0|*>1") THEN DEFINE SYMBOL dataset_url_lab ($dataset_url_lab) ($dataset_url_($num)_lab)
ELSE
IF `($add_0_url"0|*>1") EQ 0 AND ($dataset_url_0_lab"0|*>1")` THEN
DEFINE SYMBOL dataset_url_lab ($dataset_url_0_lab)
IF ($diffurl"0|*>1") THEN DEFINE SYMBOL dataset_url_lab ($dataset_url_0_lab) (1)
DEFINE SYMBOL add_0_url = 1
ENDIF
IF ($diffurl"0|*>1") THEN DEFINE SYMBOL dataset_url_lab ($dataset_url_($num)_lab)
ENDIF
IF `STRCMP("($dataset_url_0_lab)", "($dataset_url_($num)_lab)") NE 0` THEN \
DEFINE SYMBOL diffurl = 1
! Throw up our hands if its a difference of vectors with multiple URLs
IF `(($num) EQ 2) AND ($diffurl)` THEN \
IF `STRCMP("($dataset_url_0_lab)", "($dataset_url_2_lab)") NE 0` THEN CANCEL SYMBOL dataset_url_lab
IF `(($num) EQ 3) AND ($diffurl)` THEN \
IF `STRCMP("($dataset_url_1_lab)", "($dataset_url_3_lab)") NE 0` THEN CANCEL SYMBOL dataset_url_lab
ELSE
IF `($dataset_url_0_lab"0|*>1")` THEN DEFINE SYMBOL dataset_url_lab ($dataset_url_0_lab)
ENDIF
IF ($data_0_dataset_institution"0|*>1") THEN
IF `($num) GT 1` THEN
IF `($add_0_institut"0|*>1") EQ 0 AND ($data_0_dataset_institution"0|*>1")` THEN
DEFINE SYMBOL dataset_institute_lab ($data_0_dataset_institution) (1)
DEFINE SYMBOL add_0_institut = 1
ENDIF
DEFINE SYMBOL dataset_institute_lab ($dataset_institute_lab) ($data_($num)_dataset_institution) (`($num)+1`)
ELSE
IF `($data_0_dataset_institution"0|*>1")` THEN DEFINE SYMBOL dataset_institute_lab ($data_0_dataset_institution)
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))")`
IF `slen GT 150` THEN LET linelen = 80
IF `(slen GT linelen)` THEN
LET slen2 = `INT(slen/2)`
! If the first SUBSTRING call happens to break the line within some parentheses or
! ther marks, then we get an error in string parsing. If there are parens or brackets,
! then break the line once, just before or after the last set of () or [].
LET last_p1 = `STRRINDEX("($upper_right_($n_right_labels))", "(")`
LET last_p2 = `STRRINDEX("($upper_right_($n_right_labels))", ")")`
LET last_b1 = `STRRINDEX("($upper_right_($n_right_labels))", "[")`
LET last_b2 = `STRRINDEX("($upper_right_($n_right_labels))", "]")`
IF `last_b1 NE 0 AND last_p1 EQ 0` THEN
LET last_p1 = `last_b1`
LET last_p2 = `last_b2`
ENDIF
DEFINE SYMBOL linebreak = <NL>@AS;\
LET i1 = 1
IF `last_p1 GT 0` THEN
IF `last_p1 LT linelen AND last_p2 GT linelen OR last_p1 GT linelen` THEN
LET upper_right_line = SUBSTRING("($upper_right_($n_right_labels))", `i1`, `last_p1 - 1`)
DEFINE SYMBOL upper_right_out = `upper_right_line`
CANCEL SYMBOL upper_right_line
IF `slen-last_p1+1 GT 0` THEN
LET upper_right_line = SUBSTRING("($upper_right_($n_right_labels))", `last_p1`, `slen-last_p1+1`)
DEFINE SYMBOL upper_right_line = `upper_right_line`
DEFINE SYMBOL upper_right_out = ($upper_right_out)($linebreak)($upper_right_line)
ENDIF
ELIF `last_p2 LE linelen` THEN
LET upper_right_line = SUBSTRING("($upper_right_($n_right_labels))", `i1`, `last_p2+1`)
DEFINE SYMBOL upper_right_out = `upper_right_line`
CANCEL SYMBOL upper_right_line
IF `slen-(last_p2+1) GT 0` THEN
LET upper_right_line = SUBSTRING("($upper_right_($n_right_labels))", `last_p2+2`, `slen-(last_p2+1)`)
DEFINE SYMBOL upper_right_line = `upper_right_line`
DEFINE SYMBOL upper_right_out = ($upper_right_out)($linebreak)($upper_right_line)
ENDIF
ENDIF
IF ($upper_right_out"0|*>1") THEN DEFINE SYMBOL upper_right_($n_right_labels) = ($upper_right_out)
DEFINE SYMBOL long_right_label = 1
LET nlines = 2
! Get ready to exit
DEFINE SYMBOL upper_right_($n_right_labels) = @AS($upper_right_($n_right_labels))
IF `($n_right_labels"0") GT 1` THEN \
DEFINE SYMBOL upper_right_($n_right_labels) = @P2($upper_right_($n_right_labels))
! 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 ($operation_service_action"0|Compare_Plot>1|*>0") THEN DEFINE SYMBOL n_right_labels = 0
ENDIF
EXIT/SCRIPT
ENDIF
! Otherwise break into lines of about linelen characters on spaces, or / or - or _
!DATA SET: GFDL_CM2.0,_20C3M_run_3_climate_of_the_20th_Century_experiment_20C3M_output_for_IPCC_AR4_and_US_CCSP
LET nlines = `INT(slen/linelen)`
!! IF `nlines LE 2` THEN
!! LET linelen = `slen2`
!! LET nlines = `INT(slen/linelen)`
!! ENDIF
IF `nlines*linelen LT slen` THEN LET nlines = `nlines+1`
DEFINE SYMBOL remainder = ($upper_right_($n_right_labels))
IF `STRINDEX("($upper_right_($n_right_labels))", "DATA SET: ") GT 0` THEN
LET last_space = `STRINDEX("($upper_right_($n_right_labels))", ":") + 1`
LET remainder = SUBSTRING("($upper_right_($n_right_labels))", `last_space+1`, `slen-last_space`)
DEFINE SYMBOL remainder = `remainder`
DEFINE SYMBOL upper_right_out = DATA SET:
ENDIF
LET last_space = `STRRINDEX("($remainder)", " ")`
DEFINE SYMBOL schar = " "
IF `last_space EQ 0` THEN
LET last_space = `STRRINDEX("($remainder)", "/")`
DEFINE SYMBOL schar = "/"
DEFINE SYMBOL putchar = /
ENDIF
IF `last_space EQ 0` THEN
LET last_space = `STRRINDEX("($remainder)", "_")`
DEFINE SYMBOL schar = "_"
DEFINE SYMBOL ptchar = _
ENDIF
IF `last_space EQ 0` THEN
LET last_space = `STRRINDEX("($remainder)", "-")`
DEFINE SYMBOL schar = "-"
DEFINE SYMBOL putchar = -
ENDIF
IF `last_space EQ 0` THEN
EXIT/SCRIPT
ENDIF
LET i1 = 1
LET i2 = linelen
CANCEL SYMBOL linebreak
DEFINE SYMBOL long_right_label = 1
REPEAT/RANGE=1:`nlines` (;\
LET upper_right_line = SUBSTRING("($remainder)", `i1`, `i2-i1+1`);\
DEFINE SYMBOL upper_right_line = `upper_right_line`;\
LET last_space = STRRINDEX("($upper_right_line)", ($schar));\
IF `last_space LE 0` THEN EXIT/LOOP;\
LET upper_right_line = SUBSTRING("($remainder)", `i1`, `last_space`);\
DEFINE SYMBOL upper_right_line = `upper_right_line`;\
DEFINE SYMBOL upper_right_out = ($upper_right_out)($pchar)($linebreak)($upper_right_line);\
LET i1 = `i1+last_space`;\
LET i2 = `i1 + 79`;\
DEFINE SYMBOL linebreak = <NL>@AS;\
IF ($putchar"0|*>1") THEN DEFINE SYMBOL pchar = ($putchar);\
IF `i2-i1+1 LE 0` THEN EXIT/LOOP;\
)
IF `i1 LT slen` THEN
LET slast = `STRLEN("($upper_right_line)")`;\
LET upper_right_line = SUBSTRING("($remainder)", `i1`, `slen-i1+1`);\
DEFINE SYMBOL upper_right_line = `upper_right_line`;\
IF `slast + STRLEN("($upper_right_line)") LE linelen` THEN CANCEL SYMBOL linebreak;\
DEFINE SYMBOL upper_right_out = ($upper_right_out)($pchar)($linebreak)($upper_right_line);\
ENDIF
DEFINE SYMBOL upper_right_($n_right_labels) = ($upper_right_out)
DEFINE SYMBOL long_right_label = 1
ENDIF
DEFINE SYMBOL upper_right_($n_right_labels) = @AS($upper_right_($n_right_labels))
IF `($n_right_labels"0") GT 1` THEN \
DEFINE SYMBOL upper_right_($n_right_labels) = @P2($upper_right_($n_right_labels))
! 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 ($operation_service_action"0|Compare_Plot>1|*>0") THEN DEFINE SYMBOL n_right_labels = 0
ENDIF
! End of $RCSfile ------------LAS_url_label.jnl--------------------------
[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce /
NOAA /
OAR /
PMEL /
TMAP
Privacy Policy | Disclaimer | Accessibility Statement