Считал, где летом тень, — а получилась карта, где зимой искать солнце
Зимой тени в Москве больше, чем летом, — а солнца меньше. В январе даже в самый светлый час солнце есть только на 43 % улиц.
Я посчитал, где в Москве тень — по геометрии, а не на глаз. Задача была летняя: в жару идти по теневой стороне. Но тот же расчёт отвечает и на обратный вопрос — где солнце, когда его мало.
15 января, 13:00. Чёрные полосы — посчитанные тени зданий и деревьев, золото — солнце. В самый светлый час зимы солнце есть только на 43 % улиц.
Коротко, что было в первом посте
Если вы не видели первый пост — там весь разбор: как это считается и почему тень нельзя просто нарисовать.
Взял все дома внутри ТТК — 43 648 штук — и все деревья, 21 476. Высоты взял просто: где в OSM указана этажность, умножил число этажей на три метра; где указана настоящая высота — взял её. Дальше для каждого часа посчитал, где стоит солнце, и сдвинул каждый контур по земле вдоль тени. Потом наложил это на дорожный граф — 331 тысяча рёбер — и у каждого ребра получилась доля тени на этот час.
Летом выходит так: 15 июля в час дня в тени 19 % улиц, к восьми вечера — 77 %. Вечером в тени больше трёх четвертей города, и это ожидаемо.
Дальше — то, чего в первом посте не было
Зимой тени больше — это понятно и без расчёта. А вот насколько больше и в какие часы — тут уже есть что посчитать. И сразу оговорка, без которой цифры ниже читаются криво: тень имеет смысл, только пока солнце над горизонтом. После заката её нет, и считать в эти часы нечего.
15 октября: в восемь утра в тени 75 %, в полдень — 39 % (на солнце 61 %), в пять вечера — 89 %, за полчаса до заката.
15 января: в девять утра в тени 98 %. В полдень — 58 %, в два часа — 62 %, в четыре — 91 %. Самое светлое — 12 и 13 часов, и даже там на солнце только 43 %.
Причина в высоте солнца. В январе в полдень оно поднимается на 13 градусов — дом в 20 метров бросает тень длиной 86 метров. В июле солнце на 56 градусов, и тень у того же дома — 14 метров. Разница в шесть раз: вот и весь январь.
И дело не только в процентах. Летом в полдень на солнце 81 % улиц, и так почти весь день. В январе солнце есть на 43 %, и только два часа около полудня — в два уже меньше.
Вот тут и появилась мысль, из-за которой всё завертелось. Если тень посчитана на любой час, значит посчитано и обратное — где солнце. Летом его избегают, зимой к нему идут. Один и тот же расчёт, знак минус.
Так у карты появился второй режим. Летом по умолчанию «в тень», примерно с 20 сентября по 20 марта — «на солнце». Считается так же, только вес ребра идёт по доле солнца: небольшой крюк — и вместо тёмного проходного двора освещённый бульвар.
Отсюда и закат в расчёте. В январе солнце живёт с 8:50 до 16:28, но толку от него часа три, примерно с 11 до 14: в девять утра тень у 98 % улиц, в четыре дня — у 91 %. Дальше темнеет, и вопрос «в тень или на солнце» снимается сам.
Что расчёт не учитывает:
Рельеф — Москва не плоская.
Тень одного дома на другой — считается только на землю.
Это всё геометрия, и её при желании можно досчитать.
А облака к геометрии отношения не имеют. Расчёт отвечает на вопрос «где тень, если небо ясное»; в пасмурный день тени на асфальте нет, и посчитать её нельзя — это погода, а не формула. Так что все проценты в посте — про ясный день.
И «на солнце» не значит «тепло»: в январе это про свет, а не про градусы.
Дальше в планах — ветер. Тень считается по геометрии домов, и тем же способом можно прикинуть, как поток обтекает кварталы: где за домом штиль, где между домами сквозит. Тогда маршрут можно будет выбирать не только по солнцу: зимой — по безветренным дворам, в жару — по продуваемым улицам. Это пока план, и он сложнее тени: ветер зависит ещё и от того, с какой стороны и с какой силой дует.
И вопрос напоследок, раз уж про ветер. Стоит ли делать карту ветров? Зимой промозглый ветер мешает, кажется, не меньше, чем нехватка солнца — но насколько сильнее, без вас не пойму. Напишите, в каком районе живёте и насколько для вас это важно: если тема живая — посчитаю.
Ссылку на карту с тенями и маршрутами кому интересно скину.










