From 9803cf962a0db6d856639073645710b59c370152 Mon Sep 17 00:00:00 2001
From: dmci <daniel.o.mcinerney@gmail.com>
Date: Wed, 26 Jun 2019 10:19:55 +0100
Subject: [PATCH] DOC: corrected path of optpreproc

---
 Documentation/Cookbook/rst/optpreproc.rst | 479 ----------------------
 1 file changed, 479 deletions(-)
 delete mode 100644 Documentation/Cookbook/rst/optpreproc.rst

diff --git a/Documentation/Cookbook/rst/optpreproc.rst b/Documentation/Cookbook/rst/optpreproc.rst
deleted file mode 100644
index 8c93e84b10..0000000000
--- a/Documentation/Cookbook/rst/optpreproc.rst
+++ /dev/null
@@ -1,479 +0,0 @@
-From raw image to calibrated product
-====================================
-
-This section presents various pre-processing tasks that are presented in
-a standard order to obtain a calibrated, pan-sharpened image.
-
-Optical radiometric calibration
--------------------------------
-
-In remote sensing imagery, pixel values are referred to as Digital
-Numbers (DN) and they cannot be physically interpreted or compared. They are
-influenced by various factors such as the amount of light flowing through
-the sensor, the gain of the detectors and the analogue to digital
-converter.
-
-Depending on the season, the light and atmospheric conditions, the
-position of the sun or the sensor internal parameters, these DN can
-drastically change for a given pixel (apart from any ground change
-effects). Moreover, these effects are not uniform over the spectrum: for
-instance aerosol amount and type has usually more impact on the blue
-channel.
-
-Therefore, it is necessary to calibrate the pixel values before any
-physical interpretation is made out of them. In particular, this
-processing is mandatory before any comparison of pixel spectrum between
-several images (from the same sensor), and to train a classifier without
-dependence to the atmospheric conditions at the acquisition time.
-
-Calibrated values are called surface reflectivity, which is a ratio
-denoting the fraction of light that is reflected by the underlying
-surface in the given spectral range. As such, its values lie in the
-range :math:`[0,1]`. For convenience, images are often stored in
-thousandth of reflectivity, so that they can be encoded with an integer
-type. Two levels of calibration are usually distinguished:
-
--  The first level is called *Top Of Atmosphere (TOA)* reflectivity. It
-   takes into account the sensor gain, sensor spectral response and the
-   solar illumination.
-
--  The second level is called *Top Of Canopy (TOC)* reflectivity. In
-   addition to sensor gain and solar illumination, it takes into account
-   the optical thickness of the atmosphere, the atmospheric pressure,
-   the water vapor amount, the ozone amount, as well as the composition
-   and amount of aerosol gasses.
-
-This transformation can be done either with **OTB Applications** or with
-**Monteverdi** . Sensor-related parameters such as gain, date, spectral
-sensitivity and sensor position are seamlessly read from the image
-metadata. Atmospheric parameters can be tuned by the user. Supported
-sensors are:
-
--  Pleiades
-
--  SPOT5
-
--  QuickBird
-
--  Ikonos
-
--  WorldView-1
-
--  WorldView-2
-
--  Formosat
-
-The *OpticalCalibration* application performs optical
-calibration. The mandatory parameters are the input and output images.
-All other parameters are optional. By default the level of calibration
-is set to TOA (Top Of Atmosphere). The output images are expressed in
-thousandth of reflectivity using a 16 bits unsigned integer type.
-
-A basic TOA calibration task can be performed with the following command:
-
-::
-
-    otbcli_OpticalCalibration -in  input_image -out output_image
-
-A basic TOC calibration task can be performed with the following command:
-
-::
-
-    otbcli_OpticalCalibration -in  input_image -out output_image -level toc
-
-
-Pan-sharpening
---------------
-
-Because of physical constrains on the sensor design, it is difficult to
-achieve high spatial and spectral resolution at the same time: a better
-spatial resolution means a smaller detector, which in turn means lesser
-optical flow on the detector surface. On the contrary, spectral bands
-are obtained through filters applied on the detector surface, that
-lowers the optical flow, so that it is necessary to increase the
-detector size to achieve an acceptable signal to noise ratio.
-
-For these reasons, many high resolution satellite payload are composed
-of two sets of detectors, which in turn delivers two different kind of
-images:
-
--  The multi-spectral (XS) image, composed of 3 to 8 spectral bands
-   containing usually blue, green, red and near infra-red bands at a
-   given resolution (usually from 2.8 meters to 2 meters).
-
--  The panchromatic (PAN) image, which is a grayscale image acquired by
-   a detector covering a wider part of the light spectrum, which allows
-   to increase the optical flow and thus to reduce pixel size.
-   Therefore, resolution of the panchromatic image is usually around 4
-   times lower than the resolution of the multi-spectral image (from 46
-   centimeters to 70 centimeters).
-
-It is very frequent that those two images are delivered side by side by
-data providers. Such a dataset is called a bundle. A very common remote
-sensing processing is to fuse the panchromatic image with the
-multi-spectral one so as to get an image combining the spatial
-resolution of the panchromatic image with the spectral richness of the
-multi-spectral image. This operation is called pan-sharpening.
-
-This fusion operation requires two different steps:
-
-#. The multi-spectral (XS) image is zoomed and registered to the
-   panchromatic image,
-
-#. A pixel-by-pixel fusion operator is applied to the co-registered
-   pixels of the multi-spectral and panchromatic image to obtain the
-   fused pixels.
-
-Using either **OTB Applications** or modules from **Monteverdi** , it is
-possible to perform both steps in a row, or step-by-step fusion, as
-described in the above sections.
-
-The *BundleToPerfectSensor* application performs both steps in
-a row. Seamless sensor modelling is used to perform zooming and
-registration of the multi-spectral image on the panchromatic image. In
-the case of a Pléiades bundle, a different approach is used: an affine
-transform is used to zoom the multi-spectral image and apply a residual
-translation. This translation is computed based on metadata about the
-geometric processing of the bundle. This zooming and registration of the
-multi-spectral image over the panchromatic image can also be performed
-by the *Superimpose* application.
-
-After the registration step, a simple pan-sharpening is applied,
-according to the following formula:
-
-.. math:: PXS(i,j) = \frac{PAN(i,j)}{PAN_{smooth}(i,j)} \cdot XS(i,j)
-
-Where :math:`i` and :math:`j` are pixels indices, :math:`PAN` is the
-panchromatic image, :math:`XS` is the multi-spectral image and
-:math:`PAN_{smooth}` is the panchromatic image smoothed with a kernel to
-fit the multi-spectral image scale.
-
-Here is a simple example of how to use the *BundleToPerfectSensor*
-application:
-
-::
-
-    otbcli_BundleToPerfectSensor -inp pan_image -inxs xs_image -out output_image
-
-There are also optional parameters that can be useful for this tool:
-
--  The ``-elev`` option specifies the elevation, either with a
-   DEM formatted for OTB (``-elev.dem`` option, see section :ref:`section2`)
-   or with an average elevation (``-elev.default`` option). Since
-   registration and zooming of the multi-spectral image is performed
-   using sensor-models, it may happen that the registration is not
-   perfect in case of a landscape with a large variation in elevation. In this
-   case a DEM will allow for a better registration to be achieved. 
-
--  The ``-lmSpacing`` option specifies the step of the
-   registration grid between the multi-spectral image and panchromatic
-   image. This is expressed in amount of panchromatic pixels. A lower
-   value gives a more precise registration but implies more computation
-   with the sensor models, and thus increase the computation time.
-   Default value is 10 pixels, which gives sufficient precision in most
-   of the cases.
-
--  The ``-mode`` option selects the registration mode for the
-   multi-spectral image. The ``default`` mode uses the sensor model of
-   each image to create a generic “MS to Pan” transform. The ``phr``
-   mode uses a simple affine transform (which does not need an elevation
-   source nor a registration grid).
-
-Pan-sharpening is a process that requires a lot of system
-resources. The ``-ram`` option allows you to limit the amount of memory
-available for the computation, and also avoids overloading your computer.
-Increasing the available amount of RAM may also result in better
-computation time, seems it optimises the use of the system resources.
-Default value is 256 Mb.
-
-
-.. figure:: ../Art/MonteverdiImages/monteverdi_QB_XS_pan-sharpened.png
-
-Figure 5: Pan-sharpened image using Orfeo ToolBox.
-
-Please also note that since registration and zooming of the
-multi-spectral image with the panchromatic image relies on sensor
-modelling, this tool will work only for images whose sensor models is
-available in **Orfeo ToolBox** (see Section :ref:`section3` for a detailed
-list). It will also work with ortho-ready products in cartographic
-projection.
-
-.. _section2:
-
-Digital Elevation Model management
-----------------------------------
-
-A Digital Elevation Model (DEM) is a georeferenced image (or collection
-of images) where each pixel corresponds to a local elevation. DEMs are
-useful for tasks involving sensor to ground and ground to sensor
-coordinate transformations, for example, ortho-rectification (see Section :ref:`section3`). These transforms need to find the intersection
-between the line of sight of the sensor and the Earth geoid. If a simple
-spheroid is used as the Earth model, potentially high localisation
-errors can be made in areas where elevation is high or perturbed. Of
-course, DEM accuracy and resolution have a great impact on the precision
-of these transformations.
-
-The two principal DEMs that are available free of charges, and with worldwide cover, are
-both delivered as 1 degree by 1 degree tiles. They are:
-
--  `The Shuttle Radar topographic Mission
-   (SRTM) <http://www2.jpl.nasa.gov/srtm/>`_  is a DEM with a resolution of 90 metres,
-   obtained by radar interferometry during a campaign of the
-   Endeavour space shuttle from NASA in 2000.
-
--  The `Advanced Spaceborne Thermal Emission and Reflection Radiometer
-   (ASTER) <http://www.ersdac.or.jp/GDEM/E/2.html>`_  is a DEM with a resolution of 
-   30 metres obtained by stereoscopic processing of the archive of
-   the ASTER instrument.
-
-The **Orfeo ToolBox** relies on `OSSIM <http://www.ossim.org/>`_
-capabilities for sensor modelling and DEM handling. Tiles of a given DEM
-are supposed to be located within a single directory. General elevation
-support is also supported from GeoTIFF files.
-
-Whenever an application or **Monteverdi** module requires a DEM, the
-option **elev.dem** sets the DEM directory. This directory must
-contain the DEM tiles, either in DTED or SRTM format or as a GeoTIFF.
-Subdirectories are not supported.
-
-Depending on the reference of the elevation, you also need to use a
-geoid to accurately manage the elevation. For this, you need to specify a
-path to a file which contains the geoid. `Geoid <http://en.wikipedia.org/wiki/Geoid>`_
-corresponds to the equipotential surface that would coincide with the mean ocean surface of
-the Earth.
-
-We provide one geoid in the `OTB-Data <https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-data/tree/master/Input/DEM>`_ repository.
-
-In all applications, the option **elev.geoid** manages the path
-to the geoid. Finally, it is also possible to use an average elevation
-in case no DEM is available by using the **elev.default** option.
-
-
-.. _section3:
-
-Ortho-rectification and map projections
----------------------------------------
-
-There are several level of products available on the remote sensing
-imagery market. The most basic level often provide the geometry of
-acquisition (sometimes called the raw geometry). In this case, pixel
-coordinates can not be directly used as geographical positions. For most
-sensors (but not for all), the different lines corresponds to different
-acquisition times and thus different sensor positions, and different
-rows correspond to different cells of the detector.
-
-The mapping of a raw image so as to be registered to a cartographic grid
-is called ortho-rectification, and consist in inverting the following
-effects (at least):
-
--  In most cases, lines are orthogonal to the sensor trajectory, which
-   is not exactly (and in some case not at all) following a north-south
-   axis,
-
--  Depending on the sensor, the line of sight may be different from a
-   Nadir (ground position of the sensor), and thus a projective warping
-   may appear,
-
--  The variation of height in the landscape may result in severe warping
-   of the image.
-
-Moreover, depending on the area of the world the image has been acquired
-on, different map projections should be used.
-
-The ortho-rectification process is as follows: once an appropriate map
-projection has been defined, a localisation grid is computed to map
-pixels from the raw image to the ortho-rectified one. Pixels from the
-raw image are then interpolated according to this grid in order to fill
-the ortho-rectified pixels.
-
-Ortho-rectification can be performed either with **OTB Applications** or
-**Monteverdi** . Sensor parameters and image meta-data are seamlessly
-read from the image files without needing any user interaction, provided
-that all auxiliary files are available. The sensor for which **Orfeo
-ToolBox** supports ortho-rectification of raw products are the
-following:
-
--  Pleiades
-
--  SPOT5
-
--  Ikonos
-
--  Quickbird
-
--  GeoEye
-
--  WorldView
-
-In addition, GeoTiff and other file format with geographical information
-are seamlessly read by **Orfeo ToolBox** , and the ortho-rectification
-tools can be used to re-sample these images in another map projection.
-
-Beware of “ortho-ready” products
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-There are some image products, called “ortho-ready”, that should be
-processed carefully. They are actual products in raw geometry, but their
-metadata also contains projection data:
-
--  a map projection
-
--  a physical origin
-
--  a physical spacing
-
--  and sometimes an orientation angle
-
-The purpose of this projection information is to give an approximate map
-projection to a raw product. It allows you to display the raw image in a
-GIS viewer at the (almost) right location, without having to reproject
-it. Obviously, this map projection is not as accurate as the sensor
-parameters of the raw geometry. In addition, the impact of the elevation
-model can’t be observed if the map projection is used. In order to
-perform an ortho-rectification on this type of product, the map
-projection has to be hidden from **Orfeo ToolBox** .
-
-You can see if a product is an “ortho-ready” product by using ``gdalinfo`` or
-OTB ReadImageInfo application.
-Check if your product verifies following two conditions:
-
--  The product is in raw geometry: you should expect the presence of
-   RPC coefficients and a non-empty OSSIM keywordlist.
-
--  The product has a map projection: you should see a projection name
-   with physical origin and spacing.
-
-In that case, you can hide the map projection from the **Orfeo ToolBox**
-by using *extended* filenames. Instead of using the plain input image
-path, you append a specific key at the end:
-
-::
-
-    "path_to_image?&skipcarto=true"
-
-The double quote can be necessary for a successful parsing. More details
-about the extended filenames can be found in the :ref:`extended-filenames`
-section.
-
-Ortho-rectification with **OTB Applications**
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The *OrthoRectification* application performs 
-ortho-rectification and map re-projection. The simplest way to use it is
-the following command:
-
-::
-
-    otbcli_OrthoRectification -io.in input_image -io.out output_image
-
-In this case, the tool will automatically estimates all the necessary
-parameters:
-
--  The map projection is set to UTM (a worldwide map projection) and the
-   UTM zone is automatically estimated,
-
--  The ground sampling distance of the output image is computed to fit
-   the image resolution,
-
--  The region of interest (upper-left corner and size of the image) is
-   estimated so as to contain the whole input image extent.
-
-In order to use a Digital Elevation Model to improve 
-the locational accuracy, one can pass the directory containing
-the DEM tiles to the application as follows. Further information regarding
-the use of DEMs can be found in Section :ref:`section2`.
-
-::
-
-    otbcli_OrthoRectification -io.in input_image
-                              -io.out output_image
-                              -elev.dem dem_dir
-
-If one wants to use a different map projection, the *-map* option may be
-used (example with *lambert93* map projection):
-
-::
-
-
-    otbcli_OrthoRectification -io.in input_image
-                              -io.out output_image
-                              -elev.dem dem_dir
-                              -map lambert93
-
-Map projections handled by the application are the following (please
-note that the ellipsoid is always WGS84):
-
--  | UTM: ``-map utm``  | The UTM zone and hemisphere can be set by the options ``-map.utm.zone`` and ``-map.utm.northhem``.
-
--  Lambert 2 etendu: ``-map lambert2``
-
--  Lambert 93: ``-map lambert93``
-
--  | TransMercator: ``-map transmercator`` | The related parameters (false easting, false northing and scale factor) can be set by the options    ``-map.transmercator.falseeasting``, ``-map.transmercator.falsenorthing`` and ``-map.transmercator.scale``
-
--  WGS: ``-map wgs``
-
--  | Any map projection system with an EPSG code: ``-map epsg`` | The EPSG code is set with the option ``-map.epsg.code``
-
-The group ``outputs`` contains parameters to set the origin, size and
-spacing of the output image. For instance, the ground spacing can be
-specified as follows:
-
-::
-
-
-    otbcli_OrthoRectification -io.in input_image
-                              -io.out output_image
-                              -elev.dem dem_dir
-                              -map lambert93
-                              -outputs.spacingx spx
-                              -outputs.spacingy spy
-
-Please note that since the y axis of the image is bottom oriented, the y
-spacing should be negative to avoid switching north and south direction.
-
-A user-defined region of interest to ortho-rectify can be specified as
-follows:
-
-::
-
-
-    otbcli_OrthoRectification -io.in input_image
-                              -io.out output_image
-                              -elev.dem dem_dir
-                              -map lambert93
-                              -outputs.spacingx spx
-                              -outputs.spacingy spy
-                              -outputs.ulx ul_x_coord
-                              -outputs.uly ul_y_coord
-                              -outputs.sizex x_size
-                              -outputs.sizey y_size
-
-Where the ``-outputs.ulx`` and ``-outputs.uly`` options specify
-the coordinates of the upper-left corner of the output image, while the options:
-``-outputs.sizex`` and ``-outputs.sizey`` specify the
-size of the output image.
-
-A few more interesting options are available:
-
--  The ``-opt.rpc`` option uses an estimated RPC model instead
-   of the rigorous SPOT5 model, which speeds-up the processing,
-
--  The ``-opt.gridspacing`` option defines the spacing of the
-   localisation grid used for ortho-rectification. A coarser grid
-   results in speeding-up the processing, but with potential loss of
-   accuracy. A standard value would be 10 times the ground spacing of
-   the output image.
-
--  The ``-interpolator`` option changes the interpolation
-   algorithm between nearest neighbor, linear and bicubic. Default is
-   nearest neighbor interpolation, but bicubic should be fine in most
-   cases.
-
--  The ``-opt.ram`` option specifies the amount of memory
-   available for the processing (in Mb), with a default value of 256 Mb. Increasing
-   this value to fit the available memory on your computer can
-   speed-up the processing.
-
-
-
-- 
GitLab