Skip to main content

Library to enable easy use of the Orfeo ToolBox (OTB) in Python

Project description

pyotb: a pythonic extension of Orfeo Toolbox

latest release pipeline status coverage report read the docs status

pyotb wraps the Orfeo Toolbox (OTB) python bindings to make it more developer friendly.

Key features

  • Easy use of OTB applications from python
  • Simplify common sophisticated I/O features of OTB
  • Lazy execution of in-memory pipelines with OTB streaming mechanism
  • Interoperable with popular python libraries (numpy, rasterio)
  • Extensible

Documentation hosted at pyotb.readthedocs.io.

Example

Building a simple pipeline with OTB applications

import pyotb

# RigidTransformResample application, with input parameters as dict
resampled = pyotb.RigidTransformResample({
    "in": "https://some.remote.data/input.tif",  # Note: no /vsicurl/...
    "interpolator": "linear", 
    "transform.type.id.scaley": 0.5,
    "transform.type.id.scalex": 0.5
})

# OpticalCalibration, with automatic input parameters resolution
calib = pyotb.OpticalCalibration(resampled)

# BandMath, with input parameters passed as kwargs
ndvi = pyotb.BandMath(calib, exp="ndvi(im1b1, im1b4)")

# Pythonic slicing using lazy computation (no memory used)
roi = ndvi[20:586, 9:572]

# Pipeline execution
# The actual computation happens here !
roi.write("output.tif", "float")

pyotb's objects also enable easy interoperability with numpy and rasterio:

# Numpy and RasterIO style attributes
print(roi.shape, roi.dtype, roi.transform)
print(roi.metadata)

# Other useful information
print(roi.get_infos())
print(roi.get_statistics())

array = roi.to_numpy()
array, profile = roi.to_rasterio()

Contributing

Contributions are welcome on Github or the source repository hosted on the Orfeo ToolBox GitLab.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyotb-2.0.0.dev7.tar.gz (45.8 kB view hashes)

Uploaded Source

Built Distribution

pyotb-2.0.0.dev7-py3-none-any.whl (41.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page