Download IDL routines:
The license of most of the programs is the GNU public licence (GPL), which means that you can use, modify and copy them as much as you want, as long as you assure the accessibility of the source code for everyone. The usage in closed-source projects is restricted, for details refer to the GPL.
Name |
Description |
Author |
---|---|---|
Type: SAR Interferometry |
|
|
Removes a linear flat-earth component from a complex interferogram |
A. Reigber |
|
Generates interferogram / coherence maps of coregistrated SAR images. Includes presumming, selection of coherence window size and block processing for minimising the memory consumption. |
A. Reigber |
|
Fast amplitude coregistration using FFTs. Precision 1 Pixel |
A. Reigber |
|
Automatic co-registration for two complex SAR images with subpixel precision. The used algorithm is based on coherence optimisation. Useful only for spaceborne images where the offset between the images is constant. |
A. Reigber |
|
Coregistration with subpixel precision (based on coherence optimisation). |
A. Reigber |
|
Quite fast unweighted least square phase-unwrapping (using cosine transform and mirror expansion) in 27 lines of IDL. For good performance array size should be 2^N+1 (yes, really, i.e. 1025 or 4097 for example). |
A. Reigber |
|
Unweighted multigrid least square phase uwrapping, based on Gauss-Seidel relaxations. Should work on any array sizes. |
A. Reigber |
|
Weighted multigrid least square phase uwrapping, based on Gauss-Seidel relaxations. For masking out low-coherent areas, use low weighting values. |
A. Reigber |
|
Absolutely genius noise filter for interferometric phase images. Based on "quasi ergodic fluctuation modelling" - I never got exactly what it is. Unluckily my friend Youri does not want to give away the source-code of this wonderful algorithm, but you can have a binary (IDL 5.2 save file). Usage description can be obtained by "a=qef_filter()". |
Y. Saveliev |
|
calculates the complex coherency between 2 images |
S. Guillaso |
|
calculates the interferogram between 2 images |
S. Guillaso |
|
Simple boxcar filter for interferometric SAR images |
A. Reigber |
|
Type: SAR Polarimetry |
|
|
Calculates the covariance matrices of a polarimetric data set. |
A. Reigber |
|
Computes for a fully polarimetric SAR data set (given in HV basis) the 3 standard decompositions (Borgeaud, Pauli, Sphere-Diplane-Helix) and saves the output into a tiff image. |
M. Hellmann |
|
Calculates the entropy, the anisotropy and alpha maps. |
A. Reigber |
|
Vectorial Lee filter for multiplicative image noise based on the analysis of local statistics. Used for speckle reduction of complex polarimetric SAR images. |
A. Reigber |
|
Refined vectorial Lee filter for multiplicative image noise based on the analysis of local statistics. Better preservation of image structures than the original Lee filter by the use of directional windows. Used for speckle reduction of complex polarimetric SAR images. |
A. Reigber |
|
Calculates the polarimetric entropy/anisotropy/average alpha angle from the eigenvectors and eigenvalues of the coherency matrix. |
A. Reigber |
|
Fast calculation of eigenvectors and eigenvalues of a complex 3x3 matrices using LAPACK. Used in polarimetric eigenvector decompositions. |
A. Reigber |
|
Type: Filters |
|
|
Fast gaussian smooth for float/complex arrays. |
A. Reigber |
|
Lee filter for multiplicative image noise based on the analysis of local statistics. Very useful for speckle reduction of SAR amplitude images. |
A. Reigber |
|
Refined Lee filter for multiplicative image noise based on the analysis of local statistics. Better preservation of image structures than the original Lee filter by the use of directional windows. |
A. Reigber |
|
Replaces all "nanq" (not a number) in an array with zeros. I always get these bastards. |
A. Reigber |
|
Replaces all complex(0,0) with complex(0.1,0.1). Useful if you have to divide by something complex... |
A. Reigber |
|
Just like smooth for a 2D-array, but with the possibility of a rectangular box sizes, for example 9x3. |
A. Reigber |
|
Type: Plotting |
|
|
Opens an image file written "writedata.pro" and generates an nice annotation bar as well as the histogram and display / saves all that. Needs several other routines. |
V. Alberga |
|
Plots a nice progress bar out of dots. Useful in longer loops. |
A. Reigber |
|
This is an excellent IDL widget plotting package for 1D graphs. Something similar to insight, but in contrary to that really useful. Visit also the graffer homepage. |
James Tappin |
|
Plots the histogram of an image or array |
V. Alberga |
|
Displays horizontal colorbar corresponding to a chosen image |
V. Alberga |
|
Displays vertical colorbar corresponding to a chosen image |
V. Alberga |
|
This procedure makes a legend for a plot. The legend can contain a mixture of symbols, linestyles, Hershey characters (vectorfont), and filled polygons (usersym). Very useful. |
F.K. Knight and others |
|
Similar to "horiz_colorbar.pro". Didn't got the difference :-) |
V. Alberga |
|
Similar to "horiz_colorbar.pro". Didn't got the difference :-) |
V. Alberga |
|
Similar to "horiz_colorbar.pro". Didn't got the difference :-) |
V. Alberga |
|
Switch on postscript device for plotting. |
A. Reigber |
|
Switch back to X device. |
A. Reigber |
|
Displays vertical colorbar corresponding to a chosen image |
V. Alberga |
|
Displays arrays (mostly) automatic. No more long interactive typing. |
A. Reigber |
|
Display an image on the display or in a PostScript file. Needed by "disp_save2.pro" |
D. Fanning |
|
Sends the content of an IDL graphic window directly to the printer. |
A. Reigber |
|
Type: Array handling |
|
|
Generates a new 2D array out of two given 1D arrays. The result is an additive overlay of the two input arrays. |
A. Reigber |
|
Generates a new 2D array out of two given 1D arrays. The result is an multiplicative overlay of the two input arrays. |
A. Reigber |
|
Like with findgen, a 2d floating point array is generated. But here the slopes in x and y can be specified. |
A. Reigber |
|
Generates the one-dimensional relative index values of a rectangular box in a two-dimensional array. Used for fast addressing of pixel neighbourhoods. |
A. Reigber |
|
Like the help command, but gives more information about the array. Quite handy when debugging programs. |
A. Reigber |
|
Rebin for complex arrays (only 1,2 and 3 dimensional) |
A. Reigber |
|
Performs a rebin of a wo-dimensional complex array from and to any dimension using FFT's |
A. Reigber |
|
Resize any 1,2 and 3-D array with congrid. Just to lazy to type always cubic=0.5. |
A. Reigber |
|
Shift 2D complex array. Just like the normal shift, but with the possibility of subpixel shifts, i.e. "a=subshift(b,7.3,1.9)" |
A. Reigber |
|
Rotate very big arrays on the harddisk with a defined memory consumption. Useful if line by line operations have to be performed in the second index of a big array. Maybe it has to be adapted to your own data format. |
A. Reigber |
|
Type: Math |
|
|
Calculates the adjoint (complex conjugate transpose) of an array |
A. Reigber |
|
Calculates the derivation of an one-dimensional array |
A. Reigber |
|
Calculates the Gauss distribution |
A. Reigber |
|
Calculates the Hamming weighting function |
A. Reigber |
|
Integrates an one-dimensional array |
A. Reigber |
|
Gives back if a number is even (2) or odd (1) |
A. Reigber |
|
Calculates the prime factors of a number. I used this to estimate the time of a FFT (proportional to the sum of the prime factors of the array length). |
A. Reigber |
|
Rounds a value to a given number of decimal places |
A. Reigber |
|
Calculate the signum function. |
A. Reigber |
|
Calculates the vector product between two (3x1) vectors |
A. Reigber |
|
Type: I/O |
|
|
Loads single look complex SAR data sets (SLC) in 4 different formats. All 4 formats related to data of DLR's E-SAR system. |
M. Hellmann |
|
This routine loads the 4 single-look-complex (SLC) channels of a fully polarimetric SAR data set in 4 different formats (analogue to load-slc.pro). |
M. Hellmann |
|
Read an array written by sarr.pro. You can read only the header or alternatively a certain block out of the file. On-the-fly decompression. |
A. Reigber |
|
Opens and reads datasets saved to file using the writedata |
V. Alberga |
|
Save any array to a file. Read back with rarr.pro. I hate the save/restore function of IDL for this purposes as restore overwrites the saved variable name. With sarr/rarr you can save variable "a" and read it back as "b". You can also include a comment into the file, write only the header and perform on-the-fly compression with gzip. |
A. Reigber |
|
Write a file as unformatted .dat adding a 6 longword header containing informations about the data itself |
T. Boerner |
|
Write array to disk in a format understandable by xmgr/grace. Sometimes this is more confortable for plotting than the stupid IDL routines or using the even more stupid insight. |
A. Reigber |
|
|
|
|
|
Have another interesting routine? Please mail it to me if you like it to be included. |
|