Raster 00: Intro to Raster Data in R

R中的栅格数据介绍:

1、栅格的定义

栅格数据是以二维矩阵的形式来表示空间地物或现象分布的数据组织方式.每个矩阵单位称为一个栅格单元(cell)。栅格的每个数据表示地物或现象的属性数据。因此栅格数据有属性明显,定位隐含的特点。其中栅格数据按数据类型又可以分为连续型的栅格数据(高程、降水、温度)和分类型的栅格数据(分类图(一个像素代表一种地物))。
在这里插入图片描述

2、在R中加载并处理栅格

查看栅格数据属性

GeoTIFF包含一组嵌入式标签,其中包含有关栅格的元数据。

library(pacman)
p_load(raster,rgdal,rasterVis,ggplot2)

wd <- "G:/Rdata/neon_data/NEONDSAirborneRemoteSensing/"
setwd(wd)
#view attributes before opening file
GDALinfo(paste0(wd,"HARV/DSM/HARV_dsmCrop.tif"))
# rows        1367 
# columns     1697 
# bands       1 
# lower left origin.x        731453 
# lower left origin.y        4712471 
# res.x       1 
# res.y       1 
# ysign       -1 
# oblique.x   0 
# oblique.y   0 
# driver      GTiff 
# projection  +proj=utm +zone=18 +datum=WGS84 +units=m +no_defs 
# file        G:/Rdata/neon_data/NEONDSAirborneRemoteSensing/HARV/DSM/HARV_dsmCrop.tif 
# apparent band summary:
#         GDType hasNoDataValue NoDataValue blockSize1 blockSize2
# 1 Float64           TRUE       -9999          1       1697
# apparent band statistics:
#         Bmin   Bmax    Bmean      Bsd
# 1 305.07 416.07 359.8531 17.83169
# Metadata:
#         AREA_OR_POINT=Area 

加载栅格

#load raster into R
DSM_HARV <- raster(paste0(wd,"HARV/DSM/HARV_dsmCrop.tif"))

#view raster structure
DSM_HARV

# class      : RasterLayer
# dimensions : 1367, 1697, 2319799  (nrow, ncol, ncell)
# resolution : 1, 1  (x, y)
# extent     : 731453, 733150, 4712471, 4713838  (xmin, xmax, ymin, ymax)
# crs        : +proj=utm +zone=18 +datum=WGS84 +units=m +no_defs
# source     : G:/Rdata/neon_data/NEONDSAirborneRemoteSensing/HARV/DSM/HARV_dsmCrop.tif
# names      : HARV_dsmCrop
# values     : 305.07, 416.07  (min, max)

#plot raster
plot(DSM_HARV,main="NEON Digital Surface Model\nHarvard Forest")


在这里插入图片描述

GeoTIFF

在各种地理信息系统、摄影测量与遥感等应用中, 都要求图像具有地理编码信息, 例如图像所在的坐标系、比例尺、图像上点的坐标、经纬度、长度单位及角度单位等等。对于存储和读取这些信息,纯TIFF 格式的图像文件是很难做到的,而是GeoTIFF 作为TIFF 的一种扩展, 在TIFF 的基础上定义了 一些GeoTag (地理标签),从而对各种坐标系统、椭球基准、投影信息等进行定义和存储,使图像数据和地理数据存储在同一图像文件中, 这样就为广大用户制作和使用带有地理信息的图像提供了方便的途径。

Coordinate Reference System:

A comprehensive online library of CRS information.
QGIS Documentation - CRS Overview.
Choosing the Right Map Projection.
NCEAS Overview of CRS in R.
坐标参考系统或CRS告诉R栅格在地理空间中的位置。 它还告诉R应该使用什么方法在地理空间中“展平”或投影栅格。

myCRS <- crs(DSM_HARV)
myCRS
# CRS arguments:
#   +proj=utm +zone=18 +datum=WGS84 +units=m +no_defs

范围:

在这里插入图片描述

分辨率

在这里插入图片描述

计算栅格最小最大值

#calculate Raster Min and Max Values
DSM_HARV <- setMinMax(DSM_HARV)
minValue(DSM_HARV)
# [1] 305.07
maxValue(DSM_HARV)
# [1] 416.07

NoData Values

#NoData Values in rasters
RGB_stack <- stack(paste0(wd, "HARV/RGB_Imagery/HARV_RGB_Ortho.tif"))
#create an RGB image from the raster stack
par(col.axis="white", col.lab="white", tck=0)
plotRGB(RGB_stack, r=1, g=2, b=3,
        axes=TRUE, main="Raster With NoData Values\nRendered in Black")

在这里插入图片描述
给NoData 赋值为NA值

func <- function(x){
        x[rowSums(x == 0) == 3, ] <- NA
        x
}
newRGBImage <- calc(RGB_stack,func)
par(col.axis="white", col.lab="white", tck=0)
plotRGB(newRGBImage, r=1, g=2, b=3,
     axes = TRUE, main = "Raster with No Data Values\nNoDataValues = NA"
     )

在这里插入图片描述

坏值/错误值/异常值

即超出数据集适用范围的值(例如,0-1(0-10000)范围内反射率数据超过1(10000)的值;NDVI数据中超过[-1,1]范围的值)。
那么如何利用R语言找出这些在数据收集或者处理的过程中出现的异常值呢?
创建直方图
在这里插入图片描述
但是直方图默认值处理100000个像素值,而本栅格数据有2319799个像素值
所以:

#create histogram that includes with all pixels values in the raster
hist(DSM_HARV,
     maxpixels = ncell(DSM_HARV),
     main="Distribution of DSM Values\n All Pixels Values Included
     NEON Harvard Forest Field site",
     xlab="DSM Elevation Value(m)",
     ylab="Frequency",
     col="wheat4")

在这里插入图片描述

多波段栅格数据

在这里插入图片描述

#view number of bands
nlayers(DSM_HARV)
# [1] 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值