码迷,mamicode.com
首页 > 其他好文 > 详细

PIE SDK打开HDF、NC数据

时间:2018-12-19 12:55:03      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:style   main   for   元数据   exp   属性   ring   enter   created   

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数据

标签:style   main   for   元数据   exp   属性   ring   enter   created   

原文地址:https://www.cnblogs.com/PIESat/p/10142116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!