C#+Arcengine實現GP工具中的extract by mask(提取掩膜),可以實現提取shp範圍的柵格資料,可用來獲得shp範圍的高程

chhdxzq發表於2015-02-03

有時候我們需要得到一定範圍的柵格資料,比如獲得面邊界的高程等功能,如下:

  /// <summary>

        /// 提取掩膜
        /// </summary>
        /// <param name="inRaster">raster資料</param>
        /// <param name="inMask">shp資料(面或者線)</param>
        private string Extractbymask(string inRaster, string inMask)
        {
           try
          {
             //呼叫GP工具
            Geoprocessor extractGeoprocessor = new Geoprocessor();
             //初始化工作空間
              extractGeoprocessor.SetEnvironmentValue("workspace", @"C:\Users\TOMATO\Documents\ArcGIS\Default.gdb");
             extractGeoprocessor.OverwriteOutput = true;

              string extractName = "Mask.tif";//面轉化為線的名稱
              string extractByMask = newFolder + "\\" + extractName;//路徑+名稱
               //判斷此檔案是否存在,若存在,刪除
                if (File.Exists(extractByMask))
               {
                  File.Delete(extractByMask);
               }
               //初始化FeatureToLine工具
                ExtractByMask newExtractByMask = new ExtractByMask()
               {
                   in_raster = inRaster,//輸入柵格資料

                   out_raster = extractByMask,//要輸出的柵格資料路徑+名稱

                   in_mask_data = inMask//輸入shp資料作為掩膜(可以為面或線)
               };
              extractGeoprocessor.Execute(newExtractByMask, null);
               //判斷此檔案是否存在
               if (File.Exists(extractByMask))
               {
                  return extractByMask;
             }
               else
               {
                  return null;
             }
            }
           catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return null;
            }
        }

相關文章