Скользящим ОКНОМ -- Moving Window!

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
qssaka
Участник
Сообщения: 66
Зарегистрирован: 08 июл 2013, 15:31
Репутация: 1

Скользящим ОКНОМ -- Moving Window!

Сообщение qssaka » 08 июл 2013, 15:54

В какой программе можно обработать массив данных методом Скользящего Окна и построить затем карту изолиний?
ИРЛ: есть данные по свинцу в пробах с координатной привязкой. Необходимо их усреднить.

Как это должно работать. Представим себе лист A4 -- карту точек опробования, при этом точки распределены неравномерно. Теперь разобъем лист на "окна" -- квадраты 1 x 1 см. В центре каждого окна должна появиться точка -- среднее значение (а лучше на выбор: среднее, медианное или модальное) по всем точкам оказавшимся в окне.
На следующем шаге программа должна мочь/уметь построить линии изоконцентраций по усредненным данным.

Заранее благодарен Вам за любую помощь в этом вопросе. :wink:

______ Сейчас я почти на 100% уверен, что с этой бедой (выбросы --> несоразмерно большие аномалии) можно бороться подставляя в центр этого окна (эллипса, etc) не средннее, а медиану. Тогда окно должно быть достаточно большим, чтобы захватывать минимум 5 - 10 точек (потому как медиана по 2ум точка = среднее, не так?) Но, в этом случае окно должно двигаться с перекрытием, а не "пошагово"!, иначе вся площадь может быть покрыта 40-50 такими окнами, а это равносильно 40-50 точкам для дальнейшей интерполяции. Теперь бы алгоритм движения окна продумать...
Последний раз редактировалось qssaka 29 июл 2013, 14:12, всего редактировалось 2 раза.

pendduduk
Активный участник
Сообщения: 179
Зарегистрирован: 05 июл 2009, 22:18
Репутация: 47

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение pendduduk » 08 июл 2013, 17:07

Попробуйте Surfer

qssaka
Участник
Сообщения: 66
Зарегистрирован: 08 июл 2013, 15:31
Репутация: 1

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение qssaka » 08 июл 2013, 17:35

ума не приложу где в серфере может находится Moving Window :?

Pilot
Активный участник
Сообщения: 128
Зарегистрирован: 26 апр 2006, 12:28
Репутация: 36
Откуда: Петропавловск-Камчатский

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение Pilot » 08 июл 2013, 17:40

на форуме есть такая тема Обработка данных методом скользящего окна
Подходит для задачи?

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение KolesovDmitry » 08 июл 2013, 17:43

Это может любая ГИС, в которой реализована поддержка растров. На вскидку из открытых ГИС: GRASS GIS, Saga GIS. Наверняка и множество других.

qssaka
Участник
Сообщения: 66
Зарегистрирован: 08 июл 2013, 15:31
Репутация: 1

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение qssaka » 08 июл 2013, 18:00

to Pilot, to KolesovDmitry спасибо, я читал эту тему! Жаль, но и там тоже нет более менее подробной инструкции как все же провести эту операцию. Обязательно покапаю GRASS, но.. я уже копался в Geostatistical Analist, но так и не смог найти там скользящее окно. Надеюсь здесь найдется кто-нибудь, кто уже сталкивался с подобным типом задач.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение KolesovDmitry » 08 июл 2013, 19:00

qssaka писал(а): Обязательно покапаю GRASS, но.. я уже копался в Geostatistical Analist, но так и не смог найти там скользящее окно. Надеюсь здесь найдется кто-нибудь, кто уже сталкивался с подобным типом задач.
За помощью по GRASS -- добро пожаловать в ветку GRASS :) Собственно сложностей с расчетами там никаких, скорее сложности будут на первом этапе -- когда нужно понять философию этой системы (если раньше с подобным не сталкивались, то она может показаться странной). Но это уже в ветке про GRASS задавайте конкретные вопросы, что и как.

PS Но не все GRASSом единым -- нужные вам операции делает огромное количество программ -- выбирайте то, что нравится лично вам :)

gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение gamm » 09 июл 2013, 06:19

qssaka писал(а):На следующем шаге программа должна мочь/уметь построить линии изоконцентраций по усредненным данным. и да здесь тоже желателен выбор каким образом интерполировать (ближайший neighbor, кригинг, etc).
зачем вам скользящее окно, если сразу можно интерполировать? единственное разумное объяснение - это выравнивание плотности исходных данных, но для этого достаточно посчитать веса (обратно пропорциональные плотности), и использовать их при интерполяции, можно использовать GSLib, там это называется декластеризация (declust). После вычисления средних веса в любом случае нужны, поскольку у данных после этой операции разная дисперсия (ее обычно пристраивают в сглаживающий сплайн).

Но если вам до таких тонкостей дела нет, то затащите данные в тот же R, и просто посчитайте номера квадратиков, делается это "на раз":

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

#load data
p<-read.table("my_data.dat",header=TRUE)
# X Y Val1 Val2
#12345.98 321345.89 0.9834
dx<-100 # 100m
dy<-100 # 100m
X0<-min(p$X)-0.5*dx
Y0<-min(p$Y)-0.5*dy
iX<-as.integer((p$X-X0)/dx)
iY<-as.integer((p$Y-Y0)/dx)
# координаты лучше тоже усреднить, чтобы уменьшить ошибку
tmp<-aggregate(p,by=list(iX=iX,iY=iY),FUN=mean)
#save data
write.table(tmp,"new_data.dat",row.names=FALSE,sep="\t")
а потом интерполируйте новые данные ...

