Processing SAR Data Using RDA and Chirp Scaling Algorithms
Processing SAR Data Using RDA and Chirp Scaling Algorithms
Processing SAR Data Using RDA and Chirp Scaling Algorithms
Naeim Dastgir
Masters of Science Thesis in Geodesy Report No. 3096 TRITA-GIT EX 07-005 School of Architecture and Built Environment Royal Institute of Technology (KTH) 100 44 Stockholm, Sweden April 2007
Abstract: Applications of self-illuminating remote sensing systems, and among those, Radar Imagery is growing rapidly. Unique properties of Synthetic Aperture Radar (SAR) system makes it one of the most popular and applicable methods of self illuminating remote sensing techniques for ground deformation monitoring, seismic studies, and many photogrammetry applications. There are several methods and algorithms for processing SAR data, each are convenient for different purposes. Two more common and reliable algorithms are developed in this thesis: a Range Doppler Algorithm and a Chirp Scaling Algorithm. Available software packages and toolboxes for processing SAR data such as DORIS, ROI-PAC, RAT and PULSAR have their advantage and disadvantages. Most of these packages run on Linux platform, are difficult to use, and require quite a few pre-processing data preparations. Besides there is no general SAR processing application that can handle all data types or suitable for all purposes. There are also software packages (such as ROI-PAC) with restrictions for people from certain countries. The objective of this thesis is to process SAR data using two more common algorithms, run a comparison between results of these two algorithms and to process InSAR pair images to form an Interferogram and to create a DEM. A Matlab based program is developed for this purpose with graphical user interface and a few visualization enhancement features, which facilitates processing data and producing desired output. Then, I investigate the effect of different frequency domains in the resulting image. The program I created in my thesis, has several advantages: it is open-source and very easy to modify. The program is coded in MATLAB, therefore it does not need a vast programming knowledge to be able to customize it. You can run it on any platform that can run MATLAB 7+. At the end of this thesis, I conclude that A Range Doppler Algorithm with secondary range compression performed in 2D-frequency domain has a result as good as a Chirp Scaling Algorithm and has less computational complexity and consumes less time. No general SAR processing algorithm could be introduced. Most of the times algorithms need to be adjusted for particular datasets, or particular applications. Besides, the most complicated algorithm is not always the best algorithm. For example, for a point target detection purpose, two filtering steps in range and azimuth direction provides accurate enough result.
Table of Contents
1. Introduction______________________________________________________________6
1.1. Authors investigation and the Thesis objective _____________________________________ 6 1.2. History of Synthetic Aperture Radar (SAR) ________________________________________ 6 1.3. Synthetic Aperture Concept ____________________________________________________ 7 1.4. Modes of SAR operation_______________________________________________________ 8 1.5. SAR geometry_______________________________________________________________ 9 1.6. SAR Signal Properties ________________________________________________________ 9
2.
3.
4.
5. 6.
1. Introduction
1.1. Authors investigation and the Thesis objective
As I was looking for a suitable software package or toolbox for processing SAR data, I realized although there are a few packages and toolboxes available, choices of software and scientific resources for SAR processing is quite limited. Most of open-source SAR processing codes are based on Linux platform. Since Linux is not the most common OS, to process SAR data we need to set up a separate computer system for processing SAR, since many other remote sensing or analytical programs use Windows platform. Going deeper into existing packages revealed that packages such as DORIS, although powerful, are not very user friendly and needs a good knowledge of SAR processing procedures to enable users to handle the program correctly. Besides it seems that all these packages are tailored for particular purposes. Besides, the result of these processing programs needs to go through other post-processing steps to achieve desired data. Yet, the result is not perfect. All these processing procedures seems too much hassle for a user who, for example, needs to extract and interferogram from a pair of SAR images for some deformation studies. This made me think of running an Investigation on how SAR processing Algorithms work and what are their difference? Is it possible to define a certain processing program capable of processing all types of SAR data, or lets say convenient for all SAR applications? And this took me to the objective of this thesis: The objective of this thesis is to process SAR data using two more common algorithms, i.e. Range Doppler Algorithm and Chirp Scaling Algorithm, compare results of these two algorithms and to process InSAR pair images to form an Interferogram and to create a DEM. A Matlab based program is developed for this purpose with graphical user interface and a few visualization enhancement features, which facilitates processing data and producing desired output. Then, I investigate the sensitivity of calculations, effects of different frequency domains in the resulting image.
and it drew scientists attention as SAR sensors provided additional information to optical sensors. In 1978, NASAs SEASAT showed the world how detailed images can be obtained from satellite SAR systems. The reason SAR is increasingly being used in remote sensing community is its three basic properties: - Radar is self illuminating, so it is not light dependent (which optical sensors are) - Electromagnetic wave of Radar penetrates in clouds and in bad weather conditions with minor or no deterioration. It also can penetrate into the agricultural soil of ground surface. - The radar energy scatters differently from light. This provides complementary information about surface features, sometimes even better than optical sensors. SAR system creates an image from a spaceborne or airborne platform by pointing a radar beam approximately perpendicular to its motion vector. Phase encoded pulses are transmitted and radar echoes reflected from Earths surface are recorded. Acquired data from a radar system is unfocused. To create an image out of this, intensity measurements must be taken in two directions. One direction is parallel to radar beam and the time delay in sent and received pulses gives the distance between sensor and scatterer. Harger (1970) wrote a comprehensive book on optical processing of SAR data. The principal is quite interesting: it uses the Fourier optic principals by using sets of laser beams and lenses. First the original radar reflection data is recorded on a monochrome film. This film is then placed perpendicular to a laser beam. By using two sets of lenses, a laser beam passing through the film is Fourier transformed in two dimensions and then by using diffraction gratings, an image is focused. A third set of lenses is used to perform another Fourier transform and the resulting image is stored on another film. By the time of SEASAT mission (1978), there was a lot of effort to develop digital processing method for processing SAR data. Digital radar data was received and recorded on magnetic tapes or floppy disks, and by 1970, computers memory capacity and processing speed was not comparable with contemporary systems. Digital processing of SAR data was then a totally different era comparing with optical processing. After a while a Range Doppler Algorithm (RDA) was developed by MacDonald Dettwiler (MDA) and the Jet Propulsion Lab (JPL) in 1978. Since then RDA has been refined and improved a lot and also many other algorithms have been introduced and developed. The thing is that most of those algorithms are optimized for specific application.
time and signal bandwidth which results to better resolution. However antenna size is limited by ambiguities and Signal to Noise Ratio (SNR)
Figure-1: SAR Geometry The SAR image formation produces an image in slant range and azimuth coordinates. It is often desirable to resample the image to coordinates corresponding to those of a map or an optical sensor, where the range and azimuth axes have equal scales.
2. Processing SAR
X()
-sin(2
ADC
Imaginary Channel XI
Figure-2: Quadrature Demodulation of Signal to remove carrier The demodulation removes the high frequency carrier, but may create some signal errors. Let a real value signal with a shift frequency carrier and a low frequency modulation, present by: (1) Where f0 is carrier frequency (HMz) is much higher than modulation bandwidth () (GHZ). This process transforms the signal into two channels, Real and Imaginary channels. The real channel is created first by multiplying the signal in cos(2f0 ). The result will be: (2) Since the second cosine term has a much higher frequency compared to the first cosine term, it can be removed by a low pass filter, and the result will be: (3) The imaginary channel is extracted in a similar way by multiplying the signal by - sin(2f0 ): (4) The two separated signals are called the quadrature components of a complex signal or I and Q channels. As you will see in SAR processing algorithms, the very basic step of processing SAR data is to compress pulses in both directions to interpret received data. Pulse compression is a technique used for processing radar signals, as well as signals from other transmitter/receiver systems such as sonar or seismic monitoring systems. Pulse compression is designed to minimize the peak power, maximize signal/noise ratio, therefore it reduces noise in the resulting image and takes away the carrier signal.
Figure-3: Pulse geometry in range The data often has a radiometric variation in the range direction caused by several factors: - The echo power is inversely proportional to the forth power of the slant range1 - The elevation beam pattern is not uniformly weighted - The reflectivity of the ground is a function of the bean incident angle - There is a geometrical term 1/sini which arises when the ground area is converted to an equivalent area. If the effect is not corrected, it may cause variation of intensities across the range swath in the processed image.
Slant range is direct distance between the sensor and target calculated using time delay between transmitted and received signal.
To extract a set of desired data, relevant lines of data file are read, then the Real and Imaginary parts of the complex signal is extracted, the data is decoded and then, extracted data is saved in the shape of a matrix consisting of complex numbers. In this program where we want to extract a certain window of the whole data, the program first finds the starting line of data file corresponding to the selected window. The starting line has to be adjusted, since data is stored on the basis on 8-line blocks. Therefore the selected window automatically moves to start line of the corresponding data block. Then program starts extracting data from that point. The reason is that, source data file is a large file (about 400 MB) which contains data for about 180 million cells, means 360 million real and imaginary numbers. It is almost impossible to load the whole data on a PC and then look for the selected window. When the staring point of extraction is defined, program starts reading rows of the selected window completely, at the same time it separates the replica data and radar echo data. Then the program extracts exact selected window by cutting out unnecessary extracted columns and then demodulates the data to complex numbers containing I and Q channels of the reflected signal. The result still has to be pre-processed to get ready for next steps of SAR processing. First it is decoded and then Gain-corrected to eliminate the effect of attenuation variation. The result of these steps will be a file containing a variable called data which is a matrix by the size of selected window containing complex numbers which are reflected signals from the earth surface. Figure 5 is an image of a sample extracted data window.
Figure-5: Image from unprocessed data This image is simply created with calculating the magnitude of unprocessed received signal and as it can be observed is full of noise.
- SPECAN Algorithm The first two algorithms are implemented and discussed in this thesis.
2.5.1. Range Doppler Algorithm (RDA) The range Doppler algorithm (RDA) was developed in 1976-1978 for processing SEASAT SAR data. Later it was used to digitally process spaceborne SAR image in 1978 and it is still the most widely used algorithm today. RDA operates in range and azimuth frequency domain, but it has the simplicity of onedimensional operations. The reflected energy from areas on the earths surface in the same range but in different azimuth, are located on the same azimuth frequency. So, when this frequency is adjusted, the whole target areas with the same frequency (which means in the same range) are adjusted. RDA uses the large difference in time scale of range and azimuth data and approximately separates processing in these two directions using Range Cell Migration Correction (RCMC). RCMC is the most important part of this algorithm. RCMC is performed in range frequency and azimuth frequency domain. Since, azimuth frequency is affected by Doppler Effect and azimuth frequency is bonded with Doppler frequency, it is called Range Doppler Algorithm. RDA can be implemented in three different ways. But they all have similar steps and their difference is only in Secondary Range Compression (SRC). The main steps of RDA are: 1- Range compression 2- Azimuth FFT (transform to range Doppler domain) 3- RCMC 4- Azimuth filtering 5- Inverse FFT (return to range azimuth time domain) 6- Image formation Implementation Range Doppler algorithm is the most common algorithm for SAR processing which provides reasonably good accuracy of result. As described in the theory of this algorithm, RDA follows three main steps: 1-Range Compression. 2- Range Cell Migration Correction. 3- Azimuth Compression. But when it comes to implementing the code for this algorithm this is what exactly it takes: 12345678Defining auxiliary data and parameters Converting data to 2D frequency domain Creating Match filter and performing Range Compression Performing Range Cell Migration Correction Converting Range Compressed data to Range-Doppler domain Creating Match filter and performing Azimuth Compression Returning data to Time-Domain Visualization of results
Keep in mind that depending on the filter type and reference function you create, Range Compression and RCMC should be applied in relevant domains. There are three different types of filter creating methods described by Cumming and Wong in their book Digital Processing of Synthetic Aperture Radar Data. The method I chose (Option 3) creates the filters in 2D frequency domain. Processing steps are described in this section (All formulas are from Ian G. Cumming book Digital Processing of Synthetic Aperture Radar Data): Step 1 Parameters regarding satellite and selected window are loaded. Some new parameters are defined;
: fast time, this is the time difference between range samples. It is defined as a vector
starting from the observation time of first sample in range and ending by the time of the last range sample, with 1/Fr as steps, where Fr is the range sampling rate. and fr: are the frequency sampling rate in azimuth and range direction. These sampling rates are not depending on how many samples we use. This means, if we have only 4 samples in the time domain and we do the Fast Fourier Transform, we get the complete bandwidth of frequencies defined by the sampling rate. But it creates a very coarse frequency resolution with frequency steps equal to PRF/echoes, Where PRF is the Pulse Repetition Frequency. A better frequency resolution is achieved with larger windows. Step 2 Converting data to other domain is a very useful method to facilitate data processing, as it was described before, Range-Doppler domain is processing domain for many of SAR processing algorithms, because it simplifies the processing to one-dimensional environment. Data is converted to range and azimuth-frequency domain (range Doppler) by performing Fourier Transformation on every column of data (azimuth fft). In MATLAB this is simply done by the command fft which stands for Fast Fourier Transformation. The next step is to transform data to 2D frequency domain. This is done by performing another Fourier transformation on the rows of data (range fft). This step is a bit different from azimuth fft, since the phase of receiving signal changes in range direction. Therefore data has to be zero-padded before transformation and it has to return to its original arrangement after FFT is performed. Zero-padding is done in MATLAB by using fftshift command. Besides, to perform fft on rows, matrix of data has to be transposed to enable fft command to perform in columns. Since our input matrix contains complex values, or lets say signal vectors called S(,), where is the slow time or azimuth time and is the fast time or range time. This transformation converts azimuth time dimension to azimuth frequency dimension, so the new values will be a vector of S(f ,)where f is the azimuth frequency. Step 3 Range compressing can be performed in different domains. In my program I have chosen to perform range compressing in 2D frequency domain and that is why data is transformed to 2D frequency domain. Therefore, matched filters are also created in
fa
frequency domain. To compress data in range, we need to create a matched filter and multiply every row of data by this filter. There are different methods of creating matched filter. In this program I have generated matched filter directly in the frequency domain using the frequency vectors defined according to sampling rate and pulse repetition frequency. This is the formula for matched filter: (5) Where:
secondary range compression according to slant range of first sample and frequency domain in azimuth. This value comes from the formula :
(6)
Where:
(7)
Figure-6: Image formed by RCMC processed data Step 5 In MATLAB inverse Furrier transformation is done by simply using the command ifft. However, one should notice the steps previously taken to convert data to 2D frequency domain. At this stage we roll back one step of Fourier transformation to return range compressed data to Range-Doppler domain. This is the domain that azimuth compression is performed. Step 6 Azimuth matched filter is created similar to range matched filter. It is also applied in the same way. The original formula for azimuth matched filter is: (11) After adjusting this formula with defined parameters, to reduce complexity, the simplified Azimuth-Filter will be:
(12) Step 7 Now all computations are done and data is almost ready to be displayed. The last step is to return data to Range-Azimuth time domain. This is done by performing an ifft command in MATLAB. Step 8 When dealing with RADAR data, one has to bear in mind that the received image consists of a few very bright points and most of the received signal is too weak to show a good contrast on the image when plotting the magnitude of signals. To solve this issue and produce better images, data can be displayed in logarithmic mode. In this mode, the magnitude of reflection is computed, then logarithm of this value is computed and image is created using this value. However, sometimes it is also helpful to see the image in normal mode where reflectors could be detected easily. In this program, user chooses the method of display but it makes no change on the data. Finally, result can be saved in many different ways. The resulting image can be saved as a Jpeg or Tiff file. Data can be saved as Magnitude or Phase on
reflecting signals, or signals can be saved as complex numbers. The final result of processing is illustrated in figure 7.
2.5.2. Chirp Scaling Algorithm (CSA) The chirp2 scaling algorithm (CSA) was developed specifically to eliminate the interpolator used in RCMC it is based on the scaling principle where a frequency modulation is applied to a chirp-encoded signal to achieve a shift or scaling of the signal. Chirp scaling uses a phase multiply to equalize the range migration of all target trajectories. Since the data is available in two dimensional frequency domain, this algorithm has the benefit of making the SRC dependent to azimuth frequency. The steps of CSA are: 1- Azimuth FFT which transforms data to range Doppler domain 2- Applying Chirp Scaling 3- Range FFT which transforms data to two-dimensional frequency domain
2
Chirp is a signal in which frequency increases (up-chirp) or decreases (down-chirp) with time
4567-
A phase multiply applies range compression, secondary range compression and RCMC at the same time Range IFFT which returns data to range Doppler domain Another phase multiply applies azimuth compression with a range-dependent matched filter Azimuth IFFT which returns data to range azimuth time domain
Implementation: The Chirp Scaling Algorithms is pretty much similar to Range Doppler Algorithm and in this section I only mention the difference between these two algorithms in the program. The first difference is that in CSA, a Chirp Scale factor comes in to equations which basically affect the FM rate. However Chirp Scale factor is 1 for satellite SAR systems, but it plays a key role in airborne SAR systems. Second difference of CSA is that radar FM rate is modified to handle higher squints3. The adjusted FM rate is calculated by the following formula: (13) Where Ksrc is the same as in RDA method. By replacing relevant parameters, be written in a more complex but easier to program as follows: (14) Where Rref is the slant range to the middle range sample. In Chirp Scaling Algorithm, all the range corrections are applied at the same time, all in2D frequency domain. Although this simplifies the program as for number of lines, the formula itself becomes a bit large and therefore difficult to follow. The phase multiply for RC, SRC and RCMC is: Range_Function=exp{-i 1/(Kr (1+_scale) Fr2} x exp {4 i Rref Fr / C} (15) Where: =1/(1-(Fa /2 /Vs) 0.5)-1 (16)
Kadj can
Squint angle is the angle between slant range vector and the zero Doppler vector.
phase is related to the range of target area to the satellite (x2, because signal scatters and returns), and contains many complete wavelengths. Therefore the receiving phase from a surface by itself does not any valuable information to extract. Now, if another image is acquired from the same area but from a different satellite location or at different time, there will be a (relation between) phase difference of these two images. If the image is acquired from the exact satellite location at a different time (lets say a month later) the phase difference of these two images represents the change in ground scattering, which can be interpreted according to the study area. If the second image is taken from different satellite location, the phase of the two images will remain correlated but there will be a shift corresponding to the rage difference. This phase shift can be observed as an interference pattern. It is understandable that the interference pattern, which is called Interferogram, is related to the satellite orbit characteristics and also the ground elevation model (topography). If the orbital characteristics of the satellite are known, the Interferogram can be used to extract the elevation model of the scanned surface. Figure 8 shows the geometry of the satellite locations, when two images are acquired from different satellite positions.
Figure-8: Geometry of different satellite locations Another very interesting application of InSAR is when both ground surface topography and satellite orbital parameters are known. In this case, the Interferogram detects changes in surface elevation. This can be used to monitor ground surface deformations caused by almost any natural phenomena. 2.6.1. InSAR processing Because I did not have any pair of images available, I was not able to develop this part of the program as well and complete as the SAR processing part. However, I am trying to provide some notes regarding matters that will come to attention when processing pair images for InSAR processing, which I am copying from InSAR toolkit by Phoenix Systems(1998): a. Precise co-registration of coherent interferometric SAR image pairs is essential for the generation of SAR Interferograms; a registration error of the order of a resolution cell results in effectively total loss of coherence, and a design aim is to achieve a global image registration to of order 1/8th of a resolution cell or better. b. A difficulty with image co-registration is that the registration relationships are dependent upon the differences in platform orbit/Earth geometry, with the result that
the co-registration relationship between two SAR scenes in general evolves as a function of image position - possibly to the extent of several resolution cells across a 100Km scene. c. Because the co-ordinate system of each SAR image is precisely related to the satellite orbit, a very good initial estimate of the registration relationships and their spatial variation can be made from the platform ephemeris data associated with the source images, with a residual error relating to the precision of the data. The spatial variation of this residual error is much less significant than the absolute variation in registration offset. d. If accurate state vectors are used for this analysis, the residual error is typically a small fixed bias correction.
2.6.2. Phase Unwrapping As is well known, the phase of the propagated and received signal varies between and or in some cases between 0 and 2, depending on the signal characteristics. This is shown in Figure 9:
Figure-9: Wrapped phase and Unwrapping illustration So, whenever the phase reaches one of the upper or lower limits there will be a phase jump in the recorded phase, to keep the value between those two limits. This is called phase wrapping, which means that phase is wrapped around those boundaries. To interpret the interferogram we need to allocate and remove these phase jumps or shifts in the data set, or as it is called unwrap the phase, this process is named phase unwrapping. There are several different methods and algorithms for phase unwrapping. MATLAB has its own unwrapping function, the way it works is that it compares each value of phase in the dataset with the value of the neighbouring cell, if the difference is more than p, then a
discontinuity is detected, then program automatically interprets the value of phase for that cell by adding or subtracting the value or 2 to the phase value. The advantage of this function is that it can detect any errors in calculations and remedy the error automatically. However, there are more advanced unwrapping algorithms used. In this program I have put both MATLAB unwrapping function and an alternative phase unwrapping algorithm described by Kattoush Abbas from University of Amman, Jordan. The flowchart of this algorithm is illustrated in figure 10.
Interferogram Complex Extract Phase (MATLAB command K=0 , abs( (i)- (i-1)) > and
K=K+1
K=K-1
By knowing the Range difference and Look Angle difference, interferometric phase difference between two images and the cell on the surface can be used to find the relation between the height difference and phase difference of two images:
h =
r: : B: h:
r sin 4 B
(18) Range of cell in the master image Phase difference Base line (distance between two sensors) Height difference
This height difference for each cell of the SAR image can then create a DEM.
2.6.4. InSAR processing implementation SAR Interferometric data means two single look complex image combined and for an interferogram. A classic flowchart of InSAR Processing is given in figure 11:
Co-
CoRegistered
CoRegistered
Interferogram Generation
Phase Unwrapping
Deformation
DEM Generation
Step 1: Image Co-registration The very first and yet the most important step of InSAR processing is co-registration of two SAR images. Precise co-registration of coherence interferometric SAR image pairs is the key to achieve an interferogram with a good quality. Step 2: Interferogram generation An Interferogram is generated to visualize and later measure the surface displacements in two SAR images. Interferogram is plotted acquired interfering the phases of two SAR images of the same cell (surface area). In this step, after precise co-registration, the complex interferogram is formed by multiplying each complex pixel of the master image by the complex conjugate of the same pixel in the slave image. Therefore, the interferogram is also a complex image. Then, the intensity of the interferogram defines how two images are cross-correlated. Figure 12 shows a sample interferogram provided to demonstrate how an interferogram can be shown
Figure-12: A Sample Interferogram overlaid on a magnitude image Step 3: Phase unwrapping By elevation change of the target surface, Phase of the acquired image changes. Phase values are changing steadily and are periodic functions of 2 , received Phase is wrapped after reaching 2 This causes that the phase difference does not clearly estate how the
surface elevation is changing. Phase unwrapping is a technique that unwraps the received Phase and undoes the wrapping effect. This is a necessary step for the generation of DEM. Step 4: DEM generation After having the Phase unwrapped, this unwrapped Phase value is used to calculate the height difference of the cells on the target surface area. Then this extracted DEM is georeferenced to desired projection.
Figure-13: Effect of different start points for frequency spectrum The correct frequency range depends on each sensor. As for the data I worked on, the range is 0<fr< Fr . However, the resulting image for the near range scenes are more accurate than far range scenes. Figure 14 shows two processed scenes with a same size and azimuth locations. The red lines show distorted margins of each image. As you can see the affected area is much larger in both range and azimuth direction.
Figure-14: Left, near range scene. Right, same azimuth farther range scene. By checking with the real image of the area, it can be observed that image of the far range scene is more shifted in range, means parts of the scene at the right actually belongs to the left side of the image but its rolled over to the right side. Now lets work on the second image and try to fix this problem. This shift in range can be corrected by slightly changing the range frequency domain to Fr /2 < fr < 3 Fr /2 then the resulting image will be as show in figure 15-Left. But this frequency domain does not give the right result for other ranges. Figure 15-Right shows how this new selected frequency domain behaves for another scene.
Figure-15: Left, scene in fig.12 right with Fr /2 < fr < 3 Fr /2. Right, other scene During this investigation, another issue was encountered. The size of the scene has a certain effect on the resulting image, in fact, a scene smaller than a certain size results to a distorted and mixed up image, figure 16 shows how the resulting image from a 2000x2000 scene would differ from a 3000x3000 scene from the same area.
Figure-16: Left, scene size 3000x3000. Right, same starting point scene size 2000x2000 I have discussed this matter with Dr. Maurice Rueegg from department of geography, university of Zurich, Switzerland. And Dr. David T. Sandwell from university of California, San Diego. According to their experience the easiest solution to these distortions or ambiguities is to process a larger scene and then cut those ambiguous edges after processing. This process is called zeroDoppler processing. Figure 17 belongs to a scene processed with both Range Doppler and Chirp Scaling algorithm. As you may notice there is not a huge difference in the quality of two images. However, Chirp Scaling algorithm provides a slightly clearer result. But we have to bear in mind that Chip Scaling has a higher computational complexity and requires higher amount of memory, and takes longer to process a dataset. Or simply, the better algorithm may not always be the more practical one!
Figure-17: Range Doppler and Chirp Scaling comparison These experiments have proven to me that SAR processing algorithms has to be tailored for certain data and certain application. But, although my attempt to provide a general SAR
processor capable of processing all SAR data was unsuccessful, the program I created is more user-friendly and easier to handle with a variety of outputs for users with less knowledge of SAR processing algorithms.
3.2. Sensitivityofcalculations Sometimes, the difference between getting a clear result and a pure noise image is a - sign somewhere you least guess. As an example, Figure 18 shows how different results one can get by considering a wrong chirp direction.
Right: Up-Chirp
3.3. MemoryMatters Due to large size of data files, memory status becomes a very important matter. It is very important to keep the computational complexity and memory usage as low as possible and at the same time not to make the program too slow. Therefore algorithms are to be developed in an optimum way with minimum number of variables. It becomes necessary to overwrite the original data in every stage of processing and therefore important variables are often saved and later loaded to reuse instead of keeping them on the memory throughout the processing. Note 1: Never use clear all especially when programming in the GUI, this will remove object handles. Note 2: Adjust Windows virtual memory for optimum performance of MATLAB.
changing knowledge. New algorithms, new approaches and new methods are emerging. Yet, new applications of SAR are being introduced and developed every day. And like many other relatively new fields of knowledge, there are limitations and restrictions to access such data and processing programs. For example, there is a SAR processing software called ROI-PAC which is not accessible for people from certain countries! Besides, most of the leading universities who are active in SAR and InSAR processing develop their own processing packages, which are usually tailored for their own purpose of use. Studying at KTH and being interested in SAR processing and applications made me feel obliged to begin implementing a SAR processing program for KTH, make it available for everyone no matter which country they are from and make all its sources open and give it a lifetime support! Everyone is welcome to edit, change, adjust, correct, improve or optimize this program. This program gives a reasonably high quality images from SAR data. The very useful thing is that, one can process almost any SAR data from any source using those two algorithms provided by the program. As you may know, MRI images are also based on the same theory. The data given by MRI machine is complex vectors with the same characteristics. So, maybe someone can try to process some MRI data by this program! I have tried as hard as possible to keep the structure of this program simple, easy to understand and repeatable. So, in case anyone is interested to improve any functions, by referring to Metadata you can understand how exactly variables are saved, loaded and processed. For example, if you want to work on the dataset right after extraction, before gain correction, or you want the raw data after RDA processing, you know which file to use.
This program runs under MATLAB. But, it is not very difficult to convert the whole program to another environment such as C++ or Java. This is the best solution to get rid of memory matters and MATLAB limitations of array and matrix size.
Advantages of this program: It is Open-Source and easy to modify. Runs on any computer and operating system that can run Matlab 7+. Has a quite self-explanatory Graphical User Interface (GUI) which enables users with less knowledge of SAR, to process their desired data. Modules and parts of the program can run separately.
5. Acknowledgements
Throughout this thesis I enjoyed the much appreciated help of Professor Lars Sjberg who supported my ideas for conducting this experimental project. I should thank specifically Dr. Maurice Rueegg, from department of geography, university of Zurich, Switzerland for all his day-by-day advices with algorithms particularly or chirp scaling algorithm, Dr. Andy Smith from Phoenix System, for his generosity in providing me with a free copy of his SAR processing software and giving me access to some of the source codes of the program, and Dr. David T. Sandwell from university of California, San Diego for his advices and guidelines throughout the project.
6. Appendixes
6.1. The program manual
I have tried to make the program menus self descriptive. However, function of all menus and keys are defined in this section. Plus, a step-by-step processing is described. Following image shows the program main menu:
Data Type
l
InSAR Processing Section
This is the satellite data specification form and the window selection form:
Not all of Satellite parameters are necessary. Depending on your application, you may only need to
Menus for processing algorithms are similar. Here is the menu for Range Doppler Algorithm. CSA menu also looks the same except for the message box which shows steps taken for processing data.
InSAR Processing Section Out of six buttons in this section, three are fully functional: - Interferogram - Phase difference - Range Spectra Two are programmed but not tested: - Phase Unwrapping - DEM And one is not yet programmed: - Co-Registration The Interferogram button plots the interferogram in a figure window, since user mostly likes to save this figure as an image I did not create separate window for interferogram plotting, but the created image is saved in a JPEG file caller Interferogram.jpg. The challenging part of plotting interferogram is how to overlay two images and to make it easier to interpret, the base map is in Grayscale mode and the interferometric phase difference is color. As I said before, there were no pair images available, so, what I have done is to create a demo phase interferogram and overlay it on the magnitude of the master image. Here is and example, consider image A is the magnitude of the master file, and image B is the interferometric phase difference. The result my program gives is the image C:
Image C: Overlaid Image The DEM plotting toolbox has a few options. It is useful to draw contour lines on the DEM or separately. The user can choose steps between contour lines or can plot contour lines separately. And finally, user can save the created plot or just the DEM text file which can later be loaded and used in other programs.
Most importantly, processed I & Q data file is further used for InSAR processing and formation of Interferogram and monitoring the phase change.
6.3. Metadata
Following tables defines all important variables and processing files in this program. I advise anyone who wishes to edit this program, add some new functions or improve any existing function to read this section carefully and update any changes made to the program for further use. Processing Files File Name Description This file opens the main menu of the program from which all main.m functions and tools are accessible Satellite Data and Specification. This function is accessible through sds.m main menu and is the interface to input satellite specifications Selected Window Parameter. This is the interface for selecting a swp.m window of data which is again accessible from main menu Function for RADARSAT data extraction, the pushbutton Extract RSAT_1.m Data from main menu calls this function Range Doppler Algorithm. This function runs the RDA toolbox RDA.m where user can perform this algorithm on a selected dataset Chirp Scaling Algorithm. This function runs the CSA toolbox where ChirpSc.m user can perform this algorithm on a selected dataset Azimuth Gain Correction and Comparison function. AGC.m In this function, user can divide the whole dataset into selected number of spectra in azimuth direction and compare the azimuth spectrums of sections, check the Doppler Frequency value of each section, etc. This function plots Range Spectra of the dataset where user can see Rangespec.m and track the phase and magnitude change of data in Range Phase unwrapping function, with options to choose the method of Un_Wrap.m unwrapping. Calculate DEM and draw desired plot of surface or contour lines DEM.m Calculates and plot interferogram of two given SAR images Interferogram.m This function is called from RDA and CSA, it calculates the loghistogram.m histogram of SAR data and opens a user interface to select the maximum and minimum span for re-plotting the image with a better quality and more distinguishable details. A function to create a sample Interferogram. This is only used for cone.m demo the InSAR section of the program. but it is very useful for study purpose where a sample phase interference is required. Auxiliary and Variable files File Name Description AGC_attenuation_value.mat This file contains the Gain variations of satellite signal in azimuth direction. This information can also be extracted directly from the data file, but since it was provided with the data I had in hand, I used this. Gain correction loads this file and
uses it. Contains variables for selected window of data Contains variables of satellite parameters Contains data for log-histogram of processed SAR image Contains the upper and lower limits selected in histogram interface for spanning the data. Contains names of input and output files Contains processed data by RDA algorithm Contains processed data by CSA algorithm Contains untouched replicas of propagated signal. This can be useful in some methods of creating filters Is the extracted data according to selected window. Any corrections made on the extracted data will overwrite this file in order to minimise the hard disk space usage.
6.4. Acronyms
ASAR CSA ENVISAT ERS FFT FM IFFT InSAR PRF RCMC RDA RF RMS SAR Advanced SAR system on the ESA ENVISAT platform Chirp Scaling Algorithm European Environmental Satellite Earth Remote Sensing Fats Fourier Transformation Frequency Modulation Inverse FFT Interferometric SAR Pulse Repetition Frequency Range Cell Migration Correction Range Doppler Algorithm Radio Frequency Root Mean Square Synthetic Aperture Radar
References
Abbas, Katoush. 2005. A new Recurrent approach for Phase Unwrapping. Department of Electrical and Electronics Engineering Al-Isra University, Aman, Jordan. Callow, Hayden J., 2003, Signal Processing of Synthetic Aperture Sonar Image Enhancement A thesis presented for the degree of Doctor of Philosophy in Electrical and Electronic Engineering at the University of Canterbury, Christchurch, New Zealand. Cumming, Ian G., Wong, Frank H. 2005, Digital Processing of Synthetic Aperture Radar Data, Artech House Remote Sensing Library. Cumming, Ian G. 2006, Demonstration of SAR Processing using Range/Doppler Algorithm, Report Cumming, Ian G. Wong, Frank. Hawkins, Bob. RADARSAT-1 Doppler Centroid Estimation Using Phase-Based Estimators, Canada Centre For Remote Sensing, Data Acquisition Division Dammert, Patrik. Ulander, Lars. 1991, Remote Sensing Using Microwave, Chapter J, SAR Processing, Hulbert, Douglas. 2004, Using Matlab to Create an Image from Radat, Mathematics Department, Norfolk State University Sandwell, David T. 2002, SAR Image Formation, ERS SAR Processor coded in Matlab. Smith, Andy. 1998, Phoenix Systems InSAR Toolkit User Guide, Phoenix Systems Smith, Andy. 1996, A 2D Focussing Technique for Very High-resolution, Low-Frequency SAR Data Andy M. Smith, 2001, A 2D Focussing Technique for Very High-resolution, Low-Frequency SAR Data, Phoenix Systems. Soumekh, Mehrdad. 1991, Bi-static synthetic aperture radar inversion with application in dynamic object imaging, IEEE Trans. on Signal Processing, vol. 39, pp.2044-2055. RADARSAT International, May 2000, RADARSAT Data Products Specifications Le Van Trung, Ho Tong Minh Dinh, Van Cong Quoc Anh. 2005 The ability of application of ERS SAR images in generating DEM using InSar technique. Geomatics Center Information Technology Park Vietnam National University Ho Chi Minh City
07-001 Carl Schedlich. Turn at the roundabout: A practical assessment of spatial representations in two different GPS interfaces from a pedestrians perspective. Bachelor of Science thesis in geoinformatics. Supervisor: Michael Le Duc. January 2007. 07-002 Staffan Bengtsson. Frndringsanalys i ortofoton. Master of Science thesis in geoinformatics. Supervisor: Jonas Nelson and Patric Jansson. TRITA-GIT EX 07-002. March 2007. 07-003 Joseph Addai. Qantification of temporal changes in metal loads Moss data over 20 years. Master of Science thesis in geoinformatics. Supervisor: Katrin Grunfeld. March 2007. 07-004 Stephen Rosewarne. Deformation study of the Vasa Ship. Bachelor of Science thesis in geodesy. Suppervisor: Milan Horemuz. March 2007. 07-005 Naeim Dastgir. Processing SAR data using Range Doppler and Chirp Scaling Algorithms. Master of Science thesis in geodesy No.3096. Supervisor: Lars Sjberg. April 2007.