【GDAL】tif影像拼接和目标截取
原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。
文章目录
- 一、gdal.Warp拼接tif
- 二、截取
- 1.通过经纬范围截取拼接的影像
- 2.通过shp范围截取凭借后影像
- 三、WarpOptions其他参数
- 四、其他方式裁剪
- 1.通过shapely的Polygon裁剪
一、gdal.Warp拼接tif
from osgeo import gdal, gdalconstminX,minY,maxX,maxY = latmin_input,lonmin_input, latmax_input,lonmax_inputprint(minX,minY,maxX,maxY)
tifPaths = [path1,path2]
inputFiles = []
outputfilePath = './wrap.tif'for path in tifPaths:inputrasfile = gdal.Open(path, gdal.GA_ReadOnly) # 读取影像inputProj = inputrasfile.GetProjection() # 获取坐标系inputFiles.append(inputrasfile) # 推入列表options = gdal.WarpOptions(srcSRS=inputProj, # 输入坐标系dstSRS=inputProj, # 输出坐标系format='GTiff', # 图像格式resampleAlg=gdalconst.GRA_Bilinear, # 重采样算法,这里是双线性内插dstNodata=-1, # 缺省值outputBounds =(minX,minY,maxX,maxY),# cutlineLayer=outline, # 输出范围,这里可以是一个外轮廓shp数据cropToCutline=True, # 是否对输出边界使用剪切线范围,即outputBounds或cutlineLayeroutputType=gdalconst.GDT_Int32) # 数据类型,这里是有符号32位整型gdal.Warp(outputfilePath,inputFiles,options=options) # 图像镶嵌out_my = gdal.Open(outputfilePath, gdal.GA_ReadOnly).ReadAsArray()
plt.figure(figsize=(7,7))
plt.imshow(out_my,'gray')
二、截取
outputBounds 和cutlineLayer二选一,cropToCutline参数确定是否按照outputBounds 和cutlineLayer输出tif。
1.通过经纬范围截取拼接的影像
outputBounds 输入经纬范围的元组,经纬应该与拼接的inputFiles坐标系一致
2.通过shp范围截取凭借后影像
cutlineLayer输入shp文件的路径,经纬应该与拼接的inputFiles坐标系一致
三、WarpOptions其他参数
创建一个可以传递给gdal.Warp()的WarpOptions()对象关键字参数为:options---可以是一个字符串数组、一个字符串,也可以由其他关键字清空和填充。format---输出格式(“GTiff”等)outputBounds——目标SRS中的输出边界为(minX,minY,maxX,maxY)outputBoundsSRS——如果输出边界未在dstSRS中表示,则表示输出边界的SRSxRes,yRes——目标SRS中的输出分辨率targetAlignedPixels——是否强制输出边界为输出分辨率的倍数width——输出光栅的宽度(以像素为单位)height—输出光栅的高度(以像素为单位)srcSRS---源SRSdstSRS--输出SRScoordinateOperation—作为PROJ字符串或WKT字符串的坐标操作srcAlpha——是否强制将输入数据集的最后一个波段视为阿尔法波段dstAlpha——是否强制创建输出alpha波段outputType—输出类型(gdalcons.GDT_Byte等)workingType—工作类型(gdalcons.GDT_Byte等)warpOptions--扭曲选项列表errorThreshold—近似变换器的错误阈值(以像素为单位)warpMemoryLimit—工作缓冲区的大小(MB)resampleAlg-重新采样模式creationOptions--创建选项列表srcNodata--源nodata值dstNodata—输出nodata值多线程—是否执行多线程计算和I/O操作tps--是否使用薄板花键GCP变压器rpc——是否使用rpc转换器geoloc——是否使用GeoLocation阵列转换器多项式阶数——多项式GCP插值的阶数transformerOptions-transformer选项列表cutlineDSName--剪切线数据集名称cutlineLayer—剪切线图层名称cutlineWhere--cutlineWhere子句cutlineSQL—cutline SQL语句cutlineBlend—以像素为单位的剪切线混合距离cropToCutline—是否对输出边界使用剪切线范围copyMetadata—是否复制源元数据metadataConflictValue--元数据数据冲突值setColorInterpretation—是否将输入波段的颜色解释强制到输出波段overviewLevel—指定必须使用的源文件的概述级别callback—回调方法callback_data——回调的用户数据
四、其他方式裁剪
1.通过shapely的Polygon裁剪
from shapely.geometry import Point, Polygonpoints = [(latmin_input,lonmin_input), (latmax_input,lonmin_input), (latmax_input,lonmax_input), (latmin_input,lonmax_input)]
polygon = Polygon(points)import rasterio as rio
from rasterio.mask import mask
with rio.open(rasterPath1) as rasterdata1:out_crs1 = rasterdata1.crsfeature1 = [polygon] # 1.3中得到的polygonout_image1, out_transform1 = mask(rasterdata1, feature1, all_touched=True, crop=True, nodata=0)
相关文章:
【GDAL】tif影像拼接和目标截取
原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 一、gdal.Warp拼接tif二、截取1.通过经纬范围截取拼接的影像2.通过shp范围截取凭借后影像 三、WarpOptions其他参数四、其他方式裁剪1.通过sh…...
ARM核心时间线
指令集架构处理器家族(ARM RISC)ARMv1ARM1ARMv2ARM2、ARM3ARMv3ARM6、ARM7ARMv4StrongARM、ARM7TDMI、ARM9TDMIARMv5ARM7EJ、ARM9E、ARM10E、XScaleARMv6ARM11、ARM Cortex-MARMv7ARM Cortex-A、ARM Cortex-M、ARM Cortex-RARMv8-A armv8.2Cortex-A35、Cortex-A50系列[18]、Cor…...
【Redis】深入探索 Redis 的数据类型 —— 列表 List
文章目录 一、List 类型介绍二、List 类型相关命令2.1 LPUSH 和 RPUSH、LPUSHX 和 RPUSHX2.2 LPOP 和 RPOP、BLPOP 和 BRPOP2.3 LRANGE、LINDEX、LINSERT、LLEN2.4 列表相关命令总结 三、List 类型内部编码3.1 压缩列表(ziplist)3.2 链表(lin…...
高精度乘除法(超详细)
高精度乘除法(超详细) 题目1-高精度乘法 给定两个非负整数(不含前导 0) A 和 B,请你计算 AB 的值。 输入格式 共两行,第一行包含整数 A,第二行包含整数 B。 输出格式 共一行,包含…...
List 获取前N条数据
1.使用for循环遍历 public static void main(String[] args) {int limit 5;List<Integer> oldList Lists.newArrayList(1, 2, 3, 4, 5, 6, 7);List<Integer> newList Lists.newArrayList();if (oldList.size() < limit) {newList.addAll(oldList);return;}fo…...
Spring入门控制反转(或依赖注入)AOP的关键概念 多配置文件与web集成
目录 1. 什么是spring,它能够做什么? 2. 什么是控制反转(或依赖注入) 3. AOP的关键概念 4. 示例 4.1 创建工程 4.2 pom文件 4.3 spring配置文件 4.4 示例代码 4.4.1 示例1 4.4.2 示例2 (abstract,parent示例) 4.4.3 使…...
排序算法-希尔排序
属性 1. 希尔排序是对直接插入排序的优化。 2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap 1时,数组已经接近有序的了,这样就会很 快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。 3.…...
ClientDataSet运行中出现“ClientDataSet:dataset not in edit or insert mode”(一)
在打开数据表文件,对ClientDataSet执行Append或Insert时,“ClientDataSet:dataset not in edit or insert mode”: 一、搜索问题 1、执行“显示数据后”,再执行Append,出错,说明ClientDataSet处…...
华为GaussDB数据库
Gauss数据库初识_高斯数据库_ygpGoogle的博客-CSDN博客 Redhat 7.6安装GaussDB_100_1.0.1详细攻略_gaussdb_100_1.0.1-database-redhat-64bit.tar.gz dow_博德1999的博客-CSDN博客 https://www.ngui.cc/el/3381579.html?actiononClick 初识GaussDB——GaussDB的发展历程、部…...
Flink、Spark、Hive集成Hudi
环境描述: hudi版本:0.13.1 flink版本:flink-1.15.2 spark版本:3.3.2 Hive版本:3.1.3 Hadoop版本:3.3.4 一.Flink集成Hive 1.拷贝hadoop包到Flink lib目录 hadoop-client-api-3.3.4.jar hadoop-client-runtime-3.3.4.jar 2.下载上传flink-hive的jar包 flink-co…...
百度编辑器 Ueditor 视频上传时 目录创建失败 解决办法
找到百度编辑器的上传类 Uploader.class.php文件.大约111左右 //$this->stateInfo $this->getStateInfo("ERROR_CREATE_DIR");//这句注释掉 $this->stateInfo $dirname;//换成这一句然后,进编辑器上传.会提示出一个错误的文件保存路径 双击复制下来这个路…...
Go 字符串处理
一、 字符串处理函数 我们从文件中将数据读取出来以后,很多情况下并不是直接将数据打印出来,而是要做相应的处理。例如:去掉空格等一些特殊的符号,对一些内容进行替换等。 这里就涉及到对一些字符串的处理。在对字符串进行处理时…...
家政服务接单小程序开发源码 家政保洁上门服务小程序源码 开源完整版
分享一个家政服务接单小程序开发源码,家政保洁上门服务小程序源码,一整套完整源码开源,可二开,含完整的前端后端和详细的安装部署教程,让你轻松搭建家政类的小程序。家政服务接单小程序开发源码为家政服务行业带来了诸…...
SuperMap iClient3D 11i (2023) SP1 for Cesium之移动实体对象
作者:nannan 目录 前言 一、代码思路 1.1 绘制面实体对象 1.2 鼠标左键按下事件 1.3 鼠标移动事件 1.4 鼠标左键抬起事件 二、运行效果 三、注意事项 前言 SuperMap 官网三维前端范例 编辑线面,可以对面实体对象的节点进行增加、删除以及修改位置…...
【深度学习 AIGC】stablediffusion-infinity 在无界限画布中输出绘画 Outpainting
代码:https://github.com/lkwq007/stablediffusion-infinity/tree/master 启动环境: git clone --recurse-submodules https://github.com/lkwq007/stablediffusion-infinity cd stablediffusion-infinity conda env create -f environment.yml conda …...
Flutter插件之阿里百川
上一篇:Flutter插件的制作和发布,我们已经了解了如何制作一个通用的双端插件,本篇就带领大家将阿里百川双端sdk制作成一个flutter插件供项目调用! 目录 登录并打开控制台,创建应用:填写应用相关信息开通百川…...
✔ ★ 算法基础笔记(Acwing)(三)—— 搜索与图论(17道题)【java版本】
搜索与图论 1. DFS1. 排列数字(3分钟)2. n-皇后问题 2. BFS(队列)1. 走迷宫二刷总结(队列存储一个节点pair<int,int>)三刷总结 走过的点标记上距离(既可以记录距离,也可以判断是否走过) ★ ★ 例题2. 八数码二刷…...
初试占比70%,计算机招生近200人,安徽理工大学考情分析
安徽理工大学 考研难度(☆) 内容:23考情概况(拟录取和复试分析)、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文980字,预计阅读:3分钟 2023考情概况 安徽理工大…...
LeetCode题解:1720. 解码异或后的数组,异或,JavaScript,详细注释
原题链接: https://leetcode.cn/problems/decode-xored-array/ 解题思路: 异或有如下性质: a ^ a 0a ^ 0 aa ^ b b ^ a 根据题意,已知encoded[i - 1] arr[i - 1] ^ arr[i],可以做如下转换: encoded[i…...
【C刷题】day2
一、选择题 1、以下程序段的输出结果是( ) #include<stdio.h> int main() { char s[] "\\123456\123456\t"; printf("%d\n", strlen(s)); return 0; } A: 12 B: 13 C: 16 D: 以上都不对【答案】: A 【解析】…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
Mac flutter环境搭建
一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...
13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...
