
Про how-old-is-this.house я узнал от Степана Сомова, руководителя Пензенского отделения Горпроектов. Мне давно интересны визуализация данных, урбанизм и география родного города, поэтому решиться на создание карты было легко.
Несколько лет назад, когда я работал исследователем в архитектурной студии, мне попадалась чем-то похожая задача. Нашей команде надо было анализировать городские данные в разных странах и для этого приводить доступные источники к единому формату. На основе собранной информации мы моделировали варианты генпланов и выбирали наиболее удачные, тем самым помогая архитекторам. Так как процесс был хорошо автоматизирован, в перерывах между проектами мы сделали сравнительный анализ нескольких городов.
Написанный код остался в застенках компании, а доступные технологии с тех пор заметно ушли вперёд. Мне давно хотелось сделать что-то похожее с открытой лицензией, и карта возраста домов стала отличным поводом для творчества.
ПОДХОД К ОБРАБОТКЕ ДАННЫХ
Когда я приступал к анализу Пензы, на сайте how-old-is-this.house уже было пять карт и ещё две подготавливались. Это примерно 3% от всех городов России с населением свыше 100 тысяч человек (или 1,5%, если сдвинуть планку до 50 тысяч).
Каждый участник проекта был сфокусирован на одном городе и использовал удобные для себя приёмы обработки данных. Это позволяло срезать лишние углы и быстро добиваться результата в каждом отдельном случае. Тем не менее часть приобретённого опыта терялась, а количество ручных шагов со временем не уменьшалось. Сделать карты десятков городов без изменений в подходе было бы сложно.
Мне стало интересно, как далеко сможет зайти автоматизация всего процесса. Времени на эксперименты было достаточно из-за пандемии, поэтому в качестве принципа я выбрал фразу «лучше день потерять, потом за пять минут долететь». Таким образом, моей задачей стало упростить получение карты возраста домов для любого города России. Пенза и два её пригорода (Заречный и Засечное) исполнили роль пилотной территории.
Создание карты возраста домов теперь выглядит так:
Названия источников в схеме отсутствуют, потому что их список открыт. Данные из любого доступного ресурса приводятся к единому формату, что делает их совместимыми и взаимозаменяемыми. В стартовый набор источников вошли Опен-стрит-мап (ОСМ), Росреестр, Минкультуры, «МинЖКХ», Викигид, Викиданные и Викимапия. Роль базового слоя с геометрией взял на себя ОСМ, а остальные источники стали поставщиками характеристик (то есть «заплатками»).
Важный этап процесса — геокодирование, то есть нахождение широты и долготы здания по его адресу. Геокодирование применяется для заполнения недостающих координат в некоторых источниках, например, Росреестре. Координаты домов не всегда указаны, а без них слои не смешать.
Задачу получилось решить «перекрёстным опылением»: геокоды из всех источников помещаются в общий каталог, а потом используются для закрытия пробелов. Секрет геокодера кроется в умении анализировать адреса. Алгоритм нормализует переданные ему значения, и это сильно повышает вероятность совпадений.
Заключительный этап обработки территории — это смешивание нормализованных слоёв и выбор финальных характеристик объектов.
В моём случае процесс разработки команд выглядел как-то так:
КАРТОВЕЧЕРИНКА ОСМ
Большинство локальных правок легко избежать, ведь некоторые источники открыты не только для использования данных, но и редактирования. Примерами служат ОСМ, Викигид и Викиданные — за этими проектами стоят большие сообщества волонтёров.
Неточные данные желательно исправлять в их источнике, а потом заново скачивать при помощи команд. Результаты такого труда смогут быть использованы в других проектах, при этом сам процесс правок будет проще благодаря проверенным инструментам и инструкциям. Важное условие для вклада в источники — лицензионная чистота новых данных, то есть исключение информации, которая скопирована без разрешения. В принципе это правило относится и к локальным правкам.
Контуры домов для how-old-is-this.house берутся из Опен-стрит-мапа (ОСМ). В Пензе, как и в других городах, есть местное ОСМ-сообщество: это люди, которые в свободное время улучшают открытые геоданные на пользу общества. Чтобы повысить качество ОСМ по Пензе, мы вместе с ребятами несколько недель ударными темпами добавляли пропущенные дома, уточняли геометрию и проставляли адреса. В ОСМ такое мероприятие принято называть «онлайн-картовечеринкой». Вот результаты нашей:
Подробности картовечеринки вы найдёте на странице Пенза/встречи в ОСМ-вики. Наш опыт нетрудно повторить в других городах, мы будем рады видеть похожие мероприятия!
ЛАСТОЧКА КАК СИМВОЛ ПЕНЗЫ
Каждый пензенец легко вспомнит ласточку на городских объектах:
Я не умею рисовать эмблемы, поэтому пришлось воспользоваться семейным положением и заказать ласточку у графического дизайнера Марины Роот. Она поколдовала:
ЦВЕТОВАЯ СХЕМА
Для карты возраста домов ключевая визуальная переменная — цвет, он кодирует год постройки. Авторы первых городов на how-old-is-this.house подбирали палитру на основе местных особенностей: это были цвета известных зданий и другие локальные символы. Несмотря на все плюсы такого подхода, он затрудняет повторное использование схемы и исключает возможность визуально сравнивать города.
Раз сбор данных теперь автоматизирован, логично задуматься над универсальной цветовой схемой, которая применима на всей территории РФ.
Лучшая цветовая схема практически в любой ситуации — та, которую не пришлось изобретать. Специалисты по визуализации данных перебирали палитры несколько десятилетий: проводили исследования и публиковались в научных журналах. Накопленный человечеством опыт собран в уже довольно устоявшейся коллекции схем:
Так получилось, что история России не поступательна. За один только 20 век страна пережила два крупных перелома: Октябрьскую революцию 1917 года и распад СССР в 1991 году. Любое резкое изменение в политике влияет на ценности общества и экономику, что неизбежно отражается на архитектуре новых домов. Таким образом, здания с разницей всего в несколько лет способны оказаться в соседних эпохах и существенно отличаться. Обозначать их почти одинаковым цветом можно, но лучше этого избежать.
Опираться на категориальную цветовую схему (categorical) мы тоже не можем. Цвета-категории не организованы в последовательность, что усложняет сравнение возраста домов. Чем больше категорий, тем сложнее держать их в памяти и тем чаще надо отвлекаться от карты.
Получается, что нам нужна палитра, которая совмещает характеристики категориальных и последовательных схем. Число категорий должно быть минимальным, но и не две, как у расходящихся схем (по-английски diverging).

