Typed observation objects for geolocation measurements (TDOA, FDOA, AOA, Range)
Project description
GRI Obs
Typed observation objects for geolocation measurements.
Overview
gri-obs provides self-contained observation objects that carry measurement
data, noise characterization, and sensor geometry for geolocation systems.
Each observation embeds everything needed to evaluate measurement functions
against an emitter state vector.
Observation Types
| Type | Measurement | Units | Collectors |
|---|---|---|---|
TdoaObs |
Time Difference of Arrival | seconds | 2 positions |
FdoaObs |
Frequency Difference of Arrival | Hz | 2 positions + velocities |
AoaObs |
Angle of Arrival (direction cosines) | unitless | 1 position + rotation |
RangeObs |
Distance | meters | 1 position |
Installation
pip install gri-obs
Or for local development:
git clone https://gitlab.com/geosol-foss/python/gri-obs.git
cd gri-obs
. .init_venv.sh
Usage
from gri_obs import TdoaObs, FdoaObs, AoaObs, RangeObs
from gri_pos import Pos
import numpy as np
# TDOA observation
tdoa = TdoaObs(
time=100.0,
value=1.5e-6, # 1.5 microseconds
std_dev=1e-9, # 1 nanosecond
collector1=Pos.LLA(38.0, -77.0, 400_000.0),
collector2=Pos.LLA(39.0, -76.0, 400_000.0),
sensor_id="tdoa_12",
)
# AOA observation from azimuth/elevation
aoa = AoaObs.from_azel(
time=100.0,
azimuth_rad=0.785, # 45 degrees
elevation_rad=0.524, # 30 degrees
std_dev_az_rad=0.001,
std_dev_el_rad=0.001,
collector=Pos.LLA(38.0, -77.0, 100.0),
sensor_id="aoa_1",
)
# Filter mixed observation lists
from gri_obs import filter_tdoa, filter_aoa
all_obs = [tdoa, aoa]
tdoa_only = filter_tdoa(all_obs)
Timestamps
Observations accept any timestamp type -- float seconds, datetime objects, or
gri_nsepoch.Time for nanosecond precision. The observation carries the
timestamp but does not interpret it.
Dependencies
- gri-utils -- coordinate conversions
- gri-pos -- position objects
- gri-memoize -- AOA memoized properties
License
MIT -- see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gri_obs-0.1.0.tar.gz.
File metadata
- Download URL: gri_obs-0.1.0.tar.gz
- Upload date:
- Size: 53.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b9891cfe43d8c3bc497d2e4a53ca3981ac51bbc99bb5dfb4ebbd2452c8840b2
|
|
| MD5 |
8c3f090f271b603d4c5cf88e1356d73f
|
|
| BLAKE2b-256 |
ba4756a97fe7f7d9eb4a0c7491642773b7b488499e2f51ccd0efc9e66a6cdd53
|
File details
Details for the file gri_obs-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gri_obs-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03e38044bdd0324a2b80717da1739f158c02cd540074d2df050b5b76b62de298
|
|
| MD5 |
7e6a4bd8f593e5a3713afdfbaa5ebf00
|
|
| BLAKE2b-256 |
c29150631f1e35ad8dfe707c577852bbe1657acc5dd38162b6f137f66e0b35b0
|