# OrthoRectification¶

This application allows ortho-rectifying optical and radar images from supported sensors.

## Description¶

This application uses inverse sensor modelling combined with a choice of interpolation functions to resample a sensor geometry image into a ground geometry regular grid. The ground geometry regular grid is defined with respect to a map projection (see map parameter). The application offers several modes to estimate the output grid parameters (origin and ground sampling distance), including automatic estimation of image size, ground sampling distance, or both, from image metadata, user-defined ROI corners, or another ortho-image.A digital Elevation Model along with a geoid file can be specified to account for terrain deformations.In case of SPOT5 images, the sensor model can be approximated by an RPC model in order to speed-up computation.

## Parameters¶

### Input and output data¶

This group of parameters allows setting the input and output images.

Input Image -io.in image Mandatory
The input image to ortho-rectify

Output Image -io.out image [dtype] Mandatory
The ortho-rectified output image

Map Projection -map [utm|lambert2|lambert93|wgs|epsg] Default value: utm
Defines the map projection to be used.

• Universal Trans-Mercator (UTM)
A system of transverse mercator projections dividing the surface of Earth between 80S and 84N latitude.
• Lambert II Etendu
This is a Lambert Conformal Conic projection mainly used in France.
• Lambert93
This is a Lambert 93 projection mainly used in France.
• WGS 84
This is a Geographical projection
• EPSG Code
This code is a generic way of identifying map projections, and allows specifying a large amount of them. See www.spatialreference.org to find which EPSG code is associated to your projection;

### Universal Trans-Mercator (UTM) options¶

Zone number -map.utm.zone int Default value: 31
The zone number ranges from 1 to 60 and allows defining the transverse mercator projection (along with the hemisphere)

Northern Hemisphere -map.utm.northhem bool Default value: false
The transverse mercator projections are defined by their zone number as well as the hemisphere. Activate this parameter if your image is in the northern hemisphere.

### EPSG Code options¶

EPSG Code -map.epsg.code int Default value: 4326
See www.spatialreference.org to find which EPSG code is associated to your projection

### Output Image Grid¶

This group of parameters allows one to define the grid on which the input image will be resampled.

Parameters estimation modes -outputs.mode [auto|autosize|autospacing|outputroi|orthofit] Default value: auto

• User Defined
This mode allows you to fully modify default values.
• Automatic Size from Spacing
This mode allows you to automatically compute the optimal image size from given spacing (pixel size) values
• Automatic Spacing from Size
This mode allows you to automatically compute the optimal image spacing (pixel size) from the given size
• Automatic Size from Spacing and output corners
This mode allows you to automatically compute the optimal image size from spacing (pixel size) and output corners
• Fit to ortho
Fit the size, origin and spacing to an existing ortho image (uses the value of outputs.ortho)

Upper Left X -outputs.ulx float Mandatory
Cartographic X coordinate of upper-left corner (meters for cartographic projections, degrees for geographic ones)

Upper Left Y -outputs.uly float Mandatory
Cartographic Y coordinate of the upper-left corner (meters for cartographic projections, degrees for geographic ones)

Size X -outputs.sizex int Mandatory
Size of projected image along X (in pixels)

Size Y -outputs.sizey int Mandatory
Size of projected image along Y (in pixels)

Pixel Size X -outputs.spacingx float Mandatory
Size of each pixel along X axis (meters for cartographic projections, degrees for geographic ones)

Pixel Size Y -outputs.spacingy float Mandatory
Size of each pixel along Y axis (meters for cartographic projections, degrees for geographic ones)

Lower right X -outputs.lrx float
Cartographic X coordinate of the lower-right corner (meters for cartographic projections, degrees for geographic ones)

Lower right Y -outputs.lry float
Cartographic Y coordinate of the lower-right corner (meters for cartographic projections, degrees for geographic ones)

Model ortho-image -outputs.ortho image
A model ortho-image that can be used to compute size, origin and spacing of the output

