PIE SDK打開HDF、NC數據

 

1. 功能簡介

    HDF 是美國國家高級計算應用中心(National Center for Supercomputing Application)爲了知足各類領域研究需求而研製的一種能高效存儲和分發科學數據的新型數據格式。數組

    NC是NetCDF的簡稱,其全稱爲Network Common Data Form(網絡通用數據格式),其是針對科學數據的特色開發的,是一種面向數組型並適於網絡共享的數據的描述和編碼標準。利用NetCDF能夠對網格數據進行高效地存儲、管理、獲取和分發等操做。目前,NetCDF普遍應用於大氣科學、水文、海洋學、環境模擬、地球物理等諸多領域。用戶能夠藉助多種方式方便地管理和操做NetCDF 數據集。網絡

    PIE支持HDF和NC數據的瀏覽、讀取和分析。ide

2. 功能實現說明

2.1 HDF數據介紹

    HDF和NC數據都屬於科學數據集,一個HDF或NC數據不只包含多套柵格數據,還包括衆多的元數據和屬性數據。HDF和NC數據的存儲都採用了高效率的壓縮,從而實現了高效的存儲、分發。目前經常使用來瀏覽HDF和NC數據的軟件是HDF Explorer。編碼

 

[HDF Explorer以圖片方式查看數據]spa

 

[HDF Explorer以表格方式查看數據]code

2.2 實現思路及原理說明

第一步orm

經過文件路徑打開數據集視頻

第二步blog

進行多數據集接口轉換教程

第三步

經過多數據集建立多圖層

2.3 核心接口與方法

接口/類

方法

說明

DataSource.DatasetFactory

OpenDataset

打開數據集

Carto.LayerFactory

CreateDefaultMultiLayer

建立多圖層

2.4 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/03.數據加載/03.打開HDF和NC數據

數據路徑

百度雲盤地址下/PIE示例數據/柵格數據/00.FY/FY4A/**.hdf

視頻路徑

百度雲盤地址下/PIE視頻教程/03.數據加載/03.打開HDF和NC數據.avi

示例代碼

 1 方法(一)
 2   // 得到要打開Shape數據的路徑
 3   OpenFileDialog openFileDialog = new OpenFileDialog();
 4   openFileDialog.Filter = "HDF、NC數據|*.hdf;*.nc";
 5   if (openFileDialog.ShowDialog() != DialogResult.OK) return;
 6   // 打開圖層
 7   string filePath = openFileDialog.FileName;
 8   ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(filePath);
 9   if (layer == null) return;
10   // 添加圖層到地圖並刷新
11   mapControMain.FocusMap.AddLayer(layer);
12 mapControMain.ActiveView.PartialRefresh(PIE.Carto.ViewDrawPhaseType.ViewAll);
13 
14 方法(二)
15 OpenFileDialog openFile = new OpenFileDialog();
16 openFile.Filter = "HDF、NC數據|*.hdf;*.nc";
17 if (openFile.ShowDialog() != DialogResult.OK) return;
18 
19 //建立數據集
20 IMultiDataset rDataset = PIE.DataSource.DatasetFactory.OpenDataset(openFile.FileName, OpenMode.ReadOnly) as IMultiDataset;
21 if (rDataset == null) return;
22        
23 
24 //建立圖層
25 IMultiLayer multilayer = PIE.Carto.LayerFactory.CreateDefaultMultiLayer(rDataset);
26 if (multilayer == null)  return;
27   
28 //添加圖層至地圖
29 mapControlMain.FocusMap.AddLayer(multilayer as ILayer);
30 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
View Code

2.5 示例截圖

 

相關文章
相關標籤/搜索