gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:00:40 24 4
gpt4 key购买 nike

我正在尝试从一组 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)

那行不通。

有小费吗?谢谢!

最佳答案

你应该尝试这样的事情:

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

关于r - 如何将地理投影应用于 R 中的光栅文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23770751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com