提取Modis数据的指定层数据,C# ArcGISEngine

1.以下是原始Modis数据, MOD11A2

2.在ArcMap中可以直接打开提取指定层数据


3.现在我们要在程序中提取,代码如下

/// <summary>
/// 提取Modis指定层数据
/// </summary>
/// <param name="ModisFilePath">输入的Modsi数据路径</param>
/// <param name="OutFilePath">提取后的输出路径</param>
public void DataGetTif_DayLST(string ModisFilePath, string OutFilePath)
{
    try

     {

       //加载Modis原始数据文件
       DirectoryInfo HdfDir = new DirectoryInfo(ModisFilePath);
       FileInfo[] HdfInfors = HdfDir.GetFiles("*.hdf");

      //定义gp
      ESRI.ArcGIS.Geoprocessor.Geoprocessor gp1 = new ESRI.ArcGIS.Geoprocessor.Geoprocessor();
      gp1.OverwriteOutput = true;

      //提取白天LST第0层数据
      foreach (var file in HdfInfors)
      {
           //提取后的文件名称
           string OutFileName = file.Name.Remove(file.Name.LastIndexOf("."));

           //提取后输出完整路径
            string OutFile = OutFilePath + "\\" + OutFileName + ".DayLST.tif";

          //执行提取
           ESRI.ArcGIS.DataManagementTools.ExtractSubDataset es = new ESRI.ArcGIS.DataManagementTools.ExtractSubDataset();
           es.in_raster = file.FullName;  //输入数据
           es.out_raster = OutFile;       //输出删格
           es.subdataset_index = 0;//这里的数字就是提取的哪一层
           gp1.Execute(es, null);  //执行操作
            
      }

   }

   catch(Exception ex)

   {
        LogHelper.LogError("Modis数据预处理,提取Modis数据异常", ex);

        thorw;

   }

 }


4.提取后的结果


提取其他层的方法一样,只需更改  es.subdataset_index = 0;即可,数字表示哪一层数据

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值