Commit Graph
34 Commits
Author SHA1 Message Date
Trygve Hemminghytt 47ea4aff1d Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh 2026-11-05 19:07:11 +01:00
Trygve Hemminghytt 1f0a8b5f16 fix(datacenters): report newly tagged features osmium cannot export
A still-tagged feature without exportable geometry already keeps its old
line. A newly tagged one had nowhere to go and was dropped silently; it is
now listed as skipped with a warning, so a refresh never loses a site or
hides a broken one.
2026-11-03 22:58:09 +01:00
Trygve Hemminghytt 4999f6dc60 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/CURRENT-STATE.md
2026-10-19 16:16:37 +02:00
Trygve Hemminghytt 59db4ac227 docs(cctv): state the measured cold lookup time and what a slow first run leaves 2026-10-18 20:22:21 +02:00
Trygve Hemminghytt 15208b5c40 docs: move the changelog entry to changelog.d 2026-10-18 20:03:24 +02:00
Trygve Hemminghytt 4318f51de4 docs: move the changelog entry to changelog.d 2026-10-18 20:03:23 +02:00
Trygve Hemminghytt 80a0954030 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-18 20:02:40 +02:00
Trygve Hemminghytt 52603f0afe Merge remote-tracking branch 'origin/main' into HEAD 2026-10-18 20:02:39 +02:00
Trygve Hemminghytt 3c26636ab4 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh 2026-10-16 22:23:03 +02:00
Trygve Hemminghytt 5b5d942d95 fix(data): make the Norway datacenter script portable and re-runnable
Read and write files as UTF-8 with LF line endings so the script and
--verify work on Windows, where the default codec is cp1252 (thanks to
quanticsoul4772 for the report). Geofabrik keeps only its newest dated
extract, so --extract now defaults to the current one and accepts a dated
name for --verify while it is listed; the dataset README says so. Downloads
time out instead of hanging.
2026-10-16 22:23:02 +02:00
Trygve Hemminghytt 2bec3d521b Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/CURRENT-STATE.md
#	server/providers/cctv/sources.js
2026-10-16 07:21:30 +02:00
Trygve Hemminghytt 2e0d855cf8 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh 2026-10-15 23:04:04 +02:00
Trygve Hemminghytt 4ce28c83c0 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh 2026-10-15 22:35:13 +02:00
Trygve Hemminghytt e2dacd92ea Merge remote-tracking branch 'origin/main' into HEAD 2026-10-15 21:15:57 +02:00
Trygve Hemminghytt 239ba14005 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh 2026-10-15 21:06:43 +02:00
Trygve Hemminghytt cd83fc62fe Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh 2026-10-15 15:08:35 +02:00
Trygve Hemminghytt 6292b13d75 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh 2026-10-15 14:14:26 +02:00
Trygve Hemminghytt ed1982ab96 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh
# Conflicts:
#	CHANGELOG.md
2026-10-14 16:42:18 +02:00
Trygve Hemminghytt 6f054408da Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	DATA_SOURCES.md
#	docs/CURRENT-STATE.md
#	server/providers/cctv/constants.js
#	server/providers/cctv/sources.js
2026-10-14 16:00:43 +02:00
Trygve Hemminghytt a9f16fecd3 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh
# Conflicts:
#	CHANGELOG.md
2026-10-13 18:33:51 +02:00
Trygve Hemminghytt bba786d215 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh
# Conflicts:
#	CHANGELOG.md
2026-10-12 18:38:24 +02:00
Trygve Hemminghytt 6cf641967b Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh
# Conflicts:
#	CHANGELOG.md
2026-10-08 21:28:09 +02:00
Trygve Hemminghytt 7ee51c093a Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh
# Conflicts:
#	CHANGELOG.md
2026-10-08 00:39:37 +02:00
Trygve Hemminghytt 009ec6f682 Merge remote-tracking branch 'origin/main' into feat/bikeshare-norway 2026-10-07 21:41:48 +02:00
Trygve Hemminghytt 621b87c52c Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh 2026-10-07 21:41:41 +02:00
Trygve Hemminghytt 939264d30e Merge remote-tracking branch 'origin/main' into feat/cctv-vegvesen-kartverket-heights 2026-10-07 21:37:41 +02:00
Trygve Hemminghytt a953c9a545 Merge remote-tracking branch 'origin/main' into feat/datacenters-norway-refresh
# Conflicts:
#	CHANGELOG.md
2026-10-07 15:44:35 +02:00
Trygve Hemminghytt 1e1ddfca0f Merge remote-tracking branch 'origin/main' into feat/cctv-vegvesen-kartverket-heights
# Conflicts:
#	CHANGELOG.md
2026-10-07 15:44:26 +02:00
Trygve Hemminghytt 8152a48a66 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	CHANGELOG.md
2026-10-07 15:44:20 +02:00
Trygve HemminghyttandClaude Opus 5.5 aa745bcee5 data: refresh Norway datacenters from Geofabrik extract
Add a maintainer script that merges a pinned, MD5-verified Geofabrik Norway
extract (osmium tags-filter telecom/building=data_center) into the bundled
datacenter layer. Only features inside the Geofabrik Norway boundary are
touched; unchanged features keep their original line.

