Region bestimmen

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
jessi
Beiträge: 100
Registriert: Mo Jul 10, 2017 9:23 am

Region bestimmen

Beitrag 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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Region bestimmen

Beitrag von bigben »

Hi,

suchst Du die Funktion identify?

Code: Alles auswählen

help(identify)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jessi
Beiträge: 100
Registriert: Mo Jul 10, 2017 9:23 am

Re: Region bestimmen

Beitrag 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
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Region bestimmen

Beitrag 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.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
jessi
Beiträge: 100
Registriert: Mo Jul 10, 2017 9:23 am

Re: Region bestimmen

Beitrag 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
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Region bestimmen

Beitrag 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]
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten