2016-03-08 1 views
0

У меня есть очень простой вопрос о функции KEST в Spatstat. KEST graph output Я использую функцию KEST в Spatstat для оценки пространственной случайности в наборе данных. Я загрузил lat и длинные значения, распространяемые по Лондону, и преобразовал их в объект PPP, используя функцию ripras, чтобы указать пространственный домен. Когда я запускаю анализ KEST на моем ppp и рисую график, я получаю значение r на x, но, хотя я знаю, что это измерение расстояния, я не знаю, какие единицы он использует. Я получаю эту сводную выход:Длина блока в пледстате

Planar point pattern: 113 points 
Average intensity 407.9378 points per square unit 
Coordinates are given to 9 decimal places 
Window: polygonal boundary 
single connected closed polygon with 14 vertices 
enclosing rectangle: [-0.5532963, 0.3519148] x [51.2901, 51.7022] units 
Window area = 0.277003 square units 

с максимальной г на оси х, находящихся на 0,1 единицы, и К (г) на оси у равен 0,04. Как я могу определить, к какой единице расстояния они приравниваются?

ответ

1

Если функция способна принимать географические координаты, то для вычисления расстояния используется большое уравнение круга. Обычно это приводит к единицам, находящимся в километрах.

Непростая практика выполнения PPA для непроектированных данных. Если возможно, вы должны проецировать свои данные в систему координат, которая находится на расстоянии. Я считаю, что большинство функций в spartstat используют евклидово расстояние, что совершенно неуместно для проекционных единиц в десятичных градусах. Поскольку в функции Kest нет аргумента latlong, я не считаю, что ваши результаты действительны.

3

Ваши координаты lat, lon соответствуют точкам на сфере (или эллипсоиде или любом другом), используемом в качестве модели для планеты Земля. По существу, doublestat предполагает, что вы используете координаты, проецируемые на плоскую карту. Это преобразование может быть выполнено, например, sp пакета (используя Букингемский дворец в качестве примера):

library(sp) 
lat = c(51.501476) 
lon = c(-0.140634) 
xy = data.frame(lon, lat) 
coordinates(xy) <- c("lon", "lat") 
proj4string(xy) <- CRS("+proj=longlat +datum=WGS84") 
NE <- spTransform(xy, CRS("+proj=utm +zone=30 ellps=WGS84")) 
NE <- as.data.frame(NE) 

В результате data.frame с прогнозируемыми координатами в пищеблоке, Northing в метрах. Затем вы можете продолжить анализ. Чтобы назначить единичную метку как "m" для красивее этикетки в цифрах использовать функцию unitname на вашем ppp объекта (при условии, объект называется X): unitname(X) <- "m"

+0

Блестящий, я отдам это. Спасибо за ответы на все вопросы. –

+0

Как упоминалось в ответе @ adrian-baddeley, вы можете посмотреть в главе 7 в нашей книге для более подробной информации о теоретической K-функции и ее оценках, как реализовано в 'spartstat'. Глава 7 фактически доступна в виде бесплатной главы примера на веб-сайте книги http://spatstat.github.io/book/ –

+0

Это здорово, сейчас я прочитаю об этом. Спасибо Ege. –

0

Сама функция K (т.е. K-функция теоретическая, а не только компьютер код) предполагает, что пространство является плоским, а не изогнутым.

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

Другие сообщения верны. Функция Kest ожидает, что координаты будут заданы в изометрической системе координат. Вам просто нужно выразить пространственные местоположения в системе координат, в которой координаты x и y измеряются в одних и тех же единицах расстояния. Долгота и широта не измеряются на одних и тех же дистанционных единицах, потому что одна градус (скажем) долготы не представляет собой то же расстояние, что и одна степень широты. Пример Ege Rubak с использованием spTransform, вероятно, лучший способ.

+0

PS все это обсуждается в главе 7 книги «Пыльстат». –

 Смежные вопросы

  • Нет связанных вопросов^_^