Как преобразовать матрицу в растровый файл и как рассчитать средние значения в разных регионах в R - PullRequest
1 голос
/ 29 марта 2012

У меня есть набор данных, который

dat<-matrix(seq(1:5290),c(115,46))
  1. Как преобразовать dat в растровый файл с метаданными, связанными с ГИС, такими как проекция карты?
  2. , а затем как сопоставить данные с картой США с помощью

    lon <- seq(-124.25,length=115,by=0.5)    
    lat <- seq(26.25,length=46,by=0.5)
    
  3. что мне делать, если я хочу вычислить среднее значение для каждого состояния? или конкретный регион?

большое спасибо за ваш отзыв.

D

1 Ответ

1 голос
/ 29 марта 2012

Вы можете попробовать следующее:

library(raster)
library(maps)

dat<-matrix(seq(1:5290),c(115,46))  

Создать растр с желаемым экстентом

r <- raster(dat)
e <- extent(c(-124.5, -67.25, 26.25, 48.75))
extent(r) <- e

и построить его

plot(r)
map("usa", add=T)

взять среднее значениевесь растр

mean(getValues(r))

означает для региона

r.sub <- crop(r, c(-100, -54, 40, 45))
mean(getValues(r.sub))

Извлечение из полигонов

Вам необходим элемент SpatialPolygonsDataFrame.Здесь я создаю фиктивный файл с readWKT(), но вы также можете прочитать шейп-файл с readShapePoly() из пакета maptools.

library(rgeos)
poly <- readWKT("POLYGON((-100 30, -100 31, -70 30, -88 29, -100 30))")
plot(r)
plot(poly, add=T)

и извлечь среднее значение:

dat <- extract(r, poly)
sapply(dat, mean)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...