重新投影时CRS参数错误

问题描述

我正在尝试在for循环中迭代多个栅格(+500),但遇到了一些问题。

首先,我想将它们从CRS epsg:4326重新投影到CRS epsg:32614,然后使用分辨率和扩展性较小的蒙版栅格对它们进行重新采样,最后为工作目录中的每个栅格写入结果栅格,但我一直在获取有关CRS参数的以下错误消息:

Error in CRS(x) : PROJ4 argument-value pairs must begin with +: E:\Proyecto PM2.5\2_PM_2.5_Processing\Test/AOD_MOD_CDTDB_April_2016.tif

在这里查看了多个帖子,但无法解决这个问题。以下是我的代码,这位R初学者非常感谢您的帮助

#find all tifs in your directory
dir<-"E:\\Proyecto PM2.5\\2_PM_2.5_Processing\\Test"

#get a list of all files with .tif in the name in the directory
files<-list.files(path=dir,pattern='.tif',full.names = TRUE)

#raster with the expected characteristics: extension,cellsize,number of pixels
r_ref <- raster("E:\\Proyecto PM2.5\\3_PM_2.5_Entrega\\temporal\\Raster_C.tif")

for (file in files){
  name <- file
  projectRaster(name,crs="+init=epsg:32614")
  resample(file,r_ref,method="ngb")
  savename<-sub("ZMVM",name,basename(file))
  writeraster(r,file=savename,)
}

解决方法

在提问时,请创建一个最小的,独立的,可复制的示例。如果无法实现,请至少删除一些与他人无关的内容,例如文件夹名称和list.files,以简化代码。 。为简化起见,也请删除循环,但显示文件的输入数据。如果这样做,您将能够回答自己的问题。

你做

for (file in files){
   name <- file
   projectRaster(name,crs="+init=epsg:32614")

因此namefile相同(为什么要进行复制?)-文件名。 您要求projectRaster投射一个字符串(文件名)。您的意图肯定是这样的

for (file in files){
   r <- raster(file)
   projectRaster(r,crs="+init=epsg:32614")