Spatial interpolation

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
dklmn
Новоприбывший
Сообщения: 6
Зарегистрирован: 15 дек 2016, 09:47
Репутация: 1

Spatial interpolation

Сообщение dklmn » 15 дек 2016, 10:26

Всем привет.
Есть задачка - нарисовать пространственное распредение на карте некой метрики.
На входе - массив данных в виде широта, долгота, значение метрики в данной точке, - на выходе - результат двухмерной интерполяции данных в виде цветовой схемы. Обращаю внимание, это не heat map, здесь учитывается не плотность точек (кол-во точек на единицу площади), а именно значение самой метрики, - то есть задача, аналогичная той, что обсуждалась тут lleo.me/dnevnik/2015/10/16.html.

Массив входных данных у меня есть, есть Python скрипт, который это обрабатывает и рисует похожую на правду картинку (см атачмент, - Саратов)
Несколько вопросов.
1)Скрипт - работает достаточно долго. Картинку размером 1000*1000 рисует около часа. Есть ли какие то альтернативные инструменты? Бесплатные Gis тулзы или библиотеки под .Net (c C# я дружу больше чем с Python)
2)При прорисовке картинки не учитываются некие физические границы, городов, береговых линий. Вопрос - где можно взять данные для учета этого? Нужны некие полигоны точек для ограничения границ городов или линии точек для береговой линии.
3)Какая функция позволяет определить принадлежность GPS точки к полигону ?(Python, C#)
Вложения
карта.jpg
карта.jpg (89.65 КБ) 7123 просмотра

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Spatial interpolation

Сообщение KolesovDmitry » 16 дек 2016, 11:47

Задача очень известная, имеет множество решений и уже готовых инструментов. Погуглите по ключевым словам: "геостатистика", "kriging", "IDW", "TIN".

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Spatial interpolation

Сообщение Александр Мурый » 16 дек 2016, 12:36

На форуме действует правило "один вопрос - одна тема". Так что будьте добры.
Редактор материалов, модератор форума

dklmn
Новоприбывший
Сообщения: 6
Зарегистрирован: 15 дек 2016, 09:47
Репутация: 1

Re: Spatial interpolation

Сообщение dklmn » 20 дек 2016, 08:40

Тогда, если не возражаете, будем считать что в первом посте топика только один вопрос.

Я правильно понимаю, если мы говорим о ArgGis, мне нужна функциональность, описанная в этой статье
npk-kaluga.ru/GeoStatAnalyze_AGIS.htm ?
А расширирение "Geostatistical Analyst" будет для меня доступно, если я скачаю триальную версию ArgGis?
Или, может быть есть какие то более легковесные, возможно бесплатные инструменты, включающие в себя эту функциональность?
Спасибо.

Malyuk_M
Интересующийся
Сообщения: 16
Зарегистрирован: 11 фев 2016, 14:08
Репутация: 3
Откуда: Kiev

Re: Spatial interpolation

Сообщение Malyuk_M » 20 дек 2016, 09:38

Добрый день!

1) Можете проинтерполировать результаты через ту же Grass или Saga ( Saga_krigging.pdf)

2) Данные с границами можете выгрузить с OSM (тут на форуме поднимался вопрос, поищите);

3) Результаты интерполяции будут в каком-то растровом формате. Я не знаю что Вы интерполируете, но я похожую задачу решал следующим образом:

3.1) Проводил полигонизацию растра (стандартными средствами если целочисленные значения (Qgis – Raster – Conversion – Polygonize или через gdal_polygonize (gdal_polygonize)), или через gdal_polygonize_float если данные с плавающей точкой).
3.2) Дальше если необходимо результат через калькулятор полей кластеризировал (например мы работаем с температурой, я создавал новый столбец, и в нем записывал значения (Если температура от 0 до 11 то холодно, если от 12 до 20 – нормально, от 21 до 30 - жарко), т.е. у нас получалось 3 группы объектов).
3.3) Дальше результат кластеризации проводил слияние (через Python Fiona, напр. Dissolve )
В результате имеем 3 мульти полигона (холодно, нормально и жарко), и дальше уже обычным наложением (Qgis Vector - Geoprocessing), определяем принадлежность каждой точки к конкретному полигону.

Как-то так :shock:

dklmn
Новоприбывший
Сообщения: 6
Зарегистрирован: 15 дек 2016, 09:47
Репутация: 1

Re: Spatial interpolation

Сообщение dklmn » 21 дек 2016, 09:55

