TIME ZONES ON THE LIGHT POLLUTION MAP — WHERE THE DATA COMES FROM ================================================================= The light pollution map at https://startrailstacker.com/light-pollution-map/ prints every time in the civil local time of the point on the map, not the visitor's own clock. To do that it has to turn a latitude and longitude into an IANA time-zone name (America/Los_Angeles, Europe/Warsaw, Pacific/Chatham), and that mapping is somebody else's work. This file says whose, and under what terms. It is published as part of the site rather than kept in the repository because a notice nobody can reach is not a notice. Nothing described here involves a network request. The lookup runs in the visitor's own browser, over a table served from this domain, and the coordinate is never sent anywhere to resolve it. 1. THE LOOKUP LIBRARY --------------------- @photostructure/tz-lookup, version 11.6.1 Copyright (c) PhotoStructure, Inc. https://github.com/photostructure/tz-lookup Licence: CC0-1.0 (Creative Commons Zero v1.0 Universal), full text in tz-lookup-cc0-1.0.txt in this directory. CC0 is a public-domain dedication and asks for nothing in return, including attribution. It is credited here anyway, because a reader who wants to check the numbers this map prints is entitled to know which table produced them. The file we ship, /vendor/tz-lookup/tz.js, is that package's published tz.js with one line appended so it can be loaded as an ES module. Its first 73,349 bytes are byte-identical to the published file (sha256 dca55aacebfbbb004788fb4beaa80b90b8f8a8606b5a2e7cd2c469f0b6d0489b). 2. THE BOUNDARY DATA, AND THE ATTRIBUTION IT REQUIRES ----------------------------------------------------- The zone polygons the library's table is built from come from: timezone-boundary-builder https://github.com/evansiroky/timezone-boundary-builder which is built from OpenStreetMap data and released under the Open Database Licence (ODbL) v1.0 https://opendatacommons.org/licenses/odbl/1-0/ ODbL permits commercial use and REQUIRES attribution. This site therefore states, on the map itself and on /light-pollution-map/how-it-works/: Time zones: timezone-boundary-builder, from OpenStreetMap data, under the Open Database Licence (ODbL). © OpenStreetMap contributors. The same "© OpenStreetMap contributors" credit already appears beside the map for the base-map tiles. It is stated again here because it is owed twice, for two different derivatives of the same underlying data, and a credit that happens to be on the page for another reason is not the same as one we undertook to give. We redistribute the library's packed table, not the boundary database itself: no shapefile, GeoJSON or polygon from timezone-boundary-builder is shipped or reproduced here. 3. WHAT THE TABLE IS, AND HOW WRONG IT CAN BE ---------------------------------------------- The 73 KB file is not a polygon set. It is a 48x24 global grid, recursively subdivided to depth 10, packed as a string of character pairs — a lossy quadtree. That is why the whole world fits in a file a phone can download, and it is also why it is approximate. From the package's own README: roughly 5% of random points resolve to a different UTC offset than the exact `geo-tz` lookup would give, and those errors are concentrated along zone borders. This is why the map PRINTS the zone it resolved — "Times in America/Los_Angeles (UTC-7)" — beside the date, and updates it as the pin moves. A visitor whose point lands on the wrong side of a border can see that it did, and read the times accordingly. Where no zone can be resolved at all the map says "Times in UTC" and renders in UTC, rather than quietly falling back to the visitor's own clock. Once the zone name is known, the offset and every daylight-saving transition come from the browser's own IANA database through Intl.DateTimeFormat, not from this table and not from longitude arithmetic. Longitude/15 would put a Texas pin at UTC-6.5 in a place whose clocks read UTC-5 in summer.