系统实现基于Python语言进行编码,数据预处理和质量控制部分通过自行编码实现,主要空间分析函数调用ArcGIS中的空间分析模块。

1 数据预处理

(1)对下载的原始数据进行批量解压。对海量原始影像压缩文件夹进行遍历,识别并逐次解压。文件解压关键代码如下:

targzfilc. cxtract(filc,  unzipcdfoldcr)#从压缩文件targzfile中把解压出的文件[file放到文件夹nzipcdfoldcr里。

(2)重命名。在系统中,为了后续流程的完整性,对已解压文件名不统一的波段重新命名。文件重命名关键代码如下:

arcpy. Rcnamc_managcmcnt(namc_fr,  name _to)#从将文件name_fr重命名为name_to。

(3)提取关键波段。海量影像的所有波段中,依据建设用地识别方法,对波段进行筛选,单独提取出关键的波段数,并进行另存。

(4)获取最小重叠区。去除空值和影像边界,其留下的最小边界作为后面研究范围。以关键波段中某一波段为代表,利用Python脚本对其影像进行批量化掩摸,计算最小重叠区。关键代码如下:

arcpy. gp.CelllStatistics  sa_(in,out,”MINIMUM";”DATA" )#获取所有输人图层的最小值。剔除外围以值表不的空值黑边,只保留有值区,裁剪出最小重叠区。关键代码如下:

