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.3.0a1.tar.gz (36.8 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.3.0a1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (22.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pyrugged-1.3.0a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (22.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyrugged-1.3.0a1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (22.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyrugged-1.3.0a1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (22.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

File details

Details for the file pyrugged-1.3.0a1.tar.gz.

File metadata

  • Download URL: pyrugged-1.3.0a1.tar.gz
  • Upload date:
  • Size: 36.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for pyrugged-1.3.0a1.tar.gz
Algorithm Hash digest
SHA256 88f5ce5e1b048739aaf1fb5cba4e34c0f80d3bb03319e3116a3cfd8330106539
MD5 77a01257c39fd6449e8823e1f7f53bce
BLAKE2b-256 80aaba74e23bd517c1dfa99ed651504df35c4b5a2809191159f116810492550c

See more details on using hashes here.

File details

Details for the file pyrugged-1.3.0a1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyrugged-1.3.0a1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6d6aae26b946c2df806a093abe64dfff17009b4c9e3270244e6bf7a25be73ec8
MD5 c00276f8ece2e5bc1effc15e346e3f71
BLAKE2b-256 a2682e691494ea5605fcc0f3add0aeef28834110aa0ede87c3d69505c4ce5fe9

See more details on using hashes here.

File details

Details for the file pyrugged-1.3.0a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyrugged-1.3.0a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e26c661c98e75a5045db144b011b3e1a3c087b720a3e08520f964fce81ce1435
MD5 805198f3470db967ea0d1c43abd2db20
BLAKE2b-256 7b82dca498e2fff3863b27ec455f38918b2437be82cb8d5b9ad0f25071a3d057

See more details on using hashes here.

File details

Details for the file pyrugged-1.3.0a1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyrugged-1.3.0a1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b6e1d6b6c2fa57d85bc9b91a1f21c9182e089eafae3a95b5ff7cb05f59f29300
MD5 6905635afb7b0b5084206e6a219a7a51
BLAKE2b-256 e213ad3fc25fa4578715941b3c3de2c77446ef2732ccd82b5902c38285d55e42

See more details on using hashes here.

File details

Details for the file pyrugged-1.3.0a1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyrugged-1.3.0a1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 87cd90e2dd34718f3cc82580c5afe3a8bb5a5ac91e989eae65b5b5c3ed97f772
MD5 88d4ba7d88fb47c4962a1d7e4d9b8695
BLAKE2b-256 c5260c5b3208a0de9a4f92bcc0195319dc802025042d72921ca3c1dd80c388ae

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