FUENTES Y CONDICIONES DE USO — «El cielo esta noche» (cielo_demo.html) Mapas Vivos de España · demo interna F0 Comprobado y citado el 2026-09-03 (peticiones reales, no de memoria) Este mapa NO tiene horneador: todo se descarga y se calcula en el navegador. ═══════════════════════════════════════════════════════════════════════════════ 1 · CelesTrak — elementos orbitales (GP / TLE) ═══════════════════════════════════════════════════════════════════════════════ Titular : CelesTrak, organización sin ánimo de lucro 501(c)(3). Webmaster y autor: Dr. T.S. Kelso Portada : https://celestrak.org/ (HTTP 200, 2026-09-03) Política: https://celestrak.org/usage-policy.php (HTTP 200, 2026-09-03) «CelesTrak Usage Policy — by Dr. T.S. Kelso — 2026 May 15 — Updated 2026 May 22» Endpoint: https://celestrak.org/NORAD/elements/gp.php?GROUP=&FORMAT=tle Sin clave. CORS abierto: la respuesta trae «access-control-allow-origin: *» cuando la petición lleva cabecera Origin (comprobado con `curl -H "Origin: http://localhost:8099" -D -`). Grupos usados y tamaño medido el 2026-09-03: stations 21 objetos (ISS ZARYA, CSS TIANHE, módulos y vehículos visitantes) visual 157 objetos (los más brillantes del catálogo) · 26.376 bytes weather 72 objetos starlink 10.723 objetos (≈1,8 MB) — opcional, avisada, y sujeta a límite (ver abajo) --- CITAS LITERALES (https://celestrak.org/usage-policy.php, consultada 2026-09-03) --- Sobre la cadencia de descarga (es la condición operativa principal): "Only download the data you need, when you are going to use it, and only download data once per update." "For GP data, updates are once every 2 hours." Sobre los grupos grandes (Starlink entre ellos): "Note that we are starting to enforce some of those limits for larger data sets, like the Active list for GP data and the Starlink list for GP & SupGP data." Sobre qué hacer ante un error HTTP (obligación explícita para software automático): "Most importantly, we send HTTP error responses when users are exceeding limits or using incorrect (long-outdated) URLs (e.g., HTTP 301, 403, 404, 50x). M2M (machine-to-machine) software should immediately stop querying when it receives any non-HTTP 200 responses and report the results to a human for investigation. Repeatedly ignoring them will end up sending your IP address to the firewall." Sobre por qué existe la política (motivación, de la misma página): "Bottom line: There is no way for CelesTrak to set up a system to manage millions of users without having to charge for access, which would immediately break our long tradition of making data freely available to all users." Sobre el formato TLE, en la portada https://celestrak.org/ (consultada 2026-09-03): "All newly cataloged objects will have 6-digit catalog numbers of 100000+ and GP data will not be available for them using the TLE format." "URGENT: We ran out of 5-digit catalog numbers with the addition of Saramago on 2026-07-11." --- ATRIBUCIÓN QUE PIDEN --- La página de política NO exige una fórmula concreta de atribución ni una licencia con nombre: exige CONDUCTA (cadencia, formatos correctos, parar ante errores). Su misión declarada es «making data freely available to the space community». Aun así, la casa cita la fuente siempre: en el sello aparece «Elementos orbitales: CelesTrak (celestrak.org), grupos GP en formato TLE» más la cita literal de la cadencia. --- CÓMO CUMPLE ESTA DEMO --- · Caché en localStorage por grupo, con marca de tiempo. TTL de 12 h: MUY por debajo de su límite (ellos actualizan cada 2 h; nosotros pedimos como mucho 2 veces al día). · Ante cualquier respuesta que no sea HTTP 200 NO se reintenta. Se usa la copia guardada, se rotula de dónde sale y se enseña el código y el cuerpo del error. · El 403 de los grupos grandes NO se trata como avería. Comprobado en vivo el 2026-09-03: el cuerpo de la respuesta 403 era literalmente «GP data has not updated since your last successful download of GROUP=starlink at 2026-09-03 18:01:09 UTC. Data is updated once every 2 hours.» Es decir: «ya tienes lo último». La demo lo dice con esas palabras y sigue con la caché. · Starlink está apagada por defecto y detrás de una confirmación que explica el peso, el coste y este límite de CelesTrak. · Se usa FORMAT=tle porque satellite.js 5.0.0 solo sabe leer TLE (`twoline2satrec`; no tiene `json2satrec`). CONSECUENCIA DECLARADA EN EL MAPA: los objetos de catálogo de 6 dígitos (100000+, desde 2026-07-11) no aparecen. CelesTrak recomienda migrar a CSV/JSON (OMM); queda anotado como deuda de esta demo. ═══════════════════════════════════════════════════════════════════════════════ 2 · satellite.js — implementación de SGP4 ═══════════════════════════════════════════════════════════════════════════════ Versión : 5.0.0 CDN : https://unpkg.com/satellite.js@5.0.0/dist/satellite.min.js HTTP 200, 22.869 bytes, «access-control-allow-origin: *» (comprobado 2026-09-03) Licencia: MIT Repo : https://github.com/shashwatak/satellite-js Uso : twoline2satrec, propagate (SGP4), gstime, eciToGeodetic, eciToEcf, ecfToLookAngles, degreesLat/Long. NOTA : satellite.js NO trae posición del Sol. Todo lo solar de esta demo es propio. ═══════════════════════════════════════════════════════════════════════════════ 3 · Cálculo propio (no es fuente: es cuenta de la casa, y se rotula como tal) ═══════════════════════════════════════════════════════════════════════════════ · Posición del Sol: fórmula de baja precisión del Astronomical Almanac (longitud media, anomalía media, dos términos de la ecuación del centro; ~0,01° de error). VERIFICADA el 2026-09-03 contra una fuente independiente (api.wheretheiss.at): propio : subsolar lat 7,34° lon −92,19° independiente: solar_lat 7,3434° solar_lon 267,809° (= −92,19°) Coincidencia a 0,01°. · Sombra de la Tierra: modelo CILÍNDRICO de radio 6.378,137 km. Sin penumbra, sin refracción, sin achatamiento. Declarado en «LO QUE ESTE MAPA NO SABE». · Terminador día/noche: elevación solar píxel a píxel (a 1/4 de resolución, escalado con suavizado), con escalón visible en −6°. · Pasadas visibles: barrido grueso de 120 s buscando ventanas sobre el horizonte + barrido fino de 10 s + bisección al segundo en los bordes. Criterio: elevación ≥ 10° Y satélite iluminado Y Sol del observador ≤ −6°. · NO hay datos de magnitud. La demo NO promete que se vea nada: solo geometría. ═══════════════════════════════════════════════════════════════════════════════ 4 · Cartografía y datos de apoyo ═══════════════════════════════════════════════════════════════════════════════ · Mapa base «World Light Gray Canvas» y relieve «World Hillshade»: Esri (server.arcgisonline.com). Atribución «Esri» en el control de Leaflet, patrón de la casa. · Límites de comunidades autónomas: limites_ccaa.json, derivado de Natural Earth (dominio público). Atribución «límites: Natural Earth». · Municipios: municipios.json, lista propia de la casa (8.122 municipios con INE, nombre, lon, lat, habitantes y altitud). · Leaflet 1.9.4 (BSD-2-Clause) · tipografías Sora e IBM Plex Sans (SIL OFL) vía Google Fonts. ═══════════════════════════════════════════════════════════════════════════════ 5 · Fuente de verificación independiente (solo para comprobar, NO usada por la demo) ═══════════════════════════════════════════════════════════════════════════════ api.wheretheiss.at/v1/satellites/25544 — consultada una vez el 2026-09-03 para contrastar la propagación de la ISS y el punto subsolar. No forma parte del mapa.