平时工作中存在,利用矢量裁剪栅格的要求,但多数情况下基于完整的单个矢量裁剪栅格,非利用矢量中某个图斑裁剪栅格,因此做以下工作。
1、将矢量按照单个图斑要素拆分成shp
这里用了县区的矢量。代码如下:

from osgeo import gdal
import osgeo.ogr as ogr
input_shape = r"C:/分类/县区投影.shp" driver = ogr.GetDriverByName("ESRI Shapefile")
dataSource = driver.Open(input_shape, 1)
layer = dataSource.GetLayer()
print('the length of layer:', len(layer))
for i, feature in enumerate(layer):# 新建DataSource,Layer fid = feature.GetField('DISTNAME')#读取当前Feature某一字段的属性值out_ds = driver.CreateDataSource(fid+".shp")out_lyr = out_ds.CreateLayer(fid+".shp", layer.GetSpatialRef(), ogr.wkbPolygon)def_feature = out_lyr.GetLayerDefn()# 生成Shapefile文件# current_union = layer[0].Clone()geometry = feature.GetGeometryRef()current_union = geometry.Clone()current_union = current_union.Union(geometry).Clone()out_feature = ogr.Feature(def_feature)out_feature.SetGeometry(current_union)out_lyr.ResetReading()out_lyr.CreateFeature(out_feature)

效果如下,原始为一个完整的图层,拆分后为单独的多个图层。
原矢量:

拆分后矢量:

2、利用拆分后的矢量循环裁剪栅格
这里使用的掩膜提取的方法进行裁剪,裁剪不规则的范围,非外接矩形。
代码如下:

from osgeo import gdal
import osgeo.ogr as ogr
# tif输入路径,打开文件
input_raster = r"C:/DEM/坡度.tif"
# 栅格文件路径,打开栅格文件
input_raster=gdal.Open(input_raster)
#匹配文件名字,可以编写读取文件夹文件来替换
name =['开县',..........., '石柱土家族自治县']
for n in name:#开始裁剪,一行代码ds = gdal.Warp(n+".tif",#生成的栅格input_raster,format = 'GTiff',#矢量文件cutlineDSName = n+".shp",      #cutlineWhere="FIELD = 'whatever'",dstNodata = 0)

原栅格:

拆分后栅格:

3、逐栅格统计信息
根据个人需要逐个统计相应信息,这里做的是统计坡谱信息熵。

利用Python实现矢量逐个图斑裁剪栅格,形成图斑对应的栅格文件相关推荐

  1. 利用python处理pdf文本_Python用于NLP :处理文本和PDF文件

    原标题:Python用于NLP :处理文本和PDF文件 提示:代码图片可以点击全屏查看,双指操作还可以放大缩小. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从 ...

  2. 利用Python实现QQ、微信消息定时发送/自动发送【支持发送文件】

    安装环境 python 3.5 PyQt5==5.15.1 pywin32==228 代码 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上 ...

  3. 利用python实现 CAD STEP格式转化为STL格式--update 对整个文件夹下的所有文件进行转换格式

    update # 导入FreeCAD 路径为FreeCAD安装路径,bin文件里有个文件叫 FreeCad.pyd 这是关键 import sys sys.path.append('C:\\Softw ...

  4. 利用python脚本程序监控文件被修改

    需求: 利用python编写监控程序,监控一个文件目录,当目录下的文件发生改变时,实现有修改就发报警邮件 邮件使用QQ邮箱,需要开启smtp,使用手机发生短信,腾讯会给你发邮箱密码.如下所示: 把这个 ...

  5. python 翻译库本地库_利用python爬取并翻译GEO数据库

    原标题:利用python爬取并翻译GEO数据库 GEO数据库是NCBI创建并维护的基因表达数据库,始于2000年,收录了世界各国研究机构提交的高通量基因表达数据,现芯片集数据量高达12万以上.想要从这 ...

  6. 如何利用Python实现工作中的自动化

    如何利用Python实现工作中的自动化 "偷懒还能干完活,才是本事" 帅张发了一篇<工作要学会偷懒>,深感赞同. 有些事情既然定期都要处理,就没有更好的处理方式?能自动 ...

  7. 利用Python简单两步监控电脑

    文章目录 一.利用python定时截取电脑桌面,保存到指定目录 二.将监控程序设置为开机自动启动 1.新建start.bat文件,打开输入以下代码: 2.将start.bat添加到任务计划 三.附注过 ...

  8. 利用python对批量修改文件名

    利用python对批量修改文件名 当你得到一些同类型的文件时,文件名是混乱的.为了方便观看,需要进行修改文件名.就例如:收作业,收取文件. 下面讲讲我对修改文件名的方法. 思路: 获取文件名 ===& ...

  9. 给知网没有书签的pdf文件添加书签(利用python解析txt文件内容并为pdf添加目录)

    今天利用tampermonkey的知网下载助手脚本下载pdf格式论文时,发现论文缺少书签,而脚本可以下载一个txt格式的书签(目录),因此打算利用python将txt格式的目录添加到pdf中. txt ...

最新文章

  1. SQL总结(三)其他查询
  2. ARM--MDK5 Software Packs下载
  3. SharePoint PowerShell 修改母版页
  4. 关于为什么我推荐大家看vue代码的随想
  5. oracle清除bin,Oracle recyclebin详解(闪回删除的表)
  6. 《Android游戏开发详解》一2.17 对象是独立的
  7. Flutter学习 — 实现滑动关闭、删除item
  8. 计算机一级基础知识理论,计算机一级考试理论试题 第6部分 信息与计算机基础知识...
  9. 在线购物系统后台登录界面html代码,电子商城(购物网站)html模板源码
  10. unity xlua 在vs2019下断点调试(babelua)
  11. GD32F407调试SD卡FATFS文件系统
  12. pe分区助手读不到Linux硬盘,解决WINPE下不显示硬盘的方法
  13. ICCV 2021 | FACIAL :动态谈话人脸视频生成,姿态,眨眼皆可控!
  14. 范浩强treap——可持久化
  15. 【NOIP提高A组模拟2018.8.8】没有硝烟的战争
  16. 7-1 厘米换算英尺英寸 (15 分)Java
  17. java pdf 图片_java实现PDF转图片的方法
  18. 吐槽一下Win10的输入法管理器
  19. Mobius 莫比乌斯
  20. Toast的简单用法

热门文章

  1. 说说entity、model、domain是什么东西?
  2. xxl-job学习,基本测试1
  3. 声音/声学成像2021-4-13
  4. 数据库设计之概念结构设计---------E-R图详解
  5. linux下不解包查看tar包文件内容
  6. XCTF攻防世界BABYRE逆向
  7. h3c如何配置acl命令
  8. 电源服务器原理,破坏性拆解一个HP服务器1300W的电源 【精华】
  9. 1165:Hermite多项式(C C++)
  10. 关于盒子模型之 水平居中和垂直居中的问题