Человеческий мозг хорошо справляется с классификацией и фильтрацией объектов по их раскраске — такую способность в нас заложила эволюция. Присвоив каждой исторической эпохе по базовому тону, мы добьёмся хорошего обзора данных и дадим возможность мысленно фильтровать дома по временным периодам. Когда зритель «масштабировал» своё внимание на конкретную эпоху, мы можем показать «детали по запросу», если будем варьировать тон, не сильно отступая от базового. Это позволит выявлять дополнительные пространственные закономерности и примерно определять год постройки каждого здания.
Если максимально абстрагироваться от деталей, история России последних веков делится на три эпохи: империя, СССР и федерация. Второй временной сегмент можно представить как движение из одной крайности в другую: от гражданской войны и идей мировой революции до брежневского застоя и перестройки. С учётом этого перехода мы получаем четыре категории на масштабе «обзор». Их реально запомнить и держать в голове без постоянного отвлечения на легенду.
Берём четыре базовых тона (пока что неважно каких). Делаем для каждого из них градиент от светлого оттенка к тёмному:




Для кодирования года внутри цветового отрезка есть два подхода:

После выбора четырёх базовых тонов и настройки ступенек цветовая схема получилась такой:

Логика цветовой схемы интуитивно понятна и легко запоминается.
Зелёный цвет символизирует архитектуру Российской империи. Здания тех времён наполнены любовью к пропорциям и деталям, на них приятно смотреть. Оттенки зелёного легко найти на карте возраста домов, поэтому ценное архитектурное наследие не останется без внимания. В начале 20 века зелёный цвет начинает желтеть, что отсылает к политическому кризису того времени из-за отсутствия необходимых реформ.
На смену зелёному тону приходит красный. В результате революции экономика резко меняет курс, пересматривается подход к архитектуре. Классические стили и модерн уходят в прошлое, их заменяют рационализм и конструктивизм. Идеи коммунизма сталкиваются с реальностью и со временем трансформируются; красный цвет на временной шкале тоже постепенно бледнеет.
«Разворот» схемы происходит в 1950-е, на которые приходится восстановительный рост экономики после войны и политическая оттепель. В 1955 году выходит знаменитое постановление «Об устранении излишеств в проектировании и строительстве».
1960-е начинают фиолетовый сегмент цветовой схемы. Это время массового строительства типового жилья и экономии на архитектуре. Фиолетовый с годами «тяжелеет»: время надежд сменяется застоем 1970-х, экономической стагнацией и назревшей перестройкой.
На месте исчерпавшего себя СССР образуется Российская Федерация, и фиолетовый цвет меняется на синий. Более светлый оттенок для домов 1990-х отсылает к флагу России 1991-1993 годов, символу демократических реформ.

Уверен, что профессиональные колористы или картографы найдут, как улучшить цветовую схему. Проверка палитры на дальтонизм и обновление карты автоматизированы, поэтому я с удовольствием помогу!
ИТОГ
Кроме интерактивной онлайн-версии карты есть ещё и настенный постер, который вы можете кому-нибудь подарить:


Исправить прошлое уже не получится, а вот уточнить данные по сохранившимся домам мы всё-таки можем. Сайт how-old-is-this.house позволяет предлагать уточнения, которые добавляются на карту после проверки модератором. Не стесняйтесь и делайте вклад, если что-то нашли!
Все наборы данных (включая исправления от посетителей сайта) доступны для скачивания под свободной лицензией.
ЧТО ДАЛЬШЕ?
Архитектурное наследие имеет не меньшую ценность, чем литература, живопись и музыка, ведь оно тоже формирует многие поколения людей. Чем больше мы знаем про историю города, тем меньше ошибок мы как общество совершим.

Если вы краевед или студент-архитектор, давайте обсудим, что делать с неточными данными в центре. Замена «1917» на реальные года — это очень увлекательный и полезный для общества проект!
Если вас заинтересовала автоматизация сбора данных, подписывайтесь на мой твиттер: @kachkaev_ru. Спрос на эту тему замотивирует меня написать статью на Хабре и поделиться ссылкой в ленте.
СПАСИБО
- ребятам из сообщества Опен-стрит-мап за невероятную активность на картовечеринке (было очень круто!)
- Степану Сомову из Пензенского отделения Горпроектов за предложение проанализировать возраст домов
- Марине Роот за качественную векторную эмблему ласточки
- Ивану Шумилину из Твери и Андрею Вагину из Кургана за помощь в тестировании и улучшении команд
- всем, кто помогал с поиском и уточнением данных
- Никите Славину за идею проекта за создание сообщества вокруг него