Region bestimmen

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

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

Region bestimmen

Beitrag von jessi » Sa Aug 12, 2017 10:09 pm

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: 276
Registriert: Mi Okt 12, 2016 9:09 am

Re: Region bestimmen

Beitrag von bigben » So Aug 13, 2017 12:34 am

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: 28
Registriert: Mo Jul 10, 2017 9:23 am

Re: Region bestimmen

Beitrag von jessi » So Aug 13, 2017 9:48 am

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: 237
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Region bestimmen

Beitrag von EDi » So Aug 13, 2017 10:45 am

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.
Website
github

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild

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

Re: Region bestimmen

Beitrag von jessi » So Aug 13, 2017 11:30 am

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: 237
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Region bestimmen

Beitrag von EDi » So Aug 13, 2017 11:04 pm

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]
Website
github

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast