栅格数据集镶嵌。支持栅格数据集和影像数据集。

命名空间:  SuperMap.Analyst.SpatialAnalyst
程序集:  SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll

语法

C#
public static Dataset Mosaic(
	Dataset[] sourceDatasets,
	double backOrNoValue,
	double backTolerance,
	RasterJoinType rasterJoinMethod,
	RasterJoinPixelFormat rasterJoinPixelFormatType,
	double cellSize,
	EncodeType encodeType,
	Rectangle2D validRect,
	Datasource targetDatasource,
	string targetDatasetName
)

参数

sourceDatasets
Type: array< SuperMap.Data..::.Dataset >[]()[]
指定的待镶嵌的数据集的集合。
backOrNoValue
Type: System..::.Double
指定的栅格背景颜色或无值的值。
backTolerance
Type: System..::.Double
指定的栅格背景颜色或无值的容限。
rasterJoinMethod
Type: SuperMap.Analyst.SpatialAnalyst..::.RasterJoinType
指定的镶嵌方法,即镶嵌时重叠区域的取值方式。
rasterJoinPixelFormatType
Type: SuperMap.Analyst.SpatialAnalyst..::.RasterJoinPixelFormat
指定的镶嵌结果数据集的像素格式。
cellSize
Type: System..::.Double
指定的镶嵌结果数据集的单元格大小。
encodeType
Type: SuperMap.Data..::.EncodeType
指定的镶嵌结果数据集的编码方式。
validRect
Type: SuperMap.Data..::.Rectangle2D
指定的镶嵌结果数据集的有效范围。
targetDatasource
Type: SuperMap.Data..::.Datasource
指定的用于存储镶嵌结果数据集的数据源。
targetDatasetName
Type: System..::.String
指定的镶嵌结果数据集的名称。

返回值

镶嵌结果数据集。

备注

栅格数据的镶嵌是指将两个或两个以上栅格数据按照地理坐标组成一个栅格数据。有时由于待研究分析的区域很大,或者感兴趣的目标对象分布很广,涉及到多个栅格数据集或者多幅影像,就需要进行镶嵌。下图展示了六幅相邻的栅格数据镶嵌为一幅数据。

进行栅格数据镶嵌时,需要注意以下要点:

  1. 待镶嵌栅格必须具有相同的坐标系
  2. 镶嵌要求所有栅格数据集或影像数据集具有相同的坐标系,否则镶嵌结果可能出错。可以在镶嵌前通过投影转换统一所有带镶嵌栅格的坐标系。

  3. 重叠区域的处理
  4. 镶嵌时,经常会出现两幅或多幅栅格数据之间有重叠区域的情况(如下图,两幅影像在红色框内的区域是重叠的),此时需要指定对重叠区域栅格的取值方式。SuperMap 提供了五种重叠区域取值方式,使用者可根据实际需求选择适当的方式,详见 RasterJoinType 枚举类型。

  5. 关于无值和背景色及其容限的说明
  6. 待镶嵌的栅格数据有两种:栅格数据集和影像数据集。对于栅格数据集,该方法可以指定无值及无值的容限,对于影像数据集,该方法可以指定背景色及其容限。

    待镶嵌数据为栅格数据集

    • 当待镶嵌的数据为栅格数据集时,栅格值为 backOrNoValue 参数所指定的值的单元格,以及在 backTolerance 参数指定的容限范围内的单元格被视为无值,这些单元格不会参与镶嵌时的计算(叠加区域的计算),而栅格的原无值单元格则不再是无值数据从而参与运算。例如,指定无值的值为 a,指定的无值的容限为 b,则栅格值在 [a-b,a+b] 范围内的单元格均不参与计算。
    • 需要注意,无值的容限是用户指定的无值的值的容限,与栅格中原无值无关。

    待镶嵌数据为影像数据集

    • 当待镶嵌的数据为影像数据集时,栅格值为 backOrNoValue 参数所指定的值的单元格,以及在 backTolerance 参数指定的容限范围内单元格被视为背景色,这些单元格不参与镶嵌时的计算。
    • 注意,影像数据集中栅格值代表的是一个颜色。影像数据集的栅格值对应为 RGB 颜色,因此,如果想要将某种颜色设为背景色,为 backOrNoValue 参数指定的值应为将该颜色(RGB 值)转为 32 位整型之后的值,系统内部会根据像素格式再进行相应的转换。
    • 对于背景色的容限值的设置,与背景色的值的指定方式相同:该容限值为一个 32 位整型值,在系统内部被转换为对应背景色 R、G、B 的三个容限值,例如,指定为背景色的颜色为 (100,200,60),指定的容限值为 329738,该值对应的 RGB 值为 (10,8,5),则值在 (90,192,55) 和 (110,208,65) 之间的颜色均被视为背景色,不参与计算。
Note:

将两个或以上高像素格式的栅格镶嵌成低像素格式的栅格时,结果栅格值可能超出值域,导致错误,因此不建议进行此种操作。

版本信息

SuperMap iObjects .NET


请参见