UNPKG

gnss_solutions

Version:

Javascript GNSS solution analysis library

143 lines (142 loc) 4.89 kB
import * as Immutable from "immutable"; import * as sym from "./constants"; /** * ECEF position: x, y, z * * TODO: associate a datum and epoch-of-datum * TODO (Buro): Add some manner of Point definition from other JavaScript * solution libraries. * * @param {Number} x - X parameter (meters) * @param {Number} y - Y parameter (meters) * @param {Number} z - Z parameter (meters) */ export declare class ECEFSolution { x: number; y: number; z: number; constructor(x: number, y: number, z: number); distanceTo(b: ECEFSolution): number; toLLA(): LLASolution; toJSON(): Object; static objHasValidECEF(obj: Object): boolean; static fromJSON(obj: Object): ECEFSolution; static fromMap(map: Immutable.Map<string, number>): ECEFSolution; toString(): string; } /** * Baseline vector in ECEF: x, y, z * * @param {Number} x - X parameter (meters) * @param {Number} y - Y parameter (meters) * @param {Number} z - Z parameter (meters) */ export declare class ECEFBaseline { dx: number; dy: number; dz: number; constructor(dx: number, dy: number, dz: number); norm(): number; toJSON(): Object; static objHasValidECEF(obj: Object): boolean; static fromJSON(obj: Object): ECEFBaseline; static fromMap(map: Immutable.Map<string, number>): ECEFBaseline; toString(): string; } /** * Latitude, longitude, ellipsoid altitude * * @param {Number} lat - latitude (decimal degrees) * @param {String} latPole - latitude pole: 'N' or 'S' * @param {Number} lon - longitude (decimal degrees) * @param {String} lonPole - longitude pole: 'W' or 'E' * @param {Number} alt - altitude (meters) */ export declare class LLASolution { lat: number; latPole: string; lon: number; lonPole: string; alt: number; constructor(lat: number, latPole: string, lon: number, lonPole: string, alt: number); distanceTo(b: LLASolution): number[]; /** * Convert to ECEF frame. * * @return {ECEFSolution} */ toECEF(): ECEFSolution; static objHasValidLLA(obj: Object): boolean; static fromJSON(obj: Object): LLASolution; static fromMap(map: Immutable.Map<string, number>): LLASolution; /** * Materialize a LLASolution from a DMS string. Used here is the ellipsoidal * height. * * For more details, see https://www.ngs.noaa.gov/PUBS_LIB/gislis96.html. * * @param {String} latStr - Latitude (DMS) * @param {String} lonStr - Longitude (DMS) * @param {Number} height - Ellipsoidal height (meters) * @return {LLASolution} */ static fromDMS(latStr: string, lonStr: string, height: number): LLASolution; toJSON(): Object; toString(): string; } /** * A solution status represents a position solution from a sample GNSS receiver, * and additionally keeps track of a few other parameters of interest reported * during that epoch. It represents a sample solution at a particular instance * of time, and stores a flat map for a particular instance in time, using the * result schema defined by Swift's gnss-testing repository: * https://github.com/swift-nav/gnss-testing/blob/master/DESIGN.md#swift-solution-csv * * Example: * ``` * import { ECEFSolution, SolutionStatus } from "./coords"; * const time = new Date('2016-06-05'); * const ecef = new coords.ECEFSolution(ctest.earthA, 0, 0); * const soln = new coords.SolutionStatus(time, ecef.toLLA(), 0, 3, 0.5); * console.log(event.toJSON()); => * {"epoch(gpst)": new Date("2016-06-05T00:00:00.000Z"), * "fix_mode": "integer_rtk", * "latency(sec)": 0.5, * "num_sats": 3, * "est_error_2d(m)": NaN, * "est_error_3d(m)": NaN, * "est_error_v(m)": NaN, * "baseline_x(m)": NaN, * "baseline_y(m)": NaN, * "baseline_z(m)": NaN, * "rover_pos_x(m)":6378137, * "rover_pos_y(m)":0, * "rover_pos_z(m)":0, * "rover_pos_lat(deg)":0, * "rover_pos_lon(deg)":0, * "rover_pos_height(m)":0} * ``` */ export declare class SolutionStatus { time: Date; ecefSolution: ECEFSolution; ecefBaseline: ECEFBaseline; llaSolution: LLASolution; computedEcef: ECEFSolution; computedLla: LLASolution; fixMode: sym.FIX_MODE_TYPE; numSats: number; latency: number; estHError: number; estVError: number; estSphError: number; constructor(time: Date, ecef?: ECEFSolution, lla?: LLASolution, fixMode?: sym.FIX_MODE_TYPE, numSats?: number, latency?: number, ecefBaseline?: ECEFBaseline, estHError?: number, estVError?: number, estSphError?: number); toJSON(): Object; static fromJSON(obj: Object): SolutionStatus; static fromMap(map: Immutable.Map<string, number>): SolutionStatus; compareTo(ref: SolutionStatus): [number, number, number]; toString(): string; getLLA(): LLASolution; getECEF(): ECEFSolution; mergeWith(other: SolutionStatus): SolutionStatus; }