internal:administration:idl
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| internal:administration:idl [2025/11/27 11:40] – [idl path] jan | internal:administration:idl [2026/03/19 20:55] (current) – [contour] jan | ||
|---|---|---|---|
| Line 285: | Line 285: | ||
| IF x eq 4 THEN BEGIN | IF x eq 4 THEN BEGIN | ||
| print, 'x equals 4' $ | print, 'x equals 4' $ | ||
| - | | + | |
| print, 'x is not 4' | print, 'x is not 4' | ||
| - | | + | |
| - | for safety | + | to keep track of your blocks |
| + | The interpreter tells you then if a ENDxxx statement does not fit. | ||
| - | you may nest i.e. build structures like IF ... THEN ... ELSE IF ... THEN ... | + | You may nest i.e. build structures like IF ... THEN ... ELSE IF ... THEN ...\\ |
| - | or use the CASE statement. | + | |
| + | |||
| + | Alternatively you use the CASE statement: | ||
| CASE x of | CASE x of | ||
| - | | + | |
| - | ... | + | 22: BEGIN |
| - | end | + | |
| - | 22: begin | + | |
| ... | ... | ||
| - | | + | |
| - | ELSE: begin | + | ELSE: BEGIN |
| ... | ... | ||
| - | | + | |
| ENDCASE | ENDCASE | ||
| Line 311: | Line 312: | ||
| x eq 1: begin | x eq 1: begin | ||
| ... | ... | ||
| - | | + | |
| (x eq 22) OR (x eq 23): begin | (x eq 22) OR (x eq 23): begin | ||
| ... | ... | ||
| - | | + | |
| ELSE: begin | ELSE: begin | ||
| ... | ... | ||
| Line 335: | Line 336: | ||
| FOR i = 0,5 DO BEGIN | FOR i = 0,5 DO BEGIN | ||
| PRINT, i | PRINT, i | ||
| - | | + | |
| | | ||
| i = 0 | i = 0 | ||
| Line 341: | Line 342: | ||
| i = i+1 | i = i+1 | ||
| PRINT, i | PRINT, i | ||
| - | | + | |
| | | ||
| i = 1 | i = 1 | ||
| Line 347: | Line 348: | ||
| i = i + 1 | i = i + 1 | ||
| PRINT, i | PRINT, i | ||
| - | | + | |
| to make coding a bit safer you may append the name of the loop command to the END statement, i.e. | to make coding a bit safer you may append the name of the loop command to the END statement, i.e. | ||
| Line 354: | Line 355: | ||
| ENDREP | ENDREP | ||
| - | a PROCEDURE is a subroutine that may take parameters and change them. Its definition is started with the word PRO and ends with a END statement | + | a PROCEDURE is a subroutine that may take parameters and change them. Its definition is started with the word PRO and ends with an END statement |
| PRO my_proc, text_str, x_value=x_value | PRO my_proc, text_str, x_value=x_value | ||
| Line 3070: | Line 3071: | ||
| extrm_lev_max = +(machar()).xmax | extrm_lev_max = +(machar()).xmax | ||
| | | ||
| - | See function [[https:// | + | See function [[https:// |
| Line 3086: | Line 3087: | ||
| /overplot | /overplot | ||
| - | Keyword c_annotations is used here toprovide | + | Keyword c_annotations is used here to provide |
| You can define also different thicknesses, | You can define also different thicknesses, | ||
| see [[http:// | see [[http:// | ||
| + | |||
| + | === line patterns === | ||
| + | |||
| + | contour can draw hatch patterns - but note: the pattern is not transparent. | ||
| + | |||
| + | contour, z, x, y, $ | ||
| + | levels = levels, $ | ||
| + | c_orientation = [ 0 , 22, 45, 90, ... ] , $ ; orientation of the lines in degrees | ||
| + | c_spacing = [ 1, 0.5, 0.25, ... ] ; spacing between lines in cm | ||
| + | | ||
| + | |||
| + | === Path of contour lines === | ||
| + | |||
| + | contour can provide the pathes of the contour lines: | ||
| + | |||
| + | contour, z, x, y, $ | ||
| + | levels = levels, $ | ||
| + | path_info = path_info, $ ; info about the provided pathes (see below). If you provide here a variable contour will not draw. | ||
| + | path_xy = path_xy, $ ; variable for coordinates: | ||
| + | / | ||
| + | / | ||
| + | /overplot ; avoid contour to rescale the axes - if you already had a plot or contour plot you want to reuse | ||
| + | |||
| + | path_info is an array of CONTOUR_PATH_STRUCTURE. The number of elelemtns gives the number of sub pathes. | ||
| + | Elements %%offset%% and %%N%% give the starting index and length of every isoline in path_xy. | ||
| + | |||
| + | You can then use the pathes in poly_fill to do transparent hatch patterns: | ||
| + | |||
| + | for i = 0, n_elements(path_info)-1 do begin | ||
| + | path_info_i = path_info[i] | ||
| + | ii = path_info_i.offset + lindgen(path_info_i.N) | ||
| + | polyfill, path_xy[0, | ||
| + | endfor ; i | ||
| + | |||
| + | You could also use polyfill to put a byte pattern or wrap an image between the isolines ... | ||
| === color bar === | === color bar === | ||
| - | You can use contour | + | You may want to have a color bar setting the colorshading in relation to values. |
| + | You can use contour to make a **color bar**: | ||
| A **horizontal** color bar at the bottom | A **horizontal** color bar at the bottom | ||
internal/administration/idl.1764243609.txt.gz · Last modified: by jan
