GIS-LAB

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


Форумы GIS-Lab.info

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


Выделение полей распространения

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.

Выделение полей распространения

Сообщение AndreyL » 12 сен 2007, 19:00

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

AndreyL
Завсегдатай
 
Зарегистрирован: 17 авг 2006
Откуда: Новосибирск (на карте)
 
Сообщения: 484
Репутация: 0

Сообщение Каминский Вадим » 13 сен 2007, 11:02

Convex hull из XToolsPro, можно выбрать select group by field
  • 0

Каминский Вадим
Активный участник
 
Зарегистрирован: 18 авг 2005
 
Сообщения: 138
Репутация: 0

Сообщение AndreyL » 13 сен 2007, 12:11

А стандартными АркГИСовскими или фришными инструментами никак не обойтись? А то для такой задачки тратить 168 баксов - жаба задавит.
  • 0

AndreyL
Завсегдатай
 
Зарегистрирован: 17 авг 2006
Откуда: Новосибирск (на карте)
 
Сообщения: 484
Репутация: 0

Сообщение geologic » 13 сен 2007, 16:43

XTools совсем необязательрно покупать ради одной процедуры - 30 дней этот модуль работает бесплатно.

Если через месяц вам захочется еще, то можно воспользоваться GeoWizards - функция Convex там бесплатная. ТОлько потребуется ее запустить три раза - надеюсь, это вас не сильно напряжёт :) Кажется, аналогичное средство было в 3D Analyst - Hull это ведь обязательная процедура перед созданием TIN-модели.

Вообще-то в связи с влиянием собак на кошек и наоборот, логично было бы запустить Spatial Analyst и провести полный анализ соседства, с учетом расстояний. Но что-то мне подсказывает, что как-нибудь вы их там вручную помирите, словно тот лодочник волка, козу и капусту. А когда число видов будет больше десятка, тогда задача будет интересной и теоретически.
  • 0

geologic
Гуру
 
Зарегистрирован: 15 сен 2005
Откуда: москва (на карте)
 
Сообщения: 852
Репутация: 5

Сообщение Каминский Вадим » 13 сен 2007, 17:06

Geologic не вводи людей в заблуждение ;) Самое интересное, что Convex hull из XToolsPro является бесплатной функцией и на него лицензия не распространяется.
  • 0

Каминский Вадим
Активный участник
 
Зарегистрирован: 18 авг 2005
 
Сообщения: 138
Репутация: 0

Сообщение geologic » 13 сен 2007, 17:44

ну если заблуждение только в этом, то я и сам счастлив :)
А остальное правда, ток шо проверил. Так что не вводи и ты, брат... ;)
  • 0

geologic
Гуру
 
Зарегистрирован: 15 сен 2005
Откуда: москва (на карте)
 
Сообщения: 852
Репутация: 5

Сообщение AndreyL » 14 сен 2007, 13:04

За convex спасибо! Задача, правда, слегка усложнилась – нужно не просто оконтурить области, а провести между ними границы, т.е. области должны соприкасаться по линейным границам.

Еще один, более печальный момент – области не обязаны быть выпуклыми.

А вот про Spatial Analyst можно поподробнее – как провести полный анализ соседства, с учетом расстояний?
  • 0

AndreyL
Завсегдатай
 
Зарегистрирован: 17 авг 2006
Откуда: Новосибирск (на карте)
 
Сообщения: 484
Репутация: 0

Сообщение geologic » 14 сен 2007, 13:33

Опция "detailed" и дает ту самую невыпуклость. Однако и ET, и XTools на пять удалённых групп точек дадут ОДИН ареал. Если подумать, а как они могут по-другому-то? Это функция просто для оконтуривания заранее заданной группы объектов, не более, но не для выделения групп объектов. Так что в общем случае convex не годится - он оконтурит лишь одну область по всем кошкам, а таких областей может быть в природе много. Тут нужен какой-то хитрый геоанализ.

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

В Spatial Analyst это можно разными путями. Например, есть готовая функция Density - плотность точек. На картинке - результат её деятельности, по-моему так это самые ареалы и есть. Для сравнения фиолетовой линий показан convex hull для тех же точек - кстати, невыпуклый.

Изображение

Как сделать "чтоб по ровной линии", не знаю, наверно можно и слитный convex научиться резать на части, и между разрозненными ареалами равноудаленную линию строить.
  • 0

geologic
Гуру
 
Зарегистрирован: 15 сен 2005
Откуда: москва (на карте)
 
Сообщения: 852
Репутация: 5

Сообщение AndreyL » 15 сен 2007, 10:56

Наверное, с помощью Density действительно можно попробовать – что-нибудь типа разбить слой на кучу слоев с разными значениями атрибутов, сделать плотность по всем слоям (тут нужно будет поиграть с параметрами Density), а потом найти линии пересечения поверхностей. Это на уровне прикидки – пробовать нужно.
geologic писал(а):Опция "detailed" и дает ту самую невыпуклость.
...
... фиолетовой линий показан convex hull для тех же точек - кстати, невыпуклый.
А как вы сделали невыпуклый convex hull? Не нашел эту опцию "detailed", у меня ЕТ 9.6.1 от 2 июня 2007 незарегистрированный.
  • 0

AndreyL
Завсегдатай
 
Зарегистрирован: 17 авг 2006
Откуда: Новосибирск (на карте)
 
Сообщения: 484
Репутация: 0

Сообщение geologic » 17 сен 2007, 12:35

Detailed я нашел в XTools.

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

Если все же найдете приемлемое решение без Spatial, расскажите потом, это интересно своей компактностью.
  • 0

geologic
Гуру
 
Зарегистрирован: 15 сен 2005
Откуда: москва (на карте)
 
Сообщения: 852
Репутация: 5

Сообщение AndreyL » 23 сен 2007, 12:45

В общем, полуавтоматический способ:
1. Вставляем в таблицу столько полей, сколько имеется различных значений признака (у нас 3 кот-собака-мышь)
2. Записываем в эти поля 1, если признак верен, и 0 если не тот, т.е. в поле кот записываем 1, если тип равен «кот», и 0 если не кот. Этот метод называется 1-из-K и иногда используется для регрессии по нечисловым данным.
3. Строим поверхности по этим полям, в нашем случае получится 3 поверхности.
4. Строим общую поверхность как максимум из всех трех. Если в черно-белом варианте, то границы между полями будут черными (серыми), а сами поля распространения белыми.

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

AndreyL
Завсегдатай
 
Зарегистрирован: 17 авг 2006
Откуда: Новосибирск (на карте)
 
Сообщения: 484
Репутация: 0

Сообщение geologic » 26 сен 2007, 20:41

Да, наверно так, если бинарные признаки.
Сглаживание изолиний дело неблагодарное, обычно модель сглаживают.
  • 0

geologic
Гуру
 
Зарегистрирован: 15 сен 2005
Откуда: москва (на карте)
 
Сообщения: 852
Репутация: 5


Вернуться в Общие вопросы

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

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


(Геокруг)

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