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

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

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

Сообщение qssaka »

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

Как это должно работать. Представим себе лист 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 »

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

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

Сообщение qssaka »

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

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

Сообщение Pilot »

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

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

Сообщение KolesovDmitry »

Это может любая ГИС, в которой реализована поддержка растров. На вскидку из открытых ГИС: GRASS GIS, Saga GIS. Наверняка и множество других.
qssaka
Участник
Сообщения: 66
Зарегистрирован: 08 июл 2013, 15:31
Репутация: 1

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

Сообщение qssaka »

to Pilot, to KolesovDmitry спасибо, я читал эту тему! Жаль, но и там тоже нет более менее подробной инструкции как все же провести эту операцию. Обязательно покапаю GRASS, но.. я уже копался в Geostatistical Analist, но так и не смог найти там скользящее окно. Надеюсь здесь найдется кто-нибудь, кто уже сталкивался с подобным типом задач.
KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

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

Сообщение KolesovDmitry »

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

PS Но не все GRASSом единым -- нужные вам операции делает огромное количество программ -- выбирайте то, что нравится лично вам :)
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

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 »

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 »

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

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

Сообщение qssaka »

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

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

Сообщение gamm »

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

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

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

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

Сообщение gamm »

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 »

В Surfer, среди методов интерполяции (Gridding Methods), есть метод Data Metrics. По сути, это не метод интерполяции, а инструмент для анализа набора исходных данных. На основе этого анализа делается выбор оптимального метода интерполяции. Используя этот инструмент, можно получить и количество точек, попадающих в область поиска (чтобы выбрать оптимальную облась) и построить медиану.
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

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

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

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

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