【概念】栅格目录 栅格数据集 镶嵌数据集

栅格目录:栅格目录是以表格的形式定义的栅格数据集的集合,目录中的每条记录表示一个栅格数据集。栅格目录通常用于显示相邻、完全重叠或部分重叠的栅格数据集,而无需将他们镶嵌为一个较大的栅格数据集。

栅格数据集:栅格数据集是一种栅格数据模型,他可以存储在磁盘上或者地理数据库中。栅格数据集有多重存储格式,包括 TIFF、JPEG 、Grid 和 MrSid。栅格数据集可由单波段组成也可由多波段组成。

镶嵌数据集:是一种由栅格数据集和栅格目录相结合的混合技术,可以对数据集进行索引,查询。它的存储方式和栅格目录类似,在使用过程中和栅格数据集相同。常用于管理和发布海量多分辨率,多传感器影像,对栅格数据提供了动态镶嵌和实时处理的功能。其最大优势是具有高级栅格查询功能及实时处理函数功能,并可用作提供影像服务的源。

栅格波段:是栅格数据集中的一个图层,代表电磁光谱某个范围内或波段内的值。例如卫星影像,包含了多个波段

此外,栅格数据中的像元大小越小,分辨率越高,要素空间精度越高,显示速度越慢,文件大小越大

常见的镶嵌数据集操作:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iDesktop/Features/DataProcessing/DataManagement/MosaicDatasetManage.htm

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤基于ArcEngine实现栅格数据处理功能: 1. 获取栅格目录 获取栅格目录需要使用ESRI.ArcGIS.DataSourcesFile.IWorkspaceFactory接口和ESRI.ArcGIS.Geodatabase.IWorkspace接口,示例代码如下: ```csharp string folderPath = @"C:\rasterFolder"; ESRI.ArcGIS.Geodatabase.IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesRaster.RasterWorkspaceFactoryClass(); ESRI.ArcGIS.Geodatabase.IWorkspace workspace = workspaceFactory.OpenFromFile(folderPath, 0); ESRI.ArcGIS.Geodatabase.IEnumDataset enumDataset = workspace.get_Datasets(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTRasterDataset); ESRI.ArcGIS.Geodatabase.IDataset dataset = enumDataset.Next(); while (dataset != null) { Console.WriteLine(dataset.Name); dataset = enumDataset.Next(); } ``` 2. 创建栅格数据集 创建栅格数据集需要使用ESRI.ArcGIS.DataSourcesRaster.IRasterWorkspace接口和ESRI.ArcGIS.DataSourcesRaster.IRasterDataset接口,示例代码如下: ```csharp string folderPath = @"C:\rasterFolder"; ESRI.ArcGIS.Geodatabase.IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesRaster.RasterWorkspaceFactoryClass(); ESRI.ArcGIS.Geodatabase.IWorkspace workspace = workspaceFactory.OpenFromFile(folderPath, 0); ESRI.ArcGIS.DataSourcesRaster.IRasterWorkspace rasterWorkspace = (ESRI.ArcGIS.DataSourcesRaster.IRasterWorkspace)workspace; ESRI.ArcGIS.DataSourcesRaster.IRasterDataset rasterDataset = rasterWorkspace.CreateRasterDataset("rasterName", "TIFF", new ESRI.ArcGIS.Geometry.IEnvelopeClass(), 1, 1, 1, null); ``` 3. 添加栅格数据 添加栅格数据需要使用ESRI.ArcGIS.DataSourcesRaster.IRasterWorkspace接口和ESRI.ArcGIS.DataSourcesRaster.IRasterDataset接口,示例代码如下: ```csharp string folderPath = @"C:\rasterFolder"; ESRI.ArcGIS.Geodatabase.IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesRaster.RasterWorkspaceFactoryClass(); ESRI.ArcGIS.Geodatabase.IWorkspace workspace = workspaceFactory.OpenFromFile(folderPath, 0); ESRI.ArcGIS.DataSourcesRaster.IRasterWorkspace rasterWorkspace = (ESRI.ArcGIS.DataSourcesRaster.IRasterWorkspace)workspace; ESRI.ArcGIS.DataSourcesRaster.IRasterDataset rasterDataset = rasterWorkspace.OpenRasterDataset("rasterName"); ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection rasterBandCollection = (ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection)rasterDataset; ESRI.ArcGIS.DataSourcesRaster.IRasterBand rasterBand = rasterBandCollection.Item(0); ESRI.ArcGIS.DataSourcesRaster.IPixelBlock pixelBlock = rasterBand.CreatePixelBlock(new ESRI.ArcGIS.Geometry.IEnvelopeClass()); ESRI.ArcGIS.DataSourcesRaster.IRasterEdit rasterEdit = (ESRI.ArcGIS.DataSourcesRaster.IRasterEdit)rasterBand; rasterEdit.StartEditing(); rasterEdit.Write((ESRI.ArcGIS.DataSourcesRaster.IPixelBlock)pixelBlock); rasterEdit.StopEditing(true); ``` 4. 格式转换 格式转换需要使用ESRI.ArcGIS.DataManagementTools.RasterConversionOpClass类,示例代码如下: ```csharp string inputRasterPath = @"C:\rasterFolder\rasterName1"; string outputRasterPath = @"C:\rasterFolder\rasterName2"; ESRI.ArcGIS.ConversionTools.RasterConversionOp rasterConversionOp = new ESRI.ArcGIS.ConversionTools.RasterConversionOp(); rasterConversionOp.Convert(inputRasterPath, outputRasterPath, "TIFF"); ``` 5. 影像镶嵌 影像镶嵌需要使用ESRI.ArcGIS.DataManagementTools.MosaicToNewRaster类,示例代码如下: ```csharp string inputRasterPath1 = @"C:\rasterFolder\rasterName1"; string inputRasterPath2 = @"C:\rasterFolder\rasterName2"; string outputRasterPath = @"C:\rasterFolder\rasterName3"; ESRI.ArcGIS.DataManagementTools.MosaicToNewRaster mosaicToNewRaster = new ESRI.ArcGIS.DataManagementTools.MosaicToNewRaster(); mosaicToNewRaster.in_rasters = inputRasterPath1 + ";" + inputRasterPath2; mosaicToNewRaster.out_rasterdataset = outputRasterPath; mosaicToNewRaster.pixel_type = "32_BIT_FLOAT"; mosaicToNewRaster.number_of_bands = 1; mosaicToNewRaster.mosaic_method = "LAST"; mosaicToNewRaster.Execute(); ``` 6. 栅格数据计算器 栅格数据计算器需要使用ESRI.ArcGIS.SpatialAnalystTools.RasterCalculatorTool类,示例代码如下: ```csharp string inputRasterPath1 = @"C:\rasterFolder\rasterName1"; string inputRasterPath2 = @"C:\rasterFolder\rasterName2"; string outputRasterPath = @"C:\rasterFolder\rasterName3"; ESRI.ArcGIS.SpatialAnalystTools.RasterCalculatorTool rasterCalculatorTool = new ESRI.ArcGIS.SpatialAnalystTools.RasterCalculatorTool(); rasterCalculatorTool.expression = "([rasterName1] + [rasterName2]) / 2"; //计算表达式 rasterCalculatorTool.out_raster = outputRasterPath; rasterCalculatorTool.Execute(); ``` 注意,需要将计算表达式中的栅格数据集名称用方括号括起来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值