最近修改论文已经到了最后的关口,结果被质疑分类精度评估的方法。

我原来的方法是利用ArcGIS建立格网,格网中心点作为我的目视解译点,然后利用ArcGIS收集该点的影像分类结果,计算混淆矩阵。

被质疑之后我使用了分层抽样法,原理我就不说了,

通过分层抽样法可以计算出一幅影像每个类别需要的抽样点为多少

之后在分类影像上每个类别的点随机撒在该类别的位置,再人工目视解译,与影像分类结果一起计算混淆矩阵即可。

我首先尝试了Erdas,首先有着ArcGIS的电脑安装erdas后会出现一定的问题,之后我会再写一篇文章概述。并且最后发现erdas抽样的点很难导入ArcGIS或者有个excel表格这样方便计算混淆矩阵,于是我放弃了。

之后网上搜索到ArcMap 10.4以上版本可以较为方便的,进行分层抽样撒点,但是按照高版本的有风险,我目前用10.2

ArcGIS 10.2没有办法让点能够撒到分类影像上那一类的位置上去,但是我最后发现ENVI可以使用这个功能。

正文如下:----------------------------------------不想看我叙述的可以看这里------------------------------

1.分类

首先我的分类结果是tif影像,1、2、3这些值来表示各个类别,tif不能直接在ENVI中进行抽样撒点,要在ENVI中分类,采用决策树,也就是classification-decision tree,首先先建立一个决策树,注意这是让你选b1的波段,先不要选,之前我选了后来换成别的影像存在错误。保存之后,使用classification-decision tree-execute exiting decision tree,选择之前保存的决策树txt。选择你的分类结果影像,然后就可以得到分类影像。

2.抽样撒点

使用envi的classification-post classification-generate random sample-using ground truth image

之后选择你需要的影像,点确定

之后可以选择类(注意这里我给了一个类别给影像上没有分类的,就是none,可以不选它)

点OK后,选择分层抽样,和diproportionnate,然后点击set class sample sizes,就可以设定每个类别撒多少点了

其他选择不变保存roi

之后打开影像

选择overlay-region of interest,就可以看到生成的点(其实就是roi),注意这里的ROI可能存在之前生成的,不是你这次的,删掉。以下窗口选择,选择File-output roi to shapefile这个,

如下,选择你需要的类别保存即可,基本是全选

3.shapefile获取影像分类点+目视解译

将shp文件在ArcGIS打开,之后选择spatial analysis tools-extraction-extract values to points,选择你的shp文件和影像,最后可以得到一个矢量文件,里面有一栏RASTERVALU属性就是影像的值。

之后只要打开属性表,add field增加新的一列,作为目视解译的结果,然后右键使用栅格计算器,使它等于RASTERVALU这一列即可(这一步是为了减小工作量,当然也可以自己赋值),然后就可以目视解译改这个值啦。

4.计算混淆矩阵

得到目视解译后的点的矢量文件,可以使用python打开shp文件自带的dbf文件(其实就是属性表)计算混淆矩阵和kappa系数即可

代码如下

from sklearn.metrics import confusion_matrix

from sklearn.metrics import accuracy_score

from sklearn.metrics import cohen_kappa_score

from sklearn.metrics import precision_recall_fscore_support

from sklearn.metrics import classification_report

from sklearn.metrics import precision_score

from sklearn.metrics import recall_score

import pandas

import os

from dbfread import DBF

rootdir = "H:\\result_2_type\\points"

list = os.listdir(rootdir)

colnames = ['OID_', 'RASTERVALU', 'true']

true=[]

result=[]

for i in range(0,len(list)):

if not list[i].endswith(".dbf"):

continue

folder = os.path.join(rootdir,list[i])

print(folder)

table = DBF(folder, encoding='GBK')

df = pandas.DataFrame(iter(table))

result_temp = df['RASTERVALU'].tolist()

true_temp = df['true'].tolist()

score=accuracy_score(true_temp, result_temp)

print('score=',score)

kappa=cohen_kappa_score(true_temp, result_temp)

print('kappa=',kappa)

report=classification_report(true_temp, result_temp,digits=4)

print('report=',report)

true.extend(true_temp)

result.extend(result_temp)

envi精度评定_利用ArcGIS+envi实现遥感分类精度评价(分层抽样法),ArcGISENVI,评估,的...相关推荐

  1. ArcGIS+ENVI实现遥感分类精度评估(分层抽样法)

    最近修改论文已经到了最后的关口,但是分类精度评估的方法还需要再修改调整. 我原来的方法是利用ArcGIS建立格网,格网中心点作为我的目视解译点,然后利用ArcGIS收集该点的影像分类结果,再把数据属性 ...

  2. arcgis中字段的融合_利用ArcGis进行地理处理之三(融合)

    利用ArcGis进行地理处理之三(融合) 一.应用目标 在实际工作中,融合往往用于数据的整理.如,整合了10个采油厂的输油管线数据和10个采气厂的输气管线数据,总共有1000个图元,数据体量大,想要整 ...

  3. arcgis直方图导出地图_利用Arcgis地图工具自动输出报告地图图纸

    大家在日常工作中经常会用到arcgis进行矢量的绘制,以完成规划,设计,以及测绘,监测一类的工作.这些工作的需要往往也伴随着需要完成项目报告,项目报告中会涉及到各种利用arcgis绘制的矢量图纸,这个 ...

  4. code block怎样导入整个文件夹_利用ArcGis导入数据之四(dxf——Geomap、CAD、CorelDraw)...

    利用ArcGis导入数据之四(dxf--Geomap.CAD.CorelDraw) 一.应用目标 在油气行业,地质方面Geomap应用相当广泛,建设方面也有CAD,作图方面CorelDraw应用也多, ...

  5. python 计算面积 比计算几何慢_利用ArcGIS和Python计算中国各省路网密度

    ArcGIS 相交 利用ArcGIS里面的相交工具,每个省把路标识了. 计算几何 分别计算路网的长度和各省的面积. Python 利用Python对属性数据进行处理 导入相关模块 ## 导入相关模块 ...

  6. acegis连接使用方法_利用ArcGis进行地理处理之四(空间连接)

    利用ArcGis进行地理处理之四(空间连接) 一.应用目标 在实际工作中,空间连接利用最多的是点数统计.如按照县域统计井数.这个目标实现的方法很多,比如先做相交,再用excel进行统计:再比如利用裁剪 ...

  7. arcgis 出图背景_利用ArcGIS做一张quot;三调quot;土地利用现状图

    首先我们打开arcgis加载进来三调数据,这是镇的数据,现在我们需要村的行政边界.首先打开属性表添加一个新的字段命名"行政代码"字段属性为文本,文本长度保持默认. 在行政代码列打开 ...

  8. arcmap提取dem高程_利用ArcGIS高效率提取DEM高程点至CAD

    由于EPS面选提取高程点效率极低且软件易崩溃,最终导致项目生产及成图进度滞后.本教程整理了从DEM栅格数据提取高程点的方法,并在其他相关教程基础上进行了细化和说明. 教程开始 1.加载DEM文件 2. ...

  9. js long类型精度丢失_解决js处理Long类型丢失精度的问题

    项目中很多时候都会用到json,常用的有fastjson,Jackson等等这些,有时候为了统一,我们通常就会约定使用某一种. 不管使用哪种,Spring MVC返回个前段Long类型的数据时,js在 ...

  10. epoch 增大 精度降低_气密性测试设备是如何保证测试精度?

    气密性测试设备的检测精度是非常关键的,别名气密检测设备,在各种气密性测试.防水测试工况中,是否检测准确无误,且高效的展开气密测试,防水测试都要把控好气密测试的精度,那么,影响气密测试精度的要素主要有哪 ...

最新文章

  1. 社交网络图挖掘2--社区的直接发现和图划分
  2. 转 无损转换Image为Icon
  3. 初识 RESTful API规范
  4. 访问 asp网页 白屏_(02)ASP如何设定主目录和默认文档
  5. 【MATLAB】求点到多边形的最短距离
  6. IE 8 下面的垂直水平居中
  7. oxm java_使用JAXB2.0实现OXM
  8. Windows 下 PHP 开发环境配置系列二(使用 MODx CMS)
  9. Steve Thair谈DevOps on Windows的演变与面临的挑战
  10. 【Sqoop】sqoop导入导出
  11. 敏捷测试与普通测试的区别
  12. C# 给picturebox添加滚动条
  13. 技术分解:光纤传感在交通监控中的应用
  14. MATLAB强化学习实战(四) 训练DDPG智能体控制双积分器系统
  15. 分享一个xshell7的绿色版
  16. var foo =function (){}与function foo()的区别
  17. MATLAB代码:基于非对称纳什谈判的多微网电能共享运行优化策略
  18. 从零到一黑苹果教程(10.15Catalina)
  19. python富翁与穷人_穷人和富人最根本的区别
  20. 互联网基础与应用复习

热门文章

  1. KYLO的Spring知识总结
  2. Java io和nio的应用场景_java中IO和NIO的区别和适用场景
  3. 数字安全一个都不能少:360为企业数字化转型护航
  4. Vant 3 - 有赞出品的开源移动UI组件库,基于 Vue3 重构发布
  5. odac与oracle,适用于 Windows 的 64 位 Oracle Data Access Components (ODAC) | Oracle 中国
  6. 医学图像加密算法研究_项目笔记
  7. 7、数据表添加字段(三种方式)
  8. 搭建自己的wiki系统
  9. 天线的主要技术指标及其含义—天线的输入阻抗
  10. LeetCode Problems 903