Force isotropic spacing by default -outputs.isotropic bool Default value: true
Default spacing (pixel size) values are estimated from the sensor modeling of the image. It can therefore result in a non-isotropic spacing. This option allows you to force default values to be isotropic (in this case, the minimum of spacing in both direction is applied. Values overridden by user are not affected by this option.

Default pixel value -outputs.default float Default value: 0
Default value to write when outside of input image.

### Elevation management¶

This group of parameters allows managing elevation values. Supported formats are SRTM, DTED or any geotiff. DownloadSRTMTiles application could be a useful tool to list/download tiles related to a product.

DEM directory -elev.dem directory
This parameter allows selecting a directory containing Digital Elevation Model files. Note that this directory should contain only DEM files. Unexpected behaviour might occurs if other images are found in this directory.

Geoid File -elev.geoid filename [dtype]
Use a geoid grid to get the height above the ellipsoid in case there is no DEM available, no coverage for some points or pixels with no_data in the DEM tiles. A version of the geoid can be found on the OTB website(https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-data/blob/master/Input/DEM/egm96.grd).

Default elevation -elev.default float Default value: 0
This parameter allows setting the default height above ellipsoid when there is no DEM available, no coverage for some points or pixels with no_data in the DEM tiles, and no geoid file has been set. This is also used by some application as an average elevation value.

Interpolation -interpolator [bco|nn|linear] Default value: bco
This group of parameters allows one to define how the input image will be interpolated during resampling.

• Bicubic interpolation
• Nearest Neighbor interpolation
Nearest neighbor interpolation leads to poor image quality, but it is very fast.
• Linear interpolation
Linear interpolation leads to average image quality but is quite fast

### Bicubic interpolation options¶

Radius for bicubic interpolation -interpolator.bco.radius int Default value: 2
This parameter allows one to control the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artifacts.

### Speed optimization parameters¶

This group of parameters allows optimization of processing time.

RPC modeling (points per axis) -opt.rpc int Default value: 10
Enabling RPC modeling allows one to speed-up SPOT5 ortho-rectification. Value is the number of control points per axis for RPC estimation

Available RAM (MB) -opt.ram int Default value: 256
This allows setting the maximum amount of RAM available for processing. As the writing task is time consuming, it is better to write large pieces of data, which can be achieved by increasing this parameter (pay attention to your system capabilities)

Resampling grid spacing -opt.gridspacing float Default value: 4
Resampling is done according to a coordinate mapping deformation grid, whose pixel size is set by this parameter, and expressed in the coordinate system of the output image The closer to the output spacing this parameter is, the more precise will be the ortho-rectified image,but increasing this parameter will reduce processing time.

Load parameters from XML -inxml filename.xml
Load application parameters from an XML file.

Save parameters to XML -outxml filename.xml
Save application parameters to an XML file.

## Examples¶

From the command-line:

otbcli_OrthoRectification -io.in QB_TOULOUSE_MUL_Extract_500_500.tif -io.out QB_Toulouse_ortho.tif


From Python:

import otbApplication

app = otbApplication.Registry.CreateApplication("OrthoRectification")

app.SetParameterString("io.in", "QB_TOULOUSE_MUL_Extract_500_500.tif")
app.SetParameterString("io.out", "QB_Toulouse_ortho.tif")

app.ExecuteAndWriteOutput()


## Limitations¶

Supported sensors (both optical and radar) are: GeoEye, Ikonos, Pleiades, Quickbird, RadarSat, Sentinel-1, SPOT5 (TIF format), SPOT6/7, TerraSAR-X, Worldview 1/2/3, and any TIF image with embedded RPC tags.
Also note that the opt.gridspacing default value may not be suitable for all sensors. In particular, if this value is lower than the target ground sampling distance, the processing time may increase a lot. A warning is issued in this case. Typical values should be half the DEM ground sampling distance.