Страница 1 из 1

Spatial interpolation

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

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

Re: Spatial interpolation

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

Re: Spatial interpolation

Добавлено: 16 дек 2016, 12:36
Александр Мурый
На форуме действует правило "один вопрос - одна тема". Так что будьте добры.

Re: Spatial interpolation

Добавлено: 20 дек 2016, 08:40
dklmn
Тогда, если не возражаете, будем считать что в первом посте топика только один вопрос.

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

Re: Spatial interpolation

Добавлено: 20 дек 2016, 09:38
Malyuk_M
Добрый день!

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:

Re: Spatial interpolation

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

Re: Spatial interpolation

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

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

Re: Spatial interpolation

Добавлено: 21 дек 2016, 15:30
dklmn
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, и с минимальными изменениями применил его к своим входным данным. Было бы очень интересно погрузиться в тему и изобрести свой велосипед, но сейчас это к сожалению сложно, поэтому я решил поискать готовые тулзы с нужной для меня функциональностью.
Все равно спасибо за наводки, буду изучать "мат часть" тоже.

Re: Spatial interpolation

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

Re: Spatial interpolation

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

Re: Spatial interpolation

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

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