关于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 相关文章推荐
Django中redis的使用方法(包括安装、配置、启动)
Feb 21 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
代码详解django中数据库设置
Jan 28 Python
python Gunicorn服务器使用方法详解
Jul 22 Python
python面向对象 反射原理解析
Aug 12 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
django迁移文件migrations的实现
Mar 31 Python
解决windows下python3使用multiprocessing.Pool出现的问题
Apr 08 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
Python中else的三种使用场景
Jun 16 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为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
用jQuery模拟select下拉框的简单示例代码
2014/01/26 Javascript
JavaScript中this详解
2015/09/01 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
vue实现通讯录功能
2018/07/14 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
python调用shell的方法
2013/11/20 Python
python判断windows隐藏文件的方法
2014/03/21 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
linux系统都有哪些运行级别
2012/04/15 面试题
小学教师寄语大全
2014/04/03 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang