Pragmatic Remote Sensing a Hands-On Approach to Processing
Total Page:16
File Type:pdf, Size:1020Kb
Pragmatic Remote Sensing A Hands-on Approach to Processing J. Inglada1 , E. Christophe2 1CENTRE D’ÉTUDES SPATIALES DE LA BIOSPHÈRE,TOULOUSE,FRANCE 2CENTRE FOR REMOTE IMAGING,SENSING AND PROCESSING, NATIONAL UNIVERSITY OF SINGAPORE This content is provided under a Creative Commons Attribution 3.0 Unported License IGARSS 2010, Honolulu Table of Contents 1. General introduction 2. Pre-processing 2.1 Geometric corrections 2.2 Radiometric corrections 3. Feature extraction 4. Image classification 5. Change detection IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Pragmatic Remote Sensing A Hands-on Approach to Processing J. Inglada1 , E. Christophe2 1CENTRE D’ÉTUDES SPATIALES DE LA BIOSPHÈRE,TOULOUSE,FRANCE 2CENTRE FOR REMOTE IMAGING,SENSING AND PROCESSING, NATIONAL UNIVERSITY OF SINGAPORE This content is provided under a Creative Commons Attribution 3.0 Unported License IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Why? Common problems I Reading images I Accessing metadata I Implementing state of the art algorithms to be able to extract the most information, we need to use ⇒ the best of what is available: data, algorithms,. IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy What When Why How What is Orfeo Toolbox (OTB)? In the frame of CNES ORFEO Program Goal Make the development of new algorithms and their validation easier I C++ library: provide many algorithms (pre-processing, image analysis) with a common interface I Open-source: free to use, to modify, you can make your own software based on OTB and sell it I Multiplatform: Windows, Linux, Unix, Mac IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy What When Why How A bit of History Everything begins (2006) I Started in 2006 by CNES (French Space Agency), funding several full-time developers I Targeted at high resolution images (Pleiades to be launched in 2010) but with application to other sensors I 4 year budget, over 1,000,000e recently renewed for 1 additional year (500,000e) Moving to user friendly applications (2008) I Strong interactions with the end-user community highlighted that applications for non-programmers are important I Several applications for non programmers (with GUI) since early 2008 I Several training courses (3/5-day courses) given in France, Belgium, Madagascar, UNESCO and now Hawaii IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy What When Why How Why doing that? Is it successful so far? I OTB user community growing steadily (programmers and application users) I Presented at IGARSS and ISPRS in 2008, special session in IGARSS in 2009 I CNES is planning to extend the budget for several more years I Value analysis is very positive (cf. Ohloh): re-using is powerful Why make a multi-million dollar software and give it for free? I CNES is not a software company I One goal is to encourage research: it is critical for researchers to know what is in the box I CNES makes satellites and wants to make sure the images are used I if more people have the tools to use satellite images, it is good for CNES IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy What When Why How How? How to reach this goal? Using the best work of others: do not reinvent the wheel Many open-source libraries of good quality I ITK: software architecture (streaming, multithreading), many image processing algorithms I Gdal/Ogr: reading data format (geotiff, raw, png, jpeg, shapefile, . ) I Ossim: sensor models (Spot, RPC, SAR, . ) and map projections I 6S: radiometric corrections I and many other: libLAS (lidar data), Edison (Mean Shift clustering), libSiftFast (SIFT), Boost (graph), libSVM (Support Vector Machines) all behind a common interface ⇒ IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Components Architecture But Monteverdi Bindings Application Currently I Image viewer I Image Segmentation I Image Classification (by SVM) I Land Cover I Feature Extraction I Road Extraction I Orthorectification (with Pan Sharpening) I Fine registration I Image to database registration I Object counting I Urban area detection I more to come IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Components Architecture But Monteverdi Bindings Components available Currently I Most satellite image formats I Geometric corrections I Radiometric corrections I Change detection I Feature extraction I Classification Huge documentation available I Software Guide (+600 pages pdf), also the online version I Doxygen: documentation for developers IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Components Architecture But Monteverdi Bindings A powerful architecture Modular I Easy to combine different blocks to do new processing Scalable I Streaming (processing huge images on the flow) transparent for the user of the library I Multithreading (using multicore CPUs) also IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Components Architecture But Monteverdi Bindings But a steep learning curve for the programmer Advanced programming concepts I Template metaprogramming (generic programming) I Design patterns (Factory, Functors, Smart Pointers, ...) Steep learning curve solution from scratch learning OTB Effort TaskIGARSS complexity 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Components Architecture But Monteverdi Bindings Ask questions As for everything: easier when you’re not alone I Much easier if you have somebody around to help! I We didn’t know anything not so long ago... I Not surprising that most software companies now focus their offer on support: help is important IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Components Architecture But Monteverdi Bindings Making it easier for the users: Monteverdi Module architecture I Standard input/output I Easy to customize for a specific purpose I Full streaming or caching the data I Each module follows a MVC pattern IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Components Architecture But Monteverdi Bindings Making it easier for the users: Monteverdi IGARSS 2010, Honolulu Introduction to the Orfeo Toolbox Applications and librairy Components Architecture But Monteverdi Bindings Bindings: access through other languages Not everybody uses C++! I Bindings provide an access to the library through other languages I Python: available I Java: available I IDL/Envi: cooperation with ITT VIS to provide a method to access OTB through idl/envi (working but no automatic generation) I Matlab: recent user contribution (R. Bellens from TU Delft) I Other languages supported by Cable Swig might be possible (Tcl, Ruby?) IGARSS 2010, Honolulu Introduction Atmospheric corrections Pansharpening Image radiometry in ORFEO Toolbox From digital number to reflectance J. Inglada1 , E. Christophe2 1CENTRE D’ÉTUDES SPATIALES DE LA BIOSPHÈRE,TOULOUSE,FRANCE 2CENTRE FOR REMOTE IMAGING,SENSING AND PROCESSING, NATIONAL UNIVERSITY OF SINGAPORE This content is provided under a Creative Commons Attribution 3.0 Unported License IGARSS 2010, Honolulu Introduction Atmospheric corrections Pansharpening Introduction Purpose of radiometry I Go back to the physics from the image 6S I Using 6S library: http://6s.ltdri.org/ I Library heavily tested and validated by the community I Translation from the Fortran code to C I Transparent integration to OTB for effortless (almost!) corrections by the user IGARSS 2010, Honolulu Introduction Atmospheric corrections Pansharpening DN to lum lum to ref ToA to ToC Adjacency effects Hands On Atmospheric corrections: in four steps DN to Lum to TOA to Adjacency Lum Refl TOC Look like a pipeline This is fully adapted to the pipeline architecture of OTB IGARSS 2010, Honolulu Introduction Atmospheric corrections Pansharpening DN to lum lum to ref ToA to ToC Adjacency effects Hands On Digital number to luminance k k X LTOA = + βk αk Goal k I LTOA is the I Transform the digital number in the incident image into luminance luminance (in 2 1 1 W .m− .sr − .µm− ) Using the class I Xk digital number otb::ImageToLuminanceImageFilter I αk absolute filterImageToLuminance->SetAlpha(alpha); calibration gain filterImageToLuminance->SetBeta(beta); for channel k I βk absolute calibration bias for channel k IGARSS 2010, Honolulu Introduction Atmospheric corrections Pansharpening DN to lum lum to ref ToA to ToC Adjacency effects Hands On How to get these parameters? From metadata I Sometimes, the information can be present in the metadata but. I the specific format has to be supported (Spot, Quickbird, Ikonos are and more on the way) From an ASCII file VectorType alpha(nbOfComponent); alpha.Fill(0); std::ifstream fin; fin.open(filename); double dalpha(0.); for( unsigned int i=0 ; i < nbOfComponent ; i++) { fin >> dalpha; alpha[i] = dalpha; } fin.close(); IGARSS 2010, Honolulu Introduction Atmospheric corrections Pansharpening DN to lum lum to ref ToA to ToC Adjacency effects Hands On Luminance to reflectance k k π.LTOA Goal ρTOA = k ES .cos(θS).d/d0 I Transform the luminance into the I rhok reflectance reflectance TOA I θS zenithal solar angle Using the class otb::LuminanceToReflectanceImageFilter k and setting parameters: I ES solar illumination out filterLumToRef-> of atmosphere at a SetZenithalSolarAngle(zenithSolar); distance d0 from the Earth filterLumToRef-> SetDay(day); filterLumToRef->