Почему матрица в растр отображается повернутой? - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь преобразовать матрицу (myMat) в растровые данные (myRas);однако, я не уверен, , почему это вращается внезапно.Это можно легко исправить с помощью поворота на 90 градусов, используя t(), но я буду признателен, если кто-нибудь объяснит, почему это нежелательное вращение происходит постоянно ?!а есть ли способ это предотвратить?

set.seed(23022019)
library(raster)
library(RColorBrewer)

#myMat
myMat<-matrix(runif(3*3), ncol=3) 
image((myMat), col=rev(brewer.pal(9,"RdYlBu")))

#myRas
myRas <- raster(myMat)
image((myRas), col=rev(brewer.pal(9,"RdYlBu")))

enter image description here

1 Ответ

0 голосов
/ 24 февраля 2019

Я бы сказал, что myRas не вращается;и что image(myMat) вращается.Увидеть ниже.

library(raster) 
myMat<-matrix(1:9, ncol=3, byrow=TRUE)
myRas <- raster(myMat)

par(mfrow=c(1,2))
image(myMat, col=terrain.colors(9), main="image(myMat)")
plot(myRas,  col=terrain.colors(9), main="plot(raster(myMat))")
text(myRas)

enter image description here

myMat
#     [,1] [,2] [,3]
#[1,]    1    2    3
#[2,]    4    5    6
#[3,]    7    8    9

В результате image(myMat) считывает значения по строкам и заполняет значения по столбцам, начиная сснизу вверх.Вы можете желать этого, но это вращение.Напротив, raster(myMat) сохраняет значения в том же порядке.

Справка от graphics::image объясняет, почему она отображает такие значения;даже если это может быть очень трудно следовать.Если вы предоставляете матрицу со значениями, но не с координатами x и y, первый аргумент (x) «используется вместо z для удобства».Это даст вам одинаково расположенные значения от 0 до 1 для x и y, а значения (z) предполагаются в порядке возрастания (начиная с левого нижнего угла и продолжая по строкам!).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...