Могу ли я преобразовать графики плотности ядра в растр, а затем наложить их с помощью алгебры карт?

В настоящее время я изучаю три шейп-файла, каждый с точечными данными, и все они ограничены одним и тем же окном. У меня также есть они в формате ppp, который я использовал для создания карт плотности ядра.

plot(density.ppp(smktppp, 0.5, edge=T), main="Supermarket Density")
plot(density.ppp(tptppp, 0.5, edge=T), main="Transport Density")
plot(density.ppp(farmppp, 0.5, edge=T), main="Urban Farm Density")

Я хотел бы наложить эти графики, используя алгебру карт или нечеткую логику и т. Д., Чтобы создать одну выходную карту, показывающую плотность трех вместе взятых. Как бы я сделал это в R?


person skyandbuildings    schedule 25.02.2017    source источник
comment
Добро пожаловать в StackOverflow! Прочтите информацию о как задать хороший вопрос и как задать воспроизводимый пример. Это поможет другим людям помочь вам.   -  person Jaap    schedule 25.02.2017
comment
Часть хорошего вопроса - это облегчить жизнь отвечающим. Это включает в себя ввод необходимых библиотечных вызовов для загрузки необходимых функций и ввод некоторых данных для тестирования и демонстрации.   -  person IRTFM    schedule 25.02.2017


Ответы (2)


Если вы просто хотите оценить общую плотность (обычно называемую интенсивностью, поскольку она не интегрируется в одну) точек, независимо от того, является ли это «Супермаркет», «Транспорт» или «Городская ферма», вы просто объединяете все точки и делаете, как раньше. :

library(spatstat)
combined <- superimpose(smktppp, tptppp, farmppp)
plot(density(combined), main="Density of all points.")

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

Вы также можете выполнять обычную алгебру с растровыми изображениями, созданными density.ppp (объект класса im). Если вы сохранили их как smktim, tptim и farmim, вы можете сделать что-то вроде rslt <- smktim + tptim + farmim, чтобы получить сумму трех оценок.

person Ege Rubak    schedule 26.02.2017

В качестве альтернативы, если вы объедините три точечных шаблона в один объект

library(spatstat)
X <- superimpose(Supermarket=smktppp, Transport=tptppp, Farm=farmppp)

тогда вы можете отобразить как исходные данные, так и оценки интенсивности с указанием типа точки или без него:

# original data:
plot(X)  # single plot with 3 different plot characters for 3 types 
plot(split(X)) # three plot panels, one for each type of point
plot(unmark(X)) # single plot without distinguishing types of points

# intensity images:
plot(density(X, 0.5)) # single plot: intensity regardless of type
plot(density(split(X), 0.5)) # three panels: intensity for each type
plot(relrisk(X), 0.5) # three panels: relative probabilities of each type

Дополнительные сведения см. В книге spatstat.

person Adrian Baddeley    schedule 02.03.2017