Conversation
- Remove .js extensions and normalize internal import/export paths across src - Convert several base classes/methods to abstract (Force, Interpolator, StateInterpolator, FieldInterpolator, Observation, etc.) instead of throwing NotImplemented errors - Adjust method signatures and unused parameter naming in Propagator, KeplerPropagator, Sgp4Propagator - Reorder and tidy index exports for modules (body, coordinate, covariance, force, interfaces, operations, propagator, observation, orbit_determination, time, transforms, utils, etc.) - Update tsconfig.base.json: add @src path, change module to esnext and moduleResolution to bundler - Bump package version to 6.0.0-rc.1 - Increase ESLint max-len to 180 - Remove outdated examples/node.js and update examples to use ../dist/main import - Minor test and formatting tweaks (imports, assertions, helper formatting)
chore: regenerate package-lock.json
…2 and refresh package-lock.json
…n Sun & SolarRadiationPressure
…tend SpaceObjectType with planetary/moon types and update tsconfig lib
…e adjustment) and rae
…l/gas/ice/dwarf planets and moon
Add detailed guide showcasing OOTK's unique capabilities beyond SGP4: - High-fidelity numerical propagation with force models - Initial orbit determination (Lambert, Gibbs, Herrick-Gibbs, Gooding) - Sensor operations and pass prediction - Astronomical calculations (Sun, Moon, eclipses) - Advanced coordinate transformations (15+ systems) - Force modeling (gravity harmonics, drag, SRP, third-body) - Maneuver planning and optimization - Covariance and uncertainty analysis - Multiple time systems (UTC, GPS, TAI, TDB, TT) - Relative motion analysis (RIC, Hill frames) Includes practical code examples and performance considerations for professional orbital mechanics applications.
Add comprehensive guide for using Lambert's problem solution with the Satellite class to generate state vectors without SGP4. New files: - docs/lambert-satellite-integration-guide.md: Complete guide covering Lambert solver basics, integration workflows, and advanced usage - examples/lambert-state-vector.ts: Seven practical examples demonstrating Lambert IOD usage, numerical propagation, TLE conversion, transfer orbit planning, and validation Updated: - examples/README: Add instructions for running Lambert examples - package-lock.json: Update dependencies after npm install The guide covers: - Basic Lambert solution from two position observations - Using Lambert with RungeKutta89 propagator for high-precision propagation - Converting Lambert solutions to Satellite objects via TLE - Transfer orbit planning and delta-V calculations - Multi-revolution transfers - Short path vs long path comparison - Solution validation and error handling Examples demonstrate practical applications including orbit determination, rendezvous planning, and transfer trajectory design.
- Add extensive user guide covering all OOTK features - Satellite operations and tracking - Sensor operations and pass predictions - Coordinate systems and transformations - Orbit propagation methods - Force models and perturbations - Initial orbit determination - Observations and time systems - Interpolation and mathematical operations - Optimization and covariance - Celestial bodies and maneuvers - Advanced topics and performance tips - Add getting started guide for new users - Step-by-step installation instructions - Tutorial for tracking first satellite - Explanation of coordinate systems - Working with sensors and pass predictions - Common use cases with complete examples - Troubleshooting section - Quick reference and example projects - Add documentation index (docs/README.md) - Navigation guide for all documentation - Quick links to key topics - Clear structure for beginners vs advanced users - Update main README.md with documentation links
Added 8 new example files showcasing different features of the ootk library: - orbital-elements.ts: Demonstrates working with classical orbital elements, conversions between elements and state vectors, and TLE generation - maneuvers.ts: Shows Hohmann transfer calculations, two-burn orbit transfers, and delta-V computations for different orbit types - moon.ts: Covers lunar position calculations, moon rise/set times, phase calculations, and angular diameter computations - time-systems.ts: Illustrates different epoch types (UTC, TAI, TT, TDB, GPS), time system conversions, Julian dates, and GMST calculations - coordinate-transforms.ts: Demonstrates conversions between coordinate frames (ECI, ECF, LLA, J2000, TEME, ITRF) and relative coordinates (RIC) - satellite-passes.ts: Shows satellite pass prediction, visibility checks, field of view constraints, and look angle tracking - doppler.ts: Covers Doppler shift calculations for satellite communications, frequency shifts across different bands, and Doppler rate of change - observations.ts: Demonstrates RADEC (Right Ascension/Declination) observations, topocentric vs geocentric coordinates, and angular separations These examples provide users with practical code showing how to use the library's features for real-world orbital mechanics applications.
Implement comprehensive conjunction assessment capabilities with: - **ConjunctionEvent**: Data structure for storing conjunction analysis results - TCA (Time of Closest Approach) - Miss distance with RIC (Radial-Intrack-Crosstrack) components - Relative velocity - Combined covariance matrices - Probability of collision - Mahalanobis distance calculation - High-risk event detection - **ProbabilityOfCollision**: Pc calculation using Chan's 2D method - Projects covariance onto encounter plane (B-plane) - Computes 2D probability density integration - Handles edge cases (low relative velocity) - Analytical approximations for performance - Covariance matrix combination - **ConjunctionAssessment**: Main workflow orchestrator - Supports TLE or state vector inputs - Multiple propagator options (SGP4, RungeKutta89) - TCA finding using golden section optimization - Covariance propagation using sigma-point method - Leverages existing TLE quality assessment - High-fidelity force model integration Key Features: - Historical TLE accuracy-based covariance initialization - Regime-specific covariance aging (LEO/MEO/GEO/HEO) - Flexible propagator selection for accuracy/speed tradeoff - Comprehensive test coverage - Example implementations for common use cases The workflow integrates with existing OOTK capabilities: - CovarianceSample for sigma-point propagation - RIC coordinates for relative geometry - GoldenSection optimizer for TCA search - Multiple propagator types (SGP4, RK4, RK89) - Force models for high-fidelity prediction Example usage in conjunction-assessment-example.ts demonstrates: 1. Basic TLE-based conjunction assessment 2. High-fidelity propagation with covariance 3. Custom covariance matrix input 4. Multi-object screening workflows
…SQumNxLxFtXFV2S3xkTm
…on-01EWSQumNxLxFtXFV2S3xkTm Lambert Satellite Integration
…3HWHLUfYLohVxx5oGy feat: add comprehensive examples for library features
…3nkXNDCBzpdeJG9z7Y7N2b
…flow-013nkXNDCBzpdeJG9z7Y7N2b feat: add high accuracy conjunction assessment workflow
…sJTZW8hW7kNicXcimMr docs: add comprehensive user guide and getting started documentation
…zuUbe9JhV1TN2HpHnJGx docs: add comprehensive advanced features guide
…IOD and RungeKuttaAdaptive for improved error handling and integration logic - Added comprehensive test suite for GaussIOD based on Vallado's examples, covering various orbital regimes (GEO, MEO, LEO) and error handling scenarios. - Introduced a test suite for GoodingIOD, validating its performance with real satellite observations and convergence characteristics. - Refactored ModifiedGoodingIOD to utilize the estimate method for initial orbit determination. - Enhanced RungeKuttaAdaptive with additional checks for NaN values and validation of computed states to prevent integration errors.
Observation, ObservationOptical, and ObservationRadar were accepted by GoodingIOD.solve() but not re-exported from src/main.ts, so consumers could not construct them.
All 16 examples now run to exit 0 with npx tsx. Imports use the ootk package name via npm self-reference, sections are marked with #region for docs embedding, and drifted APIs were rewritten: GroundStation/PhasedArrayRadar with FieldOfView replace the old Sensor params, TwoBurnOrbitTransfer.hohmannTransfer is static, RIC.fromJ2000 replaces toRIC, epoch conversions derive from EpochUTC, and GoodingIOD uses ObservationOptical.
…throughs Adds a VitePress site (docs:dev/build/preview scripts) with a landing page, the existing guides in a sidebar, and one walkthrough page per example that embeds the runnable script by #region snippet imports plus captured output. Themed with the KeepTrack International Orange Engineering palette, with brighter accents for dark-mode text contrast.
Port .eslintrc.json to eslint.config.js (flat config required by ESLint 9), auto-dropping core rules removed in v9. Add test-file overrides and relax rules that conflict with the astronomy-engine API and data-parser regexes. Remove the unsupported empty .eslintignore.
Apply ESLint 9 autofixes plus targeted fixes: add missing /u regex flags, remove dead vars/imports, merge duplicate imports, drop .js import extensions, remove debug console calls, cast to Kilometers instead of any, refactor a 9-arg helper to an options object, and split over-long template literals. No behavior change; full test suite and build pass.
Apply ESLint 9 autofixes and remove unused imports/vars, add /u regex flags, and avoid bare unused expressions in test files.
…ction and frame co-location
|
🎉 This PR is included in version 7.0.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a comprehensive documentation site for OOTK, improves CI workflows, and refines linting and code quality rules. The most important changes are grouped below.
Documentation Site and Theming
docs/.vitepress/, including a KeepTrack-branded color palette and integration of all major guides and examples. [1] [2] [3]docs/README.md) and improved documentation references and links in the mainREADME.md, making it easier for users to find guides and feature overviews. [1] [2]docs/examples/conjunction-assessment-example.md.CI/CD Improvements
circular-checkjob for circular dependency checking using Madge, matrix testing for Node.js 18.x and 20.x, and separated integration tests into their own job. The build artifacts are now uploaded and reused in test jobs for efficiency. [1] [2].madgercconfiguration to support circular dependency detection.Linting and Code Quality
.eslintrc.json: replaced thejestenvironment with explicit global definitions for test functions (to support Vitest or other runners), improved rule formatting for readability, increased themax-lento 180, disabled theno-undefinedrule, and enforced no.jsextension in import/export statements. [1] [2] [3] [4] [5] [6]Build Configuration Cleanup
babel.config.cjsfile, reflecting a move away from Babel-based builds.