Сегодня я применю свою модель к геоданным города Краснодара. Теплый южный город, мечта многих живущих севернее. Умопомрачительные прогулки по пешеходной улице Красная, кругом зелень и солнышко! Город для аналитики выбран по совету из комментария на Хабре.

В прошлой публикации "Где бы вы точно не жили и не остановились даже на время, если бы знали и выбирали на основе фактов" читатели здорово помогли с новыми идеями в коментариях для настройки модели, которая отговаривает меня жить в определенных местах. Модель получилась достаточно прозрачная для ее чтения и проверки: не использует ChatGPT/Llama 2 и прочие новомодные штуки, и даже без old-school дифур. Она просто считает расстояние по прямой в метрах от жилого здания до тех мест в окрестности, рядом с которыми я не хотел бы постоянно находиться.

Подготовка данных и отличия в параметрах модели

Исходные данные я загружал с сайта Geofabric. Как их загрузить в для анализа

так же как и в прошлый раз
docker run -it --rm -w $(pwd) -v $(pwd):/$(pwd) -v /var/run/docker.sock:/var/run/docker.sock openstreetmap_h3:latest -source_pbf $(pwd)/south-fed-district-latest.osm.pbf -result_in_tsv true
docker run --name postgis15-south-fed-district --memory=12g --memory-swap=12g --memory-swappiness 0 --shm-size=1g -v $(pwd)/database:/var/lib/postgresql/data -v $(pwd)/south-fed-district-latest_loc_ways:/input -e POSTGRES_PASSWORD=osmworld -d -p 5432:5432 postgres15_postgis:latest -c checkpoint_timeout='15 min' -c checkpoint_completion_target=0.9 -c shared_buffers='4096 MB' -c wal_buffers=-1 -c bgwriter_delay=200ms -c bgwriter_lru_maxpages=100 -c bgwriter_lru_multiplier=2.0 -c bgwriter_flush_after=0 -c max_wal_size='32768 MB' -c min_wal_size='16384 MB'

И дальше работаем с PostGIS базой про которую рассказывал раньше в серии публикаций.

Так как выгрузка включает весь Южный федеральный округ, то нужно выделить только нужную часть данных:

так можно извлечь границы Краснодара
select geom from geometry_global_view 
where type<>'nodes' and tags->'place'='city' 
  and tags->'name:ru'='Краснодар'

Их с помощью функции h3_polygon_to_cells(geom,8) можно превратить в геоиндексы. Что будет быстрее и удобнее в запросах к данным...

Красным выделены границы Краснодара из OpenStreetMap
Красным выделены границы Краснодара из OpenStreetMap

Как я сказал, спасибо всем кто прокоментировал! Учел замечания @sshikov @novoselov@avacha@SnakeSolid@kasiopeiи дополнил запрос:

новыми фильтрами
g.tags->'aeroway'='helipad' or --_шумное место_
g.tags->'landuse'='cemetery' or --_скорбное место_
g.tags->'amenity'='mortuary' or --_скорбное место_
g.tags->'amenity'='funeral_hall' or --_скорбное место_
g.tags->'shop'='pyrotechnics' or --_опасность_
g.tags->'man_made'='storage_tank' or --_опасность_
g.tags->'hazard' is not null or --_опасность_
g.tags->'hazard_prone' is not null or --_опасность_
g.tags->'flood_prone' is not null or --_опасность_
g.tags->'building'='cowshed' or --_качество воздуха_
g.tags->'building'='sty' or --_качество воздуха_
g.tags->'building'='slurry_tank' or --_качество воздуха_
g.tags->'man_made'='chimney' or --_качество воздуха_
(g.tags->'lanes' is not null and g.tags->'lanes'~'^\d+$' and (g.tags->'lanes')::integer>2 --_шумное место_

Напомню, что модель изначально является моим личным мнением о том где жить не комфортно. Добавив немного отсебятины с вертолетной площадкой, цистерной ГСМ и дымовой трубой, просматривая результаты запросов и сверяясь с данными карты. Подумаю еще как это лучше параметризовать, чтобы удобнее было указывать предпочтения. Кому-то и религиозные сооружения мешают жить судя по комментариям, а мне хватает чтобы рядом не звонили в колокол после полуночи и не будили на молитву до утра.

И конечно добавил еще субъективщины и уменьшил допустимое расстояние на 50м. Получилось что негативный фактор для жизни учитывается теперь от 150м, что не так пессимистично, как в прошлой статье. Сделал это глядя на данные и понимая что из доступных сведений все равно не понять реальную интенсивность фактора запаха/звука итп, а жить в городе где-то надо. Далеко от дискомфорта не убежать!

Посчитаем теперь новую статистику

только по Краснодару
create table h3_10_stat as 
  select h3,h3_cell_to_boundary_geography(h3) cell ,count, reason 
  from (select h3_10 h3, count(distinct (to_id,to_type)),array_agg(distinct reason) reason 
          from distance 
          where h3_8 in (select h3_polygon_to_cells(geom,8) 
                         from geometry_global_view 
                         where type<>'nodes' and tags->'place'='city' and tags->'name:ru'='Краснодар') and to_id is not null 
          group by 1 order by 1
       ) geo;

Полный список объектов рядом с которыми я бы не хотел жить
g.tags->'amenity'='waste_transfer_station' or --_качество воздуха_
g.tags->'landuse'='landfill' or --_качество воздуха_
g.tags->'man_made'='spoil_heap' or --_качество воздуха_
g.tags->'man_made'='wastewater_plant' or --_качество воздуха_
g.tags->'amenity'='crematorium' or --_качество воздуха_
(g.tags->'natural'='wetland' and g.tags->'wetland' is distinct from 'mangrove') or --_комары_
g.tags->'power'='substation' or --_промышленность_
g.tags->'power'='generator' or --_промышленность_
g.tags->'power'='plant' or --_промышленность_
g.tags->'building'='industrial' or --_промышленность_
g.tags->'landuse'='industrial' or --_промышленность_
g.tags->'landuse'='quarry' or --промышленность_
g.tags->'aeroway'='runway' or --_шумное место_
g.tags->'aeroway'='helipad' or --_шумное место_
g.tags->'railway'='rail' or --_шумное место_
g.tags->'highway'='primary' or --_шумное место_
g.tags->'highway'='trunk' or --_шумное место_
(g.tags->'lanes' is not null and g.tags->'lanes'~'^\d+$' and (g.tags->'lanes')::integer>2) or--_шумное место_
g.tags->'leisure'='stadium' or --_шумное место_
g.tags->'landuse'='construction' or --_шумное место_
g.tags->'landuse'='cemetery' or --_скорбное место_
g.tags->'amenity'='mortuary' or --_скорбное место_
g.tags->'amenity'='funeral_hall' or --_скорбное место_
g.tags->'shop'='pyrotechnics' or --_опасность_
g.tags->'man_made'='storage_tank' or --_опасность_
g.tags->'hazard' is not null or --_опасность_
g.tags->'hazard_prone' is not null or --_опасность_
g.tags->'flood_prone' is not null or --_опасность_
g.tags->'building'='cowshed' or --_качество воздуха_
g.tags->'building'='sty' or --_качество воздуха_
g.tags->'building'='slurry_tank' or --_качество воздуха_
g.tags->'man_made'='chimney' --_качество воздуха_

Краснодар. Поехали!

Если взять обратное от негатива, то что получится? Мне кажется "неплохо", но нельзя быть уверенным что отлично. Так вот с этим "неплохо" визуально в центре Краснодара лучше чем с "неплохо" в Москве в пределах МКАД:

Мест, где нет учтенных негативных факторов на жилые дома в черте города в Краснодаре, визуально больше чем в Москве. Это к лучшему!
Мест, где нет учтенных негативных факторов на жилые дома в черте города в Краснодаре, визуально больше чем в Москве. Это к лучшему!
Если сравнить со столицей в пределах МКАД
Для Москвы я пересчитал метрики с теми же параметрами что и в Краснодаре - 150м радиус влияния и те же фильтры
Для Москвы я пересчитал метрики с теми же параметрами что и в Краснодаре - 150м радиус влияния и те же фильтры

Я считаю что рядом с квартирой, ближе чем в 150м не хотел бы видеть, нюхать и слышать влияющее на:

Визуализирую места на карте где бы я не стал жить в Краснодаре:

Красные ячейки - негативные факторы, зеленые контуры - таких факторов нет в радиусе 150м
Красные ячейки - негативные факторы, зеленые контуры - таких факторов нет в радиусе 150м

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

Выгрузил данные в geojson, можете просмотреть их по ссылке. И вам доступна детальная выгрузка какие же факторы попали в каждую ячейку, с сылкой на OSM.

Заключение

Дорожная развязка на выезде из спального района Краснодара в светлом будущем.
Дорожная развязка на выезде из спального района Краснодара в светлом будущем.

Интересно было бы услышать мнения тех кто живет или часто бывает в Краснодаре. Может есть какое-либо не учтенное в данных индустриальное "Око Саурона" или какие-либо не комфортные места в городе, что не указаны в выгрузке.

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

Комментарии (39)


  1. Javian
    18.09.2023 05:52
    +1

    На вскидку вспоминается "Музыкальный квартал" Краснодара. Негативный фактор которого описывается достаточно известной в местных кругах фразой — продавать недвижимость надо летом, а покупать весной. Сокральный смысл фразы что весной поднимаются грунтовые воды и видно, что участок топится. А летом этот участок высыхает и можно продать неместным.


    1. igor_suhorukov Автор
      18.09.2023 05:52

      Спасибо за местный секрет! Уже учтено, если место где "Музыкальный квартал" помечено в разметке как Район или дорога, подверженная затоплению


      1. Javian
        18.09.2023 05:52

        Насколько я могу разглядеть на ваших скриншотах, то этот квартал один из самых благополучных. Описание квартал в википедии — https://ru.m.wikipedia.org/wiki/%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_(%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%D1%80)


        1. igor_suhorukov Автор
          18.09.2023 05:52

          Подождем следующей весны, когда местные OSMры разметят. В данных OpenStreetMap сейчас в Краснодаре нет такой разметки, проверил.


          1. igor_suhorukov Автор
            18.09.2023 05:52
            +1

            При отсутствии разметки в OpenStretMap о затоплении этот квартал меньше чем на половину без негативных факторов.
            При отсутствии разметки в OpenStretMap о затоплении этот квартал меньше чем на половину без негативных факторов.

            Местное комьюнити OpenStreetMap и гости города! Вам есть что размечать тегом flood_prone


            1. Javian
              18.09.2023 05:52

              Просто закрасить Краснодар и окрестности — сильно не ошибетесь.


        1. Yuriy_krd
          18.09.2023 05:52
          +4

          Вы забыли "не" в слове "благополучный". Я живу в Краснодаре. Так вот. Этот квартал был построен на месте частных домов частными застройщиками. Это означает, что там проблемы с ливневками (их только-только начали строить, через 20 лет после возведения микрорайона), проблема с отоплением (там котельные на несколько домов и зимой там отопление ну очень дорогое), проблема с дорогами (там между домами либо гравийка, либо плиты (есть и асфальт на месте, где были дороги внутри частных кварталов, но там очень убитый асфальт) и проблема с канализацией (там много где септики на несколько домов и иногда там — потрясающий запах). И дома там, нередко, расположены прям "окно в окно" — расстояние — метров 10.
          Да, там начали, потихоньку, строить многоэтажки с нормальной инфраструктурой, но это лишь небольшая площадь от общего размера района.
          И, чтобы понимали размер "бедствия" с ливневками — в ютубчике полно роликов, где люди катаются на лодках и гидроциклах.


          1. Javian
            18.09.2023 05:52

            Я применил слово исключительно к данным на карте, как пример диаметрально противоположной ситуации в реальности.


  1. Markscheider
    18.09.2023 05:52
    +1

    комары: Заболоченые участки

    Есть предположение, что сюда надо также добавить категорию "Пруды" (ну или как там в OSM называются небольшие водоемы со стоячей водой). Там комары тоже любят гнездиться, а противомалярийные мероприятия проводятся не во всех южных городах.

    Если в Краснодаре мероприятия проводятся - прошу прощения, что бросил тень на славную армию дезинсектологов :):):):)


    1. igor_suhorukov Автор
      18.09.2023 05:52

      Не так однозначно как с болотами. Многие люди хотят жить в доме у реки, озера, пруда.


      1. Markscheider
        18.09.2023 05:52

        Река, озеро - скорее да, чем нет.

        А пруд в черте города обычно напоминает помойное ведро, уж простите за прямоту.


        1. igor_suhorukov Автор
          18.09.2023 05:52
          +1

          В Чистые Пруды в Москве тоже когда-то сбрасывали отбросы

          По самой широко распространенной версии на месте нынешнего Чистого пруда в XVII веке
          находились «Поганые болота» или «Поганая лужа». Происхождение названия
          «Поганые болота» также доподлинно неизвестно. Основная версия гласит о
          том, что «поганым» пруд стали называть за то, что в него сбрасывали
          нечистоты и отходы из располагавшихся рядом на Мясницкой улице мясных лавок[2]

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


          1. Markscheider
            18.09.2023 05:52

            Вопрос качества разметки

            Как оказалось, вы совершенно правы. На прудах мало где ставят тег water=pond. А без этого их не отличить от более крупных (чистых) водоемов.


            1. igor_suhorukov Автор
              18.09.2023 05:52

              У меня знакомых покусали комары на заброшенном острове, где не было болот и пруда. Им в тот раз не повезло и их семья и семья друзей заразились лихорадкой Денге. Я тоже там несколько раз на этом заброшеном острове-отеле, но обошлось без последствий.


              1. huaw
                18.09.2023 05:52
                +1

                Остров явно не в России же?:) Что-то азиатское.

                Денге передаётся от носителя (обезьяна, человек), т.е. комар должен куснуть и больного, и здорового, чтоб передать.

                И таки комарам в джунглях особо не надо болот, достаточно небольших лужиц, которых хоть отбавляй в Азии в сезон дождей.


                1. igor_suhorukov Автор
                  18.09.2023 05:52

                  Не в России, посреди Индийского океана. На островах где местные жители живут они комаров истребляют, больше Денге они боятся Желтой Лихорадки.


                  1. unC0Rr
                    18.09.2023 05:52
                    +1

                    Мальдивы? На Мальдивах небольшой культурный шок, когда собираешься любоваться закатом, а навстречу тебе идёт человек в полном облачении химзащиты и пускает ядовитый туман. А бежать тебе некуда — остров маленький!


            1. igor_suhorukov Автор
              18.09.2023 05:52

              Более того скажу, я размечал сотни озерwater=pondи там не было гнуса. Пруд на пруд не приходится


              1. Markscheider
                18.09.2023 05:52

                Более того скажу, я размечал сотни озер water=pond

                а почему не lake?


                1. igor_suhorukov Автор
                  18.09.2023 05:52

                  Потому что озера обычно глубже и имеют большую площадь


      1. starfair
        18.09.2023 05:52
        +1

        Ха, да у нас только в реку Кубань, которая хотя и идет по окраине города, тем не менее всё же в черта, только врезанных незаконных (хотя могут ли быть законными?) фекальных сбросов , один из эко-активистов во время сильного падения воды в русле пары лет назад, насчитал полторы сотни. Та-же история и со всеми так называемыми озёрами в черте города(Карасунские). Да и рядом же расположенное краснодарское водохранидище так же не добавляет особо чего хорошего для города, разве что говорят, климат стал помягче благодаря ему, да не подтапливает юго-запад города, как было до его строительства. Но самая главная проблема - это абсолютно безалаберное планирование движения, при строительстве всех без исключения микрорайонов города. Хотя мы и миллионник, но из-за грунтов с плавунами, метро у нас сделать невозможно (требуется огромные участки с заморозками, как это есть в СПитербурге, но явно такого нам никто не позволит), а наземные дороги не приспособлены под то количество машин, которое есть. Так же к важным фактором выбора мест проживания я бы ещё отнёс социальные инфраструктуры (поликлиники ,особенно детские, детсады и школы). Точнее катастрофическую их нехватку. В новых микрорайонах плохо сразу со всем. Так что экология - это даже не половина беды.


      1. vadimk91
        18.09.2023 05:52
        +1

        У нас (Карелия) градообразующее предприятие тоже решило гостиницу для себя построить "у воды". На берег озера видимо их не пустили, там недалеко городской водозабор, построили "в сосновом лесу", по факту среди болот. Комаров там летом тьма, не знаю, как там отдыхается в коттеджах, но меньше гнуса в округе не стало.


  1. Nelman86
    18.09.2023 05:52
    +1

    Получается практически везде, где в основном живут люди, отмечено красным))) Данная модель не учитывает ни пробки, ни проблемы с общественным транспортом в районах, одни из самых главных проблем города. В последнее время Краснодар превратился в одну большую пробку, пешком быстрее иной раз(не говоря уже о самокатах и велосипедах)...


    1. igor_suhorukov Автор
      18.09.2023 05:52

      Я подробно расписал что модель учитывает. На Хабре уже были с позитивной моделью "Человейник, тебе меня не сломить! Анализ жилья в мегаполисе" но они, к сожалению, закрылись...

      Открою секрет что я родился и жил, а также работал и арендовал в "красных" гексагонах. Но это не повод не искать место лучше. Кому-либо тоже поможет не совершать ошибок.


  1. 18741878
    18.09.2023 05:52
    +4

    Где бы я жил в Краснодаре

    Сейчас - нигде. Когда-то это был милый, дружелюбный, по южному расслабленный город. С населением порядка 300 тысяч. С чудесными старомодными улицами, где дом в 3 этажа - уже почти небоскреб.

    Сколько там сейчас население? Вот и делайте выводы сами


    1. igor_suhorukov Автор
      18.09.2023 05:52

      Википедия для Краснодара утверждает, что

      Население 1 121 291[3] человек (2023)


      1. 18741878
        18.09.2023 05:52
        +1

        Т.е. почти в 4 раза выросло. А с учетом пригородов, которые формально не входят в Краснодар, но фактически вплотную примыкают к нему, считай что и в 5 раз


      1. kucheriavij
        18.09.2023 05:52
        +4

        Это официальные данные. По неофициальным (да и по ощущениям), у нас в городе 1,7-2кк населения. В местных пабликах было много разговоров по этому поводу, что население специально занижается для федерального центра, но правду естественно мы не знаем. Ну и ко всему прочему добавим маятниковую миграцию. Вокруг города достаточно много пригородов, и люди в достаточно большом кол-ве едут на работу/с работы. Так что проблема с пробками в городе очень острая, наверное даже хуже чем для Москвы. Так что я полностью поддерживаю комментарий выше, в городе не совсем комфортно жить. Но как коренной Краснодарец я все же люблю свой город, и он мне нравится такой какой он есть, пускай это и не город вовсе, а большая деревня)). Ну и в добавок ко всему прочему добавлю, что лично для меня, город имеет идеальное географическое положение, которое позволяет одинаково по расстоянию поехать как на море (любое из двух), так и в горы, так что знойными летними деньками вполне себе можно позволить себе прям на выходных провести интересный досуг


      1. onosj
        18.09.2023 05:52
        +2

        Кстати, если кто-то задумывается о жизни с ребенком в Краснодаре, то вам
        следует обратить внимание на последствия роста населения. В городе
        очень мало новых школ, и спрос на них настолько велик, что стала
        распространяться практика пристройки дешевых корпусов на территориях уже
        существующих. Если ваш ребенок не ходит в частный лицей или школу (цена
        в таких школах приблизительно равна цене обучения в местных вузах), то
        нужно готовиться к трудностям. В государственных школах уже не хватает
        букв в алфавите для обозначения классов, качество и без того низкого
        образования страдает. А чтобы попасть в хорошие заведения с хорошей
        репутацией, ребенку с дошкольного возраста нужно готовиться к
        собеседованиям.


        1. Javian
          18.09.2023 05:52

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


    1. Insaned
      18.09.2023 05:52
      +2

      Население "порядка 300 тысяч" в Краснодаре было в 50х годах прошлого века.


    1. huaw
      18.09.2023 05:52

      "Никто никогда не вернётся в 2007"

      Времена изменились. Теперь Краснодар будет только расти, ибо люди хотят жить в тепле. Приток населения будет лишь усиливаться.


  1. rootdefault
    18.09.2023 05:52
    +2

    Благополучными выделены районы и улицы на которые достаточно взглянуть хотя бы через Street View и вопрос снимется сам собой.

    Плюс основная особенность Краснодара - безумные пробки, а это не учтено от слова совсем


    1. igor_suhorukov Автор
      18.09.2023 05:52

      Это не благополучные районы, а "неплохие" по тем факторам что я перечислил в статье.


  1. aik
    18.09.2023 05:52
    +1

    В Краснодаре я бы жил в Ярославле. :)


  1. vahmurka
    18.09.2023 05:52
    +1

    а розу ветров вы учитываете?

    в том же Яблоневском химией воняет не слабо и при "попутном ветре" спокойно разнесёт на пол города…

    или мусорный полигон (где-то на западе), если/когда начнёт гореть, то сами понимаете…

    мне кажется, в большом городе в принципе почти нет мест с приемлемым качеством жизни, везде какие-то засады (стройки, заводы, стадионы, рынки, вокзалы, дороги), а тем более в Краснодаре, когда он летом превращается в одну большую пробку… а потому, если и выбирать место в городе, то более локально: зелёный дворик, можно с детским садиком или школой (это 99% гарантия, что перед вашими окнами точно не построят никакую высотку или Магнит), подальше от всякой химии и рынков и чтобы не 25 этажей с 15+ квартирами на лестничной площадке… )


    1. igor_suhorukov Автор
      18.09.2023 05:52

      Розу ветров не учитываю. Мусорный полигон учитывается. А также все что засчитывается в оценке перечисленно в публикации. Оставлю ссылку на коментарий с прошлой публикации.


  1. Pythonpy
    18.09.2023 05:52

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


  1. Chelidonium
    18.09.2023 05:52
    +2

    водохранилища рядом с любым городом оказывают целый спектр факторов :
    https://cyberleninka.ru/article/n/ekologicheskie-problemy-krasnodarskogo-vodohranilischa
    для архитектурной атмосферности не хватает наружных пожарных лестниц как в NY )