norway-261005 (OSM 2026-10-05) adds Troll Housing (w1551029155) and updates
tags on four existing features. Provenance is recorded in the dataset README
and the bundled count moves from 4,351 to 4,352.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 04:16:50 +02:00
Trygve HemminghyttandClaude Opus 5.5 34d53edc91 fix: address review on Kartverket ground heights
- Send 20 points per request, not 50: above ~20 Kartverket answers the
  extra points from contour lines (hoydekurver) or not at all. At 20,
  nearly every camera resolves from dtm1, so the null-retry pass is gone.
  Eight requests in flight keep a cold lookup ~6 s.
- Cache misses: positions with no height are not asked again for 6 h.
- Transport failures: the first 429, 5xx or network error stops the
  lookup with no retries, and no lookup starts until the backoff ends
  (Retry-After when sent, else 10 min; bounded to 1 min-1 h).
- Budget the 12 s wait from the start of the loader, catalog fetch
  included.
- Record answers only for the points each request asked about.
- Send the CCTV User-Agent; link CC BY 4.0 in the credit.
- Docs: bridge cameras sit at the water surface, below the deck.
- Tests: batching, 8-in-flight cap, request count on failure, the shared
  deadline, Retry-After bounds, null TTL, backoff, the -20 m bound and
  each water marker on its own.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 19:21:27 +02:00
Trygve HemminghyttandClaude Opus 5.5 fa61955cf1 feat(bikeshare): add Kolumbus, Farte and Lillestrøm city bikes
Cover every Norwegian station-based city-bike system with an open GBFS
feed: Kolumbus Bysykkel (Stavanger) and Farte Bysykkel (Skien/Porsgrunn)
through Entur Mobility, and Bysykkel Lillestrøm through JCDecaux
Cyclocity.

api.entur.io and api.cyclocity.fr join the GBFS allowlist, each kept to
its GBFS path prefix since both hosts front other APIs. Entur serves its
feeds without a .json suffix, so the endpoint checks accept either form,
and requests to Entur carry the ET-Client-Name header it requires.
Attributed under NLOD (Entur) and Licence Ouverte (JCDecaux).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 23:02:37 +02:00
Trygve HemminghyttandClaude Opus 5.5 42543c1fa1 feat(bikeshare): add Oslo, Bergen and Trondheim Bysykkel
Add Norway's three Urban Sharing city-bike systems to the Bike Share
layer and get_bike_share. The feeds are keyless GBFS on
gbfs.urbansharing.com, which joins the proxy allowlist. The proxy now
sends the Client-Identifier header the operators ask clients to send.
Attributed under NLOD 2.0 in DATA_SOURCES.md and the data credits.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 22:13:53 +02:00
Trygve HemminghyttandClaude Opus 5.5 c43f58dc3f feat: Kartverket ground heights for Statens vegvesen cameras
The Vegvesen camera feed is 2D, so every camera shared one flat 150 m
ground prior and mountain-pass cameras could sit hundreds of metres below
the terrain where neither the point-height prior nor the ground snap
resolves. Each camera now gets its terrain height from Kartverket's
keyless point-height API (CC BY 4.0): ~840 of ~845 cameras.

- 50 points per request, six in flight; points a full batch answers null
  for are retried once in batches of 10 (the API drops points from large
  batches).
- Sea-floor depths (dybdekurver / Havflate) under bridges and quays
  count as the water surface, 0 m.
- Heights are cached by position, so the 15-minute refresh only asks
  about new or moved cameras. A catalog load waits at most 12 s; a slower
  lookup keeps filling the cache for the next refresh.
- CCTV_VEGVESEN_HEIGHTS=0 turns it off; Kartverket is credited beside
  Statens vegvesen in the attribution popover.

Follow-up to #929.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 21:46:20 +02:00