SpatialPolygonsDataFrame auslesen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
clara_in_r
Beiträge: 19
Registriert: Mi Jun 13, 2018 9:42 am

SpatialPolygonsDataFrame auslesen

Beitrag von clara_in_r »

Hallo liebe Forumsmitglieder,
ich habe ein Problem mit dem Auslesen eines R-Datensatzes und komme nicht weiter. Dabei geht es um ein „SpatialPolygonsDataFrame“. Dies enthält Koordinaten von einem Land (coords), die ich auslesen will. Anscheinend sind diese in 92 Polygone (?) enthalten. Ich habe nun irgendwie versucht an diese ranzukommen, aber es hat bisher nicht geklappt. Kann mir jemand einen hilfreichen Tipp geben?

Den Datensatz kann man hier z. B. für Deutschland runterladen: https://gadm.org/download_country_v3.html

Anbei auch ein Bild, wie die Daten strukturiert sind.

Daten anzeigen:

Code: Alles auswählen

data_border = readRDS("gadm36_DEU_0_sp.rds")
Clara
Dateianhänge
polygons.pdf
(116.29 KiB) 83-mal heruntergeladen
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von EDi »

Ich habe nun irgendwie versucht an diese ranzukommen, aber es hat bisher nicht geklappt. Kann mir jemand einen hilfreichen Tipp geben?
Was möchtest du denn haben? Die koordinaten? (geht mit coordinates aus dem zum Datensatz passenden sp Package)
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.
dvf
Beiträge: 24
Registriert: Mo Feb 27, 2017 12:44 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von dvf »

Mit

Code: Alles auswählen

plot(data_border[1, 2])
erhält man einen schönen Umriss Deutschlands.

Gruß
dvf
clara_in_r
Beiträge: 19
Registriert: Mi Jun 13, 2018 9:42 am

Re: SpatialPolygonsDataFrame auslesen

Beitrag von clara_in_r »

Ja, danke. Das klappt so jedoch leider nicht. Wenn ich folgendes mache, kommt der geometrische Mittelpunkt Deutschlands raus:

Code: Alles auswählen

coordinates(data_border)
      [,1]     [,2]
1 10.38734 51.09444
Die Daten bestehen aus einem Polygon, welches dann wiederum aus 92 Polygonen besteht, in denen unter coords die Koordinaten sind. Im Beispiel von coordinates() im sp-package geht das leichter, weil die Koordinaten auch als x und y bezeichnet sind. Das ist hier irgendwie nicht so direkt der Fall.
Ich will ja wirklich die coords aus den 92 Polygonen auslesen, die nach meiner Meinung genau die Koordinaten aus plot(data_border[1, 2]) sind. Wenn ich jedoch z.B. data_border[1,] mir ausgeben lasse, dann bekomme ich vieles, aber nicht nur die coords.
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von Athomas »

Mal dreist durch die Struktur gefrinselt:

Code: Alles auswählen

library(sp)
data_border <- readRDS("D:/R/Shape/gadm36_DEU_0_sp.rds")

x <- data_border@polygons[[1]]@Polygons[[27]]@coords
Das könnte Castrop-Rauxel sein!
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von EDi »

ggplotly::fortify() könnte nützlich sein.
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.
dvf
Beiträge: 24
Registriert: Mo Feb 27, 2017 12:44 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von dvf »

Nach meinem Schnellschuss lag mir doch eine sinnvolle Antwort am Herzen.

Code: Alles auswählen

library(sp)
data_border <- readRDS("gadm36_DEU_0_sp.rds")

extractCoords <- function(data_border)
{
    results <- list()
    for(i in 1:length(data_border@polygons[[1]]@Polygons))
    {
        results[[i]] <- data_border@polygons[[1]]@Polygons[[i]]@coords
    }
    results <- Reduce(rbind, results)
    results
}
xy_coord <- extractCoords(data_border)
plot(xy_coord, pch=".")
Gruß
dvf
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von Athomas »

Donnerwetter, wie kommt man denn auf sooowas :lol: ?
dvf
Beiträge: 24
Registriert: Mo Feb 27, 2017 12:44 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von dvf »

Nicht auf meinem Mist gewachsen. Google hat geholfen.
clara_in_r
Beiträge: 19
Registriert: Mi Jun 13, 2018 9:42 am

Re: SpatialPolygonsDataFrame auslesen

Beitrag von clara_in_r »

super, vielen dank. hat mir auch sehr geholfen. auch schon wie man in die polygone reinschaut:

Code: Alles auswählen

data_border@polygons[[1]]@Polygons[[27]]@coords
Antworten