zoukankan      html  css  js  c++  java
  • ArcMap进行天空开阔度(SVF)分析

    这里的SVF并不是生物学或医学的(Stromal Vascular Fraction),而是指GIS中的(Sky View Factor,SVF),即为(城市)天空开阔度。

    城市天空开阔度(Sky View Factor,SVF)是重要的城市形态学参数,那今天博主就跟大家讲一下如何用ArcMap来计算天空开阔度。

    1、加载数据

    需要加载的数据包括buildings(带有高度信息的建筑数据),area(范围数据),用ArcMap进行添加。如图:

       

     

    buildings数据显示 

    area数据显示

    2、裁剪

    (1)将buildings及area进行备份,存为buildings2、area2,打开编辑器,【开始编辑】,选中所有建筑,【合并】。

    (2)用 【编辑器】中的【裁剪】工具进行裁剪。

    裁剪参数设置

    裁剪结果图

    3、合并

    设置环境,用ArcToolbox中的【合并】工具,对裁剪后的图层与建筑图层(buildings)进行合并。

    环境设置参数

    合并参数设置

     4、面转栅格

    面转栅格参数设置

    面转栅格结果图

    5、栅格转点

    栅格转点参数设置

    栅格转点,并对多余部分进行删除。

    栅格转点结果图

    6、建立缓冲区(推荐使用方法二)

     方法一:

    缓冲区参数设置

     

    缓冲区结果局部图

    属性表

    此时我们可以看到属性表中只有40个要素,原因是grid_code(即为中心点高程数据)相同的为同一要素,需要将多部件转为单部件

    (1)【编辑器】【开始编辑】选中所有要素(center_buffer中)。

    (2)【高级编辑】【拆分多部件要素】。

    (3)【添加字段】,“CID”,作为圆的唯一标识

    方法二:

     

    缓冲区分析参数设置

    属性表

    此时pointid作为标识字段,grid_code仍为2中心点高程

     

    让让你们康康全图吧,但愿没有密集综合征

    7、相交

     

    相交参数设置

    相交结果(部分)

     

     8、计算SVF

    接下来的操作均为表格操作,要熟练使用栅格计算器,若忘记SVF公式,可看文章开头。

    (1)【添加字段】,“SinA”

    高差h=([Height]- [grid_code]),

    半径r=10m

    (2)【字段计算器】,输入公式:“ ([Height]- [grid_code]) / Sqr ( ([Height]- [grid_code]) *([Height]- [grid_code]) +100 )”

    字段计算器参数设置

    (3)筛选SinA值为负数,归零

    一些小伙伴也能要问了,为何会出现负值?原因是相交就很难避免一些高的建筑与低的建筑在同一个圆中,而他的圆心又恰好在高的建筑上,自然就出现的SinA值为负的情况,而SVF为天空开阔度,要计算的自然是高于中心点的角,SinA应为非负,为减小影响,要进行归零处理。(还有一种方法是直接删除,而且此方法更合理,但本例中会出现些许问题)

    (当然,如果你只计算地面的天空开阔度就不会有这种烦恼了)

     

     (4)清除所选要素

    (5)汇总

    计算sinA平均值

     

     (6)计算SVF

    center图层,【添加字段】

     右键,【连接】,【连接数据】

    连接数据参数设置

     【字段计算器】,输入公式“1- [averageSinA.Ave_SinA]”,移除所有连接。

    字段计算器参数设置

     

    9、点转栅格

    点转栅格参数设置

      

     天空开阔度(SVF)结果图

     

     颜色越红,表示天空开阔度越差;颜色越蓝表示天空开阔度越好。

    附页:

    如果针对地面通风等进行研究,可将5m高度以上建筑,svf设为1,作为成本栅格

    具体操作如下:

    (1)按属性选择

     

    按属性选择参数设置

    (2)按位置选择

     

    按位置选择参数设置

    按位置选择结果图

     

    (3)切换选择

    【打开属性表】【切换选择】

     

    切换选择结果图

    (4)点转栅格

    点转栅格参数设置

       

       

     SVF结果图

     

     知识点补充:

    SVM

    支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane) 。
    SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险(structural risk),是一个具有稀疏性和稳健性的分类器  。SVM可以通过核方法(kernel method)进行非线性分类,是常见的核学习(kernel learning)方法之一 [4]  。
    SVM被提出于1964年,在二十世纪90年代后得到快速发展并衍生出一系列改进和扩展算法,在人像识别文本分类模式识别(pattern recognition)问题中有得到应用。

    今日份歌曲推荐:

    龙卷风—周杰伦

                                     

  • 相关阅读:
    Ubuntu中文乱码问题解决方案
    微软开业网站----精华 http://www.microsoft.com/opensource/directory.aspx
    微软开源项目
    cnblogs开源合集
    微软开源软件---管理员用的软件
    微软开源项目-codeflex项目介绍
    SQLServer 微软团队开源项目 (web 版?)
    流程引擎2-CCFLOW
    流程引擎1-高人
    sql web Admin 源码.net 升级
  • 原文地址:https://www.cnblogs.com/pygisxss/p/12740829.html
Copyright © 2011-2022 走看看