2016-04-16 18 views
2

Ich versuche, eine Openstreetmaps Shape-Datei in R mit dem Rgdal-Paket zu importieren. Die Formdatei I hat 5 Komponenten in sie heruntergeladenWie importiere ich eine Openstreetmaps Shape-Datei in R und extrahiere Lat/Long Centroids?

places.cpg 
places.dbf 
places.prj 
places.shp 
places.shx 

Die Dateien an folgendem Ort zugegriffen werden kann:

https://drive.google.com/open?id=0B1ITb_7lHh1EUFVfVWc4ekRfSnc

Ich habe folgendes zu tun: 1) Importieren der Formdatei 2) Extrahieren Sie lat/long des Punktes oder des Schwerpunkts der Form im Falle des Polygons 3) Bringen Sie das lat/long Paar an die dbf Datei an, um eine Analyse durchzuführen

ich in der ersten Stufe des Imports steckte selbst, ich bin mit dem folgenden Code:

shape1 <- readOGR(dsn = "try", layer = "places") 

Hier try "ist der Ordner in meinem Arbeitsverzeichnis, in dem alle 5‚Orten‘Datei von OpenStreetMap oben erwähnt befinden sich.

bekomme ich folgende Fehlermeldung, wenn dies zu tun:

Error in readOGR(dsn = "try", layer = "places") : no features found 
In addition: Warning message: 
In ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = 
use_iconv, : ogrInfo: all features NULL 

ich Hilfe bei diesem Import benötigen. Alternativ, wenn es eine Möglichkeit gibt, lat/long direkt aus einer der Orte Shape-Datei zu extrahieren, kann ich einfach die places.dbf Datei in Excel öffnen und lat/long hinzufügen.

+0

es hilfreich sein, wenn es eine Verbindung zu dem Shape-Datei – hrbrmstr

+0

waren hinzugefügt völlig vergessen Ich that..have einen Link, um die Shape-Dateien zuzugreifen:‘ https://drive.google.com/open?id=0B1ITb_7lHh1EUFVfVWc4ekRfSnc – Shaz

Antwort

1

Wenn Probleme mit der readOGR() - Funktion auftreten: Eine andere Möglichkeit ist die Verwendung des maptools Pakets. Es schafft SpatialXXXDataFrames so können Sie alle Funktionen von rgeos usw.

library(maptools) 

setwd("/your/data/path/") 

places <- readShapeSpatial("places") 
# ... your geospatial functions, like 
plot(places) 

verwenden wahrscheinlich werden Sie die Projektion der räumlichen Daten anpassen. Für OSM-Daten müssen Sie die proj4string für WGS84 (oder EPSG: 4326) unter spatialreference.org finden.

So können Sie Ihre Projektion in R einstellen:

proj4string(places) <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") 

Für die Berechnung/"Extraktion" von Polygon Centroide this Post zu sehen.

0

Sie müssen das Shapefile (.shp) als DSN verwenden. Durch Drehen der SpatialPointsDataFrame in ein „normalen“ data.frame geben „igitt“ Spaltennamen für lang & lat, damit Sie sie umbenennen können sie besser nutzbar zu machen:

library(sp) 
library(rgdal) 

places <- readOGR("places/places.shp", "places", verbose=FALSE, stringsAsFactors=FALSE) 

places_df <- setNames(as.data.frame(places), 
         c("osm_id", "name", "type", "population", "longitude", "latitude")) 

head(places_df) 

##  osm_id   name type population longitude latitude 
## 1 25431184 Stockertown village   NA -75.26156 40.75446 
## 2 25716549 Mechanicsburg village   NA -77.00473 40.21020 
## 3 25762119  Mansfield hamlet   NA -77.07929 41.80569 
## 4 25840249 New Columbia hamlet   NA -76.87368 41.03368 
## 5 25840585 Williamsport town  29381 -77.00277 41.24933 
## 6 25930002  Hershey town  14257 -76.65060 40.28549 
+0

Ich habe das Arbeitsverzeichnis in den Ordner geändert, in dem sich die Shape-Datei befindet, und führte den folgenden Code aus: shape1 <- readOGR (dsn = "places.shp "," places ", verbose = FALSCH, stringsAsFactors = FALSE) Ich bekomme immer noch die no features found error. Mache ich immer noch etwas falsch? \ – Shaz

+0

@Shaz - Ich habe das gleiche Problem. Haben Sie es geschafft um es zu lösen? – PBD10017

+0

Ich konnte nicht ... Ich benutzte stattdessen maptools wie vom nächsten Beitrag vorgeschlagen – Shaz

0

ich nicht dieses Paket an der Arbeit könnte aber Das Paket "Shapefiles" hat die Arbeit für mich erledigt. Es hat eine Funktion read.shapefile, die Shapefiles importiert.