Come posso esportare i dati raster da Arcmap in un formato di file R * .grd?


10

Voglio lavorare con i dati raster in R, ma ho problemi nell'esportazione del mio set di dati raster da ArcMap. Con "export data" / GRID ottengo un file con estensione * .aux. Quello di cui ho bisogno è * .grd.

Qualcuno può darmi una mano?



5
Aiuterebbe gli aspiranti intervistati a sapere che un file .grd è in un formato particolare per il pacchetto raster in R. Non aspettarti di trovare (ancora) un modo per scrivere questo formato in Arc * e fare attenzione a confondere questo formato con altri formati che utilizzano "grd" come estensione.
whuber

In che formato è il tuo raster originale? @RobertH sottolinea che probabilmente puoi leggerlo direttamente in R, senza bisogno di esportarlo.
djq

Risposte:


6

La risposta è non esportare, perché non è necessario. È possibile leggere direttamente i dati della griglia Arc * con il pacchetto raster (quando è disponibile la libreria rgdal). E se esporti, è meglio evitare ascii (usare ad esempio 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")

6

modificare

Una soluzione più comoda per la lettura è fornita da @RobertH altrove in questo thread . È possibile leggere il set di dati della griglia Arc * direttamente utilizzando lo stesso approccio descritto qui: fare semplicemente riferimento alla cartella in cui si trovano i file di dati della griglia nel rastercomando.

Risposta originale

In Arc *, utilizzare lo Raster to ASCIIstrumento (disponibile in Conversion Tools|From Raster) per esportare una griglia in formato ASCII.

In R, carica i pacchetti rastere rgdal, quindi leggi il raster usando la rasterfunzione, come in

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

Per creare la versione .grd, utilizzare writeRaster, come in

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

La risposta della console descriverà cosa c'è nella parte .grd dell'output (i dati sono in un file .gri), come in

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 

Questo è un punto molto piccolo, ma se viene esportato come ascii il tipo di file non dovrebbe essere *.asc? Suppongo che entrambi funzionino, ma forse potrebbe essere un problema se provi ad aprire un *.txtfile usando ArcGIS.
djq

1
Il formato e l'estensione del file sono cose indipendenti, @celenius. È vero, alcuni sistemi operativi e alcuni software utilizzano l'estensione come suggerimento per il formato (anche se un buon software sostituirà automaticamente quel suggerimento o lo sostituirà su richiesta dell'utente). In questo esempio, tuttavia, i nomi non contano minimamente. Se si verificano problemi durante l'importazione o l'apertura di un file con estensione .txt in ArcGIS, è sempre possibile rinominarlo, ma non rientra nell'ambito di questa domanda.
whuber

Apprezzo la distinzione tra formato e estensione del file. Ero principalmente curioso di sapere perché si sarebbe scelto di produrre il file .txtpiuttosto che .asc. Ho pensato che potesse essere controintuitivo.
djq

@celenius L' input in questo esempio ha un'estensione .txt (non l'output). È stato preso da un esempio reale in cui il file .txt era stato originariamente prodotto da software più vecchio.
whuber

2

Non sembra che un file GRID ESRI abbia un singolo file con estensione .grd. Invece sembra essere un formato multi-cartella / multi-file che ArcMap vede come un unico file (simile a come funzionano gli shapefile e le copertine di ArcInfo). In ogni caso, il file .aux è un file di supporto nel formato GRID che memorizza informazioni che non possono essere archiviate nel raster stesso. Ecco alcuni link che ne parlano:

Informazioni sui file ausiliari http://webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName=About_auxitime_files

Quando viene creato un file .aux? http://support.esri.com/en/knowledgebase/techarticles/detail/29821


2
gente, per favore non sottovalutare senza spiegare perché a meno che non stia sanguinando ovvio cosa c'è che non va. In questo caso, non capisco. ((Ciao Damon, benvenuto su GIS.se. Va meglio, onesto. ;-))
matt wilkie

Nota, @Matt, che l'hovertext per il pulsante downvote dice "Questa risposta non è utile ...", non che sia sbagliata. La domanda non pone cosa sia un file .aux: richiede (in modo chiaro e sintetico) aiuto nella creazione di un file .grd per l'input a R. Quindi mi sembra che, sebbene i consigli offerti in questa risposta siano corretti, non ci riesca il test di utilità. A questo proposito, i voti negativi servono i futuri lettori allontanandoli da consigli che possono essere ben intenzionati, corretti e persino ben scritti e interessanti, ma (secondo l'opinione della comunità) probabilmente saranno infruttuosi.
whuber

Grazie @whuber. Aiuta a essere ricordato di guardare il testo di ciò che è effettivamente presentato e contrastarlo con il significato che ho accumulato nella mia testa nel tempo. C'è stata qualche deriva continentale!
Matt Wilson

1

converti i tuoi dati raster in ascii e salvali in qualsiasi directory. quindi n R

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

questo leggerà il tuo file grido ASCII e puoi anche controllare i tuoi dati con comandi variud come

summary(data)

salva in modo alternativo i tuoi dati raster come TIFF quindi usando lo stesso pacchetto (rgdal) legge i file tiff che leggerai come

data<-readGDAL("C:/filepath/file.tiff")
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.