Malyuk_M писал(а):
3) Результаты интерполяции будут в каком-то растровом формате. Я не знаю что Вы интерполируете, но я похожую задачу решал следующим образом:
Моя метрика - стоимость квадрата жилой недвижимости на вторичном рынке. Пришлось парсер Авито самому написать. Спасибо за наводки, после НГ будет чуть больше времени, попробую разобраться.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Spatial interpolation

Сообщение KolesovDmitry » 21 дек 2016, 13:05

dklmn писал(а): Я правильно понимаю, если мы говорим о ArgGis, мне нужна функциональность, описанная в этой статье
npk-kaluga.ru/GeoStatAnalyze_AGIS.htm ?
Если вопрос был ко мне, то - нет :), не правильно. Мой комментарий был о том, что вы сами сможете написать тот алгоритм, который вам нужен (я сужу об этом из того, что вы уже написали свой модуль для интерполяции), если выберете подходящий метод. Поэтому я перечислил список очень известных методов, устройство которых вам следует погуглить. А в чем все это реализовывать - вопрос уже вторичный.

PS А вообще да -- большая путаница возникает из-за того, что вы не следуете правилу "один вопрос - одна тема", в итоге не очень понятно, что же вы хотите получить в итоге (список методов? советы, какой метод лучше в вашей ситуации? список ПО?...) и о чем вам отвечать.

dklmn
Новоприбывший
Сообщения: 6
Зарегистрирован: 15 дек 2016, 09:47
Репутация: 1

Re: Spatial interpolation

Сообщение dklmn » 21 дек 2016, 15:30

KolesovDmitry писал(а):
dklmn писал(а): Я правильно понимаю, если мы говорим о ArgGis, мне нужна функциональность, описанная в этой статье
npk-kaluga.ru/GeoStatAnalyze_AGIS.htm ?
Если вопрос был ко мне, то - нет :), не правильно. Мой комментарий был о том, что вы сами сможете написать тот алгоритм, который вам нужен (я сужу об этом из того, что вы уже написали свой модуль для интерполяции), если выберете подходящий метод..
Не совсем правильно меня поняли. Скрипт для интерполяции я взял уже готовый
https://github.com/jeffkaufman/apartment_prices
http://www.jefftk.com/apartment_prices/ ... 13-01-29&1, и с минимальными изменениями применил его к своим входным данным. Было бы очень интересно погрузиться в тему и изобрести свой велосипед, но сейчас это к сожалению сложно, поэтому я решил поискать готовые тулзы с нужной для меня функциональностью.
Все равно спасибо за наводки, буду изучать "мат часть" тоже.

dklmn
Новоприбывший
Сообщения: 6
Зарегистрирован: 15 дек 2016, 09:47
Репутация: 1

Re: Spatial interpolation

Сообщение dklmn » 06 янв 2017, 17:10

Malyuk_M писал(а): 2) Данные с границами можете выгрузить с OSM (тут на форуме поднимался вопрос, поищите);
..
Как-то так :shock:
Действительно, данные по границами можно найти на OSM.
Но в моем случае эти данные оказываются не слишком полезными, так как они не учитывают берегову линию.
То есть граница между Саратовом и Энгельсом проходит посредине Волги.
http://www.openstreetmap.org/relation/4869409
Похоже придется осваивать фотошоп и вручную отсекать от сгененерированной картинки "водяную часть."

dklmn
Новоприбывший
Сообщения: 6
Зарегистрирован: 15 дек 2016, 09:47
Репутация: 1

Re: Spatial interpolation

Сообщение dklmn » 23 апр 2017, 14:43

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

gamm
Гуру
Сообщения: 4049
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

Re: Spatial interpolation

Сообщение gamm » 23 апр 2017, 16:19

dklmn писал(а):но буду благодарен за любые конструктивные комментарии и предложения.
чистая интерполяция не есть хорошо, мурзилки можно делать, но для работы не годится.

Пример того, как делали уже 40 лет назад здесь (данные и описание, статья приложена к посту). Мы со студентами сделали аналог, взяв очевидные факторы (расстояние до магистралей, и т.д.), которые обычно учитываются в кадастровой оценке, и, хотя делали "на коленке" (чисто как пример методики), получили неплохое совпадение с фактом (фактические стоимости брали с ПКК, примерно 20% для обучения, остальные для контроля).
Hedonic prices and the demand for clean air.pdf
(1.64 МБ) 365 скачиваний

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя