ootk-core
Version:
Orbital Object Toolkit. A modern typed replacement for satellite.js including SGP4 propagation, TLE parsing, Sun and Moon calculations, and more.
88 lines • 3.36 kB
JavaScript
/**
* @author Theodore Kruczek.
* @license MIT
* @copyright (c) 2022-2025 Theodore Kruczek Permission is
* hereby granted, free of charge, to any person obtaining a copy of this
* software and associated documentation files (the "Software"), to deal in the
* Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do
* so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
import { DEG2RAD, PI, RAD2DEG } from '../main.js';
/**
* Converts radians to degrees.
* @param radians The value in radians to be converted.
* @returns The value in degrees.
*/
export function rad2deg(radians) {
return ((radians * 180) / PI);
}
/**
* Converts degrees to radians.
* @param degrees The value in degrees to be converted.
* @returns The value in radians.
*/
export function deg2rad(degrees) {
return ((degrees * PI) / 180.0);
}
/**
* Converts radians to degrees latitude.
* @param radians The radians value to convert.
* @returns The corresponding degrees latitude.
* @throws RangeError if the radians value is outside the range [-PI/2; PI/2].
*/
export function getDegLat(radians) {
if (radians < -PI / 2 || radians > PI / 2) {
throw new RangeError('Latitude radians must be in range [-PI/2; PI/2].');
}
return (radians * RAD2DEG);
}
/**
* Converts radians to degrees for longitude.
* @param radians The value in radians to be converted.
* @returns The converted value in degrees.
* @throws {RangeError} If the input radians is not within the range [-PI; PI].
*/
export function getDegLon(radians) {
if (radians < -PI || radians > PI) {
throw new RangeError('Longitude radians must be in range [-PI; PI].');
}
return (radians * RAD2DEG);
}
/**
* Converts degrees to radians for latitude.
* @param degrees The degrees value to convert.
* @returns The equivalent radians value.
* @throws {RangeError} If the degrees value is not within the range [-90, 90].
*/
export function getRadLat(degrees) {
if (degrees < -90 || degrees > 90) {
throw new RangeError('Latitude degrees must be in range [-90; 90].');
}
return (degrees * DEG2RAD);
}
/**
* Converts degrees to radians.
* @param degrees The value in degrees to be converted.
* @returns The value in radians.
* @throws {RangeError} If the input degrees are not within the range [-180; 180].
*/
export function getRadLon(degrees) {
if (degrees < -180 || degrees > 180) {
throw new RangeError('Longitude degrees must be in range [-180; 180].');
}
return (degrees * DEG2RAD);
}
//# sourceMappingURL=conversions.js.map