我使用这个例子在R中加载Radolan数据。
binary_filepath <- paste0("raa01-rw_10000-1708091950-dwd---bin")
header_end <- regexpr("\003", readLines(binary_filepath, 1))
rb_stream <- file(binary_filepath, "rb")
skip_temp <- readBin(rb_stream, "raw", n = header_end, endian = "little")
rb_data <- readBin(rb_stream, "raw", size = 1, n = 900*900*2, endian = "big")
rb_data <- rawToBits(rb_data)
rbi <- lapply(seq(0, 900*900-1, 1), function(x){
sum(as.integer(rb_data[(x*16+1):(x*16+12)]) * 2**seq(0, 11, 1))
})
rbi <- unlist(rbi)
rbi[1:16]
rb <- raster(t(matrix(rbi, ncol = 900, nrow = 900)))
rb <- flip(rb, "y")
radolan_proj <-
CRS("+proj=stere +lat_0=90 +lat_ts=90 +lon_0=10 +k=0.93301270189 +x_0=0 +y_0=0 +a=6370040 +b=6370040 +to_meter=1000 +no_defs")
extent(rb) <- extent(-523.4622, 376.5378, -4658.645, -3758.645)
projection(rb) <- radolan_proj
RADOLAN数据是一种立体投影网格。该网格中的每个点间隔1公里。
class : RasterLayer
dimensions : 900, 900, 810000 (nrow, ncol, ncell)
resolution : 1, 1 (x, y)
extent : -523.4622, 376.5378, -4658.645, -3758.645 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=stere +lat_0=90 +lat_ts=90 +lon_0=10 +k=0.93301270189 +x_0=0 +y_0=0 +a=6370040 +b=6370040 +to_meter=1000 +no_defs
data source : in memory
names : layer
values : 0, 2500 (min, max)
我希望为GPS数据制作一个纬度/经度查找表。如何将此rb对象转换为纬度/经度网格?
谢谢!
raster::extract
来获取特定地理位置的z值。如果你有一些来自外部数据集的GPS坐标,可以在rb_wgs84
上使用它:raster::extract(rb_wgs84, mydata)
。 - Sébastien Rochette