Skip to main content

A sensor to terrain mapping tool

Project description

PyRugged

pyRugged, A sensor-to-terrain mapping tool

What is it?

pyRugged is a python geolocation library used for satellite imagery (pyRugged is the python version of Rugged). It allows to map image coordinates (pixel, line) with geographic or projected coordinates (lon, lat or x, y, h) by computing the intersection of the sensor's lines of sight with the Earth's terrain. This mapping is essential for georeferencing raw satellite images. It is a key component when projecting an image on ground.

Rugged explained
Effects of taking into account the DEM in the computation of latitude, longitude and altitude.

Sensor-to-terrain mapping library

pyRugged provides the tools to model any type of sensors rigorously/physically, to process all the spacecraft navigation data (position, velocity and attitude), and to take into account Digital Elevation Models (DEM) to represent the surface of the Earth. It is on this last point that Rugged gets its name from; Rugged deals with rugged terrains.

pyRugged relies on Orekit for all what concerns transformations between coordinate systems (inertial/terrestrial) and orbital data but what pyRugged brings on top of Orekit, is the capacity to deal with the DEM. Orekit could have been used for intersecting a line of sight with the Earth's ellipsoid but it is not its mandate to know what the Earth's surface looks like as it is a space dynamics library. It is in this perspective that we decided to provide a separate package for those users who look for a robust tool for geometric processing.

Features

  • Direct/inverse location

  • Can support several types of Digital Elevation Models, including user-provided models

  • Several intersection models algorithms available

  • Both modern and legacy models for Earth rotation

    • Lieske (1976), Wahr (1980),
    • Mathews, Herring, Buffett (2002)
    • Capitaine (2006)
  • Complete set of corrections applied for greater accuracy

    • δΔψ, δΔε on precession nutation (about 3m correction since 2013, steadily increasing)
    • ΔUT₁, lod on proper rotation (can theoretically reach up to 400m)
    • u, v pole wander (polhody), (about 15m correction)
    • light time correction (about 1.2m)
    • aberration of light correction (about 20m)
    • line-of-sight curvature in geodetic coordinates, (0m at nadir, 10m at 30° dive angle, hundreds of meters for skimming los)
    • atmospheric refraction
  • Not limited to Earth

Free (open source) software

pyRugged is freely available, with all related documentation and tests.

Rugged is distributed under the Apache License version 2.0 , a well known business-friendly license. This means anybody can use it to build any application, free or not. There are no strings attached to user code.

Getting orekit jcc build

PyRugged relies on python wrapper for orekit build with JCC.

The project https://gitlab.eopf.copernicus.eu/geolib/orekit-jcc is aiming at providing tool to build orekit jcc packages.

Already build packages are available in https://gitlab.eopf.copernicus.eu/geolib/orekit-jcc/-/packages

Who is behind it?

Rugged has been in development since 2014 inside CS GROUP and is still used and maintained by its dual teams of space dynamics and image processing experts. pyRugged, the python version of Rugged has been started in 2022.

Several major actors of space research and industry are interested into this project.

Rugged forum is available for any question or request about Rugged (see contact section).

We do our best to provide you with a quality code:

Documentation

follow : README to build sphinx doc

Getting help

The main communication channel is our forum. You can report bugs and suggest new features in our issues tracking system. When reporting security issues check the "This issue is confidential" box.

Contributing

Please take a look at our contributing guidelines if you're interested in helping!

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

pyrugged-1.1.8rc1.tar.gz (36.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyrugged-1.1.8rc1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (21.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pyrugged-1.1.8rc1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (21.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyrugged-1.1.8rc1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (21.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyrugged-1.1.8rc1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (21.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

File details

Details for the file pyrugged-1.1.8rc1.tar.gz.

File metadata

  • Download URL: pyrugged-1.1.8rc1.tar.gz
  • Upload date:
  • Size: 36.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pyrugged-1.1.8rc1.tar.gz
Algorithm Hash digest
SHA256 aef0454602b9cdacab4f59779fff9824d5dd11551b452ef400a9ae9c41e21c94
MD5 0fd543e3068ed19254fa0018494fe9cb
BLAKE2b-256 ff122139b692d2c31e6fd4a10ce61dfe6c0fad2aa455b353a9e3c2daca3aacc8

See more details on using hashes here.

File details

Details for the file pyrugged-1.1.8rc1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyrugged-1.1.8rc1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 00f2b54d7bc86a0cae309a2388bf5f947082489b0da24b56d3f5b064cc8fb261
MD5 16f15d88669f36aa4f48558e292a4f1b
BLAKE2b-256 19ab6592af20ccceae3e4e938e2ce61adc5b7d72d215dd0fc7fe438921222ed7

See more details on using hashes here.

File details

Details for the file pyrugged-1.1.8rc1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyrugged-1.1.8rc1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 532164e0b0f7414fdeca9a77d8628a94c6011dc25af5536283e6d94717988bdc
MD5 2f8ec2e0c3c454b95967344d957918cd
BLAKE2b-256 d6db3bb0fa2c0c4f3404c912dea426eb3e6e8f472728e188beb09b126ee5269f

See more details on using hashes here.

File details

Details for the file pyrugged-1.1.8rc1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyrugged-1.1.8rc1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 81f888ecd3d578075e30957a2ff64d2b6ad07d3afdb2bd1df2ea0ddb0940ac3b
MD5 3885458ce66f02e05e95520c4989b8ee
BLAKE2b-256 28a95847bf039a28810d8780f15f9a0c2462f0b79b9694ef0865e5925c844617

See more details on using hashes here.

File details

Details for the file pyrugged-1.1.8rc1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyrugged-1.1.8rc1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e6498d53029e015014eb1651424d81e7a8cf3c3e1cfe0063f7a8188415ba8a63
MD5 bbc7755ce4e913305e091cb44e1f952f
BLAKE2b-256 4120cff8abf192e6b8a25c70fab52571113b0d4d379cf932d1a845f56c5fded1

See more details on using hashes here.

Supported by

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