Tái định nghĩa raster từ lat / lon sang UTM trong R?


12

tôi phải biến nó thành UTM để làm cho bộ đệm hoạt động.

wets<-readOGR(dsn=".",layer="shapefile")
r.raster <- raster()
extent(r.raster) <- extent(wets)
res(r.raster) <- 100 

wets.r <- rasterize(wet,r.raster)
plot(wets.r)
wetsbuf<-buffer(wets.r,width=500)

Trong quá trình tạo bộ đệm là dòng mã cuối cùng, nó đưa ra cảnh báo:

Warning message:  
In couldBeLonLat(x) :
  raster has a longitude/latitude CRS, but coordinates do not match that

đây là thông tin

  summary(wets.r)
          layer
 Min.        1
 1st Qu.     1
 Median      2
 3rd Qu.     9
 Max.       11
 NA's    52629

summary(wets)

  Object of class SpatialPolygonsDataFrame
Coordinates:
      min       max
 x  683705  714088.8
 y 4326266 4343768.0
 Is projected: TRUE 
 proj4string :
 [+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +datum=GGRS87
 +units=m +no_defs +ellps=GRS80 +towgs84=-199.87,74.79,246.62]
 Data attributes:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.0     2.5     5.0     5.0     7.5    10.0 






 wets.r

class       : RasterLayer 
dimensions  : 175, 304, 53200  (nrow, ncol, ncell)
resolution  : 100, 100  (x, y)
extent      : 683705, 714105, 4326268, 4343768  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : in memory
names       : layer 
values      : 1, 11  (min, max)
attributes  :
   ID FID
 from:  1   0
 to  : 11  10

Tôi phải thay đổi dự đoán để có thể thực hiện bộ đệm.


Bạn có dữ liệu trong một hệ tọa độ dự kiến ​​hoặc CS địa lý không?
Aaron

Tôi nghĩ rằng dữ liệu vectơ ban đầu nằm trong một hệ tọa độ dự kiến.
gsa

Dự kiến ​​(ví dụ UTM) hoặc Địa lý (lat / lon)?
Aaron

Tôi không biết làm thế nào để kiểm tra điều này. Tôi nghĩ UTM không chắc chắn
gsa

tọa độ là gì và bạn đang ở khu vực nào (tiểu bang, thành phố)?
ed.hank 13/07/2015

Câu trả lời:


15

Đây là cách bạn có thể định hướng lại một raster trong R bằng cách sử dụng gói raster . Trong ví dụ này, trình duyệt địa lý đầu vào nằm trong hệ tọa độ địa lý NAD83 và tôi chuyển hướng sang hệ tọa độ dự kiến ​​NAD 83 UTM 15. Một tài liệu tham khảo tốt cho các phép chiếu định dạng Proj4, được sử dụng bởi RGDAL, có thể được tìm thấy tại spatialreference.org .

library(raster)

# Create RasterLayer object
r <- raster('C:/temp/binary_nad83.tif')

# Define the Proj.4 spatial reference 
# http://spatialreference.org/ref/epsg/26915/proj4/
sr <- "+proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs" 

# Project Raster
projected_raster <- projectRaster(r, crs = sr)

# Write the RasterLayer to disk (See datatype documentation for other formats)
writeRaster(projected_raster, filename="C:/temp/binary_utm15.tif", datatype='INT1U', overwrite=TRUE)

Cảm ơn câu trả lời, nó trả về điều này mặc dù: Lỗi trong projectExtent (từ, projto): không thể thực hiện chuyển đổi này Ngoài ra: Thông báo cảnh báo: Trong rgdal :: rawTransform (projfrom, projto, nrow (xy), xy [, 1], xy [,: 218 điểm dự kiến ​​không hữu hạn
gsa

Bạn đang sử dụng một raster band đơn hay multiband? Ví dụ này là cho một raster ban nhạc duy nhất.
Aaron

Nó xuất phát từ một quá trình rasterize của một vectơ (vùng đất ngập nước) không phải là hình ảnh vệ tinh nên tôi sẽ đi với một dải duy nhất.
gsa

Hãy thử cập nhật các gói raster / rgal của bạn: r-sig-geo.2731867.n2.nabble.com/
Aaron

@gsa, nếu cách này hiệu quả thì nên nâng cấp và chấp nhận câu trả lời! Nếu không, chỉnh sửa và làm rõ câu hỏi ban đầu của bạn.
Simbamangu
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.