Сегодня я применю свою модель к геоданным города Краснодара. Теплый южный город, мечта многих живущих севернее. Умопомрачительные прогулки по пешеходной улице Красная, кругом зелень и солнышко! Город для аналитики выбран по совету из комментария на Хабре.
В прошлой публикации "Где бы вы точно не жили и не остановились даже на время, если бы знали и выбирали на основе фактов" читатели здорово помогли с новыми идеями в коментариях для настройки модели, которая отговаривает меня жить в определенных местах. Модель получилась достаточно прозрачная для ее чтения и проверки: не использует 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) можно превратить в геоиндексы. Что будет быстрее и удобнее в запросах к данным...
Как я сказал, спасибо всем кто прокоментировал! Учел замечания @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м не хотел бы видеть, нюхать и слышать влияющее на:
качество воздуха: Станция перевалки мусора, Свалка, Террикон, Коровник, Свинарник, Жидкий навоз, Очистка сточных вод, Дымовая труба, Крематорий
уровень шума: Стройка, Железнодорожные пути, Взлётно-посадочная полоса, Вертолётная площадка. Автомобильные дороги регионального значения, дороги с более чем 2мя полосами движения, Автомобильные дороги федерального значения, Стадион
настроения из песен Егора Летова: Промышленные площади, Подстанции, Генератор, ТЭЦ, Карьер
скорбь: Кладбище, Морг, Место для проведения похоронной церемонии
опасность: Контейнер, содержащий жидкости или сжатые газы, Магазин пиротехники, Опасность, Территория подвержена стихийным бедствиям, Район или дорога, подверженная затоплению
комары: Заболоченые участки
Визуализирую места на карте где бы я не стал жить в Краснодаре:
Отмечу, что я не знаю какое качество и полнота данных на OpenStreetMap для Краснодара. Был в этом городе много раз, но самостоятельно без друзей по городу не разгуливал.
Выгрузил данные в geojson, можете просмотреть их по ссылке. И вам доступна детальная выгрузка какие же факторы попали в каждую ячейку, с сылкой на OSM.
Заключение
Интересно было бы услышать мнения тех кто живет или часто бывает в Краснодаре. Может есть какое-либо не учтенное в данных индустриальное "Око Саурона" или какие-либо не комфортные места в городе, что не указаны в выгрузке.
Достаточно много домов в черте города дальше 150м от негативных факторов, сравнивая с данными той же модели в столице. В следующей публикации пройдемся шестигранниками агрегации по жилью у побережья.
Комментарии (39)
Markscheider
18.09.2023 05:52+1комары: Заболоченые участки
Есть предположение, что сюда надо также добавить категорию "Пруды" (ну или как там в OSM называются небольшие водоемы со стоячей водой). Там комары тоже любят гнездиться, а противомалярийные мероприятия проводятся не во всех южных городах.
Если в Краснодаре мероприятия проводятся - прошу прощения, что бросил тень на славную армию дезинсектологов :):):):)
igor_suhorukov Автор
18.09.2023 05:52Не так однозначно как с болотами. Многие люди хотят жить в доме у реки, озера, пруда.
Markscheider
18.09.2023 05:52Река, озеро - скорее да, чем нет.
А пруд в черте города обычно напоминает помойное ведро, уж простите за прямоту.
igor_suhorukov Автор
18.09.2023 05:52+1В Чистые Пруды в Москве тоже когда-то сбрасывали отбросы
По самой широко распространенной версии на месте нынешнего Чистого пруда в XVII веке
находились «Поганые болота» или «Поганая лужа». Происхождение названия
«Поганые болота» также доподлинно неизвестно. Основная версия гласит о
том, что «поганым» пруд стали называть за то, что в него сбрасывали
нечистоты и отходы из располагавшихся рядом на Мясницкой улице мясных лавок[2]Вопрос качества разметки, если можно отличить в даных заброшенный мусорный пруд от отличного места, то тогда я учту и этот фактор.
Markscheider
18.09.2023 05:52Вопрос качества разметки
Как оказалось, вы совершенно правы. На прудах мало где ставят тег water=pond. А без этого их не отличить от более крупных (чистых) водоемов.
igor_suhorukov Автор
18.09.2023 05:52У меня знакомых покусали комары на заброшенном острове, где не было болот и пруда. Им в тот раз не повезло и их семья и семья друзей заразились лихорадкой Денге. Я тоже там несколько раз на этом заброшеном острове-отеле, но обошлось без последствий.
huaw
18.09.2023 05:52+1Остров явно не в России же?:) Что-то азиатское.
Денге передаётся от носителя (обезьяна, человек), т.е. комар должен куснуть и больного, и здорового, чтоб передать.
И таки комарам в джунглях особо не надо болот, достаточно небольших лужиц, которых хоть отбавляй в Азии в сезон дождей.
igor_suhorukov Автор
18.09.2023 05:52Не в России, посреди Индийского океана. На островах где местные жители живут они комаров истребляют, больше Денге они боятся Желтой Лихорадки.
unC0Rr
18.09.2023 05:52+1Мальдивы? На Мальдивах небольшой культурный шок, когда собираешься любоваться закатом, а навстречу тебе идёт человек в полном облачении химзащиты и пускает ядовитый туман. А бежать тебе некуда — остров маленький!
igor_suhorukov Автор
18.09.2023 05:52Более того скажу, я размечал сотни озер
water=pond
и там не было гнуса. Пруд на пруд не приходится
starfair
18.09.2023 05:52+1Ха, да у нас только в реку Кубань, которая хотя и идет по окраине города, тем не менее всё же в черта, только врезанных незаконных (хотя могут ли быть законными?) фекальных сбросов , один из эко-активистов во время сильного падения воды в русле пары лет назад, насчитал полторы сотни. Та-же история и со всеми так называемыми озёрами в черте города(Карасунские). Да и рядом же расположенное краснодарское водохранидище так же не добавляет особо чего хорошего для города, разве что говорят, климат стал помягче благодаря ему, да не подтапливает юго-запад города, как было до его строительства. Но самая главная проблема - это абсолютно безалаберное планирование движения, при строительстве всех без исключения микрорайонов города. Хотя мы и миллионник, но из-за грунтов с плавунами, метро у нас сделать невозможно (требуется огромные участки с заморозками, как это есть в СПитербурге, но явно такого нам никто не позволит), а наземные дороги не приспособлены под то количество машин, которое есть. Так же к важным фактором выбора мест проживания я бы ещё отнёс социальные инфраструктуры (поликлиники ,особенно детские, детсады и школы). Точнее катастрофическую их нехватку. В новых микрорайонах плохо сразу со всем. Так что экология - это даже не половина беды.
vadimk91
18.09.2023 05:52+1У нас (Карелия) градообразующее предприятие тоже решило гостиницу для себя построить "у воды". На берег озера видимо их не пустили, там недалеко городской водозабор, построили "в сосновом лесу", по факту среди болот. Комаров там летом тьма, не знаю, как там отдыхается в коттеджах, но меньше гнуса в округе не стало.
Nelman86
18.09.2023 05:52+1Получается практически везде, где в основном живут люди, отмечено красным))) Данная модель не учитывает ни пробки, ни проблемы с общественным транспортом в районах, одни из самых главных проблем города. В последнее время Краснодар превратился в одну большую пробку, пешком быстрее иной раз(не говоря уже о самокатах и велосипедах)...
igor_suhorukov Автор
18.09.2023 05:52Я подробно расписал что модель учитывает. На Хабре уже были с позитивной моделью "Человейник, тебе меня не сломить! Анализ жилья в мегаполисе" но они, к сожалению, закрылись...
Открою секрет что я родился и жил, а также работал и арендовал в "красных" гексагонах. Но это не повод не искать место лучше. Кому-либо тоже поможет не совершать ошибок.
18741878
18.09.2023 05:52+4Где бы я жил в Краснодаре
Сейчас - нигде. Когда-то это был милый, дружелюбный, по южному расслабленный город. С населением порядка 300 тысяч. С чудесными старомодными улицами, где дом в 3 этажа - уже почти небоскреб.
Сколько там сейчас население? Вот и делайте выводы сами
igor_suhorukov Автор
18.09.2023 05:52Википедия для Краснодара утверждает, что
Население ↗1 121 291[3] человек (2023)
18741878
18.09.2023 05:52+1Т.е. почти в 4 раза выросло. А с учетом пригородов, которые формально не входят в Краснодар, но фактически вплотную примыкают к нему, считай что и в 5 раз
kucheriavij
18.09.2023 05:52+4Это официальные данные. По неофициальным (да и по ощущениям), у нас в городе 1,7-2кк населения. В местных пабликах было много разговоров по этому поводу, что население специально занижается для федерального центра, но правду естественно мы не знаем. Ну и ко всему прочему добавим маятниковую миграцию. Вокруг города достаточно много пригородов, и люди в достаточно большом кол-ве едут на работу/с работы. Так что проблема с пробками в городе очень острая, наверное даже хуже чем для Москвы. Так что я полностью поддерживаю комментарий выше, в городе не совсем комфортно жить. Но как коренной Краснодарец я все же люблю свой город, и он мне нравится такой какой он есть, пускай это и не город вовсе, а большая деревня)). Ну и в добавок ко всему прочему добавлю, что лично для меня, город имеет идеальное географическое положение, которое позволяет одинаково по расстоянию поехать как на море (любое из двух), так и в горы, так что знойными летними деньками вполне себе можно позволить себе прям на выходных провести интересный досуг
onosj
18.09.2023 05:52+2Кстати, если кто-то задумывается о жизни с ребенком в Краснодаре, то вам
следует обратить внимание на последствия роста населения. В городе
очень мало новых школ, и спрос на них настолько велик, что стала
распространяться практика пристройки дешевых корпусов на территориях уже
существующих. Если ваш ребенок не ходит в частный лицей или школу (цена
в таких школах приблизительно равна цене обучения в местных вузах), то
нужно готовиться к трудностям. В государственных школах уже не хватает
букв в алфавите для обозначения классов, качество и без того низкого
образования страдает. А чтобы попасть в хорошие заведения с хорошей
репутацией, ребенку с дошкольного возраста нужно готовиться к
собеседованиям.Javian
18.09.2023 05:52Детские садики, медицина в таком же состоянии — это везде где руководство региона и застройщики в одном лице. Приватизация прибыли, а инфраструктуру сбросить на нищий бюджет с перспективой построить никогда.
huaw
18.09.2023 05:52"Никто никогда не вернётся в 2007"
Времена изменились. Теперь Краснодар будет только расти, ибо люди хотят жить в тепле. Приток населения будет лишь усиливаться.
rootdefault
18.09.2023 05:52+2Благополучными выделены районы и улицы на которые достаточно взглянуть хотя бы через Street View и вопрос снимется сам собой.
Плюс основная особенность Краснодара - безумные пробки, а это не учтено от слова совсем
igor_suhorukov Автор
18.09.2023 05:52Это не благополучные районы, а "неплохие" по тем факторам что я перечислил в статье.
vahmurka
18.09.2023 05:52+1а розу ветров вы учитываете?
в том же Яблоневском химией воняет не слабо и при "попутном ветре" спокойно разнесёт на пол города…
или мусорный полигон (где-то на западе), если/когда начнёт гореть, то сами понимаете…
мне кажется, в большом городе в принципе почти нет мест с приемлемым качеством жизни, везде какие-то засады (стройки, заводы, стадионы, рынки, вокзалы, дороги), а тем более в Краснодаре, когда он летом превращается в одну большую пробку… а потому, если и выбирать место в городе, то более локально: зелёный дворик, можно с детским садиком или школой (это 99% гарантия, что перед вашими окнами точно не построят никакую высотку или Магнит), подальше от всякой химии и рынков и чтобы не 25 этажей с 15+ квартирами на лестничной площадке… )
igor_suhorukov Автор
18.09.2023 05:52Розу ветров не учитываю. Мусорный полигон учитывается. А также все что засчитывается в оценке перечисленно в публикации. Оставлю ссылку на коментарий с прошлой публикации.
Pythonpy
18.09.2023 05:52Геоданные это интересно конечно, но не стоит забывать, что в городе лютейшие пробки и кубаноиды, которые не особо любят приезжих. Лучше жить где-нибудь за городом
Chelidonium
18.09.2023 05:52+2водохранилища рядом с любым городом оказывают целый спектр факторов :
https://cyberleninka.ru/article/n/ekologicheskie-problemy-krasnodarskogo-vodohranilischa
для архитектурной атмосферности не хватает наружных пожарных лестниц как в NY )
Javian
На вскидку вспоминается "Музыкальный квартал" Краснодара. Негативный фактор которого описывается достаточно известной в местных кругах фразой — продавать недвижимость надо летом, а покупать весной. Сокральный смысл фразы что весной поднимаются грунтовые воды и видно, что участок топится. А летом этот участок высыхает и можно продать неместным.
igor_suhorukov Автор
Спасибо за местный секрет! Уже учтено, если место где "Музыкальный квартал" помечено в разметке как Район или дорога, подверженная затоплению
Javian
Насколько я могу разглядеть на ваших скриншотах, то этот квартал один из самых благополучных. Описание квартал в википедии — 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)
igor_suhorukov Автор
Подождем следующей весны, когда местные OSMры разметят. В данных OpenStreetMap сейчас в Краснодаре нет такой разметки, проверил.
igor_suhorukov Автор
Местное комьюнити OpenStreetMap и гости города! Вам есть что размечать тегом
flood_prone
Javian
Просто закрасить Краснодар и окрестности — сильно не ошибетесь.
Yuriy_krd
Вы забыли "не" в слове "благополучный". Я живу в Краснодаре. Так вот. Этот квартал был построен на месте частных домов частными застройщиками. Это означает, что там проблемы с ливневками (их только-только начали строить, через 20 лет после возведения микрорайона), проблема с отоплением (там котельные на несколько домов и зимой там отопление ну очень дорогое), проблема с дорогами (там между домами либо гравийка, либо плиты (есть и асфальт на месте, где были дороги внутри частных кварталов, но там очень убитый асфальт) и проблема с канализацией (там много где септики на несколько домов и иногда там — потрясающий запах). И дома там, нередко, расположены прям "окно в окно" — расстояние — метров 10.
Да, там начали, потихоньку, строить многоэтажки с нормальной инфраструктурой, но это лишь небольшая площадь от общего размера района.
И, чтобы понимали размер "бедствия" с ливневками — в ютубчике полно роликов, где люди катаются на лодках и гидроциклах.
Javian
Я применил слово исключительно к данным на карте, как пример диаметрально противоположной ситуации в реальности.