Artificial Wasteland artwaste.land

Navigation lights, with their characteristics parsed

7 of 7 conditions 40,559 rows · 13.7 MB · 5 files

40,559 lights from the NGA List of Lights, Pub. 110 through 116, with each light's printed characteristic decomposed into machine-readable parts.

The files

FileRowsBytessha256
lights.jsonl 40,559 13,737,161 edb567da163529ad6c34e54cc744159921834350b82a8a361147d3a8b1085832
README.md n/a 3,132 5d27c878889276ceacff121cf03a4365f8b80293600a8fac54a9cbdfaf81dca6
schema.json n/a 6,116 e1062de875d57ebec5d2c887a74dd7b0cbad9a49bed1fb3dd63618a3e110a3d4
sources.json n/a 2,473 226041c8788671ee588a36d1d4e33e251c260f8397319cbebcd6f5cccfb31a50
validate.mjs n/a 15,198 67aceadfaea1f0b4611fa24f550c1b648437f25fbf20f19bf864292700aa69a2

Take the folder and check it yourself: node validate.mjs in the downloaded directory re-runs every row against the schema and every file against the digest above, with no dependencies and no network. The dataset's own full account is README.md.

A row, field by field

Origin is the column that decides whether we may give a field away at all. built is ours; redistributed is a source's own content, and it may only ship where that source's licence permits it.

FieldTypeOriginWhat it is
id string built volume number, feature number and characteristic index, joined. Ours: the publication has no single stable key for a light with several characteristics.
name string or null redistributed The light's name as printed. Null where the publication prints none.
country string redistributed The geopolitical heading the light is listed under.
structure string or null redistributed The structure description as printed.
lat number built Latitude in decimal degrees, converted by us from the printed degrees and minutes and rounded to five places.
lon number built Longitude in decimal degrees, converted as for lat.
range_nm number or null built Nominal range in nautical miles. WHERE THE PUBLICATION PRINTS SEVERAL RANGES, ONE PER SECTOR, THIS IS THE LARGEST OF THEM: the per-sector ranges are not carried. Null where no range is printed or none parsed.
height_m number or null built Height above water in metres, taken from the metres half of the printed feet/metres pair and rejected when the two disagree by more than 1.5 m.
rhythm string built The rhythm class parsed from the characteristic (Fl, Oc, Iso, Q, F and the rest).
groups array built The group counts, as in Fl.(2+1). Empty where the characteristic has no group.
colours array built Colour letters in printed order: W white, R red, G green, Y yellow, B blue.
period_s number or null built The period in seconds. Null where the publication prints none; period_status says which kind of absence it is.
phases array or null built The reconstructed flash/eclipse sequence within one period, in seconds. Null where no period is known. This is the field the instrument blinks on screen.
multiple integer built How many characteristics this feature number carries in the publication.
characteristic string redistributed The characteristic string as printed, which is what the parse above was derived from.
period_status string built printed: a period is given. definitionally-absent: the rhythm (F, Q, VQ, UQ, IQ, IVQ) does not take one. missing: a period should be there and is not. The three-way split is our editorial judgement, not the publication's.

Where it came from, and how we know we may pass it on

List of Lights, Radio Aids and Fog Signals, Pub. 110 through 116

National Geospatial-Intelligence Agency (NGA), United States · https://msi.nga.mil/Publications/LOL

Licence
Work of the United States Government, not subject to copyright protection in the United States (17 U.S.C. §105)
How we know
statute
Accessed
UNKNOWN
Covers
The light records: name, country, structure, position and the printed characteristic string.

NO PUBLISHER NOTICE WAS FOUND. msi.nga.mil returns 404 for /robots.txt, its publications pages render by script and carry no copyright or terms text that a fetch can read, and we found no terms statement to quote. The claim therefore rests on the statute and on NGA being a United States Government agency compiling its own publication, not on anything the publisher told us. Checked 2026-09-04.

UNKNOWN: the volumes were committed to this repository as research/list-of-lights/data/pub11{0..6}.json.gz without a recorded retrieval date, and no fetch script exists. The newest Notice to Mariners year appearing on any kept row is 2024.

The characteristic parse and position conversion

Artificial Wasteland · https://artwaste.land/tools/what-light/

Licence
CC0 1.0 Universal
How we know
publisher statement
Accessed
2026-09-04
Covers
rhythm, groups, colours, period, phases, the decimal positions, the height and range rules, the identifier, and the period_status judgement.

Ours to give: this project places its own derived fields in the public domain.

Required attributionLight data from the National Geospatial-Intelligence Agency, List of Lights, Pub. 110 through 116. The parse of each characteristic is by the Artificial Wasteland.

The seven conditions, and what was measured

  1. Bytes 1 data file(s), 13,737,161 bytes, largest 13.1 MiB
  2. Shape 40,559 rows checked, 0 violation(s)
  3. Count 40,559 rows across 1 file(s), all counts agree
  4. Fixity 5 file(s) verified by sha256
  5. Provenance 2 source(s), each with a licence from the table
  6. Origin 16 field(s): 12 built here, 4 redistributed under a licence that permits it
  7. Rebuild research/data-room/emit/navigation-lights.mjs (byte-equality proved by: node research/data-room/publish.mjs --check)

← every dataset, and the three we could not publish