Python实现snap:对齐多张遥感影像的空间范围

这篇具有很好参考价值的文章主要介绍了Python实现snap:对齐多张遥感影像的空间范围。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  本文介绍基于PythonArcPy模块,实现基于栅格图像批量裁剪栅格图像,同时对齐各个栅格图像的空间范围统一其各自行数列数的方法。

  首先明确一下我们的需求。现有某一地区的多张栅格遥感影像,其虽然都大致对应着同样的地物范围,但不同栅格影像之间的空间范围行数列数、像元的位置等都不完全一致;例如,某一景栅格影像会比其他栅格影像多出一行,而另一景栅格影像可能又会比其他栅格影像少一列等等。我们希望可以以其中某一景栅格影像为标准,将全部的栅格影像的具体范围、行数、列数等加以统一。

  本文所用到的具体代码如下。

# -*- coding: utf-8 -*-
"""
Created on Thu Dec 29 21:13:19 2022

@author: fkxxgis
"""

import arcpy

tif_file_path = r"E:\02_Project\01_Chlorophyll\ClimateZone\Original"
result_file_path = r"E:\02_Project\01_Chlorophyll\ClimateZone\Original_Snap/"
snap_file_name = r"E:\02_Project\01_Chlorophyll\ClimateZone\Original\F_LC.tif"

arcpy.env.workspace = tif_file_path
arcpy.env.snapRaster = snap_file_name

tif_file_list = arcpy.ListRasters("*", "tif")

for tif_file in tif_file_list:
    key_name = tif_file.split(".tif")[0] + "S.tif"
    arcpy.Clip_management(tif_file,
                          "#",
                          result_file_path + key_name,
                          snap_file_name,
                          "#",
                          "#",
                          "MAINTAIN_EXTENT")

  其中,tif_file_path是保存有我们原有栅格图像的路径,result_file_path是裁剪后各个结果图像的保存路径(记得在这一路径后加一个正斜杠/,否则之后输出结果的路径会有问题),snap_file_name是裁剪其他栅格图像时,所用的模板栅格图像——因为我们要统一各个栅格图像的行号与列号,所以很显然,这里这个模板图像就需要找各个栅格图像中,行数与列数均为最少的那一景图像。这里需要注意,如果大家的各个栅格图像中,行数与列数最少的栅格不是同一个栅格,那么可以分别用行数最少、列数最少的这两个栅格分别作为模板,执行两次上述代码。

  代码整体思路也很简单:首先,我们基于arcpy.ListRasters()函数,获取tif_file_path路径下原有的全部.tif格式的图像文件,并以列表的形式存放于tif_file_list中;随后,逐一取出tif_file_list列表中的栅格文件,进行裁剪处理。这里的裁剪我们是通过arcpy.Clip_management()函数来实现的,其各项参数的具体含义大家可以参考官方帮助文档,我们这里就只对本文中需要修改的参数加以介绍。

  其中,第一个参数就是当前循环所用的栅格图像文件,第三个参数是结果文件的保存路径与文件名,第四个参数则是模板文件;最后一个参数"MAINTAIN_EXTENT"是为了保证得到的裁剪后结果图像严格与模板图像的行数、列数相匹配。除此之外,几个"#"表示我们对其他参数暂时不配置。

  此外,在代码开头的这句arcpy.env.snapRaster = snap_file_name,表明我们将以所选用的模板文件为标准,使得输出的结果文件的像元大小、图像范围等与模板文件保持一致。这里需要注意,这一句代码与前述的"MAINTAIN_EXTENT"参数缺一不可——只有二者同时出现,才可以保证输出结果与模板文件是严格一致的。

  另一方面,由于我们用到了ArcPy模块,因此如果大家的Python版本是3.0及以上,则需要在ArcMap软件中的Python运行框,或其对应的IDLE(如下图所示)中运行上述代码。

Python实现snap:对齐多张遥感影像的空间范围

  运行结果后,可以发现所有输出结果文件就具有完全一致的行数与列数了,且其各自的像元位置也是完全一致的。

  至此,大功告成。文章来源地址https://www.toymoban.com/news/detail-837875.html

