1. 程式人生 > >PIE SDK打開HDF、NC數據

PIE SDK打開HDF、NC數據

aci draw creat 針對 width 視頻 cells super imu

1. 功能簡介

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

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

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

2. 功能實現說明

2.1 HDF數據介紹

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

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

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

2.2 實現思路及原理說明

第一步

通過文件路徑打開數據集

第二步

進行多數據集接口轉換

第三步

通過多數據集創建多圖層

2.3 核心接口與方法

接口/類

方法

說明

DataSource.DatasetFactory

OpenDataset

打開數據集

Carto.LayerFactory

CreateDefaultMultiLayer

創建多圖層

2.4 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/01.打開Shape數據

數據路徑

百度雲盤地址下/PIE視頻教程/01.打開Shape數據.avi

視頻路徑

百度雲盤地址下/PIE示例數據

示例代碼

方法(一)

// 獲得要打開Shape數據的路徑

OpenFileDialog openFileDialog = new OpenFileDialog();

openFileDialog.Filter = "HDF、NC數據|*.hdf;*.nc";

if (openFileDialog.ShowDialog() != DialogResult.OK) return;

// 打開圖層

string filePath = openFileDialog.FileName;

ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(filePath);

if (layer == null) return;

// 添加圖層到地圖並刷新

mapControMain.FocusMap.AddLayer(layer);

mapControMain.ActiveView.PartialRefresh(PIE.Carto.ViewDrawPhaseType.ViewAll);

方法(二)

OpenFileDialog openFile = new OpenFileDialog();

openFile.Filter = "HDF、NC數據|*.hdf;*.nc";

if (openFile.ShowDialog() != DialogResult.OK)

return;

//創建數據集

IMultiDataset rDataset = PIE.DataSource.DatasetFactory.OpenDataset(openFile.FileName, OpenMode.ReadOnly) as IMultiDataset;

if (rDataset == null)

return;

//創建圖層

IMultiLayer multilayer = PIE.Carto.LayerFactory.CreateDefaultMultiLayer(rDataset);

if (multilayer == null)

return;

//添加圖層至地圖

mapControlMain.FocusMap.AddLayer(multilayer as ILayer);

mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);

2.5 示例截圖

PIE SDK打開HDF、NC數據