/ / Erläuterung zu raster :: beach () Ausgabewerten: - r, gis, raster

Erläuterung zu raster :: beach () - Ausgabewerten: - r, gis, raster

Ich versuche, eine Rooks-Case-Adjazenz-Matrix mit raster :: anybar () zu erstellen, aber ich habe Probleme, die Ausgabe zu verstehen.

Reproduzierbares Beispiel:

library(raster)

r <- raster(nrow = 3, ncol = 3)

rAdjacent <- raster::adjacent(r, cells = 1:ncell(r), pairs = TRUE, directions = 4)

rAdjacent
from to
[1,]    1  3
[2,]    2  1
[3,]    3  2
[4,]    4  6
...

Von meiner Interpretation der Ausgabe sagt die Ausgabe, dass 1 und 3 eine Rooks-Case-Beziehung haben (und wenn ich diese Art von Beziehung richtig verstehe, tun sie das nicht).

Frage 1. Ist das korrekt? Interpretiere ich diese Ausgabe richtig?

Frage 2. Wie erstelle ich eine Ausgabe mit angrenzender () oder etwas anderes, die mir Paare benachbarter Zellenzahlen gibt?

Vielen Dank :)

Antworten:

3 für die Antwort № 1

Sie müssen Ihr Raster projizieren.

Die Funktion verbindet die äußeren Meridiane, wenn das Raster nicht ist projiziert (in einer geografischen (lat / lon) "Projektion") und es gibt Daten bei Längengrad -180 und 180 Grad. (von Hier).

r <- raster(nrow = 3, ncol = 3)
crs(r) <- CRS("+proj=robin +datum=WGS84")

rAdjacent <- raster::adjacent(r, cells = 1:ncell(r),
pairs = TRUE, directions = 4)
rAdjacent[order(rAdjacent[,1]),]
      from to
[1,]    1  2
[2,]    1  4
[3,]    2  1
[4,]    2  3
[5,]    2  5
[6,]    3  2
[7,]    3  6
[8,]    4  5
[9,]    4  1
[10,]    4  7
[11,]    5  4
[12,]    5  6
[13,]    5  2
[14,]    5  8
[15,]    6  5
[16,]    6  3
[17,]    6  9
[18,]    7  8
[19,]    7  4
[20,]    8  7
[21,]    8  9
[22,]    8  5
[23,]    9  8
[24,]    9  6