arcpy, gp. Con_sa(in,1 , out,”,”Value>0" )#剔除外围黑边。

2 云噪声去除

为了消除时相干扰,去除云噪声,需进行时域中值滤波。其原理是云的反射率在各波段都位于异常极大值区,而云影大多位于异常极小值区,取中值具有很好的去云和去云影效果。关键代码如下:

arcpy. gp. CellStatistics _sa(m,  out,”MEDIAN",”DATA'. )#获取所有输人图层的中值。

3 稳定像元获取

不同影像中波段值存在时相差异,需对生成的波段中值进行z值标准化,并计算影像的z值标准差,再以0.5倍标准差为闽值,替换不稳定像元,最后反z值标准化,即基于统一的平均值和标准差系数反算回去,获取每个单波段的稳定像元图层。该步骤能保证在后续步骤中影像均采用相同阈值进行分割。关键代码如下:

arcpy. gp. Minus_sa(in, MEAN, numerator)#获得每期影像与多期影像平均值之差,以作为标准化的分子numerator

arcpy. gp. Divide_sa(numerator, STD, out)#获得每期影像与numerator之比,得到该期影像的标准化值

arcpy, gp. Con_sa(in , 1 , out,”,”Value <0. 5" )#获得均值两侧0.5倍标准差范围内的像元,即稳定像元。

(1)根据波段计算出VDVI,MVDWI指数。

(2)采用归一化闽值法确定植被的闽值范围为0.25 ,粗略去除植被。

arcpy. gp. Con_sa<(MNDWI,1,Pout,0,'Value>0. 25')#获取像元大于0. 25的NDVI,用于识别植被。

C3)采用步骤C2)中的归一化闽值法,确定水体的闽值范围为0. 1 ,去除水体。

arcpy. gp. Con_sa<(MNDWI,1,Pout,0,'Value>0.10')#获取像元大于0.1的MNDWI,用于识别水体

(4)在前3步的基础上,通过光谱和纹理分析,去除试验区内比较明显的植被、水体以后,通过光谱差异和借用实验区范围内的Google Earth影像对比,进一步识别出需要识别去除的高亮地物(含裸土、部分滩涂、部分高亮人工地面、部分高亮屋顶)、水体及偏阴坡植被、裸地及植被。

arcpy, gp. Con_sa(D73,1,Pout,0,'Value>0. 06')#获取像元大于0. 06的D73,用于识别高亮地物

arcpy. gp. Con_sa(D73 , 1,Pout,O,'Valuc<0. O 1')#获取像元小于0. 0l的D73,用于识别水体及偏阴坡植被

arcpy. gp. Con_sa ( ND75ND42,1,Pout,0,' Value<一0.40')#获取像元大于-0. 04的ND75ND42,识别裸地及植被。

4 建设用地精化提取

初步识别可能的建设用地后,系统用于精化提取建设用地的方法主要是采用空间邻域关系计算。分别对水体、植被的边界像元通过邻域均值计算后,采用条件函数逐一判别消除其它地物。其关键代码如下:

arcpy, gp. Con_sa<(Vm,1,Vm01,0,”VALUE>0. 25")#获取邻域内均值Vm超过0. 25的植被

arcpy, gp. Con_sa<(Wm,1,W m01,0,”VALUE>0.25" )##获取邻域内均值Wm超过0. 25的水体

arcpy.gp.CellStatistics_sa(Vm01&Wm01,Vm01 sumWm01 , " SUM" , " DATA" )#获取邻域内水体和植被Vm01g&Wm01均超过0. 25的像元的和

arcpy, gp. Con_sa<(VmOlsumWm01,1,Pout,0,”VALUE=2”)#获取上一步中VALUE=2的值。

建设用地提取结果

更多遥感知识,请关注我的微信公众号,扫下二维码即可关注。

基于Python的Landsat影像建设用地自动识别与提取相关推荐

  1. 从USGS网站,使用python下载landsat影像,可以批量,修改版

    这篇文章是在利用Python下载Landsat数据_孤城_001的博客-CSDN博客_python下载landsat的基础上完成的,但是可能因为种种原因,目前它的方法已经不能使用,需要修改安装包中的部 ...

  2. ENVI软件|基于多源遥感影像的红树林范围提取1-数据获取及处理

    红树林是一种生长在海岸带的木本植物群落,主要分布在热带.亚热带地区海岸带的海湾.河口等海域,是国际上生物多样性的重点保护对象.红树林具有提供产品.防风御浪.净化环境.保护海岸线.维持生物多样性等生态功 ...

  3. 基于GoogleEarth等高分辨率影像的地物景观提取精度评价

    本文是最近一段时间遇到的问题,查找了解决方案,但可能较为局限,也不是特别严谨,非常欢迎其他博主能够批评指正,给出好的建议. 一. 精度评价意义 当使用指数(或其他方法)进行对地物如水体,植被,不透水面 ...

  4. ENVI经验|基于多源遥感影像的红树林范围提取4-面向对象分类

    传统的基于像素的遥感影像处理方法都是基于遥感影像光谱信息极其丰富,地物间光谱差异较为明显的基础上进行的.对于只含有较少波段的高分辨率遥感影像,传统的分类方法,就会造成分类精度降低,空间数据的大量冗余, ...

  5. ENVI经验|基于多源遥感影像的红树林范围提取3-监督分类

    监督分类,又称训练分类法,用被确认类别的样本像元去识别其他未知类别像元的过程.它就是在分类之前通过目视判读和野外调查,对遥感图像上某些样区中影像地物的类别属性有了先验知识,对每一种类别选取一定数量的训 ...

  6. 基于python3+opencv3遥感影像的湖泊边界提取

    参考:https://baijiahao.baidu.com/s?id=1607856881407380092&wfr=spider&for=pc 首先进行opencv安装,先安装An ...

  7. python用find爬虫提取img下的src属性_基于 Python 的 Scrapy 爬虫入门:页面提取

    目录 下面创建一个爬虫项目,以图虫网为例抓取图片. 一.内容分析 打开 图虫网,顶部菜单"发现" "标签"里面是对各种图片的分类,点击一个标签,比如" ...

  8. 基于python的K-means聚类提取图片主色

    基于python+opencv的彩色图片主色提取--利用K-means聚类算法 一.K-means聚类算法 1.K-means算法原理 2. K-means聚类算法流程 3.sklearn库中skle ...

  9. 2021遥感应用组二等奖:基于长时序Landsat遥感影像的赣南脐橙时空变化分析

    作品介绍 一.应用背景 自上世纪70年代开始种植脐橙以来,赣州大力实施"兴果富农"等战略,经过38年发展产业规模迅速壮大,目前赣州全市果业总面积263万亩,脐橙158万亩,产量超1 ...

  10. fmask云检测 matlab_基于BP神经网络的Landsat影像去云方法

    基于 BP 神经网络的 Landsat 影像去云方法 王睿 1 , 2 ,韦春桃 1 , 3 ,马云栋 1 ,胡涛 1 [摘 要] 摘要 : 利用最优化云变换 HOT 检测云区位置,再经过云区偏移和膨 ...

最新文章

  1. Redis 笔记(03)— string类型(设置key、获取key、设置过期时间、批量设置获取key、对key进行加减、对key值进行追加、获取value子串)
  2. Bootstrap排版中地址与引用详解
  3. windows-DLL注入
  4. 酷欧天气(CoolWeather)应用源码
  5. Ubuntu 建立tftp服务器
  6. 2015计算机二级公共基础知识,2015年计算机二级公共基础知识考点测试题(8)
  7. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
  8. 【highlight】highlight 动态添加代码,样式失效
  9. CMU和谷歌联手放出XL号Transformer!提速1800倍 | 代码+预训练模型+超参数
  10. angular 新建命令
  11. css3制作俩面翻转盒子效果
  12. 国内python镜像源记录
  13. python中支持双向索引的有哪些_解决Python中展示tkinter不支持的图片格式
  14. 如何查看计算机有无无线连接功能,如何查看电脑是否支持miracast_怎么判断电脑是否支持MIRACAST无线连接功能...
  15. android viewholder静态,android – 静态ViewHolder并在使用RecyclerView时获取上下文
  16. debian 7 调整控制台分辨率
  17. 在线小游戏编程工具使用教程
  18. MyBatis 第二扇门
  19. Linux系列——Linux操作指令之ip指令详细理解及常用命令
  20. mysql分组排序取每组第一条

热门文章

  1. 8个成语接龙首尾相连_小学经典成语200个,已按场景分类好,孩子写作不再词穷...
  2. Python排序算法---冒泡排序
  3. (day 43 - 二分查找 ) 剑指 Offer 53 - II. 0~n-1中缺失的数字
  4. (day 39 - 动态规划) 剑指 Offer 47. 礼物的最大价值
  5. redis数据类型-字符串
  6. sql不写parametertype_Mapper接口中方法的输入参数类型要和Mapper.xml中定义的每个sql的parameterType的类型相同...
  7. sql select 输出多行_SQL复杂查询
  8. python 代码分块_python大数据分块处理
  9. java cpt_1、第十 - WEB开发进阶 - JavaSricpt 正则表达式
  10. 实战爬虫:利用python中itchat模块给心爱的人每天发天气预报