About CelesticMap
CelesticMap is a personal open-data project about eclipses and the night sky in Spain. It is made by one person, not an institution, and that is worth knowing before you trust a number on it.
Who makes it
My name is Ernest Marza Climent and I am a software developer. I am not an astronomer or a meteorologist, and this site does not pretend otherwise: my contribution is not computing a better ephemeris than an observatory, it is taking public data that is already good and cross-referencing it in a way none of the original sources offers on its own.
The municipal table published by Spain's National Geographic Institute (IGN) tells you when totality starts in your town, at what magnitude and how high the Sun will be. It does not tell you whether a ridge will be standing in front of that Sun, nor how often the sky has been clear on that date over the last three decades. Answering those two questions, municipality by municipality, is what this site does.
I write, build and maintain it alone: the Python data pipeline, the Astro and Three.js site, and the copy in both Spanish and English. There is no newsroom behind it, no sponsored content and no mass-produced articles spun from a template. When something is wrong, there is exactly one person to write to.
What it is and what it is not
It is an independent project with no official connection to the IGN, NASA or any public administration. Everything published here is informational and indicative: for a decision that really matters, such as driving hundreds of kilometres or looking at the Sun through a filter, the reference is always the primary source, not this website.
It is not a weather service either. What is called climate here is thirty years of historical statistics, a long-run probability, and never a forecast for eclipse day. The distinction is spelled out in the methodology page, because it is the most expensive misunderstanding anyone planning a trip on this data can make.
Where each figure comes from
The local circumstances of each eclipse (first and last contact, entry into and exit from the path, the instant of maximum, magnitude and solar azimuth) come from the municipal table the IGN publishes at eclipses.ign.es, covering all 8,131 Spanish municipalities. The totality durations shown on the site are always theirs, never those of the in-house engine, for a specific reason explained in the methodology.
The climatology comes from the ERA5 reanalysis retrieved through Open-Meteo: thirty full years, 1996 to 2025, over a window of days around the eclipse date, aggregated into 0.25-degree cells and then brought down to municipal resolution with an in-house interpolation model.
Terrain and horizon are computed on heightmaps derived from Terrain Tiles (Mapzen/AWS). The in-house ephemerides (Sun and Moon tracks in the sky viewer, planets visible during totality, and the solar altitude used by the observation index) are computed with astronomy-engine, an MIT-licensed library. The dark-sky layer uses VIIRS VNL v2 night-time radiance from the Earth Observation Group at the Payne Institute, Colorado School of Mines, published under CC BY 4.0.
Three minor sources are credited in the footer of every page: Natural Earth for the coastline, the Yale BSC5 catalogue for the stars in the viewer, and the International Meteor Organization for the meteor shower calendar.
The hard rule of the project is that no figure is ever invented. If a source does not cover a municipality, that field stays empty and says so, rather than being filled with an estimate dressed up as a measurement.
Why the observation index is our own
No official source publishes a ranking of places to watch an eclipse from, and rightly so: doing that forces you to mix astronomy, terrain and climatology, three things with very different uncertainties that cannot be added up without making arguable choices. But it is exactly the question anyone about to get in the car is asking.
So the index is an in-house calculation, and it is labelled as such throughout the site. It combines the duration of totality, the Sun's clearance above the real terrain horizon and the historical probability of clear sky. The formula and its weights are published rather than hidden, and they change from one eclipse to the next because the geometry of the event changes: with a very low Sun the terrain decides, with a high Sun it stops mattering. The detail is in the methodology.
How the published data is checked
Before every deploy the dataset goes through a set of automated tests. A fixed golden of twenty municipalities checks that contacts run in strictly increasing order, that the duration of totality is exactly the difference between its two contacts, and that magnitude and solar altitude fall inside physical ranges. A second test walks all 8,131 municipalities and verifies that every INE code is unique and well formed, that coordinates fall inside the bounding box of Spain including the Canary Islands, and that the totality flag is consistent with the duration.
It is worth being precise about what that proves: it is internal consistency of the published data, not an independent second astronomical opinion. The comparison against a different ephemeris engine was done once, by hand, and its limits are documented in the methodology.
Errors and corrections
The site has changed its own data over real corrections more than once. The largest so far was an audit of the observation index which found it was using the IGN solar altitude, published rounded to whole degrees; with the Sun only a few degrees above the horizon, that rounding was enough to flip the verdict between a visible and a blocked Sun. Recomputing the altitude with in-house ephemerides changed the verdict for sixteen municipalities and moved the count of towns with the Sun hidden behind terrain from 85 to 89.
That is the standard the project aims for: when an error shows up, it gets fixed, its impact gets measured, and it gets written down. If you find one, write in. The contact page explains what information is needed to reproduce it.