juffin_h
Завсегдатай
Сообщения: 265
Зарегистрирован: 22 окт 2012, 08:35
Репутация: 50
Откуда: Нижний Новгород

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение juffin_h » 09 июл 2013, 12:27

qssaka писал(а):ума не приложу где в серфере может находится Moving Window :?
А эллипс не годится?
Surfer Help писал(а):Moving Average
The Moving Average gridding method assigns values to grid nodes by averaging the data within the grid node's search ellipse

qssaka
Участник
Сообщения: 66
Зарегистрирован: 08 июл 2013, 15:31
Репутация: 1

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение qssaka » 09 июл 2013, 13:02

to gamm - спасибо! "Зачем вам скользящее окно, если сразу можно интерполировать?" объясню подробно:
По разным причинам проводилось неравномерное опробование (не по сети). При этом во множестве точек опробования выявлены рудные концентрации свинца. Значения концентраций в таких точках являются выбросами. => Таким образом, при интерполяции вокруг "рудных" точек , стоящих особнячком, возникают чудовищно большие аномалии. Я интерполировал в Surfer и в ArcMap Geostsat. analyst методами nearest neighbor и kriging (ordinary и simple).

qssaka
Участник
Сообщения: 66
Зарегистрирован: 08 июл 2013, 15:31
Репутация: 1

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение qssaka » 09 июл 2013, 13:19

to juffin_h (to gamm) Да у кригинга есть эллипс в который он подбирает точки. Сейчас я почти на 100% уверен, что с этой бедой (выбросы --> несоразмерно большие аномалии) можно бороться подставляя в центр этого окна (эллипса, etc) не средннее, а медиану. Тогда окно должно быть достаточно большим, чтобы захватывать минимум 5 - 10 точек (потому как медиана по 2ум точка = среднее, не так?) Но, в этом случае окно должно двигаться с перекрытием, а не "пошагово"!, иначе вся площадь может быть покрыта 40-50 такими окнами, а это равносильно 40-50 точкам для дальнейшей интерполяции. Теперь бы алгоритм движения окна продумать...

gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение gamm » 09 июл 2013, 17:31

qssaka писал(а):По разным причинам проводилось неравномерное опробование (не по сети). При этом во множестве точек опробования выявлены рудные концентрации свинца. Значения концентраций в таких точках являются выбросами. => Таким образом, при интерполяции вокруг "рудных" точек , стоящих особнячком, возникают чудовищно большие аномалии. Я интерполировал в Surfer и в ArcMap Geostsat. analyst методами nearest neighbor и kriging (ordinary и simple).
ну, так я и думал. Тогда осваивайте GSLib, он собственно под рудную геологию и сделан. И бесплатный, и исходники есть. Книжку в сети найдете, она там есть. И еще одно - я со свинцом дела не имел, но если там имеет место рудное тело, то сначала хорошо бы его оконтурить (отбив 0/1 по кондициям). А потом уже внутри тела интерполировать. Ну и, если там множество мелких рудных тел, то и на этот случай в GSLib есть лекарства ...

да, и учтите, то кригинг предполагает нормальное распределение, которого у вас ни разу нет. Так что либо lognormal kriging, либо трансформация данных (Cox-Box, логарифмирование или normal-score transform), либо индикаторный кригинг (тоже есть в GSLib). И придется поработать, готовой кнопки нигде нет.

и почитайте Майерса, тут, у него для R примеры есть, и вообще много полезного по рудной геологии

gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение gamm » 09 июл 2013, 17:35

qssaka писал(а):to juffin_h (to gamm) Да у кригинга есть эллипс в который он подбирает точки. Сейчас я почти на 100% уверен, что с этой бедой (выбросы --> несоразмерно большие аномалии) можно бороться подставляя в центр этого окна (эллипса, etc) не средннее, а медиану. Тогда окно должно быть достаточно большим, чтобы захватывать минимум 5 - 10 точек (потому как медиана по 2ум точка = среднее, не так?) Но, в этом случае окно должно двигаться с перекрытием, а не "пошагово"!, иначе вся площадь может быть покрыта 40-50 такими окнами, а это равносильно 40-50 точкам для дальнейшей интерполяции. Теперь бы алгоритм движения окна продумать...
вы на неверном пути ... почитайте литературу.

juffin_h
Завсегдатай
Сообщения: 265
Зарегистрирован: 22 окт 2012, 08:35
Репутация: 50
Откуда: Нижний Новгород

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение juffin_h » 10 июл 2013, 09:58

В Surfer, среди методов интерполяции (Gridding Methods), есть метод Data Metrics. По сути, это не метод интерполяции, а инструмент для анализа набора исходных данных. На основе этого анализа делается выбор оптимального метода интерполяции. Используя этот инструмент, можно получить и количество точек, попадающих в область поиска (чтобы выбрать оптимальную облась) и построить медиану.

gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Скользящим ОКНОМ -- Moving Window!

Сообщение gamm » 13 июл 2013, 18:16

juffin_h писал(а):В Surfer, среди методов интерполяции (Gridding Methods), есть метод Data Metrics. По сути, это не метод интерполяции, а инструмент для анализа набора исходных данных. На основе этого анализа делается выбор оптимального метода интерполяции.
неверно, выбор оптимального метода интерполяции делается на основе перекрестной проверки (cross validation), для этого нужно поставить галку и проанализировать результаты (это если про Surfer). А в целом метод выбирается посредством построения модели, но это уже (гео)статистика, тут нажатием кнопки не обойтись..

Ответить

Вернуться в «Общий - ПО»

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

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