Skip to content

MiguelPuntoEs/gnsscalc

Repository files navigation

gnsscalc.com

A free online toolbox for GNSS engineers. Convert time scales, transform coordinates, analyze RINEX and NMEA files, plan observation sessions, and monitor live GNSS data — instantly, in your browser.

Try it now at gnsscalc.com

GPS Time Converter

Convert timestamps across every major GNSS and astronomical time scale in one place:

  • GNSS times — GPS, Galileo, BeiDou, GLONASS
  • Standard scales — UTC, TAI, TT, UNIX
  • Astronomical dates — Julian Date, Modified Julian Date, MJD2000
  • GPS-specific — Week number, Time of Week (TOW), RINEX format
  • Calendar info — Day of year, week of year, hour code
  • Time differences — Elapsed time between any two timestamps
  • Live GPS clock — Current GPS time, week, and seconds updated in real time

All conversions are bidirectional. Change any field and every other field updates instantly. Leap seconds are handled automatically.

Positioning Calculator

A full geodetic toolkit for coordinate conversion and spatial computations:

  • Coordinate formats — ECEF, geodetic (lat/lon/height), DMS, UTM, Maidenhead grid locator, geohash
  • Distances — Orthodromic (great-circle), loxodromic (rhumb line), and Euclidean, with bearings and midpoint
  • Local frames — AER (Azimuth/Elevation/Range) and ENU (East/North/Up) from a reference position
  • Reference frame transforms — time-dependent 14-parameter Helmert transforms between ITRF realizations (ITRF88–ITRF2020), ETRF2000/2014/2020, NAD83(2011) and WGS84 at a given coordinate epoch
  • Horizon distance — Geometric line-of-sight distance from a given altitude
  • Interactive map — Visualize positions, great-circle arcs, and distances on a Leaflet map
  • Geolocation — Use your device location or search an address
  • Shareable links — Positions are encoded in the URL so you can share or bookmark any result

All computations use the WGS84 ellipsoid with Vincenty's formulae for geodetic accuracy.

Satellite Visibility Planner

Plan GNSS observation sessions for any location, date and time window:

  • Pass prediction — rise, peak and set times for every satellite above your elevation mask
  • Visible-satellite count and PDOP — geometry over time, highlighting the longest window with PDOP below 3
  • Constellations — GPS, GLONASS, Galileo, BeiDou
  • Orbit data — satellite positions propagated from the IGS broadcast ephemeris (BRDC) for the selected UTC day

RINEX Viewer & Quality Analyzer

Drop a RINEX observation file (2.x, 3.x, 4.x — plain, Hatanaka-compressed or gzipped) for a full signal quality analysis:

  • Code multipath — code-minus-carrier combination per signal pair with arc-mean debiasing; heatmaps, distributions and per-satellite RMS
  • Cycle slips — Melbourne-Wübbena, geometry-free and single-frequency phase-code divergence detectors; slips break multipath arcs automatically
  • Data completeness — per signal and per satellite, excluding satellites that don't transmit a given signal
  • Ionosphere — dual-frequency slant TEC per satellite, calibrated with ESA satellite DCBs
  • Sky plots, elevation & DOP — add a navigation file for satellite trajectories, multipath vs elevation and DOP timelines
  • Header editor — edit header fields inline with IGS equipment autocomplete, then download the modified file
  • Filtering & export — filter by constellation, satellite and signal type; export to RINEX 2.11/3.04/4.01, CSV or JSON metadata, with optional hourly-to-daily file splitting
  • PDF report — one-click QC report with tables and embedded charts
  • Deep links/rinex?url=… loads files directly from allowlisted public archives (BKG, EUREF EPN, TU Delft DPGA, NOAA CORS, SOPAC, IGN, ESA)

The parser streams the file in chunks, so multi-gigabyte files work without exceeding browser memory. Nothing is uploaded.

Single-Point Positioning

Part of the RINEX viewer: when an observation and a navigation file are loaded, an SPP card solves epochs across the whole file in the Web Worker:

  • Weighted least squares with satellite-clock, relativistic, TGD, Sagnac and tropospheric corrections, per-constellation clock offsets and outlier rejection
  • ΔENU time series — East/North/Up error vs the RINEX header position across the day, with per-component RMS and mean

NMEA Log Viewer

Analyze NMEA 0183 log files:

  • GGA/RMC parsing from any talker ID (GP, GN, GL, GA, GB), with checksum verification and per-epoch merging
  • Track map — plot the parsed fixes on an interactive map
  • Statistics — fix count, duration, altitude range, average satellite count and bounding box

ANTEX Antenna Viewer

Browse GNSS antenna calibrations from ANTEX 1.4 files (e.g. IGS igs20.atx):

  • Phase Center Offsets (PCO) per frequency, for receiver and satellite antennas
  • Phase Center Variation (PCV) polar plots, including azimuth-dependent patterns

NTRIP Client

Connect to any NTRIP caster (1.0 and 2.0) from the browser:

  • Sourcetable browser — list mountpoints and view station locations on a map
  • Live RTCM3 monitor — decoded message types, satellite C/N0, sky plot and station metadata in real time
  • RINEX recording — capture observations from the stream and download a .obs file
  • Deep links/ntrip?host=…&port=…&mountpoint=… connects straight to a stream

GNSS Signal Spectrum

Interactive Power Spectral Density chart of all GNSS L-band signals (1150–1610 MHz):

  • All constellations — GPS, GLONASS (FDMA & CDMA), Galileo, BeiDou-2/3, QZSS, NavIC
  • Modulations — PSD curves computed analytically from the BPSK, BOC(s/c) and AltBOC models
  • Explore — toggle constellations, zoom into bands, hover for modulation details

Broadcast Ephemeris Status

Live broadcast ephemeris for all GNSS constellations, sourced from the IGS real-time stream (BCEP00BKG0):

  • Satellite health — per-constellation health flags decoded per the respective ICDs, with expired-ephemeris highlighting
  • Full parameters — orbital elements, perturbation and clock corrections for every satellite
  • Coverage — GPS, Galileo, GLONASS, BeiDou, QZSS and SBAS (EGNOS, WAAS, GAGAN, MSAS, SDCM, BDSBAS, KASS)

Why gnsscalc?

  • No install, no sign-up — open the site and start calculating
  • Everything runs in the browser — your data never leaves your device
  • Instant feedback — all fields update as you type
  • Copy any value — one-click copy on every computed result
  • Mobile-friendly — works on any screen size
  • Built by a GNSS engineer — designed around the computations you actually need every day

Built With

Astro + React · TypeScript · Tailwind CSS · gnss-js · Leaflet · Deployed on Cloudflare Workers

Development

pnpm install
bash scripts/fetch-e2e-data.sh   # RINEX test fixtures (gitignored) — needed for `pnpm test`
pnpm dev
Command Description
pnpm build Build for production
pnpm preview Preview the production build
pnpm test Run the vitest suite
pnpm format Format code with Prettier

Working against a local gnss-js checkout (instead of the npm release):

pnpm link ../gnss-js      # undo with: pnpm unlink gnss-js && pnpm install

Architecture notes

  • Workersworker/ serves the app + the ephemeris snapshot from KV (30 s cache); worker-ephemeris/ refreshes that snapshot from the BKG NTRIP caster on a cron trigger.
  • NTRIP proxy — the browser cannot open raw TCP connections, so the NTRIP client talks to casters through the CORS proxy at ntrip-proxy.gnsscalc.com (a separate Cloudflare Worker; the target caster is passed via X-Ntrip-Host/X-Ntrip-Port headers). The same worker also serves as a CORS relay for RINEX archive files (/rinex?url=… deep links, the visibility planner's BRDC download, ESA DCB products) against a fixed host allowlist, and is what worker-ephemeris uses to reach the IGS caster.

Author

Miguel González — miguel.es

About

GNSS time calculator

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors