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.
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")
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)
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ą:
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
Odpowiedzi:
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).
źródło
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
raster
poleceniu.Oryginalna odpowiedź
W Arc * użyj
Raster to ASCII
narzędzia (znalezionego wConversion Tools|From Raster
), aby wyeksportować siatkę w formacie ASCII.W
R
załaduj pakietyraster
irgdal
, a następnie przeczytaj raster za pomocąraster
funkcji, jak wAby utworzyć wersję .grd, użyj
writeRaster
, jak wOdpowiedź konsoli opisuje, co znajduje się w części wyjściowej .grd (dane są w pliku .gri), tak jak w
źródło
*.asc
? Podejrzewam, że obie działają, ale być może może to stanowić problem, jeśli spróbujesz otworzyć*.txt
plik za pomocą ArcGIS..txt
zamiast tego wybrać plik wyjściowy.asc
. Myślałem, że to może być sprzeczne z intuicją.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
źródło
przekonwertuj dane rastrowe na ascii i zapisz w dowolnym katalogu. następnie nR
to odczyta twój plik ascii w siatce, możesz także sprawdzić dane za pomocą komend varioud, takich jak
alternatywnie zapisz dane rastrowe jako TIFF, a następnie używając tego samego pakietu (rgdal) odczytuje pliki tiff, które odczytasz jako
źródło