geoprimsField-grade geospatial math

Add and subtract DMS angles

Adds and subtracts angles in degrees, minutes, and seconds (or decimal degrees), carrying seconds and minutes exactly, with the result normalized to 0-360° or ±180° if you like.

55°16'00.00"

The result is 55°16'00.00".

Result (decimal)
Result in seconds
Provenance
Computed by
geodesy.parse.angle-arithmetic 1.0.0, core 0.1.0
Model
Each angle to seconds of arc (3600 × degrees), summed with its sign, then normalized if chosen and written back as D°MM'SS.ss" with rounding carried into minutes and degrees
Accuracy
Exact to 0.0001″ for sums of up to 1,000 angles
Notes
None
Cites
International Organization for Standardization, Geographic Point Location, ISO 6709

Something look off?

Your values

Showing an example. Change anything.
Run many at once from a CSV

Loading…

How we got thisFormula, worked example, sources, and proof

Model: Each angle to seconds of arc (3600 × degrees), summed with its sign, then normalized if chosen and written back as D°MM'SS.ss" with rounding carried into minutes and degrees

Show your work

  1. Sum in seconds of arc

    Σ±3600×angle

    45-30-15 + 12-45-50 − 3-00-05 = 198,960″

  2. Degrees, minutes, and seconds

    D = ⌊s / 3600⌋, M = ⌊(s mod 3600) / 60⌋, S = s mod 60

    198,960″ = 55°16'00.00"

The same steps an agent gets from the MCP server with explain: true.

Accuracy: Exact to 0.0001″ for sums of up to 1,000 angles

When to use this: Use this to add and subtract angles written in degrees, minutes and seconds without doing the sexagesimal carries by hand: summing the interior angles of a traverse, applying a correction to a bearing, or closing a set of observations. Decimal degrees mix freely with DMS in the same sum.

Limitations: The carry is exact and the printed seconds are rounded once at the end, so a sum a hair under a whole degree prints as that degree rather than as fifty-nine minutes sixty seconds -- but two sums each rounded to a hundredth of a second and then added by hand can still differ from the same terms summed here. Without a normalization the total is not wrapped, which is what a traverse needs; choose one if you want a bearing back. This is arithmetic on angles, not on directions: it does not know that a bearing and its reverse describe one line.

Worked example: 45°30'15" + 12°45'50" − 3°00'05". Source: Sexagesimal arithmetic: 55°16'00". It is golden test vector v001, and every build checks the tool still gives its answer within its tolerance.

You enter

Angles
45-30-15 12-45-50 3-00-05, subtract

You get

Result
55°16'00.00"
Result (decimal)
55.266666667°
Result in seconds
198,960″

Review: Not yet independently reviewed by a geodesist.

Last verified: 2026-09-18, when a maintainer last confirmed this tool's sources at the issuer. See the sources ledger.

Status: version 1.0.0, core 0.1.0. See this tool in the verification report.

Checked against: 24 golden test vectors (download the test vectors, each with its source and tolerance). See how results are checked and every source.

Sources

Terms

DMS: degrees, minutes, seconds
An angle written as whole degrees, minutes (1/60 degree), and seconds (1/3600 degree), like 40°26'46". Source: ISO 6709 Geographic point location