Engine中如何加载.hdf5数据,并作为RGB图层显示

Engine中如何加载.hdf5数据,并作为RGB图层显示?类似于ArcMap加载hdf5数据时显示的SubDataset Selection对话框显示的那样。
已邀请:

朱新颖

赞同来自:

【解决办法】:
 
AO帮助中有关于获取HDF的示例代码,在线网址: 
http://resources.arcgis.com/en ... 00000 

用下面代码可以成功获取HDF5数据的三个子数据,并作为RGB图层显示。

string FileName1 = @D:\ZhuXinying\测试数据\Raster\H2A_RM2A20150113000086_0294.h5;
RasterWorkspaceFactoryClass pRasterWorkspaceFactoryClass1 = new RasterWorkspaceFactoryClass();
IWorkspace pWorkspace1 = pRasterWorkspaceFactoryClass1.OpenFromFile(System.IO.Path.GetDirectoryName(FileName1), 0);
IRasterWorkspace pRasterWorkspace = pWorkspace1 as IRasterWorkspace;
ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection rasterBandCollection = new ESRI.ArcGIS.DataSourcesRaster.RasterClass();

int[] ListSub = { 16, 17, 18 };//获取子数据集,以16 17 18为例
for (int i = 0; i < ListSub.Length; i++)
{
IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(System.IO.Path.GetFileName(FileName1));
IRasterDatasetJukebox pRasterDatasetJukebox = pRasterDataset as IRasterDatasetJukebox;
if (pRasterDatasetJukebox.SubdatasetCount > ListSub[i])
{
IRasterDatasetJukebox pRasterDatasetJukeboxdas = pRasterDataset as IRasterDatasetJukebox;
pRasterDatasetJukeboxdas.Subdataset = ListSub[i];
IRasterDataset pSubDataset = pRasterDatasetJukeboxdas as IRasterDataset;
IRasterBandCollection pRasterBands1 = pSubDataset as IRasterBandCollection;
rasterBandCollection.Add(pRasterBands1.Item(0), i);
}
}

IRasterLayer pRasterLayerClass = new RasterLayerClass();
pRasterLayerClass.CreateFromRaster(rasterBandCollection as IRaster);
pRasterLayerClass.Name = asdf;
axMapControl1.AddLayer(pRasterLayerClass);
axMapControl1.Refresh();
IGeoDataset geodataset = rasterBandCollection as IGeoDataset;
ISaveAs saveAs = geodataset as ISaveAs;
saveAs.SaveAs(zxy7.tif, pWorkspace1, TIFF);

琪强123

赞同来自:

asdf啥意思
 

要回复问题请先登录注册