Seite 1 von 1

Region bestimmen

Verfasst: Sa Aug 12, 2017 10:09 pm
von jessi
Guten Abend,

ich bin mir nicht mal sicher, ob das so funktioniert wie ich das gerne hätte, aber ich hoffe, dass mir vielleicht doch jemand mit einem Tipp weiter helfen kann. Ich habe ich 2D-Matrix die für die Koordinaten lam und phi Winddaten enthält. Diese habe ich mittels image geplottet (lam auf der x-achse und phi auf der y-Achse, Wind ist farblich geplottet). Jetzt möchte ich anhand der Graphik Gebiete definieren, für diese Gebiete gibt es allerdings keine Werte, wie min oder max, sondern ich möchte sie beliebig definieren. Also, ich seh mir die Graphik an und ich suche mir anhand der Struktur ein beliebiges Feld. Jetzt seh ich aber nur den ungefähren x-y-Wert bzw. den ungefähren Wert der Windspitze. Gibt es eine Möglichkeit, mit der Graphik Regionen (bzw. Punkte) zu bestimmen, sodass ich den Wert von phi, lam und der Windspitze kenne und den Index des betrachteten Punkte weiß?

Danke und schönen Abend,
J

Re: Region bestimmen

Verfasst: So Aug 13, 2017 12:34 am
von bigben
Hi,

suchst Du die Funktion identify?

Code: Alles auswählen

help(identify)
LG,
Bernhard

Re: Region bestimmen

Verfasst: So Aug 13, 2017 9:48 am
von jessi
Hallo Bernhard,

ja genausowas würde ich suche, leider scheitere ich an der Umsetzung für den Befehl image. Ist das mit image umsetzbar oder sollte ich überhaupt eine andere Plot-Technik verwenden?
Meine D-Matrix

Code: Alles auswählen

D <- xtabs(T ~ phi + lam, data=mittel)
dim(D)
[1] 16 12

> dput(head(D, 10))
structure(c(-29.91, -29.64, -27.47, 
-27.09, -25.43, -16.69, -18.00, 
-24.84, -29.58, -29.47, -28.21, 
-28.16, -29.77, -29.46, -27.56, 
-29.51, -29.09, -28.96, -29.61, 
-29.91, -22.25, -24.71, -28.97, 
-29.94, -3, -29.75, -29.04, 
-29.70, -29.68, -29.31, -22.52, 
-27.43, -3, -3, -29.92, -3, -29.87, 
-29.77, -29.84, -3, -26.17, 
-29.46, -29.88, -29.89, -3, 
-29.38, -29.27, -3, -3, -3, -29.80, 
-29.13, -28.83, -29.811, -3, 
7.41, 12.98, -28.79, 9.18, 
8.35, -26.817, -29.86, -29.82, 
-29.74, -29.38, 19.30, 28.51, 
3.70, 10.82, 17.34, -22.27, 
-29.41, -29.78, -29.92, -29.10, 
1.30, -26.45, -3, -27.95, 
-29.77, -3, -3, -3, -29.90, -29.60, 
-3, -29.94, -29.91, -3, -3, -29.86, 
-29.90, -29.70, -3, -3, -29.150, 
-29.03, -3, -29.95, -3, -3, -3, -3, 
-29.90, -29.91, -29.55, -29.84, 
-3, -29.94, -29.14, -29.93, 
-3, -3, -29.93, -29.94, -29.82, 
-3, -29.72, -29.89, -29.08), .Dim = c(10L, 
12L), .Dimnames = structure(list(phi = c("47", "48", "49", 
"50", "51", "52", "53", "54", "55", "56"), lam = c("7", 
"8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18"
)), .Names = c("phi", "lam")), class = "table")

x=as.numeric(dimnames(D)$phi
y=as.numeric(dimnames(D)lam
image(x,y, D)

Danke!
Grüße, J

Re: Region bestimmen

Verfasst: So Aug 13, 2017 10:45 am
von EDi
Willst du eine interaktive Grafik machen?

Schau dir mal mapview oder rastervis an.

Ansonsten hört sich das auch ziemlich nach raster::click (). Einfach mal die Beispiele anschauen.

Re: Region bestimmen

Verfasst: So Aug 13, 2017 11:30 am
von jessi
Hallo,

ja, eine interaktive Graphik wollte ich machen. Ist leider noch nicht so einfach wie gedacht.
Die Umsetzung mit raster::click () bzw. locator() funktioniert, ist zwar nicht so "schön" dient aber den Zweck. Wenn ich jetzt beispielsweise mache:

Code: Alles auswählen

x=as.numeric(dimnames(D)$phi
y=as.numeric(dimnames(D)lam
image(x,y, D)
locator(4)

$x
[1] 48.1248 49.0699 50.0779 51.3379
$y
[1] 12.89312 13.07740 12.95455 13.01597
Gibt es noch eine Möglichkeit, den Wert von D bei diesen Punkten anzeigen zu lassen? Bzw. den Index von x und y damit ich diese in

Code: Alles auswählen

D[x,y]
einsetzen kann und ich somit den Wert an diesen Punkten rausbekomme?

Danke und glg
J

Re: Region bestimmen

Verfasst: So Aug 13, 2017 11:04 pm
von EDi
So hier?

Code: Alles auswählen

m <- matrix(runif(100), ncol = 10)
library(raster)
r <- raster(m)
plot(r)
# click on cell
cc <- click(r, n = 1, cell = TRUE, type = 'p')
# extract value at clicked cell
r[cc$cell]