基于C#和遥感软件二次开发的宜居度综合方法

影响居住地宜居程度的几大指标的分析

  • 植被指数(NDVI)
  • 水体指数(NDWI)->水体辐射指数(理想状况)
  • 道路指数——>道路辐射指数(理想状况)
  • 空气质量指数(AQI)
  • 热岛效应(UHI)->累计直方图
  • 宜居气压的计算(考虑Topsis分析的数据处理)
  • 人类活动指数
    分析:将这些指标重分类之后打好分(即正向化处理),再加入下面的综合方法中。

非监督评价(自己取的名儿)

  • 熵权法

原理:指标的变异程度越小,所反映的信息量也越少,其对应的权值也应该越低。
算法步骤:
假设有n个评价对象,那我们的n就是南京市栅格数据所有的像元个数,m个评价指标,那我们的m就是7,那么得到以下矩阵。
X=[x11x12⋯x1mx21x22⋯x2m⋮⋮⋱⋮xn1xn2⋯xnm]X=\left[\begin{array}{cccc} x_{11} & x_{12} & \cdots & x_{1 m} \\ x_{21} & x_{22} & \cdots & x_{2 m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n 1} & x_{n 2} & \cdots & x_{n m} \end{array}\right] X=⎣⎢⎢⎢⎡​x11​x21​⋮xn1​​x12​x22​⋮xn2​​⋯⋯⋱⋯​x1m​x2m​⋮xnm​​⎦⎥⎥⎥⎤​
对XXX中的元素对 采取正向标准化的方法得到标准化后的矩阵Z~\tilde{Z}Z~,目的是使计算信息熵的元素全部为正。
z~ij=xij−min⁡{x1j,x2j,⋯,xnj}max⁡{x1j,x2j,⋯,xnj}−min⁡{x1j,x2j,⋯,xnj}\tilde{z}_{i j}=\frac{x_{i j}-\min \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}}{\max \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}-\min \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}} z~ij​=max{x1j​,x2j​,⋯,xnj​}−min{x1j​,x2j​,⋯,xnj​}xij​−min{x1j​,x2j​,⋯,xnj​}​
对于矩阵Z~\tilde{Z}Z~:
Z~=[z~11z~12⋯z~1mz~21z~22⋯z~2m⋮⋮⋱⋮z~n1z~n2⋯z~nm]\tilde{Z}=\left[\begin{array}{cccc} \tilde{z}_{11} & \tilde{z}_{12} & \cdots & \tilde{z}_{1 m} \\ \tilde{z}_{21} & \tilde{z}_{22} & \cdots & \tilde{z}_{2 m} \\ \vdots & \vdots & \ddots & \vdots \\ \tilde{z}_{n 1} & \tilde{z}_{n 2} & \cdots & \tilde{z}_{n m} \end{array}\right] Z~=⎣⎢⎢⎢⎡​z~11​z~21​⋮z~n1​​z~12​z~22​⋮z~n2​​⋯⋯⋱⋯​z~1m​z~2m​⋮z~nm​​⎦⎥⎥⎥⎤​

计算每个指标(列)下的每个样本所占的比重,得到每个元素的PPP矩阵:
pij=z~ij∑i=1nz~ijp_{i j}=\frac{\tilde{z}_{i j}}{\sum_{i=1}^{n} \tilde{z}_{i j}} pij​=∑i=1n​z~ij​z~ij​​
则每个指标的权重即为:
ej=−1ln⁡n∑i=1npijln⁡(pij)(j=1,2,⋯,m)e_{j}=-\frac{1}{\ln n} \sum_{i=1}^{n} p_{i j} \ln \left(p_{i j}\right)(j=1,2, \cdots, m) ej​=−lnn1​i=1∑n​pij​ln(pij​)(j=1,2,⋯,m)
最后将各个像元的七个指标加权即可得到每个像元的宜居度值。
Pvi=∑j=1mej×xiji=1,2...n\begin{array}{c} Pv_{i} = \sum_{j = 1}^{m}e_{j}\times x_{ij} \qquad i = 1,2...n \end{array} Pvi​=∑j=1m​ej​×xij​i=1,2...n​
最后将权重转化为表达式,传入波段运算算法得到表达式。
优点:简单容易实现
缺点:定权方式由数据自身特点决定,客观性强,但是效果也许达不到期望。

  • 主成分分析

原理:与熵权法差不多,最后出的图是每个像元主成分得分,把7大指标进行主成分分析降维,得到的前几主成分累计贡献率在80%以上的作为有用的主成分,每个像元主成分得分作为结果出图。
在主成分分析中最经典的例子就是各地区高等教育发展状况平的对比,那么在那个案例中,对比的样本是地区,我们这个对比的样本就是每个像元。指标有,所以这种方法的权重也不需要人为干涉。有数据就有权重,但是最后剩下的主成分权重需要自己定。
算法步骤:
假设有n个样本,p个指标,这里的n就是像素数,p为7个指标,则可构成大小为n×pn\times pn×p的样本举证xxx:
x=[x11x12⋯x1px21x22⋯x2p⋮⋮⋱⋮xn1xn2⋯xnp]=(x1,x2,⋯,xp)x=\left[\begin{array}{cccc} x_{11} & x_{12} & \cdots & x_{1 p} \\ x_{21} & x_{22} & \cdots & x_{2 p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n 1} & x_{n 2} & \cdots & x_{n p} \end{array}\right]=\left(x_{1}, x_{2}, \cdots, x_{p}\right) x=⎣⎢⎢⎢⎡​x11​x21​⋮xn1​​x12​x22​⋮xn2​​⋯⋯⋱⋯​x1p​x2p​⋮xnp​​⎦⎥⎥⎥⎤​=(x1​,x2​,⋯,xp​)

  1. 首先进行标准化处理:
    按照均值和标准差进行标准化:
    xj‾=1n∑i=1nxij\overline{x_{j}}=\frac{1}{n} \sum_{i=1}^{n} x_{i j} xj​​=n1​i=1∑n​xij​
    Sj=∑i=1n(xij−xj‾)2n−1S_{j}=\sqrt{\frac{\sum_{i=1}^{n}\left(x_{i j}-\overline{x_{j}}\right){2}}{n-1}} Sj​=n−1∑i=1n​(xij​−xj​​)2​​
    Xij=xij−xj‾SjX_{i j}=\frac{x_{i j}-\overline{x_{j}}}{S_{j}} Xij​=Sj​xij​−xj​​​

    原始样本矩阵经过标准化为:
    X=[X11X12⋯X1pX21X22⋯X2p⋮⋮⋱⋮Xn1Xn2⋯Xnp]X=\left[\begin{array}{cccc} X_{11} & X_{12} & \cdots & X_{1 p} \\ X_{21} & X_{22} & \cdots & X_{2 p} \\ \vdots & \vdots & \ddots & \vdots \\ X_{n 1} & X_{n 2} & \cdots & X_{n p} \end{array}\right] X=⎣⎢⎢⎢⎡​X11​X21​⋮Xn1​​X12​X22​⋮Xn2​​⋯⋯⋱⋯​X1p​X2p​⋮Xnp​​⎦⎥⎥⎥⎤​

  2. 对标准化之后的矩阵计算协方差矩阵:
    R=[r11r12⋯r1pr21r22⋯r2p⋮⋮⋱⋮rp1rp2⋯rpp]R=\left[\begin{array}{cccc} r_{11} & r_{12} & \cdots & r_{1 p} \\ r_{21} & r_{22} & \cdots & r_{2 p} \\ \vdots & \vdots & \ddots & \vdots \\ r_{p 1} & r_{p 2} & \cdots & r_{p p} \end{array}\right] R=⎣⎢⎢⎢⎡​r11​r21​⋮rp1​​r12​r22​⋮rp2​​⋯⋯⋱⋯​r1p​r2p​⋮rpp​​⎦⎥⎥⎥⎤​
    其中 rij=1n−1∑k=1n(Xki−Xˉi)(Xkj−Xˉj)=1n−1∑k=1nXkiXkjr_{ij}=\frac{1}{n-1} \sum_{k=1}^{n}\left(X_{k i}-\bar{X}_{i}\right)\left(X_{k j}-\bar{X}_{j}\right)=\frac{1}{n-1} \sum_{k=1}^{n} X_{k i} X_{k j}rij​=n−11​k=1∑n​(Xki​−Xˉi​)(Xkj​−Xˉj​)=n−11​k=1∑n​Xki​Xkj​

  3. 计算RRR的特征值和特征向量
    特征值:λ1≥λ2≥⋯≥λp≥0\lambda_{1} \geq \lambda_{2} \geq \cdots \geq \lambda_{p} \geq 0 \quadλ1​≥λ2​≥⋯≥λp​≥0
    特征向量:a1=[a11a21⋮ap1],a2=[a12a22⋮ap2],⋯,ap=[a1pa2p⋮app]a_{1}=\left[\begin{array}{c} a_{11} \\ a_{21} \\ \vdots \\ a_{p 1} \end{array}\right], a_{2}=\left[\begin{array}{c} a_{12} \\ a_{22} \\ \vdots \\ a_{p 2} \end{array}\right], \cdots, a_{p}=\left[\begin{array}{c} a_{1 p} \\ a_{2 p} \\ \vdots \\ a_{p p} \end{array}\right]a1​=⎣⎢⎢⎢⎡​a11​a21​⋮ap1​​⎦⎥⎥⎥⎤​,a2​=⎣⎢⎢⎢⎡​a12​a22​⋮ap2​​⎦⎥⎥⎥⎤​,⋯,ap​=⎣⎢⎢⎢⎡​a1p​a2p​⋮app​​⎦⎥⎥⎥⎤​

  4. 计算主成分贡献率
    贡献率=λi∑k=1pλk(i=1,2,⋯,p)累计贡献率=∑k=1iλk∑k=1pλk(i=1,2,⋯,p)贡献率=\frac{\lambda_{i}}{\sum_{k=1}^{p} \lambda_{k}}(i=1,2, \cdots, p) \\ 累计贡献率=\frac{\sum_{k=1}^{i} \lambda_{k}}{\sum_{k=1}^{p} \lambda_{k}}(i=1,2, \cdots, p) 贡献率=∑k=1p​λk​λi​​(i=1,2,⋯,p)累计贡献率=∑k=1p​λk​∑k=1i​λk​​(i=1,2,⋯,p)

  5. 取前mmm个主成分使其贡献率达到70%-80%,然后只考虑前mmm个主分量,则第i个主成分为:
    Fi=a1iX1+a2iX2+⋯+apiXp(i=1,2,⋯,m)F_{i}=a_{1 i} X_{1}+a_{2 i} X_{2}+\cdots+a_{p i} X_{p} \quad(i=1,2, \cdots, m) Fi​=a1i​X1​+a2i​X2​+⋯+api​Xp​(i=1,2,⋯,m)
    整个算法的实现步骤调用PIE的主成分正变换算法,他可以调节保留主成分的个数。

这是整合之后的界面,先点分析再附权重,可以再做个框,赋权弹框就行。可能不太有创意,希望大家给出指导意见。
参考文献:
本来是想像熵权法一样把数据导到Matlab里算的,但是PIE提供了主成分变换的算法,不过是针对一张多波段图像的,于是就有了先波段合成再主成分分析

学习PIESDK结合Matlab开发

基于C#和遥感软件二次开发的宜居度综合方法相关推荐

  1. c# 无法加载oraops.dll_Robotstudio软件二次开发:基于C#语言的Smart组件开发基础

    Robotstudio软件除了支持Add-Ins插件的二次开发以外,还支持Smart组件的二次开发.开发语言同样是基于.NET框架的C#语言或VB语言.Smart组件是Robotstudio软件中实现 ...

  2. vb杨辉三角代码编写_「二次开发」——基于VB.NET的NX UG软件二次开发基础

    前几期中为大家介绍了CATIA软件.AutoCAD软件基于VB.NET的二次开发,本期再来为大家介绍一下NX UG软件基于VB.NET的二次开发. NX UG软件版本:NX 12.0.0.27 开发软 ...

  3. 基于VB.NET的NX UG软件二次开发基础

    本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 前几期中为大家介绍了CATIA软件.AutoCAD软件基于VB.NET的二次开发,本期再来为大家介绍一下N ...

  4. c#获取autocad安装位置_Robotstudio软件二次开发:基于C#语言的Smart组件开发基础

    Robotstudio软件除了支持Add-Ins插件的二次开发以外,还支持Smart组件的二次开发. 开发语言同样是基于 .NET框架的C#语言或VB语言. Smart组件是Robotstudio软件 ...

  5. pythoncad二次开发视频_revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档...

    二次开发 revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档2019-07-08赞( 0 ) 记录一下CAD二次开发的一些简单实例. 1.helloworld ...

  6. 欢迎光临CAX软件二次开发开源社区!

    欢迎光临CAX软件二次开发开源社区! http://uucax.uueasy.com 转载于:https://www.cnblogs.com/uucax/archive/2011/02/20/1959 ...

  7. Python基于周立功盒子的二次开发的封装和调用

    Python基于周立功盒子的二次开发的封装和调用 一.介绍     前面我们介绍如何拿到官网给的例程并使用起来,但在使用的过程中,我们发现官网给的例子非常的冗长,可读性不好,于是我进行分解和封装,使得 ...

  8. 金蝶erp系统服务器端,金蝶ERP软件二次开发.doc

    金蝶ERP软件二次开发 摘要 企业要提升快速反应的能力,必须建立以信息集中.流程整合.实施控制为核心特点的快速反应体系,有效整合资源,强化基础管理.ERP软件可以帮助企业实现这些目标,但要成功地实施E ...

  9. 基于百度编辑器Ueditor的二次开发

    基于百度编辑器Ueditor的二次开发 官网下载 基本配置 简化后端配置,不请求后端配置项 后端接口规范 修改图片上传 说明及修改 新增按钮及弹窗(自定义附件上传) 按钮文案修改 在业务开发的时候,曾 ...

  10. 基于Qt大恒工业相机二次开发demo-C++

    目录 1.新建工程 2.文件及属性配置 2.1文件拷贝 2.2VS项目属性配置 2.2.1包含目录和库目录添加 2.2.2附加依赖项添加 3.添加基于官方mfc代码改写的CGXBitmap类 3.1添 ...

