Suite

Comment exporter un jeu de données avec "SpatialPolygonsDataFrame" en tant que fichier de formes


Comment exporter des jeux de données spatiales dans R, tels quetornadesjeu de données dansOutils SIGpackage, sous forme de fichier de formes avec exactement la même référence spatiale et les valeurs exactes ?

bibliothèque (GISTools) données (tornades)

Voulu:

  • "SpatialPolygonsDataFrame" à "shapefile"
  • "(Forcé) SpatialPointsDataFrame" à "shapefile"
  • "(Non-Forcé) SpatialPointsDataFrame" à "shapefile"
  • "SpatialLinesDataFrame" à "shapefile".

La réponse de Wesley est correcte. Donc, pour exporter spécifiquement les données de tornade, vous devez faire :

library(GISTools) library(rgdal) data(tornados) writeOGR(obj=torn, dsn="tempdir", layer="torn", driver="ESRI Shapefile") # ceci est en projection géographique writeOGR(obj=torn2, dsn ="tempdir", layer="torn2", driver="ESRI Shapefile") # c'est dans une projection de surface égale

Pour R, ces deux ensembles de données sont simplement traités comme des SpatialPointsDataFrames.

> class(torn) [1] "SpatialPointsDataFrame" attr(,"package") [1] "sp" > class(torn2) [1] "SpatialPointsDataFrame" attr(,"package") [1] "sp"

Notez qu'il y a aussi une fonction dans leoutils de cartepackage pour y parvenir, à savoirécrireSpatialShape:

library(maptools) writeSpatialShape(torn, "torn").

Voir ?writeSpatialShape pour les options.


Vous devriez regarder le paquet rgdal, en particulier leécrireOGRune fonction.

Par exemple, j'ai d'abord téléchargé les fichiers de formes « États et provinces » d'une résolution de 110 m à partir de Natural Earth, en les décompressant dans~/scratch/ne_110m_admin_1_states_provinces. Je les ai lus dans R via :

library(rgdal) setwd("~/scratch") états <- readOGR(dsn="ne_110m_admin_1_states_provinces", layer="ne_110m_admin_1_states_provinces")

A ce stade, l'objetÉtatsest unSpatialPolygonsDataFrame. Maintenant, je crée un nouveau répertoire ("tempdir") et enregistrez les fichiers de formes ici :

dir.create("tempdir") writeOGR(obj=states, dsn="tempdir", layer="states", driver="ESRI Shapefile")

Les formes sont maintenant enregistrées dans le répertoire~/scratch/tempdir, en tant que fichiers states.shp, etc. Vous pouvez faire la même chose avec unSpatialPointsDataFrame, il suffit de voir le premier exemple dans la documentation duécrireOGRune fonction.


bibliothèque (raster) shapefile(tornados, filename="chemin/vers/fichier.shp")

Assurez-vous que vous disposez (ou que vous vous êtes donné) des autorisations pour écrire dans le répertoire.