【GDAL-Python】4-在Python中使用GDAL进行投影转换、影像重采样以及裁剪栅格数据

news2024/9/24 9:24:05

文章目录

  • 1-介绍
    • 1.1 主要内容
    • 1.2 EPSG
  • 2-代码实现
    • 2.1 数据介绍
    • 2.2 代码实现
    • 2.3 结果及效果显示
  • 3.参考资料

1-介绍

1.1 主要内容

(1)在本教程中,将介绍如何在 Python 中使用 gdalwarp 将栅格数据重新投影到不同的坐标参考系,影像重采样(改变影像分辨率)、以及根据矢量 shapefile文件将影像对应部分进行裁剪;
(2)技术路线:在python脚本中使用gdal.Warp,不同的功能对应不同的可选项参数

  • 1)坐标参考系改变对应:gdal.Warp(dstSRS = “EPSG:4326”)目标参考系,采用EPSG方式。
  • 2)影像分辨率gdal.Warp(“demRes.tif”, ds, xRes = 150, yRes = 150,resampleAlg),xRes水平采样分辨率,yRes垂直方向采样分辨率,resampleAlg对应采样的方法);
  • 3)gdal.Warp(“demClip.tif”, ds, cutlineDSName = “star.shp”,cropToCutline = True, dstNodata = np.nan),对应参数cutlineDSNane支持矢量shp文件;

(3)视频地址:B站对应教程-4-在Python中使用GDAL进行投影转换、影像重采样以及裁剪栅格数据

1.2 EPSG

(1)EPSG代码是一种用于标准化地理空间参考系统(包括坐标系、投影、地理坐标系等)的唯一编码。这些编码帮助用户在不同的地理信息系统(GIS)软件和数据集中准确地识别和使用特定的地理空间参考系统。每个EPSG代码都对应着一组特定的参数,如椭球体、单位、地理坐标系或投影方式,这使得它们在全球范围内具有普遍的应用价值

(2)以下是一些常见的EPSG代码及其对应的坐标系:

  • 1)EPSG:4326 - 这是WGS84地理坐标系的代码,目前是最流行的地理坐标系统之一。它广泛应用于GPS设备和在线地图服务中,因为GPS定位就是基于这个坐标系统的34。
  • 2)EPSG:3857 - 网络墨卡托投影,适用于在线地图服务,如谷歌地图、百度地图和高德地图等。这种投影方式因其在互联网上的高效性而被广泛采用;
  • EPSG:4490 - 国家2000经纬度坐标系(CGCS2000)。

(3)epsg.io网站,以便用户可以轻松地查找特定EPSG代码对应的投影参数和其他相关信息:epsg代码查询网站

2-代码实现

2.1 数据介绍

2.2 代码实现

from osgeo import gdal
import numpy as np
import matplotlib.pyplot as plt

ds = gdal.Open(r"GDAL_testing_data\JAX_IMG1_PAN.TIF")

# ============================1.坐标系变换=================================
dsReprj = gdal.Warp("demReprj.tif", ds, dstSRS = "EPSG:4490")

# ============================2.影像重采样=================================
dsRes = gdal.Warp("demRes.tif", ds, xRes = 1, yRes = 1, 
                  resampleAlg = "bilinear")

# ============================3.影像裁剪=================================
# 确保栅格数据和 shapefile 具有相同的投影
dsClip = gdal.Warp("demClip.tif", ds, cutlineDSName = "star.shp",
                    cropToCutline = True, dstNodata = np.nan)

# ============================4.影像裁剪可视化=================================
array = dsClip.GetRasterBand(1).ReadAsArray()
plt.figure()
plt.imshow(array)
plt.colorbar()
plt.show()

# close your datasets!
ds = dsClip = dsRes = dsReprj = None

2.3 结果及效果显示

(1)坐标参考系改变:由原来的WGS84坐标转换为CGSC2000坐标系
转换坐标系后,影像在QGIS显示中无变化,这应该是正常的,根据对于精度在10m以上的数据来说、WGS84坐标系=CGCS2000坐标系的结论,结论来源
原始影像
坐标系变换后
(2)

