COSI-Corr is a software module integrated in ENVI. It provides tools to accurately orthorectify, co-register, and correlate optical remotely sensed images. A sub-pixel detection capability is expected, depending on the quality and the noise level of the data.
COSI-Corr is a software module integrated in ENVI. It provides tools to accurately orthorectify, co-register, and correlate optical remotely sensed images. A sub-pixel detection capability is expected, depending on the quality and the noise level of the data.
Co-registration of Optically Sensed Images and Correlation
Franois Ayoub, Sbastien Leprince, and Lionel Keene California Institute of Technology 1200 East California Blvd, Pasadena, CA 91125, USA February 2, 2009 Abstract This document is a users guide for the installation and the use of COSI-Corr. COSI-Corr is a software module integrated in ENVI, which provides tools to accurately orthorectify, co-register, and correlate optical remotely sensed images (aerial and pushbroom satellite images) with the ultimate objective of retrieving ground surface deformation from multi-temporal images. Although this module is tailored to measure ground deformations such as coseismic deformation, glacier ows, sand dune migrations, slow landslides, etc, it can also be a valuable tool for many other change detection applications requiring accurate coregistration of images. A sub-pixel detection capability is expected, depending on the quality and the noise level of the data. 1 COSI-Corr Users Manual February 2, 2009 Copyright c 2006 California Institute of Technology 2 Contents 1 Preface 6 1.1 About This Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Who Will Use This Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 About COSI-Corr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Citation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.6 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Installation and Getting Help 8 2.1 How to get COSI-Corr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Windows Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Unix Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Introduction: A Typical Processing Chain 11 4 Aerial Imagery Specic 12 4.1 Interior Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2 Exterior Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5 Satellite Imagery Specic 15 5.1 Ancillary File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 6 Tie Points and GCPS 16 6.1 Tie points Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 6.2 Tie points to GCPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 7 GCPS Optimization 17 8 Orthorectication and Resampling 20 8.1 Orthorectication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 8.2 Resampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 9 Correlation and Displacement Measurements 23 9.1 Frequential Correlator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9.2 Statistical Correlator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 10 Tools 26 10.1 Non Local Means Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 10.1.1 Filter Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 10.1.2 Filter Parameters (Fig. 14) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 10.1.3 Advanced Filter Parameters (Fig. 15) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 10.2 Discard/Replace Image Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 10.3 Destripe Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 10.3.1 Manual Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 10.3.2 Automatic Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 10.4 Vector Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 10.5 Stacking Proles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3 10.5.1 Orient Fault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 10.5.2 Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 10.6 Matrices Interdistances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 11 Miscellaneous 36 4 List of Figures 1 COSI-Corr into ENVI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2 Aerial image ducial points selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Interior Orientation Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4 Exterior Orientation Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5 Tie Points to GCPS Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 6 GCPS text File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 7 GCPS Optimization Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8 Orthorectication Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9 Resampling Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 10 Sinc Kernel Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 11 Correlation Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 12 Frequential Correlator Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 13 Statistic Correlator Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 14 Non-Local Means Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 15 Non-Local Means Filter Advanced Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 16 Image Filter Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 17 Destripping Selection Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 18 Destripping Stacking Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 19 Destripping Corrected Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 20 Vector Field Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 21 Prole Stacking Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 22 Matrices Interdistances Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 List of Tables 1 Processes Timing Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5 1 Preface 1.1 About This Document The section 1 presents some general information about COSI-Corr. The section 2 presents the COSI-Corr downloading instructions and installation guidelines. Section 3 presents the successive steps necessary to process a pair of images. Sections 4 to 10 detail each function available in COSI-Corr; their chronology reects more or less the chronology presented in section 3. This documentation was produced with TeXnicCenter [http://texniccenter.sourceforge.net] using the MikTex distribution [http://www.miktex.org/]. 1.2 Who Will Use This Document This documentation is aimed at scientists whose interest is in working with optical remotely sensed images (aerials or satellites). Users are likely to be Earth scientists looking for seismic ground deformations, glacier ows, sand dune displacements, slow landslides, or more generally looking for horizontal changes between multi-temporal images. Users do not need to have a programming background but will need some familiarities with the concepts and vocabulary of remote sensing. A basic knowledge of the ENVI software will be useful as COSI-Corr is integrated in ENVI. 1.3 About COSI-Corr The COSI-Corr software has been developed by Franois Ayoub, Sbastien Leprince, and Jean-Philippe Avouac (PI), and is an implementation of the procedures described in: S. Leprince, S. Barbot, F. Ayoub and J. P. Avouac, Automatic and Precise Ortho-rectication, Coreg- istration, and Subpixel Correlation of Satellite Images, Application to Ground Deformation Measure- ments, IEEE Transactions on Geoscience and Remote Sensing, vol. 45, no. 6, pp 1529-1558, 2007. (Leprince et al. (2007)). F. Ayoub, S. Leprince and J.P. Avouac, Co-registration and Correlation of Aerial Photographs for Ground Deformation Measurements, submitted 2007. (Ayoub et al. (2007)). The main tasks performed by COSI-Corr are precise orthorectication, images co-registration, and cor- relation. Although the orthorectication and co-registration are tailored for remotely sensed images, the correlation can be applied to any types of images. Along with those three main tasks several post-processing utilities are available such as a a denoising tool, a vector eld display tool, a prole stacking tool, a destriping tool, . . . COSI-Corr has been designed to retrieve the sub-pixel displacements between optical images. However, it is necessary to understand that even though images will be used to their full extent, the limiting factors severity (uncorrected topography, noise, resolution, . . . ) will aect the measurement results. 1.4 Support COSI-Corr has been developed at the California Institute of Technology (Caltech) [http://www.caltech.edu], supported by the National Science Foundation (NSF) [http://www.nsf.gov/], grants EAR-0409652 and EAR- 0636097, and by the Caltech Tectonics Observatory (TO) [http://www.tectonics.caltech.edu/]. 1.5 Citation The Caltech Tectonics Observatory (TO) is making this module available to you in hopes that the software will enhance your research. A number of individuals have contributed to the development of COSI-Corr. The authors would like to thank Rmi Michel and Renaud Binet for their insightful comments and their 6 early work in the eld of sub-pixel image registration and correlation (Van Puymbroeck et al. (2000)). We also thank Sylvain Barbot for his work on the SPOT 5 ancillary data, Pablo Muse for the UNIX module installation guide, and David Fanning for some IDL functions. The COSI-Corr development team asks that you cite S. Leprince, S. Barbot, F. Ayoub and J. P. Avouac, Automatic and Precise Ortho-rectication, Coregistration, and Subpixel Correlation of Satellite Images, Application to Ground Deformation Measurements, IEEE Transactions on Geoscience and Remote Sensing, vol. 45, no. 6, pp 1529-1558, 2007 and, if working with aerial images, F. Ayoub, S. Leprince and J.P. Avouac, Co-registration and Correlation of Aerial Photographs for Ground Deformation Measurements, Submitted, 2007. The developers also request that in your oral presentations and in your paper acknowledgements you indicate the use of COSI-Corr, the authors, and website [http://www.tectonics.caltech.edu/slip his- tory/spot_coseis/index.html]. 1.6 Disclaimer NONEXCLUSIVE, NON-TRANSFERABLE LICENSE AGREEMENT FOR RESEARCH PURPOSES ONLY FOR COSI-Corr Software (Co-registration of Optically Sensed Images and Correlation). The California Institute of Technology (CIT) will provide you, a not-for-prot institution (LICENSEE), with the Co-registration of Optically Sensed Images and Correlation Software (COSI-Corr). Software is made available to LICENSEE on the following terms: 1. Denitions: (a) The "Software" is dened as the package consisting of the source code and the compiled version of the software that allows for Co-registration of Optically Sensed Images and Correlation, based on the algorithms described in S. Leprince, S. Barbot, F. Ayoub and J. P. Avouac, "Automatic and Precise Ortho-rectication, Coregistration, and Subpixel Correlation of Satellite Images, Ap- plication to Ground Deformation Measurements", IEEE Transactions on Geoscience and Remote Sensing, vol. 45, no. 6, pp 1529-1558, 2007, and in F. Ayoub, S. Leprince and J.P. Avouac, "Co-registration and Correlation of Aerial Photographs for Ground Deformation Measurements", Submitted, 2007. (b) "Source Code" is dened as code written in human-readable format or in a high-level program language. (c) "Derivative Works" means any work consisting of revisions, annotations, elaborations, or other modications to Software which, as a whole, represent an original work of authorship. Derivative Works includes any updates and new releases of the Software developed during the term of this license, inclusive of backups, updates, or merged copies permitted hereunder including the le structures, programming instructions, user interfaces and screen formats and sequences. 2. CIT retains ownership of any copyright rights to the Software licensed under this Agreement. 3. CIT agrees to grant LICENSEE a nonexclusive, non-transferable, royalty-free license, under the copy- right rights and any applicable patent rights, to use COSI-Corr for internal research purposes only. This license specically excludes the right to sublicense COSI-Corr in any form, and it also excludes the right to use COSI-Corr for any commercial or for-prot purpose. 4. LICENSEE agrees to grant Caltech a fully paid-up, royalty-free nonexclusive license for educational and research purposes to any Derivative Works of Software that are owned or controlled by Licensee. 5. LICENSEE may incorporate Software with other source code developed by LICENSEE (Incorporated Work) for the sole purpose of using Software for research internal to LICENSEE and not for any other redistribution. LICENSEE may not distribute any Incorporated Work outside of LICENSEE, and specically LICENSEE may not provide Software or any Incorporated Work under an open source 7 license such as the Gnu Public License (www.gpl.org). If the creation of an Incorporated Work would require LICENSEE to distribute Software under an open source license, then LICENSEE agrees not to make such incorporation. 6. Software is experimental in nature and is being licensed as is. The license of COSI-Corr does not include any technical support or documentation. 7. LICENSEE hereby represents and warrants that it is a not-for-prot entity. 8. CIT represents and warrants that it has the right to license Software. 9. LICENSEE agrees that any person within LICENSEE utilizing Software will be advised of, and is subject to, the conditions in this Agreement. 10. NO WARRANTY: SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND INCLUDING ANY WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE OR PURPOSE (AS SET FORTH IN UCC 23212-2313) OR FOR ANY PURPOSE WHATSOEVER, HOWEVER USED. IN NO EVENT SHALL CIT BE LIABLE FOR ANY DAMAGES OR COSTS, INCLUDING BUT NOT LIMITED TO INCIDENTAL OR CONSE- QUENTIAL DAMAGES OF ANY KIND, INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER CIT SHALL BE ADVISED, HAVE REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY. LICENSEE BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF SOFTWARE OR ANY DERIVATIVE WORKS THEREOF. 11. All right, title, and interest in and to all data, information, and inventions that result from use of Software by the LICENSEE shall vest in and belong to the LICENSEE. 12. This Agreement is governed by the laws of the State of California, and any action brought hereunder shall be within the state of California. 2 Installation and Getting Help 2.1 How to get COSI-Corr Users must register through the Caltech TO web site and accept the licensing agreement to download COSI- Corr [http://www.tectonics.caltech.edu/slip_history/spot_coseis/index.html]. A zipped package containing the COSI-Corr module and the Users guide should be downloaded, and installed (Sec. 2.3, 2.4). All materials obtained are subject to the licensing agreement. 2.2 Requirements COSI-Corr has been developed in Interactive Data Language (IDL) [http://www.ittvis.com/idl/] and has been integrated in ENVI [http://www.ittvis.com/envi/]. Users must therefore have ENVI (release 4.0 or newer) installed. IDL and ENVI are platforms independent and COSI-Corr has been tested under Windows 2000/XP/Vista, and also under Unix, Linux, and Mac OS systems. Due to the usually large size of remotely sensed images, it is highly recommended to increase ENVI Cache size and Image Tile size to around 200Mb and 40Mb, respectively (ENVI->File->Preferences>Miscellaneous) if the computer hardware allows it. Lack of memory and unable to allocate... errors are usually due to a too small Cache size and Image Tile size. 8 2.3 Windows Installation 1. Unzip the downloaded le. 2. Move the COSI-Corr module (cosi_corr.sav) to the ENVI "save_add" directory. DO NOT change the modules name. This le contains all the compiled source code of the COSI-Corr module. The ENVI "save_add" directory path depends on the location of IDL/ENVI on your computer, and it may look like this for an installation at the root: C:\RSI\IDL60\products\envi40\save_add\ or C:\Program Files\ITT\IDL70\products\envi45\save_add\ (for versions 4.4 and after). If you are not installing COSI-Corr for the rst time, make sure to discard any older version that might be in this directory. 3. With the previous release of COSI-Corr, the ENVI menu text le envi.men needed to be edited. This step is not necessary anymore. If you are installing COSI-Corr for the rst time, the installation is complete. If you have previous releases of COSI-Corr installed, you need to edit the ENVI menu text le envi.men located in the ENVI menu folder whose path might be: C:\RSI\IDL60\products\envi40\menu\ or C:\Program Files\ITT\IDL70\products\envi45\menu\ for versions 4.4 and after, and remove the COSI-Corr menu. Save and close the le. 4. Start ENVI. If the installation worked correctly, the COSI-Corr menu should appear in the ENVI tool bar (Fig. 1). It is recommended to register to, and visit regularly, the COSI-Corr forum where you will nd tips, bug reports, thematic/technique discussions, and feedbacks from other COSI-Corr users [http://www.tectonics.caltech.edu/forum/]. 5. Users planning to operate the Non-Local Means Filter (Sec. 10.1) also need to: (a) Make sure they satisfy the following requirements: 32-bit (or higher) Microsoft Windows TM . Intel Pentium 4 (or higher) CPU. IDL6.3/ENVI4.3 or higher. (b) Copy NLMeansFilterDll.def, NLMeansFilterDll.dll, NLMeansFilterDll.dlm into C:\RSI\IDL60\bin\bin.x86 or C:\Program Files\ITT\IDL70\bin\bin.x86 for versions 4.4 and later. This le path may be slightly dierent depending on your versions of ENVI/IDL. (c) Download and install (reboot needed) the Visual C++ runtime from Microsoft. This download can be found at: [http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03- 4391-8a4d-074b9f2bc1bf&displaylang=en] 2.4 Unix Installation Installation on Unix is somewhat more complicated than for Windows. Most ENVI users on UNIX systems do not have the rights to change the Customizing ENVI les, or to add their own procedures to the ENVI "save_add" directory. Multiple users may indeed be working with the same installation of ENVI, so cus- tomizing these les may not be allowed by the system administrator. To customize ENVI les on a UNIX system without aecting other users, perform the following steps: 1. Copy the ENVI les envi.cfg and e_locate.pro to any location you want, for example /home/myusername/myEnviCon. For a typical Unix installation, these les are located in (the installation path may be slightly dierent on your machine): /usr/local/rsi/idl_6.0/products/envi_4.0/menu/ 9 2. (a) CSH or TCSH shells - Set up environment for ENVI 4.0 and above, and modify IDL search path variable (IDL_Path). Add lines to your .cshrc (or .tcshrc) le in your home directory to execute the ENVI setup le when you start a new csh (or tcsh) shell and to add your home directory tree into the IDL le search path. This ensures that ENVI nds the les in your home directory before it nds copies in the default installation location where you do not have write permission. Following is an example of lines to add (expecting previously dened IDL search path variable denition): source /usr/local/rsi/idl_6.0/products/envi_4.0/bin/envi_setup setenv IDL_PATH+/home/myusername/myEnviCong:$IDL_PATH You will need to change the home directory path (shown above as /home/myusername/myEnviCong) to your own home directory path. You may also need to change the directory path to the envi_setup le if your ENVI installation is in a location other than /usr/local/rsi. If you anticipate that $IDL_PATH will be undened (no prior IDL search path customizations), then be sure to use the string <IDL_DEFAULT> in place of $IDL_PATH at the end of the second command. Notice in the following example that <IDL_DEFAULT> is inside the right single-quote character: source /usr/local/rsi/idl_6.0/products/envi_4.0/bin/envi_setup unsetenv IDL_PATH setenv IDL_PATH +/home/myusername/myEnviCong:<IDL_DEFAULT> (b) BASH Shell - Set up environment for ENVI 4.0 and above and modify IDL search path variable (IDL_Path). Your ENVI installation also contains a setup le for the Bash shell. Place the following equivalent commands in the .bashrc le in your home directory: i. Using a previously dened IDL search path denition: ./usr/local/rsi/idl_6.0/products/envi_4.0/bin/envi_setup.bash IDL_PATH=+/home/myusername/myEnviCong:$IDL_PATH export IDL_PATH ii. Not using a previously dened custom IDL search path denition: ./usr/local/rsi/idl_6.0/products/envi_4.0/bin/envi_setup.bash unset IDL_PATH IDL_PATH=+/home/myusername/myEnviCong:<IDL_DEFAULT> export IDL_PATH 3. If you already have a save_add directory where you usually put your .sav les, copy the COSI-Corr module cosi_corr.sav into it. If you are not installing COSI-Corr for the rst time, make sure to discard any older version that might be in this directory. DO NOT change the modules name. If you are adding .sav les for the rst time, create a directory named save_add at any location you want, say /home/myusername/myEnviRoutines/. 4. With the previous release of COSI-Corr, the ENVI menu text le envi.men needed to be edited. This step is not necessary anymore. If you are installing COSI-Corr for the rst time, the installation is complete. If you have previous releases of COSI-Corr installed, you need to delete your own ENVI menu text le envi.men in /home/myusername/myEnviCong. 5. Edit the envi.cfg le in /home/myusername/myEnviCong to point to its customized les. You should at least specify the following path: default save_add directory = /home/myusername/myEnviRoutines/save_add. Notice that this path can also be set through ENVIs GUI, under: File -> Preferences ->Default Directories: Save_Add Directory 10 6. The changes will be implemented when you re-start ENVI. Before that, source the .cshrc, .tcshrc or .bashrc to apply the changes to your current session. 7. If the installation worked correctly, the COSI-Corr menu should appear in the ENVI tool bar (Fig. 1). It is recommended to register to, and visit regularly, the COSI-Corr forum [http://www.tectonics.caltech.edu/forum/] where you will nd tips, bug reports, thematic/technique discussions, and feedbacks from other COSI-Corr users. Figure 1: Example of the COSI-Corr menu inserted in ENVI between the Basic Tool and Classication top level menus 2.5 Getting Help As a courtesy, we will try to provide assistance. To ask for information, help, report a bug or a suggestion, please rst browse the COSI-Corr forum [http://www.tectonics.caltech.edu/forum/] as the problem you are facing may have been already reported. If you do not nd an answer, do not hesitate to post your questions/comments on the forum. To contact the COSI-Corr team directly, you can also send an email to [email protected]. The software module was released for the rst time in 2006 and may still contain bugs and errors as it is usually the case with new softwares. We apologize in advance for the inconvenience, and ask you to send us a clear report of the problems you may encounter. 3 Introduction: A Typical Processing Chain The driving motivation for implementing COSI-Corr was to set up a tool that retrieves co-seismic ground displacements from pre- and post-earthquake images. Although the description is aimed at seismo-tectonics, it can be applied to any other change detection application. We describe below the successive steps to achieve precise co-registration and derive deformation measurements. We assume here that we have two images bracketing a seismic event. Before correlation, the images must be cleaned from geometric artifacts such as topography, and co-registered precisely: 1. Dene the Interior Orientation (aerial) or Ancillary data (satellite) of the two images (Sec. 4.1, 5.1). 2. Orthorectify the pre-earthquake image: (a) Construct a Ground Control Points (GCPS) le to rene the pre-earthquake image georeferencing. GCPS are dened either with GPS campaigns or by taking tie points between the image and a geolocalized reference (orthorectied image, shaded DEM, digitalized high resolution map, . . . ) (Sec. 6.1). The tie points are then converted into GCPS (Sec. 6.2) using the georeferencing parameters of the reference image and a DEM. Those GCPS can be optimized if necessary (Sec. 7). 11 (b) Compute the mapping matrices to transform the raw pre-earthquake image into an orthorectied image and resample it (Sec. 8). 3. Orthorectify the post-earthquake image: (a) Select tie points between the post-earthquake image and the orthorectied pre-earthquake image (Sec. 6.1). (b) Convert these tie points into GCPS (Sec. 6.2). (c) Optimize the GCPS of the post-earthquake image in order to precisely co-register the post- earthquake image to the orthorectied pre-earthquake image (Sec. 7). (d) Compute the mapping matrices to transform the raw post-earthquake image into an orthorectied image and resample it (Sec. 8). 4. Correlate the two co-registered and orthorectied images. The result will be a at least three bands le containing the E/W displacement map (positive toward the East), the N/S displacement map (positive toward the North), and the SNR assessing the quality of the measure (Sec. 9). 4 Aerial Imagery Specic Film based aerial images must be scanned with a high spatial and radiometric resolution to accurately retrieve the lms information. A radiometric resolution of at least 8 bits (10-12 recommended), a geometric resolution of 5 to 15 m (5000 dpi to 1700 dpi), and a stability of around 2-3 m are desired. Zeiss and Leica, for example, provide suitable aerial images scanners. It is recommended to scan in grayscale (B&W) the negative and not the photo paper print. 4.1 Interior Orientation The Interior Orientation (IO) of the camera gives a mathematical representation of the camera geometry and distortions. This step is accomplished with the help of the camera calibration report which is normally obtained on demand, and follows the classical photogrammetry techniques (Wolf & Dewitt (2000)). The Aerial Imagery -> Interior Orientation -> Fiducial Points Selection Tool function allows to select the ducial points on the image and to enter their measurements, which are read from the calibration report (Fig. 2). Once the points are selected, save the le (File -> Save Points to ASCII). Users of ENVI 4.3 and newer versions will access the ducial point selection tools through Select Fiducials in Display.... The Aerial Imagery -> Interior Orientation -> Interior Orientation Setup function generates the Interior Orientation le and gathers the camera information read from the calibration report (Fig. 3): 1. Calibrated focal length, in meters. 2. Principal point oset, in millimeters. 3. Fiducial measures. You can enter the points either manually or by loading the le created with the Fiducial Points Selection Tool. The 2D ane transformation between the image reference system and the camera reference system will be automatically computed. 4. Radial lenses distortions correction coecients. Depending on the data supplied by the calibration report, enter directly the coecients or compute them from laboratory measurements using the Radial Measures button. 12 Figure 2: Fiducial points selection with the help of the calibration report 5. Tangential lenses distortions correction coecients. Currently, only the coecients can be entered if supplied by the calibration report. The correction applied is the one described in Wolf & Dewitt (2000). 6. Atmospheric correction. Check if you want to correct for atmospheric diraction. The correction assumes a standard atmosphere and follows an adapted method described in Wolf & Dewitt (2000). Once the parameters entered, select a name for the IO le to be created, and click OK. Note 1: The radial and tangential lenses distortions, as well as the atmospheric diraction, have typically an amplitude of around 1 to 4 m only. Due to the scanners resolution and stability, consequences will not be dramatic if they are not accounted for. Note 2: If the calibration report is not available, the IO can still be built but the lenses distortions, principal point oset, and ducial points measures will not be accounted for. The scanning resolution and the ducial points coordinates (in pixel) are needed, and the principal point is assumed to be at the crossing of the lines joining the opposite ducial points. 4.2 Exterior Orientation This function (Aerial Imagery -> Exterior Orientation) computes the Exterior Orientation (EO) of the camera (Fig. 4). It describes the position and the angular orientation of the camera in the ground coordinates system at the time of exposure. It is composed of the spatial position which corresponds to the camera optical center coordinates, i.e., Easting, Northing, Altitude, and the angular orientation, which is composed of three 13 Figure 3: Interior Orientation tool rotation angles , , , and may be seen as the roll, pitch, and yaw of the focal plane. These six parameters are determined using space resection by collinearity (Ayoub et al. (2007), Wolf & Dewitt (2000)). 1. Interior Orientation: Select the le obtained during the Interior Orientation of the camera (Sec. 4.1). 2. GCPS File: Select the le containing the GCPS. This le can be obtained from (Sec. 6.2) or edited manually. It is an ASCII le which presents data in an array form. One GCP per line with a line composed of : longitude (decimal degree) latitude (decimal degree) altitude (meter) X (pixel) Y (pixel) SNR (0 to 1) [other]. SNR represents the weight of each GCP in the global EO computation. The le must contains at least three GCPS. 3. Exterior Orientation: Enter the name of the Exterior Orientation le to be created and click OK. The le will contain the six EO parameters: longitude (degree) latitude (degree) altitude (meter) (radian) (radian) (radian). Note that is given with the North as a reference, and can be seen as the sum of the aircraft azimuth and yaw. The EO le is then used during the image orthorectication (Sec. 8). 4.3 Miscellaneous When optimizing GCPS generated from tie points selection between an aerial image and a shaded DEM, if the dierence in resolution is large (example: 1 m image vs. 30 m SRTM), or if the topographic features are 14 Figure 4: Exterior Orientation tool too thin for a good optimization, it is recommended to geolocalized rst a satellite image with the shaded DEM, and use the subsequent orthorectied satellite image as a reference. 5 Satellite Imagery Specic 5.1 Ancillary File This function (Satellite Imagery -> Ancillary File -> <Satellite to study>) rearranges the ancillary data of a satellite image into a common le format that will be used afterward in COSI-Corr. This ancillary le will contain the positions, attitudes, and look directions of the satellite while acquiring the image, and other information such as the number of lines and columns, nominal ground resolution, and solar azimuth and elevation. 5.2 Miscellaneous ASTER Imagery: The level L1A is required. For ENVI 4.1 or prior versions, a pre-processing of the radiance correction will be necessary and can be done with the adequate ENVI tool (ENVI->Basic Tools- >Preprocessing->Calibration utilities->Aster Radiance). This pre-processing is automatically done when opening the images in ENVI 4.2 and later versions. The ASTER .hdf le is expected as input. Although any band can be selected (VNIR, SWIR, TIR), it is recommended to use the band VNIR 3N (nadir viewing) for surface deformation detection. FORMOSAT-2 Imagery: The level 1A is required. Panchromatic and multi-spectral images can be processed. The METADATA.dim le is needed. SPOT/SPOT5 Imagery: The level 1A is required. SPOT images must be opened in ENVI using File -> Open External File -> SPOT ->SPOT (for SPOT 1-4 satellites in the leader CEOS format), or DIMAP (for SPOT 5 or SPOT 1-4 images in the dimap format). Panchromatic and multi-spectral images can be processed, and Leader (SPOT1-4, lead.dat le) and Dimap (SPOT5 and recently SPOT1-4, metadata.dim le) format are accepted. Panchromatic with CCD correction accounts for the slight misalignment of the CCD arrays in SPOT1-4. The correction is established empirically for each satellite, and is currently only available for the SPOT 2 HRV 1 and SPOT 4 HRV 1 instruments. QUICKBIRD Imagery : The level 1B (Basic) is required. Panchromatic and multi-spectral images can be processed. Note that only full scenes (not fractional) are accepted. The les .eph, .att, .geo, and .imd will be needed and must be located in the same folder (only one of these 4 les need to be entered in the auxiliary le eld, the other ones being retrieved automatically). 15 WORLDVIEW-1 Imagery : The level 1B (Basic) is required. Note that only full scenes (not fractional) are accepted. The les .eph, .att, .geo, and .imd (or the .xml) will be needed and must be located in the same folder (only one of these 4 les need to be entered in the auxiliary le eld, the other ones being retrieved automatically). 6 Tie Points and GCPS 6.1 Tie points Selection The tie points selection consists of pairing similar points between two images. It will most of the time consists in associating points between a georeferenced image and a non georeferenced image, typically between an orthorectied image and a raw image. It allows to associate a ground coordinates to a point in a raw image. 1. Open the two images for the tie points selection. 2. Select the Tie Points/GCP -> Select Tie Points: Image to Image tool. Base Image refers to the georeferenced image (master), and Wrap Image refers to the raw image (slave). 3. Select tie points between images. See ENVI Help for more details on this function. 4. When done, save your tie points selection using File -> Save GCPs to ASCII (and not Save Coecient to ASCII). The le created will be a list of the form x (master) y (master) x (slave) y (slave) in pixel. Note 1: This is an ENVI function that can also be found in Map -> Registration. The ENVI tool accounts for the xstart and ystart contained in the image header. Make sure they are set to 1, as COSI-Corr assumes so. Most likely, this will not be the case if your georeferenced master image is a subset of a larger image, that has been cropped using ENVI. Editing the header of your master image and forcing the xstart and ystart to 1 will not corrupt your data and is mandatory. Note 2: If tie points are selected (between an orthorectied image and a raw image) to be converted to GCPS and optimized, here are some guidelines to pick them adequately: At least three points must be selected. If the wrap image is to be co-registered with a shaded DEM, a larger number of points (15 to 30 if possible) should be selected to average the probable correlation errors due to the dierence in images content. Spread the points as much as you can in the image, but select them away from the area where ground displacement is expected. If displacement is expected in the whole image, select points in areas of smallest displacements. Do not select points too close to the images borders. As the optimization will correlate windows centered on each point, the optimization window size should be kept in mind when picking tie points. Pay attention to the points surrounding. Are features recognizable between the two images? Try to select points whose neighborhood contain easily identiable features or patterns. Are there any tem- poral decorrelations (man made changes, shadowing dierences, . . . )? Prefer areas of low topography to minimize uncorrected stereoscopic artifact. It is not necessary to select tie points precisely as the optimization will correct them. With the frequential correlator, the maximum placement error allowed on the initial GCPS will correspond to half the correlation window size. With the statistical correlator, a search range will have to be dened. If you select more than 3 points, the tie point selection tool provides you with a RMSE on a linear t. This RMSE is a good approximation of the average error on the tie points. Later, in the statistical optimization, the search range can be set between 1.5-2 times this RMSE. 16 6.2 Tie points to GCPS Figure 5: Tie points to GCPS transformation tool This function (Tie Points/GCP -> Tie points to GCPS) converts a set of tie points into GCPS (Fig. 5). 1. Tie Points File: Select the le containing the tie points between the two images. The le must be of the form x (master) y (master) x (slave) y (slave) in pixel. This le is typically generated by the Tie Points Tool (Sec. 6.1), but can be edited manually. 2. Reference Image: Select the image used as a reference (master) during the tie points selection. The image must have a map information, and is typically an orthorectied image. The geographic coordinates will be retrieved from its map information. 3. DEM File: Select a DEM with a valid map information to retrieve the altitude of the GCPS. If not entered, the altitude will be set to 0 (above ellipsoid WGS 84). 4. Oset eld: If selected this eld must receive a le whose rst and second bands contain a displacement map of the area in East/West and North/South direction respectively (a correlation map typically). The displacement found at the GCP location is retrieved and added to the GCPS le. This information will be used in the GCPS optimization (Sec. 7) as this displacement will be accounted for during the optimization. For example, a SPOT based displacement map can be used to account for the ground displacement at GCP location while co-registering aerial images (Ayoub et al. (2007)). 5. GCPS File: Select the name of the GCPS le to be created. The format of the GCPS le created is (Fig. 6): longitude (decimal degree) latitude (decimal degree) alti- tude (meter) X (pixel) Y (pixel) SNR (0 to 1) OPTI (0 or 1) DX (meter) DY (meter) DZ (meter). SNR, set to 1 by default, can be changed manually if needed and is used during the orthorectication and the GCPS Optimization. OPTI, DX, DY, DZ are used for the GCPS Optimization only. See Sec. 8.1, Sec. 7 for more details. 7 GCPS Optimization Even with all the care taken during manual tie points selection (converted then to GCPS), the orthorectied image usually presents a misregistration with the reference image, at the GCPs location. To get a better co-registration, GCPS are rened using the following process: 1. The raw image EO (aerial)/Look Angles (satellite) are computed using the GCPS. 2. The raw image is ortho-rectied and correlated with the reference image. 17 Figure 6: GCPS text le format 3. At each GCP location, the GCP ground coordinates are corrected by the ground oset found between the images. 4. The process is iterated with the corrected set of GCPS until convergence of the ground oset correction. This function (Aerial Imagery or Satellite Imagery-> GCPS Optimization -> GCP Optimization) opti- mizes a raw image GPCS with respect to a reference orthorectied image to achieve a good co-registration (Fig. 7). 1. Raw Image: Select the raw image whose GCPS are going to be optimized. 2. Reference Image: Select the orthorectied image onto which the raw image will be co-registered. This image corresponds generally to the rst orthorectied image of the pair, a shaded DEM, or an external orthorectied image. The reference must be georeferenced in the UTM projection. 3. DEM: Select the DEM that will be used to correct the topographic eects during the optimization. If selected, the DEM must be georeferenced and can be of any projection. If not selected, the topography will be considered at at altitude 0 (above the ellipsoid WGS 84). It is strongly recommended to use the same DEM that was used to orthorectify the reference image as DEM errors will then be kept consistent between the two images. In case of an optimization with a shaded DEM, the DEM used should be the one used to generate the shaded DEM. 4. Ancillary/IO le: Select the ancillary le (for satellite) or the Interior Orientation le (for aerial) of the raw image. 5. GCPS/tie points/ICP: GCPS: A GCPS le is the most exible option. This is a le (Fig. 6) whose format is longi- tude (decimal degree) latitude (decimal degree) altitude (meter) X (pixel) Y (pixel) SNR (0 to 1) OPTI (0 or 1) DX (meter) DY (meter) DZ (meter) and contains at least three GCPS (obtained generally from the Tie points to GCPS tool (Sec. 6.2)). SNR represents the weight of the GCP (between 0 and 1). If the condence is similar for all points, all SNR should be equal and dierent than zero. OPTI is a ag indicating whether the GCP is going to be optimized (1) or not (0). A GCP with the OPTI ag set to 0 will be accounted for during the computing of the EO (aerial) or Look Angle correction (satellite) but not optimized. A typical example where GCPS should not be optimized would be some GPS points located precisely, whereas others GCPS are coarsely estimated. Another example would be a feature clearly recognizable between the reference image and the raw image (during tie points selection) but with a surrounding of 18 Figure 7: GCPS optimization parameters selection tool poor quality content that may biased the correlation if optimized. Although rarely used, this option can be useful when dealing with heavy snow or heavy cloud cover. DX, DY, DZ are used to account for a ground displacement sustained at the GCP location. They refer respectively to the displacement in Easting, Northing and Elevation in meter (currently the Elevation displacement is not used). If values are entered, the GCP will be optimized in order to co-register the images while accounting for the displacement entered at the GCP location. Tie points le: This is a le whose format is x (ref ) y (ref ) x (raw) y (raw), and is usually generated with the ENVI tie points selection tool (Sec. 6.1) or edited manually. The reference image and raw image used for the tie points selection must be the same as the ones entered in the GCPS optimization windows. Tie points will be converted to GCPS prior to optimization. Note that if the tie points le is edited manually, pixels coordinates contained in the le must be expressed with the convention where the rst pixel coordinates are (1,1) to stay consistent with the ENVI points selection process. ICP: Image Control Points. This option is available only for satellite imagery. It is a le whose format is x (raw) y (raw). The points do not need to be tied to a reference image as the ancillary data are accurate enough to locate them geographically. Points will be converted to GCPS prior to optimization. This option can be used with SPOT 5 but is not recommended with SPOT 1-4 and ASTER images. Unlike the tie points le, pixels coordinates must be expressed in a coordinates system where the rst pixel coordinates are (0,0). Note that the weighting of the GCPS, the OPTI ag, and the DX, DY, and DZ elds are only available through the use of a GCPS le (and not a tie points or ICP les). 19 6. Optimization Options: (a) Nb Iterations: Number of loops that will be executed to optimize the GCPS. 5 loops are usually enough to reach stable convergence. If the optimized GCPS le report shows that the convergence is not reached, the process should be continued. Continuation of the process can easily be done by giving as GCP input le the output le where convergence is not reached. (b) Resampling kernel: Select the resampling kernel that will be used to resample the raw images patches. This option is similar to the one described in (Sec. 8.2). (c) Correlator engine: Select the correlation method used to correlate the patches and retrieve the displacements to correct. Usually a window size of 128 or 256 pixels is used. It will allow for a good co-registration on the long wavelengths. The statistical correlator is advised when the reference image is the shaded DEM, whereas the fequential correlator is advised when the reference image is an orthorectied image. For more information on the correlator engines and their options, see Sec. 9 (d) Weight GCP with correlation SNR: If checked, GCPS will be weighted with the correlation SNR of the previous loop. This allows to give more weight on GCPS whose patches have a better correlation. For the initialization, GCPS will be assigned the SNR read from the GCPS le or assigned an equal SNR in case of tie points and ICP les. If not checked, GCPS will be constantly weighted with the SNR from the initialization. (e) Dynamic display of optimization: If checked, a graphic window displaying the successive patches will be displayed as the optimization goes. This allows for a visual check of the patches that are correlated. For instance, it is a convenient way to check that GCPS have not been chosen too close to the images borders. 7. Optimized GCPS: Select the lename of the optimized GCPS that will be created. The Select All button allows you to select successively all the les necessary. Besides the optimized GCPS, the output le will also contain a record of the les and parameters used, as well as information on the optimization. The average and standard deviation of the mis-registrations, in each North/South and East/West component, are recorded at each iteration. This allows to check the convergence of the process and the quality of the GCPS generated. A residual misregistration as small as possible is desired. Note that if the GCPS were optimized with a Tie Points le, the x and y pixel coordinates of the optimized GCPS are minus 1 compared to the initial coordinates. COSI-Corr is using a pixel coordinates system originating at (0,0), unlike ENVI, which starts at (1,1). 8 Orthorectication and Resampling This function will orthorectify an image (Aerial Imagery or Satellite Imagery-> Orthorectication/Resampling). It is composed of two steps: The pixel mapping between the raw image and the futur orthorectied image, and the resampling of the image according to the mapping. Usually those two steps are processed together one after the other. If you want to process only one of the two, uncheck the unwanted task. 8.1 Orthorectication This step constructs the mapping matrices between the raw and the orthorectied image (Fig. 8). 1. Ancillary data le (satellite), or IO le (aerial): Select the data le corresponding to the image to orthorectify. 2. EO or GCPS le (aerial), or GCPS le (satellite) 20 Figure 8: Orthorectication tool Aerial image: Select the EO le or the GCPS le. In case of GCPS le, the EO will be computed prior to the matrices computation. Satellite image: Select the GCPS le. If not selected, the orthorectication will only use the ancillary data le to orthorectify the image. The accuracy will therefore depends on the satellite ancillary data accuracy. 3. DEM: Select the DEM le to account for the topography. The le must have a valid map information and can be in any projection. If not entered, the orthorectication will take place assuming a at topography at altitude 0 (above the ellipsoid WGS 84). 4. Map Grid: Dene the ground grid on which the image will be projected. Currently, only the UTM projection is supported. The hemisphere (North or South), the UTM zone (1 to 63), the top left and bottom right grid corners coordinates, and the ground resolution must be dened during this step. Three options are available to dene the grid : From Raw image: Select the spatial subset in the raw image to dene the ground grid onto which orthorectify the image. From Georeferenced image: Select an existing georeferenced image to dene the grid. The georeferenced image must be in UTM projection. The UTM zone, hemisphere, and resolution will be retrieved from the image map information. The top left and bottom right coordinates will be retrieved from the spatial subset. This option is useful when orthorectifying the second image of a pair as it retrieves the grid information of the rst orthorectied image. Manual Edit: Select/modify manually the grid. The From Raw Image option proposes the UTM zone in which the top left corner of the image is lying. If the image is between two UTM zones and that this automatic selection is not adequate, the Manual Edit is required. 21 Note: In the Grid Parameters window, the button Adjust grid to be multiple of resolution forces the grid corners to be multiple of the ground resolution selected. This action should always be performed to make sure that all orthorectied images are later compared from the same grid, i.e., within the same reference frame. 5. Mapping Matrices: Select the name of the matrices le to create. The name, when entered, is directly reported to the matrices le name in the resampling GUI. 8.2 Resampling Figure 9: Resampling parameters selection tool The resampling reconstructs the image according to the mapping matrices dened previously (Fig. 9). 1. Image: Select the raw image to resample. 2. Mapping Matrices: Select the mapping matrices le name that were dened during the orthorecti- cation. If the matrices are to be computed, the matrices name is directly completed when entering the orthorectication parameters. 3. Options: Three resampling kernels are available. Bilinear, Bicubic and Sinus Cardinal (Sinc). The bilinear and bicubic kernel do not accept any parameters and are much faster than the Sinc. The Sinc however accepts parameters and is more precise than the two other kernels. It is recommended to use the Sinc kernel for an improved resampling quality and ultimate correlation. The available Sinc kernel options are the following (Fig. 10): Kernel Size: Number of zero crossings + 1 of the Sinc kernel. A size (odd) between 11 and 25 is usually sucient. Smaller sizes can be used for coarser quality but faster processing. Kernel Weighting: The theoretical Sinc kernel has an innite length. Due to the kernel trunca- tion, some ringing eect due to the Gibbs phenomenon are introduced in the reconstructed image. 22 Figure 10: Sinc kernel parameters If checked, kernel edges are tapered down to remove the truncation discontinuities. Please note that the weighting performed will not be appropriate if you choose a kernel size larger than 25. Resampling Distances: They dene the kernel lobes size in pixels and are dened from the mapping matrices (Leprince et al. (2007)). If left empty, they are computed on the footprint of the image only and are ltered at 99.5% to discard outliers, if any. Subset resampling distance area: This option allows you to select a subset (on the matrices) on which to compute the resampling distances. If selected the subset is dened geographically through the spatial selection of a georeferenced le. Usually, the area is dened from the DEM as corrupted resampling distances areas come from error/gap/outlier/non-coverage in the DEM. Note: The tool Tools -> Matrices Interdistances can be used to compute and check the resampling distances (Sec. 10.6) before resampling. 4. Resampled Image: Select the name of the resampled image that is going to be reconstructed from "Image" according to the "Mapping Matrices". 9 Correlation and Displacement Measurements Figure 11: Correlation parameters selection tool 23 This function (Correlation) correlates two images and provides a map of the relative displacements (Fig. 11). 1. Pre-event Image: Select the rst image of the pair. This image is considered the reference. 2. Post-event Image: Select the second image of the pair. The correlation result provides a displacement eld using the convention eastward and northward positive. This displacement eld is the horizontal ground displacement that should be added to the pre-event image to retrieve the post-event image. 3. Correlator engine: Select the correlator engine. Currently two correlators are available: frequential (Sec. 9.1), and statistical (Sec. 9.2). The frequential correlator is Fourier based and is more accurate than the statistical one. It should be use in priority when correlating optical images. However this correlator is more sensitive to noise and is therefore recommended for optical images of good quality. The statistical correlator maximizes the absolute value of the correlation coecient and is coarser but more robust than the frequential one. Its use is recommended for correlating noisy optical images that provided bad results with the frequential correlator, or for correlating images of dierent content such as an optical image with a shaded DEM. 4. Correlation File: Select the name of the correlation le to be created. If both images are georeferenced with the same projection and resolution, the georeferencing is accounted for, and only the geographic overlapping part is correlated. Otherwise, the correlation is pixel based. 9.1 Frequential Correlator Figure 12: Frequential correlator parameters The parameters for the frequential correlator are (Fig. 12): 1. Window Size: Size in pixels of the sliding window that will correlate the images. The size should be a power of two. The frequential correlator can be used in two modes: (a) The simple mode where a unique window size is specied. Leave the minimum window size eld empty (to (for multiscale)). (b) The multi-scale mode. The multi-scale correlator accepts a maximum and a minimum window size. Patches with the largest window size are correlated rst, and if the correlation succeeds, it is re-executed on patches with decreased size (power of two) and accounting for the displacement previously found. The process is iterated until the minimum window size is reached, or until the correlation fails. In this last case, the measurement found from the previous larger size is kept and the process moves on to the next patches. The multi-scale correlator is mostly useful under two situations: 24 When the displacements to estimate are greater than half the window size. In that situation, the correlator cannot determine the displacements. Use the mutli-scale correlator to set up a large window size which will be larger than two times the expected displacement, and a small size to the minimum acceptable window size in term of noise. When the noise in the image is not uniformly distributed. Using the multi-scale correlator will allow to retrieve displacement in noisy areas (with large windows) and still use small windows in less noisy areas. It is customary to select the smallest window size that will provide a reasonable amount of noise (from experiment, a window size of 3232 pixels is the minimum, and with good quality images, a window size of 3232 or 6464 usually yields good results) as it will increase the density of totally independent measurements. 2. Step: This parameter determines the step, in pixels, between two sliding windows. If the step is greater or equal to the window size, then all measurements will be independent. 3. Robustness Iteration: Number of times per measurement the frequency mask should be adaptively re-computed. The mask contributes in reducing the noise on the measurements. 2 to 4 iterations is satisfying in most cases Leprince et al. (2007). 4. Mask Threshold: Allows the masking of the frequencies according to the amplitude of the log-cross- spectrum. A value close to unity is appropriate in most cases. See Leprince et al. (2007) for more details. 5. Resampling: Patches to correlate are relocated from sinc resampling. This option theoretically elim- inates most of the biases at the sub-pixel scale. If used, the processing time is greatly increased (on average by a factor of 10). However, on noisy images, its usefulness has been noticed only on a very few occasions. 6. Grided Output: Check this option if you want to obtain a displacement map that can be superimposed with other displacements maps of the same are, or that can be mosaiced exactly. 9.2 Statistical Correlator Figure 13: Statistic correlator parameters The parameters for the statistical correlator are (Fig. 13): 1. Window Size: Size in pixels of the patches that will be correlated. 2. Step: This parameter determines the step, in pixels, between two sliding windows. If the step is greater or equal to the window size, then all measurements will be totally independent. 3. Search Range: maximum distance in pixels where the displacements to measure are to be searched. 25 4. Grided Output: Check this option if you want to obtain a displacement map that can be superimposed with other displacements maps of the same are, or that can be mosaiced exactly. 10 Tools 10.1 Non Local Means Filter This tool (Tools -> Non-Local Means Filter) is an implementation of the Non-Local Means algorithm for denoising datasets and images. This algorithm (Buades et al. (2008)) and its derivatives (Buades et al. (2006),Goossens et al. (2008),Zimmer et al. (2008)) have demonstrated an exceptional ability to preserve ne detail while reducing additive white Gaussian noise. The most common application of the non-local means algorithm is to the restoration of digital images. The implementation provided here extends the method to denoising of scientic data sets in general. A number of modications to the original lter have been introduced in the literature. We have chosen to implement modications proposed in (Buades et al. (2006), Goossens et al. (2008)). Major features of our implementation include: Highly optimized native code that transparently and automatically exploits parallelism and media extension instructions for rapid processing of data sets (SIMD instruction set). Optional use of signal-to-noise weighting metrics for enhanced denoising. Ability to account for the presence of missing values (NaN) present within the input data set. 10.1.1 Filter Process The non-local means algorithm lters data by stepping through the data set one value at a time. At each data point, a small region of surrounding values (typically 5x5 or 7x7) is compared with other non-local regions (patches) of the same size. A larger region around the central patch is used as the search area. The ltered value is computed as an average of the values within the search area, weighted by their measure of similarity with the patch centered at the pixel to be ltered. This approach has the eect of preserving true signals and features. 1. See 2.3 for lter installation (available only under Microsoft Windows platforms). 2. Bands to lter: Load one or more bands to be ltered (Fig. 14). 3. SNR le(optional): A band weighting (signal-to-noise ratio) can be selected and applied during ltering. The SNR le must have the same spatial size as the bands to be ltered, should be oating point values comprised between 0.0 and 1.0, and will be applied to all bands selected. 4. Upon loading, the bands have been automatically assigned default lter parameters (see 10.1.2, 10.1.3 for parameters details). Each band is associated with its own set of lter parameters and can therefore be processed with a set of data-specic parameters (if the user wishes). Clicking on a band name in the band list causes the parameter controls to be updated with that bands particular parameter set. NOTE: The user must supply a noise parameter for each band since this parameter has no default value. All other parameters may be left at their default settings if so desired. 5. Filtered bands le: Select the name of the ltered bands output le. The ltered bands are automat- ically assigned the same names as the originals, but in addition have _NLMltered appended to the end of them. In addition, the header le will list the lter parameters for each band. NOTE: During processing, the ENVI/IDL user interface is unresponsive. A progress bar is displayed that increments after each band has been ltered. 26 Figure 14: Non-Local Means Filter 10.1.2 Filter Parameters (Fig. 14) H (noise parameter): This number is used to control the degree of denoising and is proportional to the standard deviation of the noise. A common value for H is between 0.5 and 2 times the standard deviation of the noise, and it depends on the other parameters selected. The stronger dependencies are on the weighting type (Standard, Bisquare, or Modied Bisquare), and on whether the center data point is omitted or not, in the advanced parameters. With the default parameters, a value of H close to 1.6 times the noise estimated standard deviation is a good estimate. This parameter does not have a default value. Therefore the user MUST supply a noise parameter for each band prior to running the lter. The noise standard deviation can be estimated from the image local statistics, observed over areas with presumably constant values. The ENVI ROI tools can be conveniently used to this end. Search area dimension: This number refers to the dimensions of the search area around each data point. Since the shape of the area is xed as a square, the user need only supply one value indicating the dimension of the side. For example, if the user enters 17 this instructs the application to use a search area of size 17 x 17 pixels. The default value is 21, corresponding to a search area of 21 x 21 data points. This value must be an integer smaller than the smallest data set dimension. CAUTION: Large search areas will cause the application to be unresponsive for long periods of time. In general, areas sizes from 21 x 21 to 41 x 41 pixels produce good results at acceptable execution times. Patch size: This selection refers to the dimension of the square patch used to characterize the area sur- rounding each data point. The choices are limited to 5x5 or 7x7. The default selection is 5x5. Weighting method: This selection refers to the method by which the nal value is ultimately computed. 27 Averaging: The denoised value is determined by a simple weighted average of the pixels comprised in the search area. This is the default setting. Linear regression: The denoised value is determined by weighted linear regression of the pixels within the search area. 10.1.3 Advanced Filter Parameters (Fig. 15) Figure 15: Non-Local Means Filter Advanced Parameters Minimum weight value: Only used if the Linear regression weighting method is selected, otherwise it is ignored. Only weights above this threshold will be counted in the minimum number of weights computation. This sanity check ensures that very small weights are not counted as part of a valid averaging. The default value for this eld is 0.1. This value must be a oating point between 0.0 - 1.0. The closer this parameter is to zero, the more the linear regression ltering will occur, with the risk of tting the noise for pixels with very few similar patches in the search area. The closer this parameter is to one, the less the linear regression ltering will occur, defaulting to the standard averaging method. Minimum # of weights: Only used if the Linear regression weighting method is selected, otherwise it is ignored. Minimum number of weighs above the minimum weight value threshold so that the Linear regression ltering can occur. Otherwise, the ltering method defaults to the averaging ltering method. This condition avoids tting the noise when only very few signicant weights exist in the search area. This parameter therefore only makes sense if it is larger than three. If it is too large, linear regression ltering tends to occur less, defaulting to the standard averaging method. Center data point: Indicates whether or not the center data point (i.e., the data point being ltered) is included in the weight calculation. The default condition is to omit the center data point in the weighting calculation. Noise parameter: Indicates whether the noise parameter H is xed at the user supplied value. Otherwise, an adaptive algorithm (Zimmer et al. (2008)) is used to select the noise parameter at each ltering point. This adaptive method works poorly and it is not advised to use it, but it is left here for further tests and developments. Weighting type: Refers to the way the local weights relate to the patches similarity measurements. 28 Standard: Computes the patch weights according to a Gaussian distribution (Buades et al. (2008)). Bisquare: A modied form of Standard with a nite taper and steeper fall-o (Goossens et al. (2008)). Modied Bisquare: A modied form of Bisquare but with even steeper taper and fall-o (Goossens et al. (2008)). The Standard (i.e. Gaussian) and the Bisquare methods have proven to be the most useful in our tests. Note that for a given noise level in an image, a particular value of H has to be selected for each method. NOTE: The denoising results provided by the lter, using the default parameters may not be appropriate for a given data set. In these cases the results will be sub-optimum and it becomes necessary to modify the optional parameters so as to achieve optimum denoising. Any combination of parameters is possible, with the following two exceptions: Minimum weight value and Minimum # of weights. These two parameters only take eect if the user has selected Linear as the weighting method. Otherwise they are ignored and changing their values will not aect the results. To speed-up parameters adjustment during trials and errors, note that a spatial subset of the image to be ltered can be selected. Then the lter is only applied on this image subset. 10.2 Discard/Replace Image Values Figure 16: Band parameters selection tool for image ltering This tool (Tools -> Filter Image Values) allows you to lter and change pixel values in an image based on their values. The le can contain several bands. Typically, this function is used to lter out outliers or values with a weak SNR in a correlation le. 1. Select the le and the bands of interest. Non selected bands will not be changed. 2. For each band selected, enter the minimum, maximum and replace values (Fig. 16). 3. Select a le name if you want to save the ltered le on the disk or leave the eld empty for in-memory load. Every pixel in the band whose value is smaller than the minimum or larger than the maximum will be assigned the replace value. Note that for a pixel in a band changed, pixel at the same location in the other bands selected will be changed too by their respective replace value. Note: This function is not internally tiled, which means that it can only be used with les whose size are reasonable compared to the available dynamic memory. 29 Figure 17: Destripping tool selection 10.3 Destripe Image This tool (Tools -> Destripe Image) allows you to remove parallel stripes and undulations in an image. A typical use for this tool is the removal of undulation artifacts in a correlation image due, for example, to an uncorrected attitude like an oscillating pitch or a CCD array artifact in ASTER or SPOT images. The main idea is to average the artifact by stacking and subtracting the average to the image. Two functions are available and are described below. The Manual Orientation allows to destripe any image, but the user need to supply manually the rotation angle necessary to align vertically the undu- lations/stripes to remove. The Automatic Orientation denes automatically the ane transformation necessary to align the undulations/stripes before performing the stack. The transformation is dened from the ancillary le and GCPS le (optional) of the image responsible for the undulations/stripes. 10.3.1 Manual Orientation 1. Image to dene correction from: Select the bands (usually only the EW and NS bands) from which the correction will be dened (Fig. 17). 2. Angle to rotate image: The stripes stacking is operated vertically. If the stripes are not vertical, the image must be rotated to align vertically the stripes. Enter the rotation angle (degree) necessary to align the stripes vertically. Tip: the ENVI rotate tool (Basics Tools->Rotate/Flip Data) can be used rst to determine precisely the angle. 3. Image to apply the correction to (if dierent): If the corrections are meant to be applied to a le dierent than the one they are determined from, select it accordingly. It must be of the same size, with the same number of bands that the le used to determine the correction. A typical case is when a denoised and smoothed correlation le is used to determine the stripes correction, but the correction 30 is applied to the raw correlation le. If this eld is left empty, the correction will be applied to the le from which the correction is determined. 4. Corrected File: Select the lename to create if you want to save it to the disk. Otherwise, leave the eld empty for in memory computation, but keep in mind the size of the image in regards to the available dynamic memory. 5. Click OK 6. After a short computing time, a rotated image with the undulations aligned vertically will be loaded in memory. Select the le and select the spatial subset that will be stacked to determine the correction (Fig. 18). The same spatial subset will be stacked on each selected band. 7. Click OK 8. The output image will be the original le with the selected band corrected. The correction applied to the bands is appended as additional bands at the end of the le. The non selected bands remain unchanged (Fig. 19). 10.3.2 Automatic Orientation 1. Image to dene correction from: Select the bands (usually only the EW and NS bands) from which the correction will be dened. 2. Ancillary le of one image: Select the ancillary le of the image causing the undulations to be removed. 3. GCPS le(if any): Select the GCPS le (if any) that was used to orthorectify the image. This is an optional parameters. 4. DEM le(if any): Select the DEM le (if any) that was used to orthorectify the image. Attention, the DEM must be valid on the entire image area. This is an optional parameters. 5. Stripes/undulations direction: Select whether the artifacts to removed are oriented cross-track or along-track. For example, attitude undulations will cause artifacts in the cross-track direction, whereas a CCD artifact will cause along-track stripes. 6. Image to apply the correction to (if dierent): If the corrections are meant to be applied to a le dierent than the one they are determined from, select it accordingly. It must be of the same size, with the same number of bands that the le used to determine the correction. A typical case is when a denoised and smoothed correlation le is used to determine the stripes correction, but the correction is applied to the raw correlation le. If this eld is left empty, the correction will be applied to the le from which the correction is determined. 7. Corrected File: Select the lename to create if you want to save it to the disk. Otherwise, leave the eld empty for in memory computation, but keep in mind the size of the image in regards to the available dynamic memory. 8. Click OK 9. After a short computing time, a transformed image with the undulations aligned either horizontally or vertically will be loaded in memory. Select the le and select the spatial subset that will be stacked to determine the correction. The same spatial subset will be stacked on each selected band. 10. Click OK 11. The output image will be the original le with the selected band corrected. The correction applied to the bands is appended as additional bands at the end of the le. The non selected bands remain unchanged. 31 Figure 18: Destripping tool stacking area denition 10.4 Vector Field This tool (Tools -> Vector Field) displays a vector eld based on displacement maps or ASCII les. Loading Data: To load data in the Vector Field tool, do File -> Open. Two kinds of data can be entered: ENVI File: When selected you will be prompted to enter the E/W band and N/S band successively of a displacement map to construct the vector eld. The E/W and N/S band selected (and their subset) must be of the same size and must be georeferenced. A typical entry is a correlation le. TXT File: An ASCII le which must be of the form Easting Northing DEasting DNorthing. DEasting and DNorthing refer to the vector value in Easting and Northing directions at the location indicated by Easting and Northing. A typical entry is a GPS measurements le. Note that additional data (from ENVI le or TXT le) can be added to the vector eld display, but the ground footprint of the display will be determined by the rst data entered. Vector Tool Select Processing -> Tool Gui. The vector eld graphic options available are the following (Fig. 20): Graph Title: Enter the title of the vector eld display. Maximum vector value: Enter the maximum value of the displayed vectors. Vectors of superior values wont be displayed. 32 Figure 19: Destripping tool corrected image Ratio Arrow Length: Ratio to control the length display of the vectors. Unit: Enter the unit name that is displayed on the vector eld legend. Vector Field Options: The list displays all the data entered on the current display. Select the entry of interest to have access to the following options: Vector Field Name: Select the name that will be displayed in the list. Average Window Size: Option available only to ENVI data les. Determines the window (odd size) centered on the vector location to average the values in the le. Step: Option available only to ENVI data les. Step in pixel between two displayed vectors. Performs the decimation of a displacement eld if more than 1. Line Thickness: Ratio to determine the thickness of the displayed vectors. Note: Saving the vector eld as an ENVI Layer will not work in ENVI 4.0 due to an internal ENVI error. 10.5 Stacking Proles In the context of seismotectonics this tool (Tools -> Stacking) allows to stack proles across the fault on the correlation le to retrieve the fault step. Prior to stacking proles, a mapping of the fault is necessary: 1. Using the ENVI ROI tool with the polyline selection option (ROI_Type->Polyline), map precisely the fault. Once the fault is mapped, save the ROI using File->Output ROIs to ASCII. 2. Take note of the fault origin pixel coordinates (using the Cursor Location/Value tool), as it will be needed for the fault orientation. 33 Figure 20: Vector eld tool - Displacement eld of the 1999, Taiwan, Chichi earthquake form a pair of SPOT images. 10.5.1 Orient Fault This step (Tools -> Stacking -> Orient Fault) will rearrange the data contained in the fault prole le retrieved from the ROI tool. This process is necessary for two reasons. First reason, practical, is the necessity to reorder the fault points to physically follow the fault (the ENVI ROI tool save the points line-wise). The second reason is to dene the origin of the fault, as it will dictates the fault orientation for measurements made parallel and normal to the fault. The parameters are the following: 1. Fault Trace (ROI Ascii File): Select the le generated with the ROI tool when mapping the fault. 2. Fault Origin: Enter the X and Y pixel coordinates of the rst point of the fault (given by the "Cursor Location/Value" tool). If not selected, the rst pixel found in the fault trace le will be considered the fault origin (which will be the top pixel (line-wise) of the fault trace). 3. Oriented Fault File: Select the oriented fault prole le name to be created. 10.5.2 Stack This tool (Tools -> Stacking -> Stack) manages the stacking boxes and resulting proles (Fig. 21). A stacking box is dened by its width and length which are expressed in pixels and must be odd. The box is centered on a pixel belonging to the fault. For each selected bands, proles in the box length direction are retrieved and stacked. The resulting prole is displayed and the oset at the fault position can be measured using linear t on the resulting prole. Stacking Box Initialization: Boxes can be initialized using Options->Initialize Prole, and/or can be added or deleted one by one using the Add and Remove buttons. Size and center position of the selected box can be changed with Stack Length (odd) and Stack Width (odd) elds, and Position on fault buttons. The simple arrow button moves the box center to the next pixel on the fault whereas the double arrows button moves to the next 20ieth pixel on the fault. 34 Figure 21: Proles stacking tool Stacking Boxes Visualization: To visualize the stack boxes, select View->Stack Visualization, and open the ROI tool as stack boxes are displayed through the ENVI ROI tool. Close all open ROIs before visualizing the stack boxes as open ROIs will be rst deleted. Prole projection: By default, proles are in the le band projection, i.e. in the E/W and N/S projection for a regular correlation le. Proles can also be projected in the fault parallel and fault normal directions, using Options->Proles Projection. It is assumed for the Parallel-Normal projection to receive a two or more bands le with rst and second bands representing the E/W and N/S displacements (a correlation le typically). For each stacked prole, the t range can be customized on the left and right part of the prole as well as on the available bands. The range can be changed by moving the green rulers with the mouse or by entering range values in the appropriate elds. Output: A stack project can be saved/restored using File->Save Stack/Restore Stack. Note that only the stacks size, positions, and t ranges will be saved. You will be asked to enter the image and fault le when restoring. When done with adjusting the proles, two options are available to export them: File->Export->Fault Displacement will save the fault oset measure location (geographic coordi- nates), its values (E/W-N/S or Parallel-Normal depending on the chosen projection), and the sigmas. File->Export->Full Stack Information will save in addition the details of each stacks (box size, proles stacked, . . . ). The possibility of weighting the sigmas is oered before exporting the data. For example if the measures in the correlation le are not totally independent, the sigmas must be weighted accordingly in order to correctly reects the sigma on the oset measures. 35 Figure 22: Matrices Interdistances tool 10.6 Matrices Interdistances The matrices interdistances tool (tools -> Matrices Interdistances) computes the resampling distances (Leprince et al. (2007)), which provide the width of the Sinc lobes in the x and y directions, and represent the maximum absolute dierence between adjacent pixel values in the mapping matrices. They can be seen as the maximum ratio between the ortho-rectied image resolution and raw image nominal resolution. For example, if a 5 m image is to be ortho-rectied onto a 10 m grid, a ratio around 2 is expected. If the ratio found is outrageously large, i.e. larger than the nominal ratio + 1 = 3 in our example, this most likely traduces an ortho-rectication problem, such as unphysical values in the DEM le. Make sure that the DEM does not contain missing values encoded as -32767, for example. All DEM elevations should be within a physical range, and interpolated values should be preferred over missing values. 1. Matrices: Select the matrices le of interest. 2. Area of interest in image 1A: By default the resampling distances will be computed on the whole matrices. This button will allow you to select the image 1A subset onto which compute the resampling distances. The subset can also be selected manually. 3. Distances returned %: The resampling distances used during the resampling allow to control the amount of aliasing introduced. Theoretically, to completely avoid aliasing, the largest interdistances must be taken as the resampling distances. However, the matrices interdistances values may be cor- rupted by some outliers due to some DEM errors/missing values. As a consequence, matrices inter- distances can be ltered out by entering the percentage of values to consider. A value of 100% will return the largest interdistance found, for each X and Y dimension. If the resampling distances are computed on the y during the resampling process, an automatic lter at 99.5% is set. This allows to lter out distances (the 0.5% larger distances are discarded) corrupted by outliers and, in the case of no outliers, to let through only a small amount of aliasing. 4. Click OK. The computed resampling distances will be printed in the IDL output window. 11 Miscellaneous A queue manager is available in COSI-Corr to allow batch processing. An unlimited amount of tasks can be queued and will be processed on a rst selected, rst processed basis. When selecting data for a process to be queued, the data to be selected may not exist yet (for example when it is supposed to be computed in a task queued before). Depending on the type of data to be selected: ENVI le: Click on Cancel. A regular le selector will be displayed. Enter the name at the correct path location of the le to be created. Note that in this situation, spatial and spectral 36 subsetting are not possible. If no regular le selector is displayed, the le must then exist at the current time. Other: Enter the name at the correct path location of the le to be created. Do not open more than one COSI-Corr window at a time (except for the queue manager window), as crash will occur otherwise. In case of an ENVI blocking crash (due to more that one COSI-Corr window opened, bug, . . . ), enter in the IDL command line: retall and press enter. It will most of the time unblock ENVI. If not, you may have to restart ENVI. COSI-Corr has been designed to be accurate in its computation, and processes can therefore be long, especially the orthorectication and the correlation. Examples of processing times are given in Table 11. Processes were computed on a Pentium 4 Xeon 3.2 GHz, 2Gb RAM PC using Windows XP Pro and ENVI 4.0. ENVI Cache and tile size were set to 250Mb and 40Mb respectively. 37 Task Process Timing SPOT 5 Ortho/Resampling 5 m 14300 14400 pixels grid 7 h0 mn SPOT 4 Ortho/Resampling 10 m 7200 6900 pixels grid 1 h58 mn Correlation 11200 10800 pixels images (698 675 measures) 36 mn WinSz:32, Step:16, Mask:0.9, NbRobIter:2, No resamp Correlation 11200 10800 pixels images (698 675 measures) 2 h19 mn WinSz:64, Step:16, Mask:0.9, NbRobIter:2, No resamp Table 1: Processes computed on a Pentium 4 Xeon 3.2 GHz, 2Gb RAM PC using Windows XP Pro and ENVI 4.0 References S. Leprince, S. Barbot, F. Ayoub and J.P. Avouac, Automatic and Precise Ortho-rectication, Coregistration, and Subpixel Correlation of Satellite Images, Application to Ground Deformation Measurements, IEEE Trans. Geosci. Remote Sensing, vol. 45, no. 6, pp 1529-1558, 2007 F. Ayoub, S. Leprince and J.P. Avouac, Co-registration and Correlation of Aerial Photographs for Ground Deformation Measurements, submitted 2007. N. Van Puymbroeck, R. Michel, R. Binet, J.P. Avouac and J. Taboury, Measuring earthquakes from optical satellite images, Applied Optics, vol. 39, no. 20, pp. 3486 to 3494, 2000. P. R. Wolf and B. A. Dewitt, Elements of Photogrammetry with Applications in GIS, 3rd ed. Mc Graw Hill, 2000. A. Buades, B. Coll and J.M. Morel, NonLocal Image and Movie Denoising, International Journal of Com- puter Vision, vol. 76, no. 2, pp. 123 to 139, 2008. A. Buades, B. Coll and J.M. Morel, The staircasing eect in neighborhood lters and its solution, IEEE transactions on Image Processing, vol. 15, no. 6, pp. 1499 to 1505, 2006. B. Goossens, H. Luong, A. Pizurica and W. Philips, An Improved Non-Local Denoising Algorithm, Pro- ceedings of the 2008 International Workshop on Local and Non-Local Approximation in Image Processing, Lausanne, Switzerland, 2008. S. Zimmer, S. Didas and J. Weickert, A Rotationally Invariant Block Matching Strategy, Improving Image Denoising With Non-Local Means, Proceedings of the 2008 International Workshop on Local and Non- Local Approximation in Image Processing, Lausanne, Switzerland, 2008. 38