Ejemplo n.º 1
0
 /// <summary>
 /// 这里增加一个判断一个文件是否该驱动支持的静态方法
 /// </summary>
 /// <param name="fileName"></param>
 /// <returns></returns>
 internal static bool IsSupport(string fileName)
 {
     try
     {
         AttributeManager attributes = new AttributeManager();
         using (Dataset dataset = Gdal.Open(fileName, Access.GA_ReadOnly))
         {
             GDALHelper.GetDatasetAttributes(dataset, attributes);
         }
         Dictionary <string, string> allGdalSubDatasets = attributes.GetAttributeDomain("SUBDATASETS");
         string[] allGdalSubDatasetArray = RecordAllSubDatasetNames(allGdalSubDatasets);
         if (allGdalSubDatasetArray == null || allGdalSubDatasetArray.Length != 6)
         {
             return(false);
         }
         using (Hdf5Operator hdf = new Hdf5Operator(fileName))
         {
             allGdalSubDatasetArray = hdf.GetDatasetNames;
         }
         string[] DATASETS = new string[] { "icecon_north_asc", "icecon_north_avg", "icecon_north_des", "icecon_south_asc", "icecon_south_avg", "icecon_south_des" };
         for (int i = 0; i < 6; i++)
         {
             if (!allGdalSubDatasetArray[i].Contains(DATASETS[i]))//数据集必须完全匹配,才能用此数据集
             {
                 return(false);
             }
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }