GIS-LAB

Географические информационные системы и дистанционное зондирование


Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли


Spatial interpolation

Не знаете, где задать вопрос? Задавайте здесь.

Spatial interpolation

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

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

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

Вложения
карта.jpg
карта.jpg (89.65 КБ) Просмотров: 777
dklmn
Новоприбывший
 
Зарегистрирован: 15 дек 2016
 
Сообщения: 5
Репутация: 0

Re: Spatial interpolation

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

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

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 797
Репутация: 115
Статьи: 18
Проекты: 4

Re: Spatial interpolation

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

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

Редактор материалов, модератор форума
Александр Мурый
званий не имею
 
Зарегистрирован: 26 сен 2009
Откуда: Москва (на карте)
 
Сообщения: 4814
Репутация: 647
Статьи: 3
Проекты: 5/1

Re: Spatial interpolation

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

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

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

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

Re: Spatial interpolation

Сообщение Malyuk_M » 20 дек 2016, 10: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:
  • 2

Malyuk_M
Новоприбывший
 
Зарегистрирован: 11 фев 2016
Откуда: Kiev (на карте)
 
Сообщения: 10
Репутация: 2

Re: Spatial interpolation

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

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

Моя метрика - стоимость квадрата жилой недвижимости на вторичном рынке. Пришлось парсер Авито самому написать. Спасибо за наводки, после НГ будет чуть больше времени, попробую разобраться.
  • 0

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

Re: Spatial interpolation

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

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


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

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

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 797
Репутация: 115
Статьи: 18
Проекты: 4

Re: Spatial interpolation

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

KolesovDmitry писал(а):
dklmn писал(а):Я правильно понимаю, если мы говорим о ArgGis, мне нужна функциональность, описанная в этой статье
npk-kaluga.ru/GeoStatAnalyze_AGIS.htm ?


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

Не совсем правильно меня поняли. Скрипт для интерполяции я взял уже готовый
https://github.com/jeffkaufman/apartment_prices
http://www.jefftk.com/apartment_prices/index#2013-01-29&1, и с минимальными изменениями применил его к своим входным данным. Было бы очень интересно погрузиться в тему и изобрести свой велосипед, но сейчас это к сожалению сложно, поэтому я решил поискать готовые тулзы с нужной для меня функциональностью.
Все равно спасибо за наводки, буду изучать "мат часть" тоже.
  • 0

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

Re: Spatial interpolation

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

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

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

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


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

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

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


(Геокруг)

© GIS-Lab и авторы, 2002-2013. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).