Автокригирование пространственных данных

Я пытаюсь использовать функцию кригинга для создания вертикальных карт химических параметров в океаническом разрезе, и мне трудно начинать.

Мои данные выглядят так:

horiz=rep(1:5, 5)
depth=runif(25)
value = horiz+runif(25)/5
df <- data.frame(horiz, depth, value)

autoKrige функция в automap Пакет выглядит так, как будто он должен сделать работу за меня, но он принимает объект класса SpatialPointsDataFrame, Насколько я могу судить, функция spTransform в упаковке rgdal создает SpatialPointsDataFrame объекты, но есть две проблемы:

  • Двоичные файлы OSX не доступны от CRAN, и моя копия RStudio, работающая на OXS 10.7, кажется, не в состоянии установить его, и

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

Здесь отлично обсуждается кригинг в R, но из-за проблем, перечисленных выше, я не совсем понимаю, как применить его к моей конкретной проблеме.

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

1 ответ

Решение

Итак, есть несколько вопросов, на которые вы хотите получить ответ:

  1. spTransform Функция не создает SPDF, но трансформируется между проекциями. Для создания SPDF вы можете использовать простой data.frame как начало. Преобразовывать df в SPDF:

    coordinates(df) = c("horiz", "depth")
    
  2. Бинарные файлы OS X rgdal можно найти на http://www.kyngchaos.com/software/frameworks. Но я сомневаюсь, если вам нужен RGDAL.

  3. spTransform может работать как с данными по долготе, так и с проецируемыми данными. Но я не думаю, что вам нужно RGDAL, или spTransformсм. также пункт 1.

  4. После того, как вы создадите SPDF, используя пункт 1, вы можете использовать информацию в сообщении, которое вы упомянули, чтобы продолжить.

Другие вопросы по тегам