Что стоит за каждой страницей
| Страница | Источник | Лет | Период |
|---|---|---|---|
| Вершина Тейде | ERA5 reanalysis via Open-Meteo Historical Weather API | 10 | 2016-01-01 → 2025-12-31 |
| Календарь калимы | CAMS atmospheric composition reanalysis/forecast via Open-Meteo Air Quality API | 3 | 2023-01-01 → 2025-12-31 |
| Состояние моря | Wave model via Open-Meteo Marine Weather API | 4 | 2022-01-01 → 2025-12-31 |
| IZAÑA | AEMET OpenData — daily climatological values | 10 | 2016-01-01 → 2025-12-31 |
Пять правил
1. Только полные календарные годы
Текущий год исключён целиком. Иначе месяц, который в этом году уже прошёл, дал бы одну лишнюю выборку, а ещё не наступивший — ни одной, что незаметно перекашивает любое сравнение месяцев. Цена — до двенадцати месяцев свежести. Она того стоит.
2. Вероятности считаются, а не моделируются
Каждый процент здесь — это простая частота: число часов или дней выше порога, делённое на число наблюдений. Никакое распределение не подгоняется, ничего не сглаживается и не экстраполируется. Знаменатель напечатан рядом с цифрой, чтобы вы могли его оценить.
3. Покрытие измеряется, а не предполагается
Именно это правило поймало настоящую ошибку, поэтому запись самая длинная. Все три API возвращают нормальный успешный ответ для дат раньше начала своего архива — значения просто равны null. Ничего не падает и никто не предупреждает. Первая версия этого сайта запросила 2016–2025 у всех трёх и опубликовала бы статистику по пыли, построенную на трёх годах, под заголовком, обещавшим десять.
Решение: теперь скрипт считает различные годы, реально дающие данные для каждого месяца, и на страницу выводится именно это число, а не запрошенный диапазон. Любой набор данных короче пяти лет получает цветное предупреждение вверху своей страницы, над таблицами. Общий урок стоит запомнить: успешный HTTP-ответ не доказывает, что вы получили данные.
4. Всегда местное время
Каждый час и каждое среднесуточное значение считаются по местному канарскому времени, потому что именно по этим часам планирует приезжающий. Пересчёт делает поставщик данных, а не сайт, что избавляет от целого семейства ошибок с переводом часов.
5. Говорить, чего цифры не могут
Это продукты реанализа и моделирования, а не показания прибора в той точке, где вы стоите. Реанализ воспроизводит погоду на сетке: он очень хорош в типичном и сглаживает экстремальное. Там, где это важно — порывы на вершине, высота волны в конкретной бухте — соответствующая страница говорит об этом рядом с таблицей, а не мелким шрифтом.
Сверка наших чисел с настоящим термометром
Всё остальное здесь — выход модели. У AEMET на Изанье (2369 м) стоит станция с реальными приборами. Десять лет её суточных измерений позволяют сделать то, чего не делают туристические сайты: измерить, насколько ошибаются наши собственные данные.
Температура: модель сходится.
В январе на Изанье в среднем 5,6 °C. Если применить стандартный градиент к оставшимся 1186 м до верхней станции, получится около −2 °C; наш реанализ даёт −4,5 °C. В июле расхождение меньше градуса.
Ветер: модель занижает, ровно как мы и предупреждали.
Измеренные порывы на Изанье в среднем 47–61 км/ч по месяцам против 36–43 км/ч в нашем реанализе — и это на большей, более ветреной высоте. На каждой странице уже было сказано, что реанализ сглаживает экстремумы и наши вероятности «скорее занижены». Это было допущение. Теперь оно измерено: реальная вероятность сильных порывов выше, чем в наших таблицах, а не ниже.
Показать измерения станции
| Месяц | Средний максимум | Средний минимум | Средний порыв | Сильнейший порыв |
|---|---|---|---|---|
| январь | 9 °C | 2.2 °C | 55.7 km/h | 132.1 km/h |
| февраль | 8.7 °C | 1.7 °C | 60 km/h | 163.1 km/h |
| март | 10.5 °C | 2.6 °C | 61.1 km/h | 168.8 km/h |
| апрель | 12.5 °C | 4 °C | 58 km/h | 123.8 km/h |
| май | 15.6 °C | 6.8 °C | 50.2 km/h | 124.9 km/h |
| июнь | 19.1 °C | 10.3 °C | 50.7 km/h | 124.9 km/h |
| июль | 23.8 °C | 14.7 °C | 47.1 km/h | 99 km/h |
| август | 23.3 °C | 14.6 °C | 47.1 km/h | 94 km/h |
| сентябрь | 19.4 °C | 11.1 °C | 51.5 km/h | 114.1 km/h |
| октябрь | 16.2 °C | 8.6 °C | 52.6 km/h | 130 km/h |
| ноябрь | 11.8 °C | 5 °C | 55.6 km/h | 149 km/h |
| декабрь | 9.6 °C | 3 °C | 57.3 km/h | 159.1 km/h |
IZAÑA (C430E), 2369 m · 10 полных лет · AEMET OpenData — daily climatological values
Известные ограничения
- По пыли всего 3 года. Используемый здесь API начинается в конце 2022 года. Вернуться к 2003 году можно через реанализ Copernicus CAMS напрямую, но это требует учётной записи и другого способа доступа. До тех пор: порядок месяцев осмыслен, точные проценты предварительны.
- Нет статуса канатной дороги. Оператор не публикует ни порога по ветру, ни машиночитаемой истории статусов, поэтому сайт не берётся предсказывать закрытия — только частоту связанных с ними условий.
- Высоты волн даны в открытом море. Локальный рельеф дна, молы и прибой не учтены. Годится для сравнения побережий и месяцев; бесполезно для оценки одного купания.
- Никакого анализа трендов. Десяти лет хватает, чтобы описать типичный год, и категорически мало, чтобы говорить о климатических трендах. Сайт этого и не пытается.
Как воспроизвести
Агрегация — это один Node-скрипт без зависимостей, который обращается к трём публичным эндпоинтам и пишет три JSON-файла. Хотите проверить цифру — запросите тот же эндпоинт с теми же координатами и посчитайте сами: определения на каждой странице достаточно точны, чтобы это было возможно. В этом и смысл.
Исправления
Если какое-то число здесь противоречит вашим измерениям, это стоит знать, и я предпочту услышать. Исправления вносятся в скрипт, а не подставляются в текст, чтобы страница и данные не могли разойтись.