解决不同影像裁剪后栅格数据行列不一致问题
前言
在处理栅格数据时,尽管用同一个矢量文件裁剪栅格数据,不同数据来源的栅格行列数也会出现不一致的情况。如果忽略或解决不好,会导致后续数据处理出现意想不到的误差或错误,尤其是利用编程实现数据处理时。因此,应当首先对栅格行列不一致的数据进行匹配处理,以降低出现BUG的风险。
本文利用Python算法实现栅格数据行列匹配,通过案例说明算法的有效性。
1、思路
利用同一个矢量文件裁剪的栅格数据,尽管会出现栅格行列数不一致的情况,但行列数差别不大,而且通过观察可以看出两个数据行列数的具体差别。
可以选择一个基准数据,将其余数据进行对比与匹配。
添加或删减数据某侧指定的行数或列数,输出与基准数据空间位置相一致的匹配结果。
2、代码实现
这里遥感影像读取主要使用GDAL读取。
# -*- coding: utf-8 -*-import sys
import numpydef DataMacth(in_base_raster, in_mtc_raster, out_raster, rc=[0, 0, 0, 0]):''':param in_base_raster::param in_mtc_raster::param out_raster::param rc: <up, down, left, right>:return:'''# 读取基准栅格数据与待匹配栅格数据及其属性参数r_in_mtc = ReadRaster(in_mtc_raster)r_in_base = ReadRaster(in_base_raster)mtcdata = r_in_mtc.datanCols = r_in_base.nColsnRows = r_in_base.nRowsgeoTrans = r_in_base.geotranssrs = r_in_base.srsNDV = r_in_mtc.noDataValue# 新建与基准栅格数据行列一致的空矩阵data_new = numpy.zeros((nRows, nCols))# 根据指定的行列数进行增添与删减处理for m in range(nRows):for n in range(nCols):if (m < rc[0] or m > nRows - rc[1] - 1) or (n < rc[2] or n > nCols - rc[3] - 1):data_new[m][n] = NDVelse:data_new[m][n] = mtcdata[m - rc[0]][n - rc[2]]# 输出栅格数据WriteGTiffFile(out_raster, nRows, nCols, data_new, geoTrans, srs, NDV, gdal.GDT_Float32)print("\tSave as: %s" % out_raster)调用方法与案例:
上述算法函数中的参数之一rc是一个数组类型的参数,即指定的行数或列数,四个数组元素分别表示“up”, “down”, “left”, “right”四个方位
例如:[-1, 0, 0, 0]表示数据上方减去一行。
具体调用方式如下
if __name__ == "__main__":rootdir = <input data direction>in_base_raster = rootdir + os.sep + r"in_base_raster.tif"in_mtc_raster = rootdir + os.sep + r"in_mtc_raster.tif"out_raster = rootdir + os.sep + r"out_raster.tif"rc=[-1, 1, 0, 0]DataMacth(in_base_raster, in_mtc_raster, out_raster, rc=rc)3、案例
匹配前,基准栅格100 x 125,待匹配栅格101 x 126,像元数值与空间位置均不匹配。
rc = [0, -1, 0, -1]

程序执行后,基准栅格100 x 125,待匹配栅格100 x 125,像元数值与空间位置香匹配。

