Làm cách nào tôi có thể xuất dữ liệu raster từ Arcmap sang định dạng tệp R * .grd?


10

Tôi muốn làm việc với dữ liệu raster trong R, nhưng tôi gặp vấn đề khi xuất dữ liệu raster của mình từ ArcMap. Bằng cách "xuất dữ liệu" / GRID, tôi nhận được một tệp có phần mở rộng * .aux. Cái tôi cần là * .grd.

Ai có thể giúp tôi không?


Raster sang các định dạng khác> help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#// Thay GRID
Mapperz

5
Sẽ có ích cho những người được hỏi biết rằng tệp .grd có định dạng dành riêng cho gói raster trong R. Đừng mong tìm thấy bất kỳ cách nào để viết định dạng này trong Arc * và hãy cẩn thận khi nhầm lẫn định dạng này với các định dạng khác sử dụng "grd" làm phần mở rộng.
whuber

Định dạng ban đầu của bạn là gì? @RobertH chỉ ra rằng bạn có thể có thể đọc nó trực tiếp vào R mà không cần phải xuất nó.
djq

Câu trả lời:


6

Câu trả lời là không xuất khẩu, vì không cần. Bạn có thể đọc trực tiếp dữ liệu lưới Arc * với gói raster (khi thư viện rgdal có sẵn). Và nếu bạn xuất, tốt hơn là tránh ascii (sử dụng ví dụ 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

Biên tập

Một giải pháp thuận tiện hơn để đọc được cung cấp bởi @RobertH ở nơi khác trong chuỗi này . Bạn có thể đọc trực tiếp tập dữ liệu lưới Arc * bằng cách sử dụng cùng một cách tiếp cận được mô tả ở đây: chỉ cần tham khảo thư mục chứa các tệp dữ liệu lưới trong rasterlệnh.

Trả lời gốc

Trong Arc *, sử dụng Raster to ASCIIcông cụ (tìm thấy trong Conversion Tools|From Raster) để xuất lưới ở định dạng ASCII.

Trong R, tải các gói rasterrgdalgói, sau đó đọc raster bằng rasterhàm, như trong

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

Để tạo phiên bản .grd, hãy sử dụng writeRaster, như trong

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

Phản hồi của bàn điều khiển sẽ mô tả những gì trong phần .grd của đầu ra (dữ liệu nằm trong tệp .gri), như trong

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 

Đây là một điểm rất nhỏ, nhưng nếu nó được xuất ra dưới dạng ascii nên các loại tập tin không *.asc? Tôi cho rằng cả hai đều hoạt động, nhưng có lẽ nó có thể là vấn đề nếu bạn thử mở *.txttệp bằng ArcGIS.
djq

1
Định dạng tệp và phần mở rộng tệp là những thứ độc lập, @celenius. Đúng, một số HĐH và một số phần mềm sử dụng tiện ích mở rộng làm gợi ý cho định dạng (mặc dù phần mềm tốt sẽ tự động ghi đè gợi ý đó hoặc sẽ ghi đè lên theo yêu cầu của người dùng). Trong ví dụ này, tuy nhiên, tên ít nhất không quan trọng. Nếu bạn gặp vấn đề khi nhập hoặc mở tệp có phần mở rộng .txt trong ArcGIS, bạn luôn có thể đổi tên tệp, nhưng điều đó không nằm trong phạm vi của câu hỏi này.
whuber

Tôi đánh giá cao sự khác biệt giữa định dạng tệp và phần mở rộng tệp. Tôi chủ yếu tò mò tại sao người ta lại chọn xuất tệp .txtchứ không phải .asc. Tôi nghĩ rằng nó có thể là phản trực giác.
djq

@celenius Đầu vào trong ví dụ này có phần mở rộng .txt (không phải đầu ra). Nó được lấy từ một ví dụ thực tế trong đó tệp .txt ban đầu được sản xuất bởi phần mềm cũ hơn.
whuber

2

Dường như tệp ESRI GRID có một tệp có phần mở rộng .grd. Thay vào đó, nó có vẻ là một định dạng nhiều thư mục / nhiều tệp mà ArcMap xem là một tệp (giống như cách các shapefiles và ArcInfo hoạt động). Trong mọi trường hợp, tệp .aux là tệp trợ giúp theo định dạng GRID lưu trữ thông tin không thể được lưu trữ trong chính raster. Dưới đây là một số liên kết nói về nó:

Giới thiệu về các tệp phụ trợ http://webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName= About_auxadder_files

Khi nào một tệp .aux được tạo? http://support.esri.com/en/ledgeledridease/Techarticles/detail/29821


2
mọi người, xin vui lòng không downvote mà không giải thích lý do tại sao trừ khi nó chảy máu rõ ràng những gì sai. Trong trường hợp này, tôi không nhận được nó. ((Xin chào Damon, chào mừng bạn đến với GIS.se. Nó trở nên tốt hơn, trung thực
.;

Lưu ý, @Matt, rằng hovertext cho nút downvote nói "Câu trả lời này không hữu ích ...", không phải là nó sai. Câu hỏi không hỏi tệp .aux là gì: nó (rõ ràng và ngắn gọn) yêu cầu trợ giúp tạo tệp .grd để nhập vào R. Vì vậy, dường như với tôi rằng mặc dù lời khuyên được đưa ra trong câu trả lời này là chính xác, nhưng nó thất bại các bài kiểm tra hữu ích. Về mặt này, downvote phục vụ độc giả tương lai bằng cách tránh xa những lời khuyên có thể có ý nghĩa, chính xác và thậm chí được viết tốt và thú vị, nhưng (theo ý kiến ​​của cộng đồng) có thể sẽ không có kết quả.
whuber

Cảm ơn @whuber. Nó giúp được nhắc nhở để xem văn bản của những gì thực sự được trình bày, và tương phản nó với ý nghĩa tôi đã xây dựng trong đầu theo thời gian. Có một số trôi dạt lục địa!
matt wilkie

1

chuyển đổi dữ liệu raster của bạn thành ascii và lưu trong bất kỳ thư mục nào của bạn. sau đó n R

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

điều này sẽ đọc tệp grcii của bạn, bạn cũng có thể kiểm tra dữ liệu của mình bằng các lệnh varioud như

summary(data)

về cơ bản lưu dữ liệu raster của bạn dưới dạng TIFF, sau đó sử dụng cùng một gói (rgdal), nó sẽ đọc các tệp tiff bạn sẽ đọc dưới dạng

data<-readGDAL("C:/filepath/file.tiff")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.