繁体   English   中英

如何将地理投影应用于R中的栅格文件?

[英]How do I apply a geographic projection to raster files in R?

我试图从一组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丢失了spaital参考信息? 当我在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)

这不起作用。

有小费吗? 谢谢!

你应该尝试这样的事情:

library(raster)
library(sp)
library(rgdal)

#work wd
wd <- "C:/Users/...../data"

#get raster files from work wd 
files <- list.raster.files(path = wd, pattern = ".tif$",
  recursive =FALSE, return_rasters = FALSE, return_bbox = FALSE)

#create rasterStack
mystack <- stack(files$raster_files)
proj4string(mystack) <- CRS("+init=epsg:3857") # OSM Mercator projection

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM