基于R语言的raster包读取遥感影像

这篇具有很好参考价值的文章主要介绍了基于R语言的raster包读取遥感影像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  本文介绍基于R语言中的raster包,读取单张或批量读取多张栅格图像,并对栅格图像数据加以基本处理的方法。

1 包的安装与导入

  首先,我们需要配置好对应的R语言包;前面也提到,我们这里选择基于raster包来实现栅格图像数据的读取与处理工作。首先,如果有需要的话,我们可以先到raster包在R语言的官方网站中,查阅raster包的基本情况,比如其作者信息、当前的版本、所依赖的其他包等等;如下图所示。

基于R语言的raster包读取遥感影像

  当然,这些内容看不看都不影响我们接下来的操作。接下来,我们开始安装raster包;这里我是在RStudio中进行代码的撰写的。

  首先,我们输入如下的代码,从而开始raster包的下载与自动配置。

install.packages("raster")

  随后,按下回车键,运行代码,如下图所示。

基于R语言的raster包读取遥感影像

  可以看到,我们在安装raster包时,会自动将其所需依赖的其他包(如果在此之前没有配置过)都一并配置好,非常方便。

  接下来,输入如下的代码,从而将刚刚配置好的raster包导入。

library(raster)

随后,按下回车键,运行代码,如下图所示。

基于R语言的raster包读取遥感影像

  此时,在RStudio右下方的“Packages”中,可以看到raster包以及其所依赖的sp包都处于选中的状态,表明二者都已经配置成功,且完成导入。

基于R语言的raster包读取遥感影像

2 单一栅格图像读取与处理

  接下来,我们首先开始读取、处理单独一景栅格图像数据。

  首先,我们输入如下的代码;其中第一句是指定接下来要打开的栅格图像的路径与文件名,第二句则是通过raster()函数打开这一栅格图像。

tif_file_name <- r"(E:\02_Project\01_Chlorophyll\ClimateZone\Split\A_LCC0.TIF)"
tif_file <- raster(tif_file_name)

  运行上述代码。此时,我们可以在RStudio中右上方的“Environment”中看到我们刚刚新建的两个变量,以及其对应的值。

基于R语言的raster包读取遥感影像

  接下来,我们可以直接通过plot()函数,对刚刚读取到的栅格图像数据加以绘制。

plot(tif_file)

  运行代码后,可以在RStudio中右下方的“Plots”看到绘制完毕的图像。可以说,这一绘制栅格图像的方式,相较于PythonC++等语言都更为方便。

基于R语言的raster包读取遥感影像

  随后,我们简单介绍一下对这一栅格图像数据的处理操作。例如,我们可以通过mean()函数与sd()函数,计算栅格图像全部像元数值的平均值和标准差;这里我们用到了na.rm = TRUE参数,具体含义稍后会提到。

tif_mean <- mean(tif_file[], na.rm = TRUE)
tif_std <- sd(tif_file[], na.rm = TRUE)

  运行上述代码,随后输入如下的代码,即可查看我们刚刚计算得到的平均值与标准差。

tif_mean
tif_std

  结果图下图所示。

基于R语言的raster包读取遥感影像

  前面我们提到了na.rm = TRUE参数,这一参数表示是否消除数据集中无效值NA的影响;如果我们不将其设置为TRUE,那么就表示不消除数据集中的无效值;而如果我们的栅格图像中出现无效值(NoData值),那么就会使得平均值、标准差等计算结果同样为无效值NA;如下图所示。

基于R语言的raster包读取遥感影像

3 大量栅格图像读取与处理

  接下来,我们介绍一下基于raster包批量读取大量栅格图像的方法。

  首先,我们需要将存放有大量栅格图像的文件夹明确,并将其带入list.files()函数中;这一函数可以对指定路径下的文件加以遍历。其中,pattern是对文件名称加以匹配,我们用".tif$"表示只筛选出文件名称是以.tif结尾的文件;full.names表示是否将文件的全名(即路径名称加文件名称)返回,ignore.case表示是否不考虑匹配文件名称时的大小写差异。

tif_file_path <- list.files(r"(E:\02_Project\01_Chlorophyll\ClimateZone\Split\0)", pattern = ".tif$", full.names = TRUE, ignore.case = TRUE)

  运行上述代码,并将这一变量打印出来,结果如下图所示。可以看到,此时我们已经将指定路径下的.tif格式的栅格图像全部提取出来了。

基于R语言的raster包读取遥感影像

  接下来,我们通过stack()函数,将全部栅格图像的数据放入同一个变量中;随后,我们可以打印一下这个变量,查看其中的内容。这里需要注意,如果通过这种方法批量读取栅格图像,需要保证每一景图像的空间参考信息、行数与列数完全一致,否则会弹出报错信息。如果大家的栅格图像行数与列数不完全一致,可以参考文章Python实现snap:对齐多张遥感影像的空间范围,对各个栅格图像加以统一。

tif_file_all <- stack(tif_file_path)
tif_file_all

  运行上述代码,得到如下所示的结果。可以看到,这一变量中保存了12个图层(虽然栅格图像只有7景,但是其中有几景是具有多个波段的);其中,除了最基本的栅格图像维度、空间范围、空间参考信息等内容,names还展示了12个图层各自的名称,min valuesmax values则还展示了每一个图层的最小值与最大值。