相关文章:
解决不同影像裁剪后栅格数据行列不一致问题
前言在处理栅格数据时,尽管用同一个矢量文件裁剪栅格数据,不同数据来源的栅格行列数也会出现不一致的情况。如果忽略或解决不好,会导致后续数据处理出现意想不到的误差或错误,尤其是利用编程实现数据处理时。因此,应当…...
visual studio2022配置opencv
标题:在vs下配置使用opencv 流程: 1、下载安装opencv 2、添加环境变量 3、vs中配置属性 4、使用 5、可能遇到的报错和解决 1、 下载安装opencv 官网下载地址: https://opencv.org/releases/ 我这里是windows环境,所以选择点击w…...
什么是销售管理?销售管理的五大职能
销售管理听起来很简单,似乎只是负责销售并确保客户满意,但事实上,它远不止于此。 销售管理的实际职能包括监督销售团队的工作,制定计划和设定目标,通常还包括确保销售流程的效率以获得最佳业务结果。 什么是销售管理…...
[CVPR‘22] EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks
paper: https://nvlabs.github.io/eg3d/media/eg3d.pdfproject: EG3D: Efficient Geometry-aware 3D GANscode: GitHub - NVlabs/eg3d总结: 本文提出一种hybrid explicit-implicit 3D representation: tri-plane hybrid 3D representation,该方法不仅有…...
Learning C++ No.9【STL No.1】
引言: 北京时间:2023/2/13/18:29,开学正式上课第一天,直接上午一节思想政治,下午一节思想政治,生怕我们……,但,我深知该课的无聊,所以充分利用时间,把我的小…...
Apifox推荐-django后台验证token配置
最近事情很多,但是我还是想写一片推荐apifox的文章。 优秀的UI,清晰地逻辑,丰富的功能。对于我们这种业余选手来说,他真的很便利。 更新新版后有了更多贴心的功能,让你感觉他是一个有温度的工具。 最重要的是…...
SAS应用入门学习笔记6
SQL (SAS): Features: 1)不需要在每个query中重复调用每个SQL; 2)每个statement都是独立去完成的; 3)我们是没有proc print和proc sort语句的;(order by) key synta…...
【3D目标检测】Pseudo-Stereo for Monocular 3D Object Detection in Autonomous Driving
目录概述细节背景与整体流程图像级别生成特征级别生成损失函数学习深度感知的特征概述 本文是基于单目图像的3D目标检测方法。 【2021】【MonoDLE】 研究的问题: 能否借助立体图像检测算法提高单目图像检测的效果如何实现右侧图像的生成 解决的方法: 受启发于伪…...
git 常用命令之 git branch
大家好,我是 17。 新建 git 分支 分支是并行开发的基础。分支名称的本质是对分支最后一个提交的引用。分支有多个,但 HEAD 只有一个,可以认为 HEAD 是"current branch"(当下的分支)。当你用git switch切换分支的时候,…...
Oracle数据泵
Oracle 数据泵:概览 作为一个基于服务器的用于高速移动数据与元数据的工具, Oracle 数据泵具有以下特点: •可通过 DBMS_DATAPUMP 调用 •可提供以下工具: – expdp – impdp – 基于 Web 的界面 •提供四种数据移动方法ÿ…...
ACWING寒假每日一题python
ACWING寒假每日一题 一、孤独的照片 一个点一个点的来看,比如对于GHGHG中间的G,找到他的左边的G,以及右边的G的位置,l,r分别等于1,答案就要多加上11 但是如果对于 GHHGHHG 中间的G,我们可以看到l,r等于2&a…...
御黑行动来袭--助力三月重保,构筑安全防线!
三月重保在即,重要网站及业务系统“零风险 零事故”是终极目标,作为业界网络安全实战派“老兵”--知道创宇将一如既往,为您提供重保期间“万无一失”的重要网站及业务系统防护。 值此三月重保的重要备战期,知道创宇推出由主力产品…...
JavaScript HTML DOM 元素 (节点)
HTML DOM 是指 HTML 文档对象模型,它是一种用于创建和处理 HTML 页面的标准 API。在 JavaScript 中,HTML DOM 可以被用来操作和修改网页的内容和结构。在本篇文章中,我们将详细探讨 JavaScript HTML DOM 元素 (节点)的作用以及在实际工作中的…...
mybatis-plus ---2
mybatis-plus插件 官网地址 分页插件 MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能 配置并使用自带分页插件 Configuration MapperScan("com.itzhh.mapper")//可以将主类中的注解移到此处 public class MybatisPlusConfig {Beanpublic …...
如何在Qt中设置背景图片,且不覆盖其它控件
正常情况,我们直接通过在样式表里设置背景图片会出现背景图片覆盖其它控件的情况,比如下面操作: 首先右击空白处,点击改变样式表。 然后选择background-image 然后点击铅笔图标 之后我们要先添加前缀,也就是我们…...
PMP考前冲刺2.14 | 2023新征程,一举拿证
承载2023新一年的好运让我们迈向PMP终点一起冲刺!一起拿证!每日5道PMP习题助大家上岸PMP!!!PMP项目管理题目1-2:1.公司了解到一个项目机会,领导让之前做过类似项目的项目经理报告一个粗略的成本…...
feign进行文件上传报错解决方案及有多个入参时的注意事项
一、情景回顾1、简单的文件上传的接口/*** 文件上传MultipartFile格式** param multipartFile 源文件* param filename 自定义文件名称,允许为空,为空时直接从源文件中拿* return*/RequestMapping("/uploadFileForMultipartFile")LogModuleAnn…...
java 枚举类型enum的用法详解
Java Enum原理 public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE }; 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要构造新对象。 因此,在比较两个枚举类型的值时,永远不需要调用equals方法…...
Java 基础面试题——关键字
目录1.Java 中的关键字是指什么?有哪些关键字?2.instanceof 关键字的作用是什么?3.访问修饰符 public、private、protected、以及不写(default)时的区别?4.Java 中有没有 goto 关键字?5.在 Java 中&#x…...
C++——运算符重载
1、运算符重载的概念 运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。运算符重载的目的是让语法更加简洁运算符重载不能改变本来寓意,不能改变基础类型寓意运算符重载的本质是另一种函数调用…...
Enzyme协议:DeFi资产管理智能合约架构与实战指南
1. 项目概述:当智能合约遇上资产管理如果你在区块链领域,特别是DeFi(去中心化金融)生态里待过一段时间,大概率听说过“Enzyme”这个名字。它不是一个新概念,但绝对是DeFi乐高积木中一块承重墙级别的组件。简…...
5步解决网易云音乐NCM文件难题:ncmdumpGUI实战指南
5步解决网易云音乐NCM文件难题:ncmdumpGUI实战指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经遇到过这样的情况:在网易…...
独立开发者利用Taotoken统一API开发跨模型内容生成应用案例
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者利用Taotoken统一API开发跨模型内容生成应用案例 应用场景类,一位独立开发者希望构建一个能同时调用多种大模…...
从零到一:Brigadier如何重塑Mac Boot Camp驱动部署体验
从零到一:Brigadier如何重塑Mac Boot Camp驱动部署体验 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier 在Mac上安装Windows系统曾是一个令人望而生畏的技术挑战ÿ…...
詹姆斯·韦伯望远镜:344个单点故障背后的航天工程极限挑战
1. 韦伯望远镜的“生死十日”:一场价值百亿美元的太空芭蕾作为一名在航天与深空探测领域摸爬滚打了十几年的工程师,我经历过无数次地面测试的紧张,也见证过发射倒计时的屏息瞬间。但像詹姆斯韦伯空间望远镜(JWST)这样&…...
从CAD到PCB的‘神同步’:利用Altium Designer图层映射,让你的丝印层(Top Overlay)自动对齐结构孔
从CAD到PCB的‘神同步’:Altium Designer图层映射实战指南 在消费电子和嵌入式设备开发中,PCB与外壳结构的精确对齐常常成为产品落地的最后一道障碍。想象一下:当结构工程师更新了智能手表外壳的3D模型,新增了螺丝孔位和屏幕开口&…...
Poppins字体终极指南:免费开源的多语言几何无衬线字体完全解析
Poppins字体终极指南:免费开源的多语言几何无衬线字体完全解析 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 如果你正在寻找一款既现代又专业的免费字体ÿ…...
602 游戏平台 — 做玩家喜爱、信任的游戏平台!
602 游戏是2013 年上线的老牌正规页游平台,十年稳定运营,始终以 “玩家喜爱、信任”为核心,主打传奇类精品页游 ,三端互通✅ 平台核心优势(为什么玩家信任)正规合规,账号安全:文网文…...
天气图片分类模型:基于迁移学习与GPU资源优化
天气图片分类模型:基于迁移学习与GPU资源优化 1. 引言 天气识别在自动驾驶、户外监控、气象服务等领域具有重要应用价值。传统方法依赖于手工设计的特征(如纹理、颜色直方图),鲁棒性不足。深度学习尤其是卷积神经网络(CNN)能够自动从图像中学习层次化特征,显著提升分类…...
在ubuntu上使用nodejs通过taotoken统一调用多模型api
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Ubuntu 上使用 Node.js 通过 Taotoken 统一调用多模型 API 基础教程类,指导 Ubuntu 上的 Node.js 开发者如何利用 T…...
