Skip to content

ootkOrbital Object Toolkit

Satellite propagation, orbit determination, sensor modeling, and maneuver planning in type-safe TypeScript.

Quick Example

typescript
import { Satellite, Sensor, Degrees, Kilometers } from 'ootk';

// Create satellite from TLE
const satellite = new Satellite({
  tle1: '1 25544U 98067A   24028.54545847  .00031576  00000-0  57240-3 0  9991',
  tle2: '2 25544  51.6418 292.2590 0002595 167.5319 252.0460 15.49326324436741',
});

// Get current position
const lla = satellite.lla();
console.log(`Lat: ${lla.lat}, Lon: ${lla.lon}, Alt: ${lla.alt} km`);

// Create ground sensor
const sensor = new Sensor({
  lat: 41.754785 as Degrees,
  lon: -70.539151 as Degrees,
  alt: 0.060966 as Kilometers,
  minEl: 5 as Degrees,
  maxEl: 85 as Degrees,
});

// Check if satellite is visible
if (sensor.isSatInFov(satellite)) {
  const rae = sensor.rae(satellite);
  console.log(`Visible! Az: ${rae.az}, El: ${rae.el}, Range: ${rae.rng} km`);
}

// Predict passes
const passes = sensor.calculatePasses(30, satellite);
console.log(`Found ${passes.length} passes`);

Installation

bash
npm install ootk

Released under the AGPL-3.0 License.