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: 3
Registriert: Mi Jun 13, 2018 9:42 am

SpatialPolygonsDataFrame auslesen

Beitrag von clara_in_r » Mi Jun 13, 2018 9:46 am

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) 11-mal heruntergeladen

Benutzeravatar
EDi
Beiträge: 588
Registriert: Sa Okt 08, 2016 3:39 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von EDi » Mi Jun 13, 2018 5:41 pm

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: 13
Registriert: Mo Feb 27, 2017 12:44 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von dvf » Do Jun 14, 2018 3:42 pm

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: 3
Registriert: Mi Jun 13, 2018 9:42 am

Re: SpatialPolygonsDataFrame auslesen

Beitrag von clara_in_r » Do Jun 14, 2018 4:04 pm

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: 44
Registriert: Mo Feb 26, 2018 8:19 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von Athomas » Do Jun 14, 2018 7:35 pm

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

Re: SpatialPolygonsDataFrame auslesen

Beitrag von EDi » Do Jun 14, 2018 10:22 pm

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: 13
Registriert: Mo Feb 27, 2017 12:44 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von dvf » Fr Jun 15, 2018 12:57 pm

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: 44
Registriert: Mo Feb 26, 2018 8:19 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von Athomas » Fr Jun 15, 2018 3:56 pm

Donnerwetter, wie kommt man denn auf sooowas :lol: ?

dvf
Beiträge: 13
Registriert: Mo Feb 27, 2017 12:44 pm

Re: SpatialPolygonsDataFrame auslesen

Beitrag von dvf » Fr Jun 15, 2018 5:54 pm

Nicht auf meinem Mist gewachsen. Google hat geholfen.

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

Re: SpatialPolygonsDataFrame auslesen

Beitrag von clara_in_r » Mo Jun 18, 2018 12:03 pm

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast