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 closedsource projects is restricted, for details refer to the GPL.
Name 
Description 
Author 

Type: SAR Interferometry 


Removes a linear flatearth 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 coregistration 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 phaseunwrapping (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 GaussSeidel relaxations. Should work on any array sizes. 
A. Reigber 

Weighted multigrid least square phase uwrapping, based on GaussSeidel relaxations. For masking out lowcoherent 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 sourcecode 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, SphereDiplaneHelix) 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 2Darray, 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 onedimensional relative index values of a rectangular box in a twodimensional 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 wodimensional complex array from and to any dimension using FFT's 
A. Reigber 

Resize any 1,2 and 3D 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 onedimensional array 
A. Reigber 

Calculates the Gauss distribution 
A. Reigber 

Calculates the Hamming weighting function 
A. Reigber 

Integrates an onedimensional 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 ESAR system. 
M. Hellmann 

This routine loads the 4 singlelookcomplex (SLC) channels of a fully polarimetric SAR data set in 4 different formats (analogue to loadslc.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. Onthefly 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 onthefly 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. 
