top of page

WEEK3

  • 作家相片: TANG HAORAN
    TANG HAORAN
  • 2024年3月12日
  • 讀畢需時 1 分鐘

消除异常值

library(raster)

library(pbapply)

# 设置工作文件夹路径

work_dir <- "D:/Rlab/thesis/sr900hklcz.tif_mw1"

setwd(work_dir)

# 列出文件夹中所有的 .tif 文件

tif_files <- list.files(pattern = "\\.tif$", full.names = TRUE) # 添加full.names=TRUE以获取完整路径

print(tif_files)

# 创建一个新的子文件夹来存放处理后的文件,如果它还不存在的话

new_dir <- file.path(work_dir, "knocked_out")

if (!dir.exists(new_dir)) {

dir.create(new_dir)

}

# 定义一个函数来敲除特定的值

knockout_value <- function(raster_file, value_to_replace = c(-999, 999), replacement = NA) {

r <- raster(raster_file)

r[r %in% value_to_replace] <- replacement

return(r)

}

# 应用定义好的函数knockout_value到每个.tif文件,并显示进度条

rasters_knocked_out <- pblapply(tif_files, knockout_value)

# 设置投影坐标系

projection <- "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"

# 为每个栅格数据定义投影信息

rasters_with_projection <- pblapply(rasters_knocked_out, function(r) {

projection(r) <- projection

return(r)

})

# 保存修改后的栅格文件到新创建的子文件夹,并显示进度条

pblapply(seq_along(rasters_with_projection), function(i) {

outFile <- file.path(new_dir, basename(tif_files[i]))

projected_raster <- projectRaster(rasters_with_projection[[i]], crs = projection)

writeRaster(projected_raster, filename = outFile, format = "GTiff", overwrite = TRUE)

})


最新文章

查看全部
WEEK13

Week 13: Wrapping up my journey of learning R programming. Consolidated my knowledge and practiced with various exercises. Feeling...

 
 
 
WEEK12

Week 12: Made significant progress in R programming. Explored advanced topics like data mining and machine learning. Excited to dive...

 
 
 

留言


Silver Team

©2024 Silver Team 版權所有。透過 Wix.com 製作的理想網站

bottom of page