最新文章

  1. unity3d模拟树叶飘动_Unity3D独立游戏开发日记(一):动态生成树木
  2. 有关l2,1范数作用的理解--正则化项作用,不同于l1范数(矩阵元素绝对值之和)的稀疏要求,l21范数还要求行稀疏
  3. android开源2016_Google 2016年开源版本浏览
  4. fastDFS 命令笔记
  5. vrml行走和静止的人代码_CAE二次开发的核心不是代码
  6. STM32/TMS320F2812+W5500硬软件调试总结
  7. discuz6.1.0 弹出无效的图片文件解决办法
  8. Java_脚本引擎_01_用法入门
  9. d520笔记本linux无线网卡驱动下载,无线网卡万能驱动
  10. 我的程序员之路(13)——2017年度总结
  11. 喝酒神器摇骰子小程序源码分享以及搭建效果图
  12. CC++ recap
  13. 编程之美-2.3-寻找发帖“水王”
  14. 模糊查询和sql语句的拼接
  15. 鸿蒙系统运行内存为啥只有8g,为什么手机运存是8G的,但是可用却只有5G?
  16. iOS系统的优势和特性
  17. Android 音频源码分析——AndroidRecord录音(一)
  18. h.264 sei信息
  19. 产品功能树图_ISO9001:2015标准条款之8.2.2产品和服务要求的确定解析
  20. 机房改造承重不够怎么办?

热门文章

  1. 快递电子面单接口:四通一达,百世,邮政,顺丰,德邦等快递电子面单接口免费接入
  2. 推荐系统之ALS算法详解
  3. android screenshot 命令,android 截图,视频录制命令 screencap screenrecord screenshot
  4. STM8S003F3使用总结——定时器
  5. PMP之项目风险管理
  6. 音频soundpool
  7. 寻找肇事汽车车牌号C语言,北京交通大学C语言综合程序的设计(黄宇班).doc
  8. DSP 6678 多核CACHE一致性操作
  9. Layout天线效应的产生原因以及解决方法
  10. 计算机辅助遥感制图的基本过程,南京信息工程大学2018年遥感原理与应用考研初试大纲...