信息技术改变生活

Xiaobo Wu'shared space

R根据经纬度位置提取栅格值

根据经纬度提取栅格值很常用,也有很多方法,如ArcGIS,但只能提取单波段值;其他ENVI+IDL估计要多行代码才能实现,如Code,但是,R语言的Raster包,很简单,只用函数extract即可(http://www.inside-r.org/packages/cran/raster/docs/extract)。需要说明的是如果是多波段,需要用stack读入栅格,否则只能获取第一波段的值。示例代码如下(多点同时提取):

##extract VALUE from raster 
#soilDataRes is data Frame(Array)  sp package
coordinates(dataRes) = c("Lon","Lat")
#read Raster
rasterData <- stack(rasterFile)
#extract value
soilExtract <- extract(rasterData,dataRes,sp =TRUE)
#get data.frame result
soilExtractDf <-soilExtract@data
## Write res  var is self define
outPutName <- paste(var, ".csv",sep='')
write.csv(soilExtractDf, file = outPutName)