Commit 1c9dafc0 authored by Manuel Grizonnet's avatar Manuel Grizonnet

Merge branch 'metadata_pixeltype' into 819-display-pixel-type-of-image-in-readimageinfo-application

parents 7dbc21cc 2cdbc0ea

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

We are ready to release OTB version MAJOR.MINOR.PATCH. The following steps need to be done:
### 1. Branches
* [ ] **(if major or minor release)** Feature freeze: [create the new release branch](
* [ ] **(if patch release)** Work on the already existing branch `release-MAJOR-MINOR`
* [ ] Make sure the version number in `CMakeLists.txt` is MAJOR.MINOR.PATCH
### 2. Housekeeping
* [ ] In this story, make a list of blocking issues for the release (if any)
* [ ] [Update dashboard scripts]( to support new version numbers
* [ ] [Update the SuperBuild archive]( (if needed)
* [ ] Update release notes (walk the GitLab MR merged history and log all improvements)
* [ ] Update the date in RELEASE_NOTES.txt
* [ ] Run Debian [spelling]( checker
* [ ] Run shellcheck script from [OTB-Devutils/Scripts/](
* [ ] [Update translation]( for Monteverdi and Mapla
* [ ] [Sanity check the binary packages](
* [ ] Windows
* [ ] Linux
* [ ] Mac
### 3. Actual release
Once all blocking issues are closed, and the previous steps are done:
* [ ] [Tag the release or RC](
* [ ] **(if major or minor release)**: Merge the release into develop
* [ ] **(if it's the latest release)**: Merge the release into master
* [ ] **(if patch release)**: Backport fixes
* [ ] Update GIT_TAG for all official remote modules (if needed)
### 4. Publish and plan next release
* [ ] [Prepare and upload source packages](
* [ ] [Promote nightly packages](
* [ ] [Update documentation](
* [ ] Software Guide
* [ ] Cookbook
* [ ] Doxygen
* [ ] Application online documentation
* [ ] WordPress page "Home" and "Download" pages
* [ ] Upload OTB source archive to [Zenodo]( to create a unique Digital Object Identifier (DOI)
* [ ] Update OTB-Data-Examples.tgz on orfeo-toolbox (packages)
* [ ] Send email to mailing list to announce the release
* [ ] Release announcement on the blog
* [ ] Announcement on social networks (twitter, google+)
* [ ] Forward announcement to ([OSGeo news](
* [ ] Plan the next release (nominate new release manager, setup PSC meeting on IRC)
* [ ] Contact QGis processing plugin maintainer to update XML description for new OTB-Applications (or [supply it](
* [ ] Remove public branches related to MR or bugfix merged before the release
/label ~story
......@@ -117,8 +117,6 @@ macro(otb_create_application)
CACHE STRING "List of all applications" FORCE)
......@@ -23,7 +23,8 @@ cmake_minimum_required(VERSION 3.1.0)
CMP0025 # CMake 3.0
CMP0042 # CMake 3.0
CMP0058 # CMake 3.3
CMP0072 # CMake 3.11
if(POLICY ${p})
cmake_policy(SET ${p} NEW)
......@@ -91,6 +92,8 @@ if( CMAKE_HOST_WIN32 )
set(OTB_APPLICATIONS_NAME_LIST "" CACHE STRING "List of all applications" FORCE)
......@@ -177,3 +177,21 @@ Regarding labels, we use the following set:
* ~"To Do": action is planned
* ~Doing: work in progress
* ~api ~app ~documentation ~monteverdi ~packaging ~qgis: optional context information
## Versioning
Starting from OTB 7.0.0, we use [semantic versioning]( See the website for the full spec, in summary:
> Given a version number MAJOR.MINOR.PATCH, increment the:
> 1. MAJOR version when you make incompatible API changes,
> 2. MINOR version when you add functionality in a backwards-compatible manner, and
> 3. PATCH version when you make backwards-compatible bug fixes.
> Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
The develop branch is always the place where the upcoming major or minor release is worked on. Patch releases are done on release branches, for example 7.0.1 and 7.0.2 could be found on the release-7.0 branch.
For the purpose of defining backwards compatibility, the OTB API covers (not an exhaustive list): the C++ API, the Python bindings, application names, application parameters, output format and interpretation of input data.
When we deprecate part of our public API, we should do two things: (1) update our documentation to let users know about the change, (2) issue a new minor or major release with the deprecation in place.
......@@ -333,7 +333,23 @@ The available syntax for boolean options are:
- OFF, Off, off, false, False, 0 are available for setting a ’false’
boolean value
&nodata=(double) value / [int:double, int:double ...]
- This options allows one to set specific nodata values for all or selected bands.
There are two ways of setting nodata values. simple scalar values of band,value pair.
OTB will select either one of them depending on type of nodata value string
- If value is scalar (without bandindex), it will be applied only to first band of image.
- If value is given as "bandindex:value" pair separated by a ":" then
nodata value is applied to only those selected band.
- By default OTB will not alter any existing nodata value.
OGR DataSource options
......@@ -16,16 +16,6 @@ A simple example is given below:
#include "otbBandMathImageFilterX.h"
#include "otbVectorImage.h"
int otbBandMathImageFilterXNew( int itkNotUsed(argc), char* itkNotUsed(argv) [])
typedef double PixelType;
typedef otb::VectorImage<PixelType, 2> ImageType;
typedef otb::BandMathImageFilterX<ImageType> FilterType;
FilterType::Pointer filter = FilterType::New();
As we can see, the new band math filter works with the class
......@@ -16,9 +16,10 @@ Conrad Bielski (JRC),
Cyrille Valladeau (CS),
Daniel McInerney,
David Dubois,
David Youssefi (CNES Intern, then CS),
David Youssefi (CNES Intern, then CS, then CNES),
Edouard Barthelet (Telecom Bretagne and Thales Communications),
Emmanuel Christophe (CNES, then CRISP, then Google),
Emmanuelle Sarrazin (CNES),
Etienne Bougoin (CS),
Gr\'egoire Mercier (Telecom Bretagne),
Guillaume Borrut (CS),
......@@ -33,7 +34,7 @@ Julien Malik (CS),
Julien Michel (CS then CNES),
Julien Osman,
Julien Radoux (UCL),
Laurentiu Nicola (CS Romania),
Laurentiu Nicola (CS ROMANIA),
Luc Hermitte (CS),
Ludovic Hussonnois (CS),
Manuel Grizonnet (CNES),
......@@ -157,19 +157,15 @@ The header files contain class declarations
and formatted comments that are used by the Doxygen documentation
system to automatically produce HTML manual pages.
In addition to class headers, there are a few other important header files.
In addition to class headers, there are a few other important ITK header files.
\item[\code{itkMacro.h}] is found in the
\code{Utilities/ITK/Code/Common} directory
and defines standard system-wide macros (such as \code{Set/Get},
\item[\code{itkMacro.h}] defines standard system-wide macros (such as \code{Set/Get},
constants, and other parameters).
\item[\code{itkNumericTraits.h}] is found in the \code{Utilities/ITK/Code/Common}
directory and defines numeric characteristics for native types such
\item[\code{itkNumericTraits.h}] defines numeric characteristics for native types such
as its maximum and minimum possible values.
\item[\code{itkWin32Header.h}] is found in the \code{Utilities/ITK/Code/Common}
and is used to define operating system parameters to control
\item[\code{itkWin32Header.h}] is used to define operating system parameters to control
the compilation process.
......@@ -215,7 +211,7 @@ In practice object factories are used mainly (and generally transparently) by
the OTB input/output (IO) classes. For most users the greatest impact is on
the use of the \code{New()} method to create a class. Generally the
\code{New()} method is declared and implemented via the macro
\code{itkNewMacro()} found in \code{Utilities/ITK/Common/itkMacro.h}.
\code{itkNewMacro()} found in \code{Modules/Core/Common/include/itkMacro.h}.
\subsection{Smart Pointers and Memory Management}
......@@ -100,8 +100,7 @@ In the new application framework, every input, output or parameter derive from
\subdoxygen{otb}{Wrapper}{Parameter}. The application engine supplies the following
types of parameters:
\item \code{ParameterType\_Empty} : parameter without value (can be used to represent
a flag)
\item \code{ParameterType\_Bool} : parameter storing a boolean.
\item \code{ParameterType\_Int} : parameter storing an integer.
\item \code{ParameterType\_Radius} : parameter storing a radius.
\item \code{ParameterType\_Float} : parameter storing a float.
......@@ -128,6 +127,7 @@ types of parameters:
\item \code{ParameterType\_OutputProcessXML} : parameter storing an output XML file name.
\item \code{ParameterType\_RAM} : parameter storing the maximum amount of RAM to be used.
\textbf{Note :} The former \code{ParameterType\_Empty} is \textbf{deprecated} and shall be replaced by \code{ParameterType\_Bool}.