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

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
AndreyL
Завсегдатай
Сообщения: 484
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изображение

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

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

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

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

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

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

Detailed я нашел в XTools.

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

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

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

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

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

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

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

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

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

Ответить

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