关于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中的死锁、可重入锁和互斥锁
Nov 05 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 Python
Python去除、替换字符串空格的处理方法
Apr 01 Python
基于Django框架利用Ajax实现点赞功能实例代码
Aug 19 Python
使用python远程操作linux过程解析
Dec 04 Python
Python while循环使用else语句代码实例
Feb 07 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
python中os.remove()用法及注意事项
Jan 31 Python
python中24小时制转换为12小时制的方法
Jun 18 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
js创建数组的简单方法
2016/07/27 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
机电工程专业应届生求职信
2013/10/03 职场文书
企业演讲稿范文
2013/12/28 职场文书
消防宣传口号
2014/06/16 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
设置IIS Express并发数
2022/07/07 Servers