R 多变量数据预处理_R语言空间数据分析(九):栅格数据探索性分析

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言高效数据处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。

https://zhuanlan.zhihu.com/p/283199848​zhuanlan.zhihu.com
23387a2a55f8fce640795eb1aa16c297.png

EDA(Exploratory Data Analysis,探索性数据分析)是数据科学重要的一个环节,对于给定的栅格数据,我们要如何进行可视化呢?本帖子将会基于HopeR:R语言空间数据分析(八):栅格数据预处理中清洗好的数据,进行探索性数据分析。首先,我们把数据导入R环境中。这里,我们只对1到7共七个波段进行分析。

library(pacman)
p_load(sp,raster,rgeos,rgdal,rasterVis,raster,fs,sf,tidyverse)

dir("data/LC08_L1TP_203023_20190513_20190521_01_T1/mask",full.names = T) %>% 
  str_subset(pattern = "_B[1-7]_") %>% 
  stack() -> manc

在manc变量中,波段是按照1到7的顺序排列的,我们根据波段的光谱名称,给这些图层进行命名:

# Name the Bands based on where they sample the electromagentic spectrum
names(manc) <- c('ultra-blue', 'blue', 'green', 'red', 'NIR', 'SWIR1', 'SWIR2') 

然后,我们可以对manc这个变量进行一些基本的探索:

crs(manc) # projection 坐标系
extent(manc) # extent 分布范围
ncell(manc) # number of cells 格点数量
dim(manc) # number of rows, columns, layers 数据维度
nlayers(manc) # number of layers 图层个数
res(manc) # xres, yres 像素是多少乘多少的

be2c598ec30900a16a222173ba81dd92.png

然后,让我们来对图层进行可视化。可以利用红绿蓝这三个光谱图层合成真彩色图像,也可以利用其它光谱图层合成伪彩色图像,关于这方面的知识,可以参考遥感影像图中真彩色,假彩色,伪彩色是怎样定义的?为什么要分这些类?。这里我们直接用代码进行实现:

# visualization
# true colour composite
manc_rgb <- stack(manc$red, manc$green, manc$blue)
# false colour composite
manc_false <- stack(manc$NIR, manc$red, manc$green)

manc_rgb %>%
  plotRGB(.,axes=TRUE, stretch="lin")
manc_false %>%
  plotRGB(.,axes=TRUE, stretch="lin")

90cc6c25049074ae794891abff3a9682.png
真彩色图像

350c193c2f53ba645f7d4e7f892aea52.png
伪彩色图像

我们可以只观察一个波段的图层,比如SWIR2:

plot(manc$SWIR2)

也可以同时观察4个图层,基本包中的绘图函数可以这样实现:

## How are these bands different?
#set the plot window size (2 by 2)
par(mfrow = c(2,2))
#plot the bands
plot(manc$blue, main = "Blue")
plot(manc$green, main = "Green")
plot(manc$red, main = "Red")
plot(manc$NIR, main = "NIR")

dd66676288d523d1b990aa26e6ae242a.png

最后,我们可以尝试使用GGally包的ggpairs函数来探知不同光谱之间的相关性(只进行抽样调查,抽了100个样本):

library(ggplot2)
library(GGally)

manc %>%
  as.data.frame(., na.rm=TRUE)%>%
  sample_n(., 100)%>%
  ggpairs(.,axisLabels="none")

6a24fa27312e66b3a116850cf1e974eb.png

对角线上是单变量的分布状况,左下角为散点图,右上角是变量两两之间的相关系数,星号*代表显著水平,使用的是Pearson相关系数(参考自Correlation matrix with ggally)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值