zoukankan      html  css  js  c++  java
  • PIE SDK水深提取算法

    1.算法功能简介

      水深提取算法就是根据输入的水位设为d,dem设为h 这两个数据做一个差值运算,则水深计算公式为d-h;本示例中的是基于洞庭湖提取的水体矢量文件的范围来计算dem和水位25米的差值。

      需要注意的是,水位的基准要和dem的基准一致。水位的基准需要判断是基于河床还是和dem一致的高程基准面。不然结果可能会受影响。

    2.算法功能实现说明

    2.1 实现步骤

    第一步

    算法参数设置

    第二步

    算法执行

    第三步

    结果显示

    2.2 算法参数

    算法名称

    水深提取法

    C#算法DLL

    PIE.CommonAlgo.dll

    C#算法名称

    PIE.CommonAlgo. WaterStatisticsAlgo

    参数结构体

    WaterDepthInfo

    参数说明

    dWaterHeight

    double

    水位

    pszInDEMFile

    string

    DEM文件路径

    pszOutFile

    string

    输出文件路径

    pszShpFile

    String

    水体矢量路径

    2.3 示例代码

    数据路径

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

    示例代码

     1 /// <summary>
     2 /// 水深提取算法 autoMagic.shp水体矢量文件是IMG_FE233_20171219_636493846049962321.tif进行归一化指数法处理的结果
     3 /// </summary>
     4 public void WaterStatics()
     5 {
     6     PIE.CommonAlgo.WaterDepthInfo info = new WaterDepthInfo();
     7     info.pszInDEMFile = @"D:MapDataRaster水体提取数据WR_20171219_A0303_636493863981864520dem洞庭湖.tif";//Dem文件路径
     8     info.pszShpFile = @"D:MapDataRaster水体提取数据	empautoMagic.shp";//水体矢量文件
     9     info.dWaterHeight = 25;//水位
    10     info.pszOutFile = @"D:MapDataRaster水体提取数据	empwaterDepth.tif";//输出文件路径
    11          
    12     PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.WaterStatisticsAlgo");
    13     if (algo == null) return;
    14           
    15     algo.Name = "水深提取";
    16     algo.Params = info;
    17 
    18     bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
    19     if (result)
    20     {
    21         MessageBox.Show("水深提取算法执行成功");
    22         ILayer layer = LayerFactory.CreateDefaultLayer(info.pszOutFile);
    23         if (layer == null) return;
    24         m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
    25         m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    26     }
    27 }
    View Code

    2.4 示例截图

  • 相关阅读:
    寻找回文数
    【C/C++语言入门篇】 位运算
    怎样判断输入是否结束
    命名那个数字
    Broken Necklace
    C#打造邮件接受器VS2005版
    C#应用程序打包时自动安装MSDE
    SQL6.5到2005发布的版本号搜集整理
    SQL无限分类存储过程整理2
    ASP.NET调用SWF代码文件
  • 原文地址:https://www.cnblogs.com/PIESat/p/11281168.html
Copyright © 2011-2022 走看看