使用project()投影含RGB图层的SpatRaster后数值丢失问题求助
RGB图层SpatRaster投影后数值丢失问题
在R语言中,将包含RGB图层的.tif文件转换为SpatRaster后,执行project()函数进行坐标投影会出现数值丢失的情况,绘图时仅返回NA值。已查阅过相关讨论案例,但那些案例中执行project()后数值仍保留(仅形式有变化)。
尝试过project()的多种参数设置,包括单独投影每个图层,但均未解决问题。怀疑可能需要转换数据类,但在文档及GitHub中未找到明确说明或相关bug报告。
可复现示例代码
library(basemaps) library(terra) library(sf) # 创建用于定义SpatRaster范围的sf对象 df <- data.frame(lon = c(170, 172), lat = c(-43, -45)) sf_poly <- df %>% st_as_sf(coords = c("lon", "lat"), crs = 4326) %>% st_bbox() %>% st_as_sfc() %>% st_as_sf() %>% st_transform(3857) r <- basemap_raster(ext = st_bbox(sf_poly)) %>% as("SpatRaster") r # class : SpatRaster # dimensions : 1012, 728, 3 (nrow, ncol, nlyr) # resolution : 305.7481, 305.7481 (x, y) # extent : 18924279, 19146864, -5621485, -5312068 (xmin, xmax, ymin, ymax) # coord. ref. : WGS 84 / Pseudo-Mercator # source : basemap_20240418094850.270686.tif # colors RGB : 1, 2, 3 # names : red, green, blue # min values : 167, 161, 162 # max values : 255, 255, 255
尝试过的解决方法
方法1:投影完整SpatRaster
r4326 <- project(r, "EPSG:4326") r4326 <- project(r, "+proj=longlat +datum=WGS84 +no_defs +type=crs") r4326 <- project(r, crs("EPSG:4326")) r4326 <- project(r, "EPSG:4326", method = "bilinear") r4326 <- project(r, "EPSG:4326", method = "near") r4326 <- project(r, "EPSG:4326", align = TRUE) r4326 <- project(r, "EPSG:4326", mask = TRUE) r4326 # class : SpatRaster # dimensions : 881, 882, 3 (nrow, ncol, nlyr) # resolution : 0.002268062, 0.002268062 (x, y) # extent : 169.9997, 172.0001, -44.99879, -43.00063 (xmin, xmax, ymin, ymax) # coord. ref. : lon/lat WGS 84 (EPSG:4326)
方法2:单独投影SpatRaster图层
r_list <- split(r, 1:nlyr(r)) %>% `names<-`(names(r)) r_list[[1]] # class : SpatRaster # dimensions : 1012, 728, 1 (nrow, ncol, nlyr) # resolution : 305.7481, 305.7481 (x, y) # extent : 18924279, 19146864, -5621485, -5312068 (xmin, xmax, ymin, ymax) # coord. ref. : WGS 84 / Pseudo-Mercator # source : basemap_20240418094850.270686.tif # name : red # min value : 167 # max value : 255 r1 <- r_list[[1]] %>% project("EPSG:4326") r1 # class : SpatRaster # dimensions : 881, 882, 1 (nrow, ncol, nlyr) # resolution : 0.002268062, 0.002268062 (x, y) # extent : 169.9997, 172.0001, -44.99879, -43.00063 (xmin, xmax, ymin, ymax) # coord. ref. : lon/lat WGS 84 (EPSG:4326)
恳请各位提供解决该问题的方案或思路。
内容的提问来源于stack exchange,提问作者L Tyrone
相关产品推荐
相关产品推荐

