• PIE SDK归一化水体指数法


    1.算法功能简介

     

       归一化指数法(NDWI(Normalized Difference Water Index,归一化水指数)),用遥感影像的特定波段进行归一化差值处理,以凸显影像中的水体信息。

      其表达式为NDWI =(p(Green)-p(NIR))/(p(Green)+p(NIR))

      是基于绿波段与近红外波的归一化比值指数。该NDWI一般用来提取影像中的水体信息,效果较好。

      PIE支持归一化指数法算法的执行,下面对此算法功能进行介绍。示例以一幅洞庭湖2017年水体影像图如下图根据矢量文件提取指定范围内的水体数据为例。结果看示例截图部分。

     

    2.算法功能实现说明

    2.1 实现步骤

    第一步

    算法参数设置

    第二步

    算法执行

    第三步

    结果显示

    2.2 算法参数

    算法名称

    归一化水体指数算法

    C#算法DLL

    PIE.CommonAlgo.dll

    C#算法名称

    PIE.CommonAlgo.DataAutoMagicAlgo

    参数结构体

    DataAutoMagic_Exchange_Info

    参数说明

    InputFilePathList

    IList<string>

    输入文件路径列表

    OutputFilePath

    String

    输出文件路径

    ShpFilePath

    String

    输入水体大致范围文件路径

    Type

    Int

    自动提取类型,默认是0

    2.3 示例代码

    数据路径

    百度云盘地址下/ PIE示例数据/栅格数据/01.GF1/洞庭湖水体/ IMG_FE233_20171219_636493846049962321.tif

    SHP_FE233_20171219_636493846049962321.shp

    示例代码

     

     1 /// <summary>
     2 /// 归一化水体指数法
     3 /// </summary>
     4 public void NormalizeWaterExtract()
     5 {
     6     // 归一化水体指数分类
     7   PIE.CommonAlgo.DataAutoMagic_Exchange_Info info = new DataAutoMagic_Exchange_Info();    info.InputFilePathList = new List<string> {@"D:MapDataRaster水体提取数据WR_20171219_A0303_636493863981864520IMG_FE233_20171219_636493846049962321.tif" };//输入文件列表
     8     info.OutputFilePath = @"D:MapDataRaster水体提取数据	empautoMagic.shp";//输出文件路径 注意是矢量文件
     9     info.ShpFilePath = @"D:MapDataRaster水体提取数据WR_20171219_A0303_636493863981864520SHP_FE233_20171219_636493846049962321.shp";//矢量范围路径
    10     info.Type = 0;//自动提取类型 默认0
    11     PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll","PIE.CommonAlgo.DataAutoMagicAlgo");
    12     if (algo == null) return;
    13                       
    14     algo.Name = "归一化水体指数分类";
    15     algo.Params = info;
    16     bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
    17     if (result)
    18     {
    19         MessageBox.Show("归一化水体指数分类算法执行成功");
    20         ILayer layer = LayerFactory.CreateDefaultLayer(info.OutputFilePath);
    21         if (layer == null) return;
    22         m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
    23         m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    24     }
    25 }
    View Code

     

    2.4 示例截图

     

  • 相关阅读:
    【Spring-Security】Re01 入门上手
    【JDBC】Extra03 PostgreSQL-JDBC
    【JDBC】Extra02 SqlServer-JDBC
    【JDBC】Extra01 Oracle-JDBC
    【Oracle】Windiws-11G 安装
    【Hibernate】Re08 加载策略配置
    【Hibernate】Re07 关系映射处理
    【Hibernate】Re01.6 HQL
    【Hibernate】Re01.5 API
    【Quartz】
  • 原文地址:https://www.cnblogs.com/PIESat/p/11275103.html
Copyright © 2020-2023  润新知