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

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

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

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


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.提取后的结果

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

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

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

相关文章:

  • 2022-02-19
  • 2021-08-13
  • 2021-12-07
  • 2021-06-19
  • 2022-12-23
  • 2022-12-23
  • 2021-07-28
猜你喜欢
  • 2021-03-30
  • 2021-05-12
  • 2022-12-23
  • 2021-05-10
  • 2021-04-30
  • 2021-05-26
相关资源
相似解决方案