← all branches

feat/atlas-scan

needs attentionviewing older commit
2b33f2f · incrementalpre-PRreviewed 2026-07-18 05:09 UTC0H · 1M · 1L · 1I
The branch
Purpose
Atlas de la Red — open-source interactive map of Mexico's electrical network, published at apps/web/public/atlas/. Serves as a lead-gen and credibility asset showing generation, transmission, tariff zones, gas pipelines, aquifers, and industrial park siting data.
Goal
Add a comprehensive industrial-parks layer with sub-station proximity coloring and owner/developer attribution, sourced from OSM and AMPIP plus developer directories.
Sub-goals
  • SG-1: Gas pipeline network layer (CENAGAS/SISTRANGAS tracing)
  • SG-2: OSM gas pipeline detail + hybrid precision styling
  • SG-3: CONAGUA aquifer water-availability layer
  • SG-4: Industrial parks layer from OSM (201 parks) with sub-station proximity coloring
  • SG-5: Enrich parks with owner/developer data (101 verified) + Batu sub-station proximity
  • SG-6 (this commit): Expand parks 201->391 via AMPIP + developer directory sources (197 parks), white ring visual differentiation
The changes (whole branch)
What
parques_industriales.geojson expanded from 201 to 391 features: 194 OSM (src=osm) + 197 AMPIP/developer directories (src=dir). Renderer shows white stroke ring on directory-sourced parks; popup shows per-source attribution; layer toggle and About dialog updated to reflect new counts and sources.
Why
OSM only surfaces parks mapped with names — many AMPIP-registered and developer-portfolio parks are missing or coarser. Adding directory sources closes the coverage gap for the northern industrial corridor (Monterrey, Juarez, Tijuana, Bajio) — the primary siting target for Batu enterprise customers.
Areas
apps/web/public/atlas/data/parques_industriales.geojson+11apps/web/public/atlas/index.html+44
Blast
2 static-asset files only. No TypeScript, no backend, no DB. Changes immediately visible at atlas URL after deploy. No other components consume this GeoJSON.
apps/web touched — SEO lens applied (atlas is a self-contained map widget, not a crawlable marketing page; no SEO issues found)
CI / typecheck· No TypeScript in this diff — pure static GeoJSON + HTMLtests· No test suite for static atlas assetscoderabbit· No .coderabbit.yaml in repo

Findings · 3

correctness2

medium

meta.enriched.owners is stale (101 vs 295 actual)

apps/web/public/atlas/data/parques_industriales.geojson

The GeoJSON meta block still reads enriched.owners:101, the pre-AMPIP count. The file now has 295 features with an owner field (verified by parsing the expanded dataset). The rendering code does not read this field, but it is incorrect self-documentation within the data file and would mislead any downstream consumer. Fix: update meta.enriched.owners to 295 and meta.enriched.method to note the combined approach.

low

meta.source omits AMPIP/developer-directory provenance

apps/web/public/atlas/data/parques_industriales.geojson

The source field still reads 'OpenStreetMap via Overpass (named industrial parks) + nearest OSM substation proximity' but 197 of 391 parks (50%) now come from src=dir (AMPIP + developer portfolio geocoding). The About dialog was correctly updated to reflect both sources; the file-level meta was not. Suggest: 'OpenStreetMap via Overpass (194 parks, ODbL) + AMPIP/developer-portfolio directories (197 parks, geocoded)'

improvement1

info

ring property is vestigial on all 391 features

apps/web/public/atlas/data/parques_industriales.geojson

All 391 features carry ring:'none'. The rendering never uses this field — the white ring for directory parks is driven by src=dir directly in the MapLibre paint expression. Vestigial field adds unnecessary bytes to an already large single-line GeoJSON (>1KB overhead) and creates confusion about intent. Consider stripping it before the next data refresh.

History · 16 commits

  1. 91aaedfsafeincremental0H · 1M · 1L2026-08-12 17:35
  2. cb8d915needs attentionincremental2H · 5M · 3L2026-08-12 17:29
  3. 4cbbe8aneeds attentionincremental0H · 3M · 8L2026-08-12 14:01
  4. 4aa3c02needs attentionincremental2H · 3M · 3L2026-08-12 02:35
  5. f5630b2needs attentionincremental0H · 4M · 5L2026-08-12 02:17
  6. 28fde5bneeds attentionincremental1H · 2M · 2L2026-08-12 01:53
  7. 0babe51needs attentionincremental1H · 2M · 5L2026-08-12 01:23
  8. 50e8a8cneeds attentionincremental3H · 5M · 7L2026-08-11 23:58
  9. 3af4686needs attentionincremental3H · 5M · 5L2026-08-03 20:07
  10. f5d3266needs attentionincremental0H · 3M · 8L2026-08-03 19:40
  11. 9f8b61aneeds attentionincremental0H · 2M · 3L2026-08-03 19:15
  12. ea51fa0needs attentionincremental1H · 4M · 4L2026-08-03 19:02
  13. 2b33f2fneeds attentionincremental0H · 1M · 1L2026-07-18 05:09current
  14. 2f8cf79needs attentionincremental1H · 3M · 4L2026-07-18 00:59
  15. 1616332safeincremental0H · 0M · 1L2026-07-18 00:22
  16. e997fd8needs attentionfull1H · 4M · 6L2026-07-17 23:53