Skip to main content

GDAR-ORBIT - satellite orbits for GDAR

Project description

gdar-orbit

Satellite orbit and attitude handling for the GDAR processing framework. Part of the OpenGDAR family of packages. Requires gdar-base.

Modules

gdar.orbit.orbit -- Orbit interpolation and SAR geocoding

Core orbit classes built on Legendre polynomial interpolation of statevectors (ECEF position + velocity):

  • Sampled_orbit -- primary orbit class, constructed from a sequence of uniformly sampled statevectors.
  • EllipsoidOrbit -- base class providing SAR geocoding methods.
  • GbradarOrbit -- orbit representation for ground-based radar.

Key geocoding methods (on EllipsoidOrbit):

Method Description
sar2xyz() SAR coordinates (azimuth time, range) to ECEF XYZ
sar2geo() SAR coordinates to geographic (lat, lon, height)
xyz2sar() ECEF XYZ to SAR coordinates
geo2sar() Geographic coordinates to SAR coordinates
sar2geometry() Full geometry recarray (incidence angle, look angle, etc.)

Utilities:

  • canonical_svec() -- convert various statevector formats to the standard recarray dtype.
  • merge_trajectories() -- merge overlapping orbit segments.
  • replicate_vector() -- broadcast a vector to match a position array.

gdar.orbit.attitude -- Quaternion-based attitude

Satellite attitude as unit quaternions with SLERP interpolation:

  • Attitude -- stores uniformly sampled quaternions, interpolates to arbitrary times. Quaternions represent the rotation from the GDAR body-fixed frame to ITRF.
  • zero_doppler_steering() -- compute attitude quaternions for zero-Doppler steering (boresight perpendicular to velocity). Supports a roll parameter: positive roll points the boresight left of the ground track, negative roll points right.
  • pt_from_azel() -- azimuth/elevation angles to unit pointing vector.
  • quat_as_tait_bryan_angles() -- quaternion to roll/pitch/yaw.

Body-fixed frame convention:

  • x -- forward (velocity direction)
  • y -- completes right-handed system (approximately cross-track right)
  • z -- boresight (nadir at zero roll)

gdar.orbit.frame_transformations -- Coordinate frame transforms

Statevector-level transformations between standard reference frames. Rotation matrices come from gdar.base.coordinates (ERFA / IAU 2006); this module wraps them to operate on statevector recarrays and applies velocity corrections where needed.

Available transforms (each function takes and returns a statevector):

  • ITRS <-> GCRS
  • ITRS <-> True of Date (via GCRS)
  • ITRS <-> GM2000 / EME2000 / J2000.0 (via GCRS)
  • ToD <-> TIRS (with Earth-rotation velocity correction)

Installation

Install from PyPI:

pip install gdar-orbit

or with uv:

uv pip install gdar-orbit

Dependencies (including gdar-base) are installed automatically.

Testing

pytest tests/

Three tests in test_attitude.py require gdar-sar and will be skipped if it is not installed.

Development

Internal links

License

This project is licensed under the Apache License, Version 2.0. You may obtain a copy of the license at https://www.apache.org/licenses/LICENSE-2.0 or in the LICENSE file distributed with this source.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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

gdar_orbit-1.2.0.post2.tar.gz (48.3 kB view details)

Uploaded Source

Built Distribution

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

gdar_orbit-1.2.0.post2-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file gdar_orbit-1.2.0.post2.tar.gz.

File metadata

  • Download URL: gdar_orbit-1.2.0.post2.tar.gz
  • Upload date:
  • Size: 48.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for gdar_orbit-1.2.0.post2.tar.gz
Algorithm Hash digest
SHA256 a5338fc30675019162ff72c6adf185706e6f346e0fe4aea66a0deb4a012ca5bc
MD5 11e9360b6470e50ef84f615ec0e3eaf6
BLAKE2b-256 f9f144637a7a985098ab0f9bd5ffde2b27e956f875aa33dab4ce13255d242fab

See more details on using hashes here.

File details

Details for the file gdar_orbit-1.2.0.post2-py3-none-any.whl.

File metadata

  • Download URL: gdar_orbit-1.2.0.post2-py3-none-any.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for gdar_orbit-1.2.0.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 95976d9dedab6fbfe499a6cd8607ac910d0a75db66631818e4ccccc8243aedb1
MD5 d8142f4a639a6a33eecf9efffb40e791
BLAKE2b-256 af28983930557ab6d4a866133fa0a5baa0a3189fb10de67385bc8fb05a0327a2

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