Дмитрий Лебедев: «Несколько лет назад я явно понимал, что еще чуть-чуть и OpenStreetMap пойдет ко дну»


    Дмитрий Лебедев — магистр экономики, программист и урбанист, который уже более 10 лет работает с OpenStreetMap. Он не только рисует домики, но и делает много исследований на основе его данных. По какому пути пошел OSM, есть ли у него будущее и зачем программистам гуманитарные науки — обо всем этом он рассказал в интервью.

    — Как и когда вы познакомились с OpenStreetMap?

    — Точно не смогу сказать, это было более 10 лет назад. Мне был интересен проект, я слышал о нем, что это «как Википедия, но только про карты». Однако зарегистрировался не сразу, не хотел заводить очередной аккаунт на еще одном сервисе. Но в какой-то момент любопытство взяло верх и я начал редактировать карту. Сначала отрисовал территорию вокруг своего дома, а потом затянуло так, что я несколько лет был первым в рейтинге картографов по Новосибирской области.

    — Чем именно вас заинтересовал проект?

    — Тем, что почти сразу видишь результат своей работы: ты только нарисовал, а оно уже отобразилось на карте. Это невероятно цепляет. К тому же, помните какими 10 лет назад были Яндекс и Google? Чего уж говорить, даже 2ГИС в то время еще не был таким детализированным. А в OSM уже тогда можно было рисовать все что хочешь: внутриквартальные дороги, деревья, детские площадки и многое другое. В силу того, что я много ездил на велосипеде, быстро оценил потенциал OSM: отрисовал нужные мне дороги, залил в навигатор и поехал кататься. Поэтому какое-то время я очень много картировал.

    — Сейчас продолжаете картографировать?

    — Нет. Изредка нарисую с десяток домиков и на этом всё, на большее уже не хватает терпения. В какой-то момент всё надоедает, меняются интересы и приоритеты, лично у меня так и случилось с OSM.

    — Каким тогда был проект? Чем жил и дышал? Что изменилось за это время?

    — Если в 2010 году еще можно было зайти на российский форум и получить адекватный ответ на свой вопрос, то в 2016 — уже нет, так как он постепенно превратился в помойку, где «заседали» лишь агрессивные тролли. Я не знаю, как с этим дела обстоят сейчас, но тогда, если появлялся новичок, нередко его тут же «заклевывали» более опытные участники, которые почему-то считали, что этот человек задает глупые вопросы и сознательно хочет навредить проекту своей активностью. Поэтому обсуждать что-либо в таком сообществе стало бессмысленно.

    Знаете, что еще изменилось? Десять лет назад в OSM можно было чего-то добиться и продвинуть какие-то инициативы на энтузиазме. Сейчас я такого не вижу и, думаю, что это вовсе маловероятно. Чтобы в данный момент что-то изменить в проекте — надо быть штатным специалистом по взаимодействию с сообществом OSM в какой-нибудь IT-компании. Ничего страшного в этом нет. Это естественный процесс развития проекта. Он вырос и на него обратили внимание крупные игроки рынка, вместе с которыми пришли не только деньги и политика, но, прежде всего, будущее.

    Наверное, не я один несколько лет назад явно понимал, что еще чуть-чуть и OSM пойдет ко дну. Тогда казалось, что если ничего не изменится в проекте, то не за горами его похороны. Но в него пришел бизнес и отменил их. Так что лет 10, а может быть даже и 20, проект еще поживет. Как мне кажется, он сейчас пошел по модели развития ОС Android, в разработке которой есть два сегмента. Первый — ядро Linux, его делают энтузиасты-профессионалы для самих себя. Второй — коммерческая составляющая, нацеленная на массового пользователя.


    Проект "Трамвайные системы России"


    Проект "Выделенные полосы"

    — Насколько знаю, вы, как аналитик, нередко используете данные OSM в своих исследованиях. Сложно ли вам было начать с ними работать?

    — Нет, так как я был участником проекта и сам рисовал карту. Я видел его изнутри и понимал, из чего он состоит. Поэтому у меня не было никаких сложностей. Вообще, OSM устроен достаточно просто. Другое дело, что в нем не существует единой схемы тегирования — кто во что горазд. Но и даже к этому со временем привыкаешь.

    Я обычно как делаю? Начинаю свои эксперименты с небольших райцентров. Чаще всего на этом уровне трудностей не возникает. Если модель работает, то я пытаюсь ее применить к городам-миллионникам. И вот уже здесь иногда в данных бывают ошибки, которые не дают работать алгоритму. Их приходится закрывать в ручном режиме. Например, как-то я решил посчитать плотность населения по кварталам на основе данных OSM, а именно по тегу, которым обозначают жилые зоны: landuse=residential. Все было прекрасно, но в одном месте у меня оказалась запредельная плотность, потому что кто-то жилой многоквартирный дом обвел по отмостке еще и полигоном с этим тегом.

    Приблизительно такого характера чаще всего и бывают проблемы при работе с данными OSM. Но, как мне кажется, я нашел некоторые типы данных в OSM, которые можно смело брать, например, дорожный граф. За его связностью и качеством следит достаточно много людей, а потому с ним редко когда бывают проблемы.


    Дмитрий Лебедев на Вечере оживших карт. Фото: Андрей Дремов. Презентация в PDF

    — Какими инструментами вы пользуетесь для работы с геоданными?

    — Использую GeoPandas, Osmium, GDAL, QGIS, какое-то время работал с PostgreSQL, но после от него отказался. Он хорош тем, что с ним можно быстро начать работать, но если много экспериментируешь, то он начинает мешать. Еще есть ряд своих собственных скриптов и наработок, но пока я ими не могу поделиться.

    — Что бы посоветовали тем, кто только собирается заниматься анализом данных?

    — Думаю, чтобы научиться этому, надо иметь перед собой не лекцию, а реальную задачу или набор данных. А чтобы знать, что с этим делать, пригодится любой обзорный курс матстатистики, эконометрики (регрессионного анализа), а также какие-то презентации исследований — узнать, что люди делают с данными. Материалов таких полным полно, и трудно что-то конкретное даже вспомнить.

    Несколько интересных авторов говорят о принципах разработки в целом: например, Дуглас Крокфорд, автор формата JSON дал 7 интересных лекций ещё в 2009, но те, что касаются истории (1, 2), интересно слушать и сейчас. Джек Дидрих, один из разработчиков Питона, делает доклад «Перестаньте писать классы» (это я его переводил), а также замечательная статья Мэтта Линдермана о скорости проектирования.

    Пожалуйста, обратите внимание на последний текст. Если коротко, то в нем на примере конкретной истории рассказывается о том, почему стоит делать много маленьких итераций, а не тратить месяцы на разработку громоздких моделей, которые в итоге ломаются за минуту. Достигайте результата путем быстрых проб и ошибок, а не великих провалов. Это очень важно помнить, когда работаешь программистом. Хотя, как мне кажется, этот принцип может пригодиться и в целом по жизни.




    Проект Дмитрия Лебедева "Пиво против кофе"

    — Что вам нравится в OSM? Не нравится? Что бы сделали лучше?

    — Первым делом переделал бы модель данных. Какой именно она должна быть? Не знаю, но точно не такой, какая она сейчас. Отчего-то мне кажется, что разработчикам стоит посмотреть в сторону хранения данных в виде версий. Скажем так, некий аналог патчей в git с возможностью версионирования и выделения чистых веток. Возможно ли это реализовать с географической базой данных, где невероятное множество изменений? Вопрос. Но если в OSM пришли IT-гиганты, то я бы на их месте выделил грант на разработку прототипа такой БД, причем важно, чтобы в ней были топологические структуры, потому что, для работы с данными как в БД или Shape/GeoJSON/GPKG, проблем нет.

    Еще бы я обратил внимание на существующую «заплатку» — мультиполигоны, которые сейчас делаются как наборы линий. Потому что сейчас можно разомкнуть мультиполигон какого-нибудь моря и всю карту «зальет» водой. И попробуй найди место, где его разомкнули… На ШТОСМ я читал идеи насчёт этого уж не помню сколько лет назад.

    Также я бы на месте Фонда OSM, который последнее время озаботился разнообразием, рассматривал разнообразие не только, как создание условий для того, чтобы в проекте стало больше женщин, жителей Африки, Южной Америки или иного континента на планете. В данный момент любой здоровый человек в мире имеет гипотетическую возможность стать участником OSM. Но вот кто действительно выключен из проекта, так это люди с ограниченными возможностями.

    Например, у нас нет версии сайта для слабовидящих людей — для них карта плохо адаптирована. Или маломобильных — для них там мало данных. Как мне кажется, OSM имеет возможность открыть двери для таких людей уже завтра, так как вся технологическая основа для этого имеется.

    Можно начать с того, что сделать отдельную карту или картостиль для слабовидящих, потом адаптировать для них инструменты, с помощью которых создается карта. И сам по себе это очень важный момент — ориентирование в пространстве людей, у которых проблемы со зрением. Может ли OSM помочь в этой ситуации? Можем ли мы нарисовать такую карту, которая бы учитывала их пожелания и помогала им каждый день? Вот это реальная задача, а не дань моде.

    Поэтому считаю, что любой разговор за инклюзивность должен начинаться с поиска тех, помощь которым даст осязаемый результат. Если же разнообразие рассматривается только как процесс — бесконечная борьба за него, — тогда эта борьба лишь дискредитирует того, кто ее ведёт.



    — Что бы вы сказали человеку, который размышляет: использовать данные OSM или нет? Принимать участие в проекте или нет?

    — Обязательно стоит пробовать. Почему нет? Это интернет. Если вы посмотрите, поизучаете, нарисуете пару домиков, что-то новое узнаете, с вас не убудет. Новых знаний и опыта бояться не стоит, как и новых данных. Мне нравится, как делают в американских стартапах: смело берут и пробуют применить для своих нужд, тратят день-два на эксперименты и прототипы. Если в процессе понимают, что не получается — то оставляют.

    К сожалению, в российских нестартапах, особенно в различных окологосударственных трудновыговариваемых учреждения, а порою и в аутсорсинге, стараются избегать любых экспериментов. Там боятся испортить работающий процесс и любят послушность. Если их позиция вам близка, то что я могу сказать? Ну, тогда не пробуйте работать с данными OSM, не смотрите в их сторону, не подходите к ним.

    Люди зачастую — пленники того, с чем они выросли. Как говорит Крокфорд, чтобы инновация в ИТ вошла в обиход, нужно порядка двадцати лет — чтобы от дел отошло поколение специалистов, мыслящих по-старому. Например, объектно-ориентированное программирование было придумано в 60-е года прошлого века, а входить в оборот оно начало только в 80-е. И так со многим. Крокфорд говорит, что многие в спорах о разных новшествах встают в позицию “попробуй убеди меня, что твоя технология нужна, но я её не пробовал и не хочу узнавать нового”. Если не рефлексировать над собственными взглядами, то можно так же застрять в развитии.

    OSM — 15 лет. Проект продолжает развиваться. И я думаю, что его время еще придет и он будет всюду. Не так давно в него пришли крупные игроки. Если даже они оценили его потенциал, то какой еще нужен сигнал?



    — Чему вы научились благодаря OSM? Что нового открыли для себя?

    — Я неплохо узнал географию и топонимику, в том числе и своей малой родины — Сибири. Оказывается, у нас треть названий тюркские. Также OSM — хороший пример некоммерческого IT-проекта, на котором можно разбирать некоторые положения теории игр. Одно дело, что я изучал ее в университете, а другое — увидел все это своими глазами вживую и изнутри.



    — Что скажете в завершении беседы? Пожелаете нашим читателям?

    — Так сложилось, что большинство из них — это программисты или люди, связанные с IT, и гораздо реже гуманитарии. Это накладывает свой отпечаток на то, как развивается проект, куда он движется и что с ним происходит внутри.

    К примеру, в ИТ любят апеллировать к тому, как всё задумано и как должно быть в идеальном мире. В градостроительстве и архитектуре давно стало очевидным, что всё живое развивается не так, как было в замыслах организаторов: люди во всём мире не ходят по перпендикулярным тротуарам; люди почему-то не хотят отдавать детей в садик или школу внутри именно их микрорайона; наукограды даже в советские годы не выдавали массовых научных прорывов. Общественные и гуманитарные науки давно изучают, почему так происходит. Нужно не знать про них вообще, чтобы наивно придумывать, как организовать, например, сообщество, и ждать, что оно так и должно будет работать.

    Есть крайний пример — исследователи террористических сетей, например, Марк Сейджман, или Диего Гамбетта отмечают, что их составляют не дремучие фанатики, а хорошо образованные идеалисты с техническим образованием и утопическими мечтами. Видимо, гуманитарии, зная историю и прежние подобные учения, способны распознать догматизм и манипуляции.

    Поэтому нужно обязательно расширять познания в гуманитарной сфере. Например, ознакомиться хотя бы с теорией науки Поппера. Ведь все те программы и данные, которыми мы так увлекаемся, ради которых готовы ругаться сутками на форумах — это все невероятно маленькая часть реальной жизни.

    P.S. Доклад Дмитрия Лебедева «Исследования с открытыми данными и ГИС» (видео, презентация) («День открытых данных», Москва, 2018 год).


    Общение российских участников OpenStreetMap идёт в чатике Telegram и на форуме.
    Также есть группы в социальных сетях ВКонтакте, Facebook, но в них, в основном, публикуются новости.

    Присоединяйтесь к OSM!



    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 6

      0

      С мультиполигонами и водой кстати реально проблема. Может кто-то знает, как ее обойти?
      Вот делаю я экспорт области с куском береговой линии. И берег в итоге я получаю просто как незамкнутую линию, которая была куском мультиполигона моря, состоящую из частей, попавших в мою область.


      Как мне замкнуть эту линию, чтобы получить область воды в пределах моей области в виде простого полигона?


      Нельзя просто соединить начало и конец линии, замкнув полигон. Это будет работать для выпуклых водоемов, но не сработает со всякими островами. На картинке под катом изобразил примеры.
      Не выйдет добавить в полигон границы участка — так как просто непонятно, с какой стороны от линии берега собственно вода находится.


      Варианты экспорта берегов

      image


      Может кто-то что-то подсказать?

        0
        Если замыкать по границе внешнего прямоугольника — по ее точкам пересечения с линиями полигонов? Тип заливки несет в себе сама граница, от нее и распространять заливку в полигоне?
          0

          Так непонятно, в какую сторону. Вправо или влево? Линия границы не несет никакой информации о том, по какую сторону от нее находится внешняя и внутренняя части полигона. И нет общепринятого порядка задания вершин в полигонах, могут быть как по, так и против часовой и вообще как угодно.

          0
          замыкание прямой линией упрощенный вариант, со своими косяками упрощения.
          полноценный алгоритм: докачать неполный мультиполигон и правильно его нашинковать.
          ксати отношение-мультиполигон может с несколькими оутерами и кучей иннеров, вот где будет красота.
            +1
            так как просто непонятно, с какой стороны от линии берега собственно вода находится.

            В случае coastline всё просто — «land is on the left side and water on the right side of the way (when viewing in the direction of the way arrows)»
            В случе просто водяных объектов (озёр/рек) сложнее — нужно при обрезке оставлять граничные объекты целиком (параметр completeWays/completeRelations у osmosis) и затем при конвертации делать геометрическую обрезку (intersection) объекта полигона с прямоугольником обрезки.
              0

              О, спасибо, про тему с coastline как-то не знал.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое