关于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 字典(dict)按键和值排序
Jun 28 Python
浅谈python数据类型及类型转换
Dec 18 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
python使用zip将list转为json的方法
Dec 31 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
Python使用Pygame绘制时钟
Nov 29 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 Python
python中sqllite插入numpy数组到数据库的实现方法
Jun 21 Python
Python创建SQL数据库流程逐步讲解
Sep 23 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
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
jQuery技巧总结
2011/01/01 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
简单叙述一下MYSQL的优化
2016/05/09 面试题
2014教师党员自我评议总结
2014/09/19 职场文书
护士工作心得体会
2016/01/25 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
如何使用flask将模型部署为服务
2021/05/13 Python
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL