Jak mogę wyeksportować dane rastrowe z Arcmap do formatu pliku R * .grd?

10

Chcę pracować z danymi rastrowymi w R, ale mam problemy z eksportowaniem mojego zestawu danych rastrowych z ArcMap. Poprzez „eksport danych” / GRID otrzymuję plik z rozszerzeniem * .aux. Potrzebuję * .grd.

Czy ktokolwiek może mi pomóc?

Leni
źródło
Raster to Other Formats> help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//… GRID
Mapperz
5
Pomogłoby to przyszłym respondentom dowiedzieć się, że plik .grd ma format specyficzny dla pakietu rastrowego w R. Nie oczekuj (jeszcze) żadnego sposobu na napisanie tego formatu w Arc * i uważaj na pomylenie tego formatu z innymi formatami używającymi „grd” jako rozszerzenia.
whuber
W jakim formacie jest twój oryginalny raster? @RobertH wskazuje, że prawdopodobnie możesz go odczytać bezpośrednio w R, bez konieczności eksportowania.
djq

Odpowiedzi:

6

Odpowiedź brzmi: nie eksportuj, ponieważ nie ma takiej potrzeby. Możesz bezpośrednio odczytać dane siatki Arc * za pomocą pakietu rastrowego (gdy dostępna jest biblioteka rgdal). A jeśli eksportujesz, lepiej unikać ascii (użyj np. 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
źródło
6

Edytować

Bardziej wygodne rozwiązanie do czytania zapewnia @RobertH w innym miejscu tego wątku . Możesz odczytać zestaw danych siatki Arc * bezpośrednio, stosując to samo podejście opisane tutaj: po prostu odwołaj się do folderu, w którym znajdują się pliki danych siatki w rasterpoleceniu.

Oryginalna odpowiedź

W Arc * użyj Raster to ASCIInarzędzia (znalezionego w Conversion Tools|From Raster), aby wyeksportować siatkę w formacie ASCII.

W Rzaładuj pakiety rasteri rgdal, a następnie przeczytaj raster za pomocą rasterfunkcji, jak w

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

Aby utworzyć wersję .grd, użyj writeRaster, jak w

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

Odpowiedź konsoli opisuje, co znajduje się w części wyjściowej .grd (dane są w pliku .gri), tak jak w

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
źródło
To bardzo mała kwestia, ale jeśli jest eksportowany jako ascii, czy typ pliku nie powinien być *.asc? Podejrzewam, że obie działają, ale być może może to stanowić problem, jeśli spróbujesz otworzyć *.txtplik za pomocą ArcGIS.
djq
1
Format i rozszerzenie pliku to niezależne rzeczy, @celenius. To prawda, że ​​niektóre systemy operacyjne i niektóre programy używają rozszerzenia jako podpowiedzi co do formatu (chociaż dobre oprogramowanie albo automatycznie przesłoni tę wskazówkę, albo zastąpi ją na żądanie użytkownika). W tym przykładzie nazwy nie mają jednak najmniejszego znaczenia. Jeśli masz problemy z importowaniem lub otwieraniem pliku z rozszerzeniem .txt w ArcGIS, zawsze możesz zmienić jego nazwę, ale to nie wchodzi w zakres tego pytania.
whuber
Doceniam różnicę między formatem pliku a rozszerzeniem pliku. Byłem głównie ciekawy, dlaczego .txtzamiast tego wybrać plik wyjściowy .asc. Myślałem, że to może być sprzeczne z intuicją.
djq
@celenius Dane wejściowe w tym przykładzie mają rozszerzenie .txt (nie dane wyjściowe). Został zaczerpnięty z rzeczywistego przykładu, w którym plik .txt został pierwotnie utworzony przez starsze oprogramowanie.
whuber
2

Nie wydaje się, aby plik ESRI GRID miał jeden plik z rozszerzeniem .grd. Zamiast tego wydaje się, że jest to format wielu folderów / wielu plików, który ArcMap postrzega jako jeden plik (podobny do działania plików kształtów i pokrycia ArcInfo). W każdym razie plik .aux jest plikiem pomocniczym do formatu GRID, który przechowuje informacje, których nie można zapisać w samym rastrze. Oto kilka linków, które o tym mówią:

Informacje o plikach pomocniczych http://webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName=About_auxiliary_files

Kiedy tworzony jest plik .aux? http://support.esri.com/en/knowledgebase/techarticles/detail/29821

Damon Pettitt
źródło
2
ludzie, proszę, nie głosujcie bez wyjaśnienia, dlaczego, chyba że krwawi oczywiste, co jest nie tak. W tym przypadku nie rozumiem. ((Cześć Damon, witamy na GIS.se. Jest coraz lepiej, szczerze. ;-))
Matt Wilkie 9.11.11
Zauważ, @Matt, że w tekście kursora przycisku „downvote” jest napisane „Ta odpowiedź nie jest przydatna ...”, a nie to, że jest zła. Pytanie nie pyta, co to jest plik .aux: (jasno i zwięźle) prosi o pomoc w utworzeniu pliku .grd w celu wprowadzenia go do R. Wydaje mi się więc, że chociaż porady przedstawione w tej odpowiedzi są poprawne, to nie udaje się test przydatności. W związku z tym opinie negatywne służą przyszłym czytelnikom, odsuwając ich od porad, które mogą być dobre, poprawne, a nawet dobrze napisane i interesujące, ale (zdaniem społeczności) prawdopodobnie będą bezowocne.
whuber
Dzięki @whuber. Przypomina mi się spojrzenie na tekst tego, co faktycznie zostało przedstawione, i porównanie go ze znaczeniem, które z czasem narosłem w głowie. Nastąpił dryf kontynentalny!
matt wilkie
1

przekonwertuj dane rastrowe na ascii i zapisz w dowolnym katalogu. następnie nR

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

to odczyta twój plik ascii w siatce, możesz także sprawdzić dane za pomocą komend varioud, takich jak

summary(data)

alternatywnie zapisz dane rastrowe jako TIFF, a następnie używając tego samego pakietu (rgdal) odczytuje pliki tiff, które odczytasz jako

data<-readGDAL("C:/filepath/file.tiff")
kaikombo
źródło