基于R语言的raster包读取遥感影像

  此外,我们还可以继续基于plot()函数,直接批量绘制多个图层各自的栅格图像。

plot(tif_file_all)

  运行上述代码,结果如下所示。

基于R语言的raster包读取遥感影像

  此外,我们还可以基于mean()等函数,对栅格图像的基本数学统计信息加以计算。不过在对多个栅格图像数据加以计算时需要注意,在tif_file_all后是否添加[]符号,得到的结果是不一样的——如果不添加[]符号,我们相当于是加以逐像元分析,对每一个位置的像元在12个图层中的数值加以统计,并计算该像元在12个图层中的平均值;因此最终所得结果是一景新的栅格图像,图像中的每一个像元数值都表示该像元在12个图层中的平均值。而如果我们添加了[]符号,那么就和前述单一栅格图像的处理一样,计算的结果就是一个数值,即12个图层中每一个像元对应数值的总体的平均值。

tif_all_mean <- mean(tif_file_all, na.rm = TRUE)
tif_all_mean_2 <- mean(tif_file_all[], na.rm = TRUE)

  我们分别打印上述两个变量,得到结果如下图所示。

基于R语言的raster包读取遥感影像

  由此可以更加明显地看出添加[]符号与否的差异。

  本文就只是对R语言raster包读取、处理栅格数据加以基本的方法介绍,至于更加深入的用法,我们将在后期的文章中加以介绍。文章来源地址https://www.toymoban.com/news/detail-840165.html

到了这里,关于基于R语言的raster包读取遥感影像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于ENVI的遥感影像解译——以Landsat8数据为例(上)

    遥感影像解译 是一种指从图像获取信息的基本过程。即根据各专业(部门)的要求,运用解译标志和实践经验与知识,从遥感影像上识别目标,定性、定量地提取出目标的分布、结构、功能等有关信息,并把它们表示在地理底图上的过程。例如,土地利用现状解译,是在影像

    2024年02月09日
    浏览(42)
  • 卷积神经网络(CNN):基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类

    我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。随着小卫星星座的普及,对地观测已具备多次以上的全球覆盖能力,遥感影像也

    2024年02月04日
    浏览(59)
  • 从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类

    我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。随着小卫星星座的普及,对地观测已具备多次以上的全球覆盖能力,遥感影像也

    2024年01月22日
    浏览(56)
  • 基于Python3.7实现的双时相遥感影像变化检测(PaddlePaddle框架和AI Studio平台)

    目 录 第一章 绪论 1 1.1问题背景及意义 1 1.2国内外研究现状 1 1.3论文主要研究内容 2 1.4论文组织结构 3 第二章 相关技术 5 2.1遥感图像变化检测 5 2.2 孪生网络 7 2.3 残差网络 8 2.4 注意力机制 9 第三章 基于BIT的遥感影像变化检测 11 3.1 Transformer模型 11 3.2 BIT模型 12 3.3 AC-BIT模型 1

    2024年01月19日
    浏览(70)
  • PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像问题深度学习优化实践技术应用

    我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时代已然来临。随着小

    2024年02月10日
    浏览(63)
  • R语言【raster】——raster():创建一个RasterLayer对象

    Package  raster  version 3.6-27 创建RasterLayer对象的方法。RasterLayer对象可以从无到有,一个文件,一个范围对象,一个矩阵,一个“图像”对象,或者从Raster*, Spatial*, im (spatstat) asc, kasc (adehabitat*), grf (geoR)或kde对象创建。 在许多情况下,例如,当一个RasterLayer是从一个文件中创

    2024年02月22日
    浏览(47)
  • 【遥感专题系列】影像信息提取之——面向对象的影像分类技术

    “同物异谱,同谱异物”会对影像分类产生的影响,加上高分辨率影像的光谱信息不是很丰富,还有经常伴有光谱相互影响的现象,这对基于像素的分类方法提出了一种挑战,面向对象的影像分类技术可以一定程度减少上述影响。 本专题以ENVI中的面向对象的特征提取FX工具为

    2024年01月19日
    浏览(55)
  • (二)Landsat_5 TM 遥感影像波段合成真假彩色影像

    回顾以下Landsat系列卫星的发展史,可以发现Landsat_5卫星已经退役,作为世界上寿命最长的地球观测卫星,其在影像方面对人类的发展具有很深刻的意义。Landsat_5 TM共有7个波段,通过不同的波段组合,形成不同遥感图像,也就是常见的红绿蓝三通道影像立方体。地物对每一个

    2024年02月11日
    浏览(56)
  • 【学习笔记】遥感影像分类相关精度指标

    混淆矩阵是分类精度的评定指标。是一个用于表示分为某一类别的像元个数与地面检验为该类别数的比较阵列。 对检核分类精度的样区内所有的像元,统计其分类图中的类别与实际类别之间的混淆程度。 混淆矩阵中,对角线上元素为被正确分类的样本数目,非对角线上的元

    2024年01月22日
    浏览(64)
  • 通过Stable Diffusion生成虚假的遥感影像

    这两天玩了一下stable diffusion,是真的好玩! 然后我在想遥感有没有相关的生成模型,找了一下,还真找到了(https://github.com/xiaoyuan1996/Stable-Diffusion-for-Remote-Sensing-Image-Generation/tree/main)。 该模型的作者是空天院的 Zhiqiang yuan ,他提供了相关的训练代码、预测代码、已经训练好

    2024年01月24日
    浏览(242)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包