关于Python 的简单栅格图像边界提取方法


Posted in Python onJuly 05, 2019

在GIS中,栅格属性里有关于栅格自身的信息,背景(nodata value)对于识别一张图像的边界像元尤为重要,我们目的只要把每行每列中的第一次出现不是nodata的像元和最后一次出现nodata的前一个像元就可以了。

对于栅格,可以用ArcPy中的RasterToNumpyArray函数将将栅格转成numpy数组,然后就可以按照所想读取出每行列中首尾像元。

以下是部分代码提取边界像元的核心算法,其实是很简单的一个思路(假设0是nodata value)。

a=[[0 for col in range(Raster.width)]for row in range(Raster.height)]
 
for i in range(0,Raster.width):
... for j in range(0,Raster.height):
...  if(myRaster[j][i]!=0 and myRaster[j-1][i]==0):
...    a[j][i]=myRaster[j][i]
...  if(myRaster[j][i]==0 and myRaster[j-1][i]!=0):
...    a[j-1][i]=myRaster[j-1][i]
...    
 
 
for i in range(0,myRaster.height):
... for j in range(0,myRaster.width):
...  if(arr[i][j]!=0 and arr[i][j-1]==0):
...    a[i][j]=arr[i][j]
...  if(arr[i][j]==0 and arr[i][j-1]!=0):
...    a[i][j-1]=arr[i][j-1]

以上这篇关于Python 的简单栅格图像边界提取方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python正则表达式判断字符串是否是全部小写示例
Dec 25 Python
python网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
Django中使用locals()函数的技巧
Jul 16 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
celery4+django2定时任务的实现代码
Dec 23 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
Python中sys模块功能与用法实例详解
Feb 26 Python
Python读写csv文件流程及异常解决
Oct 20 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
python 模拟登录B站的示例代码
Dec 15 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 Python
matplotlib制作雷达图报错ValueError的实现
Jan 05 Python
Python3+Appium安装使用教程
Jul 05 #Python
Python叠加两幅栅格图像的实现方法
Jul 05 #Python
用vue.js组件模拟v-model指令实例方法
Jul 05 #Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 #Python
Python 计算任意两向量之间的夹角方法
Jul 05 #Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 #Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 #Python
You might like
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
详解 Python 读写XML文件的实例
2017/08/02 Python
Django内容增加富文本功能的实例
2017/10/17 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
Python 如何批量更新已安装的库
2020/05/26 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
大型活动策划方案
2014/01/12 职场文书
涨价通知
2015/04/23 职场文书
画展观后感
2015/06/17 职场文书
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang