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

Спектральные библиотеки в GRASS

Добавлено: 08 сен 2013, 16:25
gimran
Встретил спектральную библиотеку GIS-LAB для ENVI.
Появился вопрос, можно ли ее импортировать в GRASS и использовать?
Если да, то подскажите, пожалуйста, какие мануалы читать.
Заранее спасибо.

[ Сообщение с мобильного устройства ]

Re: Спектральные библиотеки в GRASS

Добавлено: 09 сен 2013, 11:36
KolesovDmitry
gimran писал(а):Встретил спектральную библиотеку GIS-LAB для ENVI.
Вероятно, речь идет об этой статье?
gimran писал(а):Появился вопрос, можно ли ее импортировать в GRASS и использовать?
Если да, то подскажите, пожалуйста, какие мануалы читать.
Если действительно речь идет о библиотеке из статьи, то никакого импорта не требуется -- это обычный текстовый файл, содержащий колонки с длиной волны и отражательной способностью. А уж с текстовым файлом можно сделать все, что душе угодно.

Если раскажите о том, какой метод для работы с библиотекой вы хотите реализовать, думаю, можно будет перевести его на "язык" GRASS.

Re: Спектральные библиотеки в GRASS

Добавлено: 09 сен 2013, 11:42
gimran
Да, Дмитрий, об этой статье и об этой базе данных: http://gis-lab.info/projects/spectra/

Порывшись в мануалах не нашел, как данные текстовые файлы загрузить в GRASS для дальнейшей классификации космоснимка на основе предзагруженных спектров отражения природных объектов.

Везде или автоматическая классификация, или классификация с учителем. Вариант как «загрузить несколько спектров природных объектов и по ним классифицировать» — не нашел.

Re: Спектральные библиотеки в GRASS

Добавлено: 09 сен 2013, 21:03
KolesovDmitry
gimran писал(а):Порывшись в мануалах не нашел, как данные текстовые файлы загрузить в GRASS для дальнейшей классификации космоснимка на основе предзагруженных спектров отражения природных объектов.
Я не знаю, есть ли специальные модули для классификации на основе библиотек, но, насколько я себе представляю, там очень простая логика работы, для реализации которой хватит растрового калькулятора. Вообще, похоже вопрос больше стоит о том, какой алгоритм классификации реализован в ENVI.

Предположим, что у нас есть два класса объектов A и B (если их больше, то на логику работы это не влияет, изменится лишь количество вычислений). Допустим у нас есть снимки в n диапазонах (1, 2, ..., n). Тогда из библиотеки извлекаются данные по отражательной способности каждого класса по каждому диапазону, в итоге имеем два массива (вектора) чисел:

Код: Выделить всё

a = (a1, a2, ... an)
b = (b1, b2, ... bn)
Берем точку на местности, ей соответствует n пикселей с каждого диапазона снимка

Код: Выделить всё

p = (p1, p2, ..., pn)
Вопрос: к какому классу отнести данную точку?
Ответ: к тому, до которого расстояние будет меньше. Значит, нужно сравнить расстояния d(a,p) и d(b,p)

И вот тут начинается наиболее интересное -- вопрос в том, как вычисляется расстояние. Способов огромное количество.

Не знаю почему, но мне кажется, что в ENVI используется угловое расстояние (может, слышал что-то краем уха), в этом случае, расстояние расчитывается при помощи косинуса угла между векторами (a,p) и (b,p). Чем больше косинус, тем меньше угол, т.е. тем ближе значения пикселя p к соответствующему классу.
Рассчитать косинус очень просто: находим скалярное произведение, потом делим его на длины векторов. В GRASS это легко проделывается в растровом калькуляторе.

Итак, пусть P1, P2, ..., Pn -- снимки, тогда в растровом калькуляторе получаем растр косинусов углов между вектором p и вектором a:

Код: Выделить всё

Ca = (P1*a1 + P2*a2 + ... + Pn*an)/(sqrt (a1*a1 + a2*a2 +...+ an*an) * sqrt(P1*P1 + P2*P2 +...+ Pn*Pn))
аналогично растр косинусов глов между вектором p и вектором b:

Код: Выделить всё

Ca = (P1*b1 + P2*b2 + ... + Pn*bn)/(sqrt (b1*b1 + b2*b2 +...+ bn*bn) * sqrt(P1*P1 + P2*P2 +...+ Pn*Pn))
Тогда пиксель отнесем к классу A, если cos(a,p) > cos(b,p). В растровом калькуляторе:
A = Ca > Cb
B = Cb > Ca
получаем два растра -- результаты классификации.

Если классов больше, то логика та же самая, только уравнений тоже прибавится.

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

Re: Спектральные библиотеки в GRASS

Добавлено: 09 сен 2013, 21:25
gimran
Все это хорошо если рассматривать, скажем, расстояние между большими расстояниями между объектами, скажем, ель, сосна, осина и береза.
Я хочу на основе этих данных провести более сложный анализ, то есть добавить несколько тонов с одного снимка на одну породу - классы санитарного состояния.
Для корректного вычисления подобных классов требуется (имхо):
1) классификация по породам;
2) на основе имеющихся данных о реальных породах и их классах состояния по России, зная лесорастительные зоны, провести, а вернее начать сбор спектральных отражательных способностей при изменении классов категорий состояния (принаихудшем состоянии все породы практически смешиваются в один класс).
То есть фактически работа состоит из этапов выявления нижнего порога выявления каждой из пород, поскольку подобные расчеты не достаточно проработаны (научные изыскания велись по аэроснимкам визуально, до полноценных спектральных зависимостей метод не дожил из-за развала СССР и упадка данной темы исследований).

[ Сообщение с мобильного устройства ]

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 12:49
KolesovDmitry
gimran писал(а):Все это хорошо если рассматривать, скажем, расстояние между большими расстояниями между объектами, скажем, ель, сосна, осина и береза.
Я хочу на основе этих данных провести более сложный анализ
Я сейчас любопытства ради пошарил в интернете, нашел учебник по ENVI, в котором описывается как раз метод спектрального угла. Так что ENVI вам тоже не помошник. Вообще, наверное, нужно сформулировать вопрос о методе работы в ваших условиях и задать его в ветке по ДЗЗ (поскольку GRASS тут вторичен -- главное определиться с методом анализа, и лишь затем с вопросом в каком ПО его реализовать).

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 14:08
nadiopt
Тимур, в смешанном лесу разделить, скажем, березу и осину по спектральным признакам невозможно

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 15:49
gimran
Надежда, можно разделить снижение этой группы по категории состояния, а породу по составу выдела определить.

[ Сообщение с мобильного устройства ]

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 20:29
nadiopt
хе-хе, размечтался, а если у тебя ЛУ мохнатого года, когда еще по хозяйствам писали, например, 4Е6Б и реально выдел березовый?

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 21:33
gimran
у меня самое "мохнатое" 1997 года

[ Сообщение с мобильного устройства ]

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 21:39
nadiopt
ну мы же где-то выяснили, что честно по составу пишут с середины 90-х, запросто могли еще по-старому написать. к тому же в ТО пишут по запасу, а на снимках выходит скорее уж по проективному покрытию крон

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 22:20
gimran
Это демагогия :)
Вопрос был исключительно про ГРАСС и миниответ зачем оно мне :)

[ Сообщение с мобильного устройства ]

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 22:23
nadiopt
нифига не демагогия, если задача нерешаема, то она и в грассе нерешаема

Re: Спектральные библиотеки в GRASS

Добавлено: 10 сен 2013, 23:24
gimran
Меня интересует конкретный функционал, а отдельные извращения над ним это уже мои сугубо личные проблемы :)
А базу данных спектральную интересно сравнить с фактическим результатом, потому что одно дело дешифровывать аэроснимки по существующей утвержденной методике, а другое пытаться компенсировать плохой масштаб упомянутым выше способом.

[ Сообщение с мобильного устройства ]

Re: Спектральные библиотеки в GRASS

Добавлено: 11 сен 2013, 12:21
nadiopt
чем бы дитя не тешилось...