Raster Layer - bestimmten Wert selektieren

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

Antworten
R_123
Beiträge: 4
Registriert: Di Apr 21, 2020 4:04 pm

Raster Layer - bestimmten Wert selektieren

Beitrag von R_123 »

Hallo,

ich versuche bei meinem Raster Layer das Gebiet zu selektieren mit einem bestimmten Wert. Der raster Layer hat nur 4 Werte und ich möchte nur den 4. ansprechen um einen neuen Layer daraus zu erstellen.

das ist mein Rasterlayer

Code: Alles auswählen

 str(geology)
Formal class 'RasterLayer' [package "raster"] with 12 slots
  ..@ file    :Formal class '.RasterFile' [package "raster"] with 13 slots
  .. .. ..@ name        : chr "/Users/......./geologie.asc"
  .. .. ..@ datanotation: chr "FLT4S"
  .. .. ..@ byteorder   : chr "little"
  .. .. ..@ nodatavalue : num -9999
  .. .. ..@ NAchanged   : logi FALSE
  .. .. ..@ nbands      : int 1
  .. .. ..@ bandorder   : chr "BIL"
  .. .. ..@ offset      : int 6
  .. .. ..@ toptobottom : logi TRUE
  .. .. ..@ blockrows   : int 0
  .. .. ..@ blockcols   : int 0
  .. .. ..@ driver      : chr "ascii"
  .. .. ..@ open        : logi FALSE
  ..@ data    :Formal class '.SingleLayerData' [package "raster"] with 13 slots
  .. .. ..@ values    : logi(0) 
  .. .. ..@ offset    : num 0
  .. .. ..@ gain      : num 1
  .. .. ..@ inmemory  : logi FALSE
  .. .. ..@ fromdisk  : logi TRUE
  .. .. ..@ isfactor  : logi FALSE
  .. .. ..@ attributes: list()
  .. .. ..@ haveminmax: logi FALSE
  .. .. ..@ min       : num Inf
  .. .. ..@ max       : num -Inf
  .. .. ..@ band      : int 1
  .. .. ..@ unit      : chr ""
  .. .. ..@ names     : chr ""
  ..@ legend  :Formal class '.RasterLegend' [package "raster"] with 5 slots
  .. .. ..@ type      : chr(0) 
  .. .. ..@ values    : logi(0) 
  .. .. ..@ color     : logi(0) 
  .. .. ..@ names     : logi(0) 
  .. .. ..@ colortable: logi(0) 
  ..@ title   : chr(0) 
  ..@ extent  :Formal class 'Extent' [package "raster"] with 4 slots
  .. .. ..@ xmin: num 45806
  .. .. ..@ xmax: num 71906
  .. .. ..@ ymin: num 85296
  .. .. ..@ ymax: num 101996
  ..@ rotated : logi FALSE
  ..@ rotation:Formal class '.Rotation' [package "raster"] with 2 slots
  .. .. ..@ geotrans: num(0) 
  .. .. ..@ transfun:function ()  
  ..@ ncols   : int 522
  ..@ nrows   : int 334
  ..@ crs     :Formal class 'CRS' [package "sp"] with 1 slot
  .. .. ..@ projargs: chr NA
  ..@ history : list()
  ..@ z       : list()

Ich habe u.a. Folgendes ausprobiert:

Code: Alles auswählen

geology_MA<- geology[geology == 4]
Wenn ich das Ergebnis plotte wird mir nur ein Diagramm mit Punkten mit dem Wert 4 angezeigt

Code: Alles auswählen

geology_MA<- geology[attributes==4]

Code: Alles auswählen

plot(geology_MA)
is.factor(geology)
x<-as.factor(geology)
factorValues(x , 4)
zzzz<<- geology[level=4]
plot(zzzz)
Leider hat nichts bisher funktioniert und wäre dankbar für jede Hilfe.
Hier ist der gesamte Layer und ich möchte wie gesagt nur den Teil haben, der den Wert 4 hat.


Bildschirmfoto 2020-04-26 um 18.01.03.png
Ich danke im voraus für eine Antwort :D
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Raster Layer - bestimmten Wert selektieren

Beitrag von Athomas »

Der raster Layer hat nur 4 Werte
:shock: Angesichts der von Dir gezeigten "structure" kann ich Dir nicht folgen!?

Grundsätzlich wäre es besser, wenn Du die Daten mitliefern würdest - oder einen öffentlich zugänglichen Datensatz verwenden würdest, bei dem das Phänomen (welches?) ebenfalls auftritt!
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Raster Layer - bestimmten Wert selektieren

Beitrag von EDi »

Code: Alles auswählen

library("raster")
r1 <- raster(nrows=21, ncols=21)
r1[] <- sample(1:4, length(r1), replace = TRUE)
plot(r1)
plot(r1 == 4)
für dich dann

Code: Alles auswählen

geology_MA<- geology == 4
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.
R_123
Beiträge: 4
Registriert: Di Apr 21, 2020 4:04 pm

Re: Raster Layer - bestimmten Wert selektieren

Beitrag von R_123 »

Vielen Dank!

Code: Alles auswählen

geology_MA<- geology == 4
Damit hat es auch schon funktioniert! :D
Antworten