PIE SDK打开HDFNC数据

Posted piesat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PIE SDK打开HDFNC数据相关的知识,希望对你有一定的参考价值。

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打开HDFNC数据的主要内容,如果未能解决你的问题,请参考以下文章

PIE SDK打开自定义矢量数据

PIE SDK打开静止卫星数据

PIE SDK专题制图打开模板说明文档

PIE SDK专题制图保存模板说明文档

PIE SDK专题制图另存模板

PIE SDK矢量数据项查看