This software guide is divided into several parts, each of which is further divided into several chapters.Part I is a general introduction to OTB, with—in the next chapter—a description of how to install theORFEO Toolbox on your computer. Part I also introduces basic system concepts such as an overview of thesystem architecture, and how to build applications in the C++ programming language. Part II is a shortguide with gradual difficulty to get you start programming with OTB. Part III describes the system fromthe user point of view. Dozens of examples are used to illustrate important system features.Part IV is for the OTB developer. It explains how to create your own classes and extend thesystem.
There are two broad categories of users of OTB. First are class developers, those who create classes in C++.The second, users, employ existing C++ classes to build applications. Class developers must be proficient inC++, and if they are extending or modifying OTB, they must also be familiar with OTB’s internal structuresand design (material covered in Part IV ).
The key to learning how to use OTB is to become familiar with its palette of objects and the ways ofcombining them. We recommend that you learn the system by studying the examples and then, if you are aclass developer, study the source code. Start by the first few tutorials in Part II to get familiar with the buildprocess and the general program organization, follow by reading Chapter 3 , which provides an overview ofsome of the key concepts in the system, and then review the examples in Part III . You may alsowish to compile and run the dozens of examples distributed with the source code found in thedirectory OTB/Examples. (Please see the file OTB/Examples/README.txt for a descriptionof the examples contained in the various subdirectories.) There are also several hundreds oftests found in the source distribution in OTB/Testing/Code, most of which are minimallydocumented testing code. However, they may be useful to see how classes are used together in OTB,especially since they are designed to exercise as much of the functionality of each class aspossible.
The following sections describe the directory contents, summarize the software functionality in eachdirectory, and locate the documentation and data.
Periodic releases of the software are available on the OTB Web site. These official releases are available afew times a year and announced on the ORFEO Web pages and mailing lists.
This software guide assumes that you are working with the latest official OTB release (available on the OTBWeb site).
OTB can be downloaded without cost from the following web site:
In order to track the kind of applications for which OTB is being used, you will be asked to complete a formprior to downloading the software. The information you provide in this form will help developers to get abetter idea of the interests and skills of the toolkit users.
Once you fill out this form you will have access to the download page. This page can be bookmarked to facilitate subsequent visits to the download site without having to complete any formagain.
Then choose the tarball that better fits your system. The options are .zip and .tgz files. The firsttype is better suited for MS-Windows while the second one is the preferred format for UNIXsystems.
Once you unzip or untar the file, a directory called OTB will be created in your disk and you will be readyfor starting the configuration process described in Section 2.2.3 on page 31 .
You can also get the current version following instructions in Section 27.3.3 , on page 1138 .
It is strongly recommended that you join the users mailing list. This is one of the primary resources forguidance and help regarding the use of the toolkit. You can subscribe to the users list onlineat
The otb-users mailing list is also the best mechanism for expressing your opinions about the toolbox and tolet developers know about features that you find useful, desirable or even unnecessary. OTB developers arecommitted to creating a self-sustaining open-source OTB community. Feedback from users is fundamentalto achieving this goal.
To begin your OTB odyssey, you will first need to know something about OTB’s software organization anddirectory structure. It is helpful to know enough to navigate through the code base to find examples, code,and documentation.
OTB is organized into several different modules. There are three: the OTB, OTB-Documents andOTB-Applications modules. The source code, examples and applications are found in the OTB module;documentation, tutorials, and material related to the design and marketing of OTB are found inOTB-Documents; and fairly complex applications using OTB (and other systems such as VTK and FLTK)are available from OTB-Applications. Usually you will work with the OTB module unless you are adeveloper, are teaching a course, or are looking at the details of various design documents. TheOTB-Applications module should only be downloaded and compiled once the OTB module is functioningproperly.
The OTB module contains the following subdirectories:
The source code directory structure—found in OTB/Code—is important to understand since otherdirectory structures (such as the Testing directory) shadow the structure of the OTB/Codedirectory.
The OTB-Documents module contains the following subdirectories:
The OTB-Applications module contains large, relatively complex examples of OTB usage.description.Some of
Besides this text, there are other documentation resources that you should be aware of.
The OTB Toolkit was designed to support the ORFEO Acompaniment Program and its associated data. Thisdata is available http://smsc.cnes.fr/PLEIADES/index.htm.
OTB was created from its inception as a collaborative, community effort. Research, teaching, andcommercial uses of the toolkit are expected. If you would like to participate in the community, there are anumber of possibilities.
Beside the Pleiades (PHR) and Cosmo-Skymed (CSK) systems developments forming ORFEO, the dualand bilateral system (France - Italy) for Earth Observation, the ORFEO Accompaniment Program was setup, to prepare, accompany and promote the use and the exploitation of the images derived from thesesensors.
The creation of a preparatory program1 is needed because of :
This program was initiated by CNES mid-2003 and will last until 2010 at least It consists in two parts,between which it is necessary to keep a strong interaction :
The Thematic part covers a large range of applications (civil and defence ones), and aims at specifyingand validating value added products and services required by end users. This part includesconsideration about products integration in the operational systems or processing lines. It also includesa careful thought on intermediary structures to be developed to help non-autonomous users.Lastly, this part aims at raising future users awareness, through practical demonstrations andvalidations.
The Methodological part objective is the definition and the development of tools for the operationalexploitation of the future submetric optic and radar images (tridimensional aspects, change detection,texture analysis, pattern matching, optic radar complementarities). It is mainly based on R&D studies anddoctorate and post-doctorate research.
In this context, CNES2 decided to develop the ORFEO ToolBox (OTB), a set of algorithms encapsulated in a software library. Thegoals of the OTB is to capitalise a methological savoir faire in order to adopt an incremental developmentapproach aimin to efficiently exploit the results obtained in the frame of methodological R&Dstudies.
All the developments are based on FLOSS (Free/Libre Open Source Software) or existing CNESdevelopments.
OTB is implemented in C++ and is mainly based onITK3 (Insight Toolkit):
In 1999 the US National Library of Medicine of the National Institutes of Health awarded six three-yearcontracts to develop an open-source registration and segmentation toolkit, that eventually came to be knownas the Insight Toolkit (ITK) and formed the basis of the Insight Software Consortium. ITK’s NIH/NLMProject Manager was Dr. Terry Yoo, who coordinated the six prime contractors composing the Insightconsortium. These consortium members included three commercial partners—GE CorporateR&D, Kitware, Inc., and MathSoft (the company name is now Insightful)—and three academicpartners—University of North Carolina (UNC), University of Tennessee (UT) (Ross Whitakersubsequently moved to University of Utah), and University of Pennsylvania (UPenn). The PrincipleInvestigators for these partners were, respectively, Bill Lorensen at GE CRD, Will Schroeder atKitware, Vikram Chalana at Insightful, Stephen Aylward with Luis Ibáñez at UNC (Luis is nowat Kitware), Ross Whitaker with Josh Cates at UT (both now at Utah), and Dimitri Metaxasat UPenn (now at Rutgers). In addition, several subcontractors rounded out the consortiumincluding Peter Raitu at Brigham & Women’s Hospital, Celina Imielinska and Pat Molholt atColumbia University, Jim Gee at UPenn’s Grasp Lab, and George Stetten at the University ofPittsburgh.