ootk 1.0.8 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{asc → .asc}/asconfig.json +0 -0
- package/{asc → .asc}/assembly/index.ts +0 -0
- package/{asc → .asc}/ex/asconfig.json +0 -0
- package/{asc → .asc}/ex/assembly/index.ts +0 -0
- package/{asc → .asc}/ex/index.html +0 -0
- package/{asc → .asc}/ex/package.json +0 -0
- package/{asc → .asc}/ex/tests/index.js +0 -0
- package/{asc → .asc}/package.json +0 -0
- package/{asc → .asc}/tests/index.js +0 -0
- package/.eslintrc.json +244 -0
- package/CHANGELOG.md +21 -1
- package/LICENSE.MD +299 -21
- package/README.md +17 -22
- package/dist/objects/base-object.d.ts +40 -0
- package/dist/objects/detailed-sat.d.ts +66 -0
- package/dist/objects/index.d.ts +4 -0
- package/dist/objects/sat.d.ts +88 -0
- package/dist/objects/sensor.d.ts +40 -0
- package/dist/objects/space-object.d.ts +38 -0
- package/dist/objects/star.d.ts +46 -0
- package/dist/ootk.d.ts +16 -21
- package/dist/ootk.js +2 -1
- package/dist/ootk.js.LICENSE.txt +77 -0
- package/dist/{sgp4.d.ts → sgp4/sgp4.d.ts} +14 -21
- package/dist/tle/tle-format-data.d.ts +6 -0
- package/dist/tle/tle.d.ts +374 -0
- package/{lib → dist/transforms}/transforms.d.ts +14 -17
- package/dist/{types.d.ts → types/types.d.ts} +111 -3
- package/dist/utils/constants.d.ts +34 -0
- package/dist/utils/moon-math.d.ts +104 -0
- package/dist/utils/sun-math.d.ts +230 -0
- package/dist/utils/utils.d.ts +36 -0
- package/lib/objects/base-object.d.ts +40 -0
- package/lib/objects/base-object.js +109 -0
- package/lib/objects/base-object.js.map +1 -0
- package/lib/objects/detailed-sat.d.ts +66 -0
- package/lib/objects/detailed-sat.js +149 -0
- package/lib/objects/detailed-sat.js.map +1 -0
- package/lib/objects/index.d.ts +4 -0
- package/lib/objects/index.js +5 -0
- package/lib/objects/index.js.map +1 -0
- package/lib/objects/sat.d.ts +88 -0
- package/lib/objects/sat.js +141 -0
- package/lib/objects/sat.js.map +1 -0
- package/lib/objects/sensor.d.ts +40 -0
- package/lib/objects/sensor.js +88 -0
- package/lib/objects/sensor.js.map +1 -0
- package/lib/objects/space-object.d.ts +38 -0
- package/lib/objects/space-object.js +60 -0
- package/lib/objects/space-object.js.map +1 -0
- package/lib/objects/star.d.ts +46 -0
- package/lib/objects/star.js +91 -0
- package/lib/objects/star.js.map +1 -0
- package/lib/ootk.d.ts +16 -21
- package/lib/ootk.js +16 -21
- package/lib/ootk.js.map +1 -1
- package/lib/{sgp4.d.ts → sgp4/sgp4.d.ts} +14 -21
- package/lib/{sgp4.js → sgp4/sgp4.js} +1064 -898
- package/lib/sgp4/sgp4.js.map +1 -0
- package/lib/tle/tle-format-data.d.ts +6 -0
- package/lib/tle/tle-format-data.js +10 -0
- package/lib/tle/tle-format-data.js.map +1 -0
- package/lib/tle/tle.d.ts +374 -0
- package/lib/tle/tle.js +611 -0
- package/lib/tle/tle.js.map +1 -0
- package/{dist → lib/transforms}/transforms.d.ts +14 -17
- package/lib/{transforms.js → transforms/transforms.js} +44 -40
- package/lib/transforms/transforms.js.map +1 -0
- package/lib/{types.d.ts → types/types.d.ts} +111 -3
- package/lib/types/types.js +34 -0
- package/lib/types/types.js.map +1 -0
- package/lib/utils/constants.d.ts +19 -15
- package/lib/utils/constants.js +20 -16
- package/lib/utils/constants.js.map +1 -1
- package/lib/utils/moon-math.d.ts +104 -0
- package/lib/utils/moon-math.js +387 -0
- package/lib/utils/moon-math.js.map +1 -0
- package/lib/utils/sun-math.d.ts +230 -0
- package/lib/utils/sun-math.js +421 -0
- package/lib/utils/sun-math.js.map +1 -0
- package/lib/utils/utils.d.ts +36 -0
- package/lib/utils/utils.js +81 -0
- package/lib/utils/utils.js.map +1 -0
- package/package.json +4 -3
- package/dist/utils.d.ts +0 -34
- package/lib/sgp4.js.map +0 -1
- package/lib/transforms.js.map +0 -1
- package/lib/types.js +0 -2
- package/lib/types.js.map +0 -1
- package/lib/utils.d.ts +0 -34
- package/lib/utils.js +0 -62
- package/lib/utils.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# ootk
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
[](https://github.com/thkruz/ootk/actions?query=workflow%3ACI)  [](https://www.npmjs.com/package/ootk) [](https://github.com/thkruz/ootk/issues) [](https://codecov.io/gh/thkruz/ootk) [](LICENSE.MD)
|
|
3
4
|
|
|
4
5
|
> An Orbital Object Tookit in Your Web Browser
|
|
5
6
|
|
|
6
7
|
**ootk** is a modular collection of small libraries for doing math related to orbital objects written in TypeScript. ootk was developed to simplify the math and let you focus on using the results.
|
|
7
8
|
|
|
8
9
|
## :blue_book: Table of Contents
|
|
10
|
+
|
|
9
11
|
- [Installation](#Installation)
|
|
10
12
|
- [Usage](#Usage)
|
|
11
13
|
- [Contributing](#Contributing)
|
|
@@ -26,7 +28,7 @@ npm i ootk
|
|
|
26
28
|
### Common.js ([Node.js](https://nodejs.org))
|
|
27
29
|
|
|
28
30
|
```js
|
|
29
|
-
let Ootk = require('
|
|
31
|
+
let Ootk = require('ootk.js');
|
|
30
32
|
...
|
|
31
33
|
const satrec = Ootk.Sgp4.createSatrec(line1, line2, 'wgs72', 'i');
|
|
32
34
|
```
|
|
@@ -34,17 +36,17 @@ const satrec = Ootk.Sgp4.createSatrec(line1, line2, 'wgs72', 'i');
|
|
|
34
36
|
### ES ([Babel.js](https://babeljs.io/))
|
|
35
37
|
|
|
36
38
|
```js
|
|
37
|
-
import * as Ootk from '
|
|
39
|
+
import * as Ootk from 'ootk.es.js';
|
|
38
40
|
...
|
|
39
41
|
const satrec = Ootk.Sgp4.createSatrec(line1, line2, 'wgs72', 'i');
|
|
40
42
|
```
|
|
41
43
|
|
|
42
44
|
### Script tag
|
|
43
45
|
|
|
44
|
-
Include `dist/ootk.
|
|
46
|
+
Include `dist/ootk.js` as a script in your html:
|
|
45
47
|
|
|
46
48
|
```html
|
|
47
|
-
<script src="path/to/dist/ootk.
|
|
49
|
+
<script src="path/to/dist/ootk.js"></script>
|
|
48
50
|
```
|
|
49
51
|
|
|
50
52
|
`Ootk` object will be available in global scope:
|
|
@@ -61,20 +63,19 @@ The source code is organized as Common.js modules and uses [ES6 syntax](http://e
|
|
|
61
63
|
|
|
62
64
|
2. Install all required packages with NPM by running the following command from repository's root directory:
|
|
63
65
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
```bash
|
|
67
|
+
npm install
|
|
68
|
+
```
|
|
67
69
|
|
|
68
70
|
3. Run the following NPM script to build everything:
|
|
69
71
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
```bash
|
|
73
|
+
npm run build
|
|
74
|
+
```
|
|
73
75
|
|
|
74
76
|
## :gem: NPM Scripts
|
|
75
77
|
|
|
76
|
-
- `build` compiles TypeScript into ES6 Modules
|
|
77
|
-
- `build:umd` compiles TypeScript into ES6 Modules and generates UMD files
|
|
78
|
+
- `build` compiles TypeScript into ES6 Modules and combines them into a single file in the `dist` directory.
|
|
78
79
|
- `lint` lints source code located in `src` directory with [ESLint](http://eslint.org/)
|
|
79
80
|
- `lint:fix` lints tests located in `src` directory with ESLint and attempts to auto-fix errors
|
|
80
81
|
- `lint:test` lints tests located in `test` directory with ESLint
|
|
@@ -106,13 +107,6 @@ Check that your code follows the rules established in eslint.rc:
|
|
|
106
107
|
npm run lint
|
|
107
108
|
```
|
|
108
109
|
|
|
109
|
-
Use [commitzen](https://github.com/commitizen/cz-cli) to format your commit messages:
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
git add .
|
|
113
|
-
git cz
|
|
114
|
-
```
|
|
115
|
-
|
|
116
110
|
## :man_scientist: Contributors
|
|
117
111
|
|
|
118
112
|
This whole project is an example of standing on the shoulder's of giants. None of it would have been possible without the previous work of the following:
|
|
@@ -121,8 +115,9 @@ This whole project is an example of standing on the shoulder's of giants. None o
|
|
|
121
115
|
- [davidcalhoun (David Calhoun)](https://github.com/davidcalhoun)
|
|
122
116
|
- [shashwatak (Shashwat Kandadai)](https://github.com/shashwatak)
|
|
123
117
|
- [brandon-rhodes (Brandon Rhodes)](https://github.com/brandon-rhodes)
|
|
124
|
-
|
|
118
|
+
- [mourner (Volodymyr Agafonkin)](https://github.com/mourner)
|
|
119
|
+
- [Hypnos (Robert Gester)](https://github.com/Hypnos3)
|
|
125
120
|
|
|
126
121
|
## :balance_scale: License
|
|
127
122
|
|
|
128
|
-
|
|
123
|
+
Due to the expanding scope of this project, I have placed the code under the [AGPL License](LICENSE.md) in order to ensure that good ideas can be shared and that the code is open for everyone to use.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Theodore Kruczek.
|
|
3
|
+
* @description Orbital Object ToolKit (OOTK) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
*
|
|
6
|
+
* @file The BaseObject class is used for creating core properties and methods applicable
|
|
7
|
+
* to ground and space based objects.
|
|
8
|
+
*
|
|
9
|
+
* @license AGPL-3.0-or-later
|
|
10
|
+
* @Copyright (c) 2020-2022 Theodore Kruczek
|
|
11
|
+
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
|
+
*/
|
|
23
|
+
import { EciVec3, SpaceObjectType } from '../types/types';
|
|
24
|
+
interface ObjectInfo {
|
|
25
|
+
name?: string;
|
|
26
|
+
type?: SpaceObjectType;
|
|
27
|
+
position?: EciVec3;
|
|
28
|
+
time?: Date;
|
|
29
|
+
}
|
|
30
|
+
export declare class BaseObject {
|
|
31
|
+
name: string;
|
|
32
|
+
type: SpaceObjectType;
|
|
33
|
+
position: EciVec3;
|
|
34
|
+
time: Date;
|
|
35
|
+
constructor(info: ObjectInfo);
|
|
36
|
+
getName(): string;
|
|
37
|
+
getType(): SpaceObjectType;
|
|
38
|
+
getTypeString(): string;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Theodore Kruczek.
|
|
3
|
+
* @description Orbital Object ToolKit (OOTK) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
*
|
|
6
|
+
* @file The DetailedSat class is an extension of the Sat class that provides additional
|
|
7
|
+
* properties for categorizing and filtering satellites.
|
|
8
|
+
*
|
|
9
|
+
* @license AGPL-3.0-or-later
|
|
10
|
+
* @Copyright (c) 2020-2022 Theodore Kruczek
|
|
11
|
+
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
|
+
*/
|
|
23
|
+
import { LaunchDetails, OperationsDetails, SpaceCraftDetails, SpaceObjectType } from '../types/types';
|
|
24
|
+
import { Sat } from './sat';
|
|
25
|
+
interface ObjectInfo {
|
|
26
|
+
name?: string;
|
|
27
|
+
type?: SpaceObjectType;
|
|
28
|
+
rcs?: number;
|
|
29
|
+
vmag?: number;
|
|
30
|
+
tle1: string;
|
|
31
|
+
tle2: string;
|
|
32
|
+
}
|
|
33
|
+
export declare class DetailedSat extends Sat {
|
|
34
|
+
launchDate: string;
|
|
35
|
+
launchMass: string;
|
|
36
|
+
launchSite: string;
|
|
37
|
+
launchVehicle: string;
|
|
38
|
+
lifetime: string | number;
|
|
39
|
+
maneuver: string;
|
|
40
|
+
manufacturer: string;
|
|
41
|
+
motor: string;
|
|
42
|
+
power: string;
|
|
43
|
+
payload: string;
|
|
44
|
+
purpose: string;
|
|
45
|
+
shape: string;
|
|
46
|
+
span: string;
|
|
47
|
+
user: string;
|
|
48
|
+
mission: string;
|
|
49
|
+
owner: string;
|
|
50
|
+
configuration: string;
|
|
51
|
+
equipment: string;
|
|
52
|
+
dryMass: string;
|
|
53
|
+
country: string;
|
|
54
|
+
constructor(info: ObjectInfo, options: any, details: {
|
|
55
|
+
launchDetails: LaunchDetails;
|
|
56
|
+
spaceCraftDetails: SpaceCraftDetails;
|
|
57
|
+
operationsDetails: OperationsDetails;
|
|
58
|
+
});
|
|
59
|
+
setLaunchDetails(details: LaunchDetails): void;
|
|
60
|
+
getLaunchDetails(): LaunchDetails;
|
|
61
|
+
setSpaceCraftDetails(details: SpaceCraftDetails): void;
|
|
62
|
+
getSpaceCraftDetails(): SpaceCraftDetails;
|
|
63
|
+
setOperationsDetails(details: OperationsDetails): void;
|
|
64
|
+
getOperationsDetails(): OperationsDetails;
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Theodore Kruczek.
|
|
3
|
+
* @description Orbital Object ToolKit (OOTK) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
*
|
|
6
|
+
* @file The Sat class provides functions for calculating satellites positions relative
|
|
7
|
+
* to earth based sensors and other orbital objects.
|
|
8
|
+
*
|
|
9
|
+
* @license AGPL-3.0-or-later
|
|
10
|
+
* @Copyright (c) 2020-2022 Theodore Kruczek
|
|
11
|
+
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
|
+
*/
|
|
23
|
+
import { EcfVec3, EciVec3, LlaVec3, RaeVec3, SatelliteRecord, SpaceObjectType, StateVector } from '../types/types';
|
|
24
|
+
import { Sensor } from './sensor';
|
|
25
|
+
import { SpaceObject } from './space-object';
|
|
26
|
+
interface ObjectInfo {
|
|
27
|
+
name?: string;
|
|
28
|
+
type?: SpaceObjectType;
|
|
29
|
+
rcs?: number;
|
|
30
|
+
vmag?: number;
|
|
31
|
+
tle1: string;
|
|
32
|
+
tle2: string;
|
|
33
|
+
}
|
|
34
|
+
export declare class Sat extends SpaceObject {
|
|
35
|
+
satNum: number;
|
|
36
|
+
satrec: SatelliteRecord;
|
|
37
|
+
intlDes: string;
|
|
38
|
+
epochYear: number;
|
|
39
|
+
epochDay: number;
|
|
40
|
+
meanMoDev1: number;
|
|
41
|
+
meanMoDev2: number;
|
|
42
|
+
bstar: number;
|
|
43
|
+
inclination: number;
|
|
44
|
+
raan: number;
|
|
45
|
+
eccentricity: number;
|
|
46
|
+
argOfPerigee: number;
|
|
47
|
+
meanAnomaly: number;
|
|
48
|
+
meanMotion: number;
|
|
49
|
+
period: number;
|
|
50
|
+
apogee: number;
|
|
51
|
+
perigee: number;
|
|
52
|
+
options: any;
|
|
53
|
+
constructor(info: ObjectInfo, options: any);
|
|
54
|
+
propagateTo(date: Date): Sat;
|
|
55
|
+
/**
|
|
56
|
+
* Calculates position and velocity in ECI coordinates at a given time.
|
|
57
|
+
* @param {Date} date Date to calculate the state vector for
|
|
58
|
+
* @returns {StateVector} State vector for the given date
|
|
59
|
+
*/
|
|
60
|
+
getStateVec(date?: Date): StateVector;
|
|
61
|
+
/**
|
|
62
|
+
* Calculates ECI position at a given time.
|
|
63
|
+
* @param {Date} date Date to calculate
|
|
64
|
+
* @returns {EciVec3} ECI position vector
|
|
65
|
+
*/
|
|
66
|
+
getEci(date?: Date): EciVec3;
|
|
67
|
+
/**
|
|
68
|
+
* Calculates ECF position at a given time.
|
|
69
|
+
* @param {Date} date Date to calculate
|
|
70
|
+
* @returns {EcfVec3} ECF position vector
|
|
71
|
+
*/
|
|
72
|
+
getEcf(date?: Date): EcfVec3;
|
|
73
|
+
/**
|
|
74
|
+
* Calculates LLA position at a given time.
|
|
75
|
+
* @param {Date} date Date to calculate
|
|
76
|
+
* @returns {LlaVec3} LLA position vector
|
|
77
|
+
*/
|
|
78
|
+
getLla(date?: Date): LlaVec3;
|
|
79
|
+
getRae(sensor: Sensor, date?: Date): RaeVec3;
|
|
80
|
+
/**
|
|
81
|
+
* Calculates the time variables for a given date relative to the TLE epoch.
|
|
82
|
+
* @param {Date} date Date to calculate
|
|
83
|
+
* @param {SatelliteRecord} satrec Satellite orbital information
|
|
84
|
+
* @returns {{m: number, gmst: GreenwichMeanSiderealTime, j: number}} Time variables
|
|
85
|
+
*/
|
|
86
|
+
private static calculateTimeVariables;
|
|
87
|
+
}
|
|
88
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Theodore Kruczek.
|
|
3
|
+
* @description Orbital Object ToolKit (OOTK) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
*
|
|
6
|
+
* @file The Sensor class is used for creating ground based observers.
|
|
7
|
+
*
|
|
8
|
+
* @license AGPL-3.0-or-later
|
|
9
|
+
* @Copyright (c) 2020-2022 Theodore Kruczek
|
|
10
|
+
*
|
|
11
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
12
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
13
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
14
|
+
*
|
|
15
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
16
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
17
|
+
* See the GNU Affero General Public License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
20
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
*/
|
|
22
|
+
import { RaeVec3, SpaceObjectType } from '../types/types';
|
|
23
|
+
import { BaseObject } from './base-object';
|
|
24
|
+
import { Sat } from './sat';
|
|
25
|
+
interface ObjectInfo {
|
|
26
|
+
name?: string;
|
|
27
|
+
type?: SpaceObjectType;
|
|
28
|
+
lat: number;
|
|
29
|
+
lon: number;
|
|
30
|
+
alt: number;
|
|
31
|
+
}
|
|
32
|
+
export declare class Sensor extends BaseObject {
|
|
33
|
+
lat: number;
|
|
34
|
+
lon: number;
|
|
35
|
+
alt: number;
|
|
36
|
+
constructor(info: ObjectInfo);
|
|
37
|
+
setTime(date: Date): Sensor;
|
|
38
|
+
getRae(sat: Sat, date?: Date): RaeVec3;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Theodore Kruczek.
|
|
3
|
+
* @description Orbital Object ToolKit (OOTK) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
*
|
|
6
|
+
* @file The SpaceObject class is meant to provide properties to satellites/stars that
|
|
7
|
+
* do not apply to ground based objects.
|
|
8
|
+
*
|
|
9
|
+
* @license AGPL-3.0-or-later
|
|
10
|
+
* @Copyright (c) 2020-2022 Theodore Kruczek
|
|
11
|
+
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
|
+
*/
|
|
23
|
+
import { BaseObject } from './base-object';
|
|
24
|
+
import { SpaceObjectType } from '../types/types';
|
|
25
|
+
interface ObjectInfo {
|
|
26
|
+
name?: string;
|
|
27
|
+
type?: SpaceObjectType;
|
|
28
|
+
rcs?: number;
|
|
29
|
+
vmag?: number;
|
|
30
|
+
}
|
|
31
|
+
export declare class SpaceObject extends BaseObject {
|
|
32
|
+
rcs: number;
|
|
33
|
+
vmag: number;
|
|
34
|
+
constructor(info: ObjectInfo);
|
|
35
|
+
getRcs(): number;
|
|
36
|
+
getVmag(): number;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Theodore Kruczek.
|
|
3
|
+
* @description Orbital Object ToolKit (OOTK) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
*
|
|
6
|
+
* @file The Star class is meant to help with cacluating star positions relative to
|
|
7
|
+
* satellites and earth based sensors.
|
|
8
|
+
*
|
|
9
|
+
* @license AGPL-3.0-or-later
|
|
10
|
+
* @Copyright (c) 2020-2022 Theodore Kruczek
|
|
11
|
+
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
|
+
*/
|
|
23
|
+
import { EciVec3, LlaVec3, RaeVec3, SpaceObjectType } from '../types/types';
|
|
24
|
+
import { SpaceObject } from './space-object';
|
|
25
|
+
interface ObjectInfo {
|
|
26
|
+
name?: string;
|
|
27
|
+
type?: SpaceObjectType;
|
|
28
|
+
vmag?: number;
|
|
29
|
+
ra: number;
|
|
30
|
+
dec: number;
|
|
31
|
+
pname?: string;
|
|
32
|
+
bf?: string;
|
|
33
|
+
h?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare class Star extends SpaceObject {
|
|
36
|
+
pname: string;
|
|
37
|
+
bf: string;
|
|
38
|
+
h: string;
|
|
39
|
+
dec: number;
|
|
40
|
+
ra: number;
|
|
41
|
+
constructor(info: ObjectInfo);
|
|
42
|
+
getEci(lla?: LlaVec3, date?: Date): EciVec3;
|
|
43
|
+
getRae(lla?: LlaVec3, date?: Date): RaeVec3;
|
|
44
|
+
private static calculateTimeVariables;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
package/dist/ootk.d.ts
CHANGED
|
@@ -3,28 +3,23 @@
|
|
|
3
3
|
* @description Orbital Object ToolKit (OOTK) is a collection of tools for working
|
|
4
4
|
* with satellites and other orbital objects.
|
|
5
5
|
*
|
|
6
|
-
* @
|
|
7
|
-
* Copyright (c) 2020-
|
|
6
|
+
* @license AGPL-3.0-or-later
|
|
7
|
+
* @Copyright (c) 2020-2022 Theodore Kruczek
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* of
|
|
11
|
-
*
|
|
12
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
14
|
-
* furnished to do so, subject to the following conditions:
|
|
9
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
10
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
11
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
12
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
13
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
14
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
15
|
+
* See the GNU Affero General Public License for more details.
|
|
18
16
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
-
* SOFTWARE.
|
|
17
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
18
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
26
19
|
*/
|
|
27
|
-
export { Sgp4 } from './sgp4';
|
|
28
|
-
export { Transforms } from './transforms';
|
|
29
|
-
export { Utils } from './utils';
|
|
30
|
-
export
|
|
20
|
+
export { Sgp4 } from './sgp4/sgp4';
|
|
21
|
+
export { Transforms } from './transforms/transforms';
|
|
22
|
+
export { Utils } from './utils/utils';
|
|
23
|
+
export { Tle } from './tle/tle';
|
|
24
|
+
export * from './objects/index';
|
|
25
|
+
export * from './types/types';
|