关于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实现面向对像的ASP程序实例
Nov 10 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 Python
python dataframe 输出结果整行显示的方法
Jun 14 Python
python中的协程深入理解
Jun 10 Python
django表单的Widgets使用详解
Jul 22 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
python3通过qq邮箱发送邮件以及附件
May 20 Python
Python绘制动态水球图过程详解
Jun 03 Python
Python轻量级web框架bottle使用方法解析
Jun 13 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简单浏览目录内容的实现代码
2013/06/07 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
用户注册常用javascript代码
2009/08/29 Javascript
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
python批量修改文件名的实现代码
2014/09/01 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
python实现邮件循环自动发件功能
2020/09/11 Python
英国复古服装购物网站:Collectif
2019/10/30 全球购物
食品行业求职人的自我评价
2014/01/19 职场文书
运动会通讯稿50字
2014/01/30 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
检讨书范文
2015/01/27 职场文书
签字仪式主持词
2015/07/03 职场文书