3.参考资料

TODO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1606363.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

hexo实现个人博客及涉及的技术学习

一、背景 最近,一直想做一个属于自己的网站.可以从零开始搭建一个网站,顺便可以把日常中学到的技术用于实战,还可以顺便记录自己的所思所感,记录成长的过程. 方案 一开始的方案是从零开始,模仿常见个人博客的设计,基于vueSpringbootMySQL的去实现网站. 新建项目之后,发现vu…

OSPF星型拓扑和MGRE全连改

一,拓扑 二,要求 1,R6为ISP只能配置IP地址,R1-R5的环回为私有网段 2,R1/4/5为全连的MGRE结构,R1/2/3为星型的拓扑结构, 3,R1为中心站点所有私有网段可以互相通讯,私有网段…

STM32之不使用MicroLIB

一、microlib介绍 microlib 是缺省 C 库的备选库,功能上不具备某些 ISO C 特性。 microlib 进行了高度优化以使代码变得很小,功能比缺省 C 库少,用于必须在极少量内存环境下运行的深层嵌入式应用程序。 二、不使用microlib的原因 由于microlib不支持C++开发,因此在使用C…

Hotcoin 热门资产上新速报:以太坊互操作性基础设施Omni Network(OMNI)

Hotcoin持续为全球600万用户发掘优质潜力资产,热门币种交易上热币。一文快速了解今日上新资产:Omni Network(OMNI) 推荐指数 8.4 交易对 OMNI/USDT 交易时间 4月17日 GMT8 20:30 资产赛道 Layer1 项目简介 Omni 是以太坊…

【canvas】canvas综合运用:心形图案

#简言 利用canvas画出心形图案。 心形 心形图案可以两个椭圆相交组合&#xff0c;也可以直接画路径实现。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" conte…

(助力国赛)数学建模可视化!!!含代码1(折线图、地图(点)、地图(线)、地图(多边形)、地图(密度)、环形图、环形柱状图、局部放大图)

众所周知&#xff0c;数学建模的过程中&#xff0c;将复杂的数据和模型结果通过可视化图形呈现出来&#xff0c;不仅能够帮助我们更深入地理解问题&#xff0c;还能够有效地向评委展示我们的研究成果。   今天&#xff0c;作者将与大家分享8种强大的数学建模可视化图形及其在…

虚拟现实(VR)开发框架

虚拟现实&#xff08;VR&#xff09;开发框架为开发者提供了构建VR应用程序所需的基本工具和功能。它们通常包括3D引擎、场景图、输入系统、音频系统和网络功能。下面是一些流行的VR开发框架。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流…

深入探索:Facebook如何重塑社交互动

在当代社会中&#xff0c;社交互动已成为日常生活的核心组成部分。而在众多的社交媒体平台中&#xff0c;Facebook凭借其卓越的用户基础和创新的功能&#xff0c;已经成为了全球最大的社交媒体平台。本文将深入探讨Facebook如何通过其独特的特性和功能&#xff0c;重塑了人们的…

鸿蒙入门06-常见装饰器( 简单装饰器 )

装饰器是鸿蒙开发中非常重要的一个环节因为在很多地方我们都需要用到装饰器并且如果我们想高度的复用, 那么装饰器就是必不可少的一环接下来我们就来介绍一些常见的装饰器注意 : 所有装饰器首字母大写 Entry 用来装饰 struct 使用表示页面的入口 Component 装饰 struct, …

MySQL中如何随机获取一条记录

点击上方蓝字关注我 随机获取一条记录是在数据库查询中常见的需求&#xff0c;特别在需要展示随机内容或者随机推荐的场景下。在 MySQL 中&#xff0c;有多种方法可以实现随机获取一条记录&#xff0c;每种方法都有其适用的情况和性能特点。在本文中&#xff0c;我们将探讨几种…

实测52.4MB/s!全志T3+FPGA的CSI通信案例分享!

CSI总线介绍与优势 CSI&#xff08;CMOS sensor parallel interfaces&#xff09;总线是一种用于连接图像传感器和处理器的并行通信接口&#xff0c;应用于工业自动化、能源电力、智慧医疗等领域&#xff0c;CSI总线接口示意图如下所示&#xff08;以全志科技T3处理器的CSI0为…

【运输层】TCP 的流量控制和拥塞控制

目录 1、流量控制 2、TCP 的拥塞控制 &#xff08;1&#xff09;拥塞控制的原理 &#xff08;2&#xff09;拥塞控制的具体方法 1、流量控制 一般说来&#xff0c;我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快&#xff0c;接收方就可能来不及接收&#x…

Simba:Mamba 增强了 U-ShiftGCN,用于视频中的骨骼动作识别

Simba&#xff1a;Mamba 增强了 U-ShiftGCN&#xff0c;用于视频中的骨骼动作识别 摘要IntroductionRelated WorksMethodologyDown-sampling ShiftGCN Encoder Experiments & ResultsDatasets Simba: Mamba augmented U-ShiftGCN for Skeletal Action Recognition in Video…

计算机网络 -- 网络编程基础

一 学习准备 1.1 IP地址 在 前文中我们提到过: IP 是全球网络的基础&#xff0c;使用 IP 地址来标识公网环境下主机的唯一性&#xff0c;我们可以根据 目的IP地址 进行跨路由器的远端通信。 但是我们也提到了&#xff0c;通过 IP 地址&#xff0c;只能寻找到目标主机&#xff…

视频质量度量VQM算法详细介绍

视频质量评价 视频质量评价(Video Quality Assessment,VQA)是指通过主观、客观的方式对视频图像的内容、画质等,进行感知、衡量与评价。 ITU definations subjective assessment: the determination of the quality or impairment of programme-like pictures presented…

最新UI发卡盗U,支持多语言,更新UI界面,支持多个主流钱包,附带系统搭建教程

环境&#xff1a;Linux系统 进入宝塔安装环境&#xff1a;Nginx 1.22.1 MySQL 8.0 php7.4 phpMyAdmin 5.2 按照说明去安装环境&#xff0c;如果没有找到MySQL8.0版本去"软件商店"搜索Mysql切换至8.0 1.上传开源源码 2.上传数据库文件 3.上传猴导入数据库文件 4.修…

Flask 解决指定端口无法生效问题

问题重现 手动指定的IP端口是app.run(host0.0.0.0, port9304)&#xff0c;但是启动的地址显示的却是http://127.0.0.1:5000。 if __name__ __main__:app.run(host0.0.0.0, port9304)启动地址如下&#xff1a; 解决方案 PyCharm会自动识别出来flask项目&#xff08;即使你…

.Net RabbitMQ(消息队列)

文章目录 一.RabbitMQ 介绍以及工作模式1.RabbitMQ的介绍&#xff1a;2.RabbitMQ的工作模式&#xff1a; 二.RabbitMQ安装1.安装Erlang语言环境2.安装RabbitMQ 三.在.Net中使用RabbitMQ1.HelloWorld模式2.工作队列模式3.发布订阅模式4.Routing路由模式和Topics通配符模式 一.Ra…

114 接口中幂等性的保证

前言 同样是 面试问题 如何确保接口的 幂等性 幂等是一个 较为抽象的概念, 多次重复访问, 不会导致业务逻辑的异常 这里从增删改查, 几个方面列一下 一般来说, 我们核心需要关注的就是 新增 和 更新 对于 增加元素, 首先针对唯一约束进行校验, 然后再处理新增的相关业…

IDEA中Docker相关操作的使用教程

一、引言 Docker作为当前最流行的容器化技术&#xff0c;极大地简化了应用的部署和管理。而IntelliJ IDEA作为一款强大的集成开发环境&#xff0c;也提供了对Docker的集成支持。本文将介绍如何在IDEA中配置和使用Docker&#xff0c;包括远程访问配置、服务连接、Dockerfile编写…