到了这里,关于Python实现snap:对齐多张遥感影像的空间范围的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于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日
    浏览(50)
  • 基于python与GDAL获取遥感影像

    最近做项目,发现网上关于利用python与GDAL读取遥感影像数据的资料比较少。因此整理了一些,以方便自己学习。      1.首先确认自己电脑上安装好python版的GDAL库。这个会以后有时间慢慢整理。       2. 导入gdal库          from osgeo import gdal       3. 注册GDAL库   

    2023年04月25日
    浏览(31)
  • 【Python&RS】基于GDAL镶嵌拼接遥感影像

            没啥好说的,处理高分辨率影像时,数据高达几十G。用ENVI或者ArcGIS进行影像的拼接时,往往会出现未响应的情况。出现未响应的话,运气好等个一晚上可能会动一动,运气不好就等着强制关闭重做吧。         所以搞了一个Python进行拼接操作的代码,虽然速度不

    2024年02月02日
    浏览(26)
  • Python批量填补遥感影像的无效值NoData

      本文介绍基于 Python 中 ArcPy 模块,对大量栅格遥感影像文件 批量 进行 无效值 ( NoData 值)填充的方法。   在处理栅格图像文件时,我们经常会遇到图像中存在有无效值(即 NoData 值)的情况。如下图所示,这里有一个 矢量面要素图层 和该矢量图层范围对应的一景 栅

    2024年02月07日
    浏览(29)
  • 利用Python对含有地理信息的遥感影像,使用随机森林模型回归,并保存预测影像

    最近在做随机森林回归实验时,遇到了一个问题: 在做回归时,用的是excel点数据做的回归,像这样: 但是如何把这个训练好的模型应用到整幅含有地理信息的遥感影像上去,并保存这个预测图像呢?对这个问题,展开了一些思考,废话不多说,直接上代码。 导入数据,这

    2024年04月16日
    浏览(31)
  • Python ArcPy批量计算多时相遥感影像的各项元平均值

      本文介绍基于 Python 中 ArcPy 模块,对大量 长时间序列 栅格遥感影像文件的 每一个像元 进行 多时序平均值 的求取。   在遥感应用中,我们经常需要对 某一景 遥感影像中的 全部像元的像素值 进行平均值求取——这一操作很好实现,基于 ArcMap 软件或者简单的 Python 代

    2023年04月18日
    浏览(33)
  • 【Python&RS】遥感影像的像素坐标转地理坐标(仿射变换)

    ​         GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。         Python的GDAL库作为栅格数据的处理转换库,其支持几百种栅格数

    2024年02月08日
    浏览(33)
  • python:使用Scikit-image对遥感影像进行梯度特征提取(gradient)

    作者:CSDN @ _养乐多_ 在本博客中,我们将介绍如何使用Scikit-Image来进行梯度特征提取(gradient),并且提供一个示例代码,演示了如何在单波段遥感图像上应用这些方法。 梯度特征是指用于表示图像中亮度或颜色变化的特征。它包括两个关键成分:梯度幅值和梯度方向。梯度

    2024年02月08日
    浏览(49)
  • ENVI实现QUAC、简化黑暗像元、FLAASH方法的遥感影像大气校正

    本文介绍基于 ENVI 软件,实现对 Landsat 7 遥感影像加以 预处理 与多种不同 大气校正 方法的操作。 目录 1 数据导入与辐射定标 2 波段合成 3 编辑头文件 4 转换文件格式 5 QUAC快速大气校正 6 简化黑暗像元法大气校正 7 FLAASH大气校正 8 大气校正结果与其他处理对比分析 8.1 三种大

    2024年02月13日
    浏览(31)
  • SNAP处理Sentinel-1 SAR影像流程

    本文的处理流程适用于Sentinel-1 IW GRD 数据 关于 SLC 数据和 GRD 数据的区别和介绍,很容易找到,本文不再赘述。 本文的处理步骤包含了辐射定标、噪声去除、轨道校正、地形校正(地理编码),这些步骤完成后SAR影像便可正常投入使用。 不需要解压,点击 file–open product 打开

    2024年02月04日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包