【发布时间】:2014-05-21 07:57:15
【问题描述】:
我正在尝试从一组 60 个栅格文件中创建一个大型(空间?)数据框,以用于后续的多变量统计分析(例如 PCA)。
我对在 R 中处理空间数据有点陌生,不了解空间坐标数据是如何在数据文件中保留或强制执行的。
我使用以下代码读取光栅文件并从中创建堆栈:
#load libraries
library(raster)
library(sp)
library(rgdal)
library(spatial.tools)
#set wd
setwd("C:/Users/...../data/")
#get raster files from wd
files <- list.raster.files(path = getwd(), pattern = ".tif$", recursive =FALSE, return_rasters = FALSE, return_bbox = FALSE)
#create rasterStack
mystack <- stack(files$raster_files)
#read metadata / summary of rasterStack
mystack
#output has "NA" for coordinate reference system.
为什么在我导入文件时 R 会丢失空间参考信息? 当我查看 ArcGIS 中的栅格文件时,它们肯定有投影信息。
我尝试以这种方式手动应用投影:
#first define the projection using the proj4 syntax
projection <- "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"
#then apply the projection to the rasterStack
projectRaster(files, projection, method = bilinear, filename = "STACKprj")
这给了我一个错误,即输入数据(“mystack”)有 NA 作为参考系统,即,如果没有起始参考系统,它就无法工作
#I try instead to apply the projection in this way:
STACKprj <- projection(mystack)
这行不通。
有什么建议吗?谢谢!
【问题讨论】:
-
projection(mystack) <- "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"工作吗? -
改为
projection <- CRS("+proj=merc +a=6378137 +b=6378137 ...");proj4string(mystack) <- projection
标签: r projection raster