Comment puis-je exporter des données raster d'Arcmap vers un format de fichier R * .grd?

10

Je souhaite travailler avec des données raster dans R, mais j'ai des problèmes pour exporter mon jeu de données raster depuis ArcMap. Par "exporter les données" / GRID, j'obtiens un fichier avec une extension * .aux. Ce dont j'ai besoin, c'est * .grd.

Quelqu'un peut-il m'aider?

leni
la source
Raster vers d'autres formats> help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//… GRID
Mapperz
5
Cela aiderait les candidats potentiels à savoir qu'un fichier .grd est dans un format particulier au package raster de R. Ne vous attendez pas à trouver (encore) un moyen d'écrire ce format dans Arc * et méfiez-vous de confondre ce format avec d'autres formats qui utilisent "grd" comme extension.
whuber
Dans quel format se trouve votre raster d'origine? @RobertH souligne que vous pouvez probablement le lire directement dans R, sans avoir besoin de l'exporter.
djq

Réponses:

6

La réponse est de ne pas exporter, car il n'est pas nécessaire de le faire. Vous pouvez lire directement les données de grille Arc * avec le package raster (lorsque la bibliothèque rgdal est disponible). Et si vous exportez, il vaut mieux éviter l'ascii (utilisez par exemple GTiff).

library(raster)
library(rgdal)
#For an arc/grid (albem_s1 is the folder!):
r <- raster("G:/USGS/DEM/7_5min/VA/albem_s1")

#For a geotiff
r <- raster("G:/USGS/DEM/7_5min/VA/albem_s1.tif")
RobertH
la source
6

Éditer

Une solution plus pratique pour la lecture est fournie par @RobertH ailleurs dans ce fil . Vous pouvez lire le jeu de données de grille Arc * directement en utilisant la même approche que celle décrite ici: il vous suffit de référencer le dossier dans lequel se trouvent les fichiers de données de la grille dans la rastercommande.

Réponse originale

Dans Arc *, utilisez l' Raster to ASCIIoutil (présent dans Conversion Tools|From Raster) pour exporter une grille au format ASCII.

Dans R, chargez les packages rasteret rgdal, puis lisez le raster à l'aide de la rasterfonction, comme dans

r <- raster("G:/USGS/DEM/7_5min/VA/albem_s1.txt")
plot(r)

Pour créer la version .grd, utilisez writeRaster, comme dans

writeRaster(r, "G:/USGS/DEM/7_5min/VA/albem_s1.grd")

La réponse de la console décrira ce qui se trouve dans la partie .grd de la sortie (les données sont dans un fichier .gri), comme dans

class       : RasterLayer 
filename    : G:/USGS/DEM/7_5min/VA/albem_s1.grd 
nrow        : 1415 
ncol        : 1133 
ncell       : 1603195 
min value   : 70 
max value   : 960 
projection  : +proj=utm +zone=17 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0 
xmin        : 686280 
xmax        : 720270 
ymin        : 4179990 
ymax        : 4222440 
xres        : 30 
yres        : 30 
whuber
la source
C'est un très petit point, mais s'il est exporté en ascii, le type de fichier ne devrait-il pas l'être *.asc? Je suppose que les deux fonctionnent, mais cela pourrait être un problème si vous essayez d'ouvrir un *.txtfichier à l'aide d'ArcGIS.
djq
1
Le format et l'extension de fichier sont des choses indépendantes, @celenius. Certes, certains systèmes d'exploitation et certains logiciels utilisent l'extension comme indice du format (bien qu'un bon logiciel remplace automatiquement cet indice ou le remplace à la demande d'un utilisateur). Dans cet exemple, cependant, les noms n'ont pas la moindre importance. Si vous rencontrez des problèmes lors de l'importation ou de l'ouverture d'un fichier avec une extension .txt dans ArcGIS, vous pouvez toujours le renommer, mais ce n'est pas dans le cadre de cette question.
whuber
J'apprécie la distinction entre le format de fichier et l'extension de fichier. J'étais surtout curieux de savoir pourquoi on choisirait de sortir le fichier .txtplutôt que .asc. J'ai pensé que cela pourrait être contre-intuitif.
djq
@celenius L' entrée dans cet exemple a une extension .txt (pas la sortie). Il a été tiré d'un exemple réel dans lequel le fichier .txt avait été initialement produit par un logiciel plus ancien.
whuber
2

Il ne semble pas qu'un fichier ESRI GRID ait un seul fichier avec une extension .grd. Au lieu de cela, il semble être un format multi-dossier / multi-fichier qu'ArcMap considère comme un seul fichier (semblable au fonctionnement des fichiers de formes et des couvertures ArcInfo). Dans tous les cas, le fichier .aux est un fichier d'aide au format GRID qui stocke des informations qui ne peuvent pas être stockées dans le raster lui-même. Voici quelques liens qui en parlent:

À propos des fichiers auxiliaires http://webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName=About_auxiliary_files

Quand un fichier .aux est-il créé? http://support.esri.com/en/knowledgebase/techarticles/detail/29821

Damon Pettitt
la source
2
les gens, ne votez pas sans expliquer pourquoi, à moins qu'il ne saigne clairement ce qui ne va pas. Dans ce cas, je ne comprends pas. ((Salut Damon, bienvenue sur GIS.se. Ça va mieux, honnête. ;-))
Matt Wilkie
Notez, @Matt, que le hovertext du bouton downvote dit "Cette réponse n'est pas utile ...", pas que ce soit faux. La question ne demande pas ce qu'est un fichier .aux: il demande (clairement et succinctement) de l'aide pour créer un fichier .grd pour la saisie dans R. Il me semble donc que bien que les conseils proposés dans cette réponse soient corrects, il échoue le test d'utilité. À cet égard, les downvotes servent les futurs lecteurs en les éloignant des conseils qui peuvent être bien intentionnés, corrects, et même bien écrits et intéressants, mais (de l'avis de la communauté) est susceptible d'être infructueux.
whuber
Merci @whuber. Il est utile de se rappeler de regarder le texte de ce qui est réellement présenté et de le mettre en contraste avec le sens que j'ai construit dans ma tête au fil du temps. Il y a eu une dérive des continents!
matt wilkie
1

convertissez vos données raster en ascii et enregistrez-les dans n'importe quel répertoire. alors n R

library(rgdal)
libray(sp)
data<-readGDAL("C:/filepath/file")

cela lira votre fichier quadrillé ascii, vous pouvez également vérifier vos données par diverses commandes telles que

summary(data)

sinon, enregistrez vos données raster au format TIFF, puis en utilisant le même package (rgdal), il lit les fichiers tiff que vous lirez

data<-readGDAL("C:/filepath/file.tiff")
kaikombo
la source