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/07/20 14:05] – [execute shell command : SPAWN] jan | internal:administration:idl [2025/11/25 14:42] (current) – [symboltypes] jan | ||
|---|---|---|---|
| Line 195: | Line 195: | ||
| IDL> spawn, 'curl -V' | IDL> spawn, 'curl -V' | ||
| curl: / | curl: / | ||
| - | | + | ... |
| - | Release-Date: | + | |
| - | Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp | + | |
| - | Features: alt-svc AsynchDNS HSTS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM SSL threadsafe TLS-SRP UnixSockets zstd | + | |
| WARNING: curl and libcurl versions do not match. Functionality may be affected. | WARNING: curl and libcurl versions do not match. Functionality may be affected. | ||
| - | The first line and the last lines tell you that %%libcurl.so.4%% from the %%/ | + | The first and the last lines tell you that %%libcurl.so.4%% from the %%/ |
| + | But why should curl try to load libraries from / | ||
| Another example is ghostscript (gs) - which does not even work: | Another example is ghostscript (gs) - which does not even work: | ||
| IDL> SPAWN, 'gs --version' | IDL> SPAWN, 'gs --version' | ||
| gs: / | gs: / | ||
| - | | ||
| - | To get around you have to adapt the environment variable LD_LIBRARY_PATH . It is not present in standard bash environment but is set by IDL to access is own set of libraries, and remains valid in the SPAWN environment. We have two possibilities: | ||
| - | * adapt the path from within IDL (but maybe IDL will have problems with that ...) | ||
| - | SETENV, ' | + | Again ghostscript tries to load lubraries from /opt/nv5/... |
| - | * Alternatively adapt within | + | To get around you have to understand where the system seeks libraries. |
| + | This is explained e.g. here: [[https:// | ||
| + | IDL> SPAWN, 'echo $LD_LIBRARY_PATH' | ||
| + | / | ||
| - | SPAWN, ' | + | We can ask Linux where we can find the libraries needed: |
| + | $whereis libcurl.so.4 | ||
| + | libcurl.so.4: | ||
| + | and | ||
| + | | ||
| + | libstdc++.so.6: | ||
| - | The first solution | + | We have several possibilities: |
| + | |||
| + | * adapt the LD_LIBRARY_PATH from within IDL before invoking SPAWN. This was proposed to me : [[https:// | ||
| + | %%SETENV, ' | ||
| + | |||
| + | * Alternatively adapt LD_LIBRARY_PATH within the SPAWN environment when calling your program | ||
| + | %%SPAWN, ' | ||
| + | |||
| + | * or even simpler unset this path variable in SPAWN: it is not needed | ||
| + | %%SPAWN, 'unset LD_LIBRARY_PATH; | ||
| + | |||
| + | According | ||
| Check with curl: | Check with curl: | ||
| - | SPAWN, 'LD_LIBRARY_PATH=/ | + | SPAWN, 'unset LD_LIBRARY_PATH ; curl -V' |
| curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/ | curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/ | ||
| - | | + | ... |
| - | Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp | + | |
| - | Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd | + | |
| Check with ghostscript | Check with ghostscript | ||
| - | SPAWN, 'LD_LIBRARY_PATH=/ | + | SPAWN, 'unset LD_LIBRARY_PATH ; gs --version' |
| 10.02.1 | 10.02.1 | ||
| Line 1833: | Line 1845: | ||
| 1 => Plus sign (+) | 1 => Plus sign (+) | ||
| 2 => Asterisk (*) | 2 => Asterisk (*) | ||
| - | 3 => Period | + | 3 => one pixel dot (.) |
| 4 => Diamond | 4 => Diamond | ||
| - | 5 => Triangle | + | 5 => Triangle up (if symsize> |
| 6 => Square | 6 => Square | ||
| 7 => X | 7 => X | ||
| Line 2493: | Line 2505: | ||
| ==== transparency ==== | ==== transparency ==== | ||
| - | IDL does not know transparent overlays but on pixel based devices you can implement it with TVRD and TVRD. | + | IDL does not know transparent overlays but on pixel based devices you can implement it with TVRD and TV. |
| Lets assume you want to put a bitmap BMP with size Nx, Ny at a position x0 y0 (pixels) with a tranparency factor of q_tra: | Lets assume you want to put a bitmap BMP with size Nx, Ny at a position x0 y0 (pixels) with a tranparency factor of q_tra: | ||
| Line 2662: | Line 2674: | ||
| %%-dGraphicsAlphaBits=1%% avoids gridlines after rastering (http:// | %%-dGraphicsAlphaBits=1%% avoids gridlines after rastering (http:// | ||
| %%-dEPSCrop%% crops the image at the bounding box. | %%-dEPSCrop%% crops the image at the bounding box. | ||
| + | |||
| + | You can execute gs from within IDL with the SPAWN command. As of IDL 9.x you need to prepend a '' | ||
| + | SPAWN, 'unset LD_LIBRARY_PATH; | ||
| + | |||
| ==== postscript -> PDF ==== | ==== postscript -> PDF ==== | ||
| Line 3232: | Line 3248: | ||
| A one dimensional histogram is e.g. generated with | A one dimensional histogram is e.g. generated with | ||
| - | histo = histogram( data , binsize=bin, locations = classes , /nan ) | + | |
| + | | ||
| the classes variable will contain the **lower borders** of the bins with the first bin starting at min(data). \\ | the classes variable will contain the **lower borders** of the bins with the first bin starting at min(data). \\ | ||
| Line 3251: | Line 3268: | ||
| or you write an own plot-histo procedure ... or you ask jan :-) ... | or you write an own plot-histo procedure ... or you ask jan :-) ... | ||
| + | |||
| + | |||
| + | A histogram with geometric spacing, i.e. each bin is by a factor q_bin larger than the previous.\\ | ||
| + | In this case data points lower or equal to zero are not allowed: | ||
| + | q_bin = 2.0 | ||
| + | log_binsize = alog10(q_bin) | ||
| + | histo = histogram( alog10(data[where(data gt 0)]), binsize=log_binsize, | ||
| + | classes = 10^log_bins | ||
| + | |||
| + | Plotting shall use then logarithmic scaling for the x-axes: | ||
| + | |||
| + | plot, classes , histo , psym=10, $ | ||
| + | xtitle = 'class (unit)', | ||
| + | ytitle = ' | ||
| + | /xlog | ||
| + | |||
| === 2-D histogram === | === 2-D histogram === | ||
| Line 3261: | Line 3294: | ||
| max_data_1 = max(data_1, /nan ) | max_data_1 = max(data_1, /nan ) | ||
| N_bins_1 = fix((max_data_1-min_data_1)/ | N_bins_1 = fix((max_data_1-min_data_1)/ | ||
| - | | + | ; output of histo refers to lower border of bins => add 1/2binsize to center them in bin |
| + | bins_1 = min_data_1 + (findgen(N_bins_1) + 0.5) * bin_size_1 | ||
| ; set bin-size, min and max and vector with bin-borders for data set 2 | ; set bin-size, min and max and vector with bin-borders for data set 2 | ||
| Line 3268: | Line 3302: | ||
| max_data_2 = max(data_2, /nan ) | max_data_2 = max(data_2, /nan ) | ||
| N_bins_2 = fix((max_data_2-min_data_2)/ | N_bins_2 = fix((max_data_2-min_data_2)/ | ||
| + | ; output of histo refers to lower border of bins => add 1/2binsize to center them in bin | ||
| bins_2 = min_data_2 + (findgen(N_bins_2) + 0.5)*bin_size_2 | bins_2 = min_data_2 + (findgen(N_bins_2) + 0.5)*bin_size_2 | ||
internal/administration/idl.1753020321.txt.gz · Last modified: by jan
