3.5 镶嵌数据集
栅格影像在采集后,是以分幅的模式进行存储的,这样有利于提高数据的采集精度和迁移存储效率。在实际中,某一个行政区范围内采集的栅格影像可高达成千上万幅,数据量达到TB级。如何高效地管理这些栅格影像,是目前GIS对栅格影像应用的首要任务。
对于栅格影像的管理,传统的GIS软件一般采用两种模式:一种模式是直接以分幅数据的形式添加到系统中显示,这样会导致内存压力增大,对计算机的要求较高,且显示效率非常低;另一种模式是将分幅数据拼接为一整幅数据,但将TB级的数据拼接为一幅,这是非常耗时的,并且当部分栅格影像发生变化时,不便于更新。镶嵌数据集管理模式应运而生。
MapGIS 10镶嵌数据集是通过“数据库+文件”的方式实现的,在地理数据库使用镶嵌数据集模型来管理本地及网络共享路径下的分幅栅格影像。镶嵌数据集是用于管理一组以目录形式存储并以镶嵌影像方式查看的栅格数据集合,主要实现的功能和意义如下:
(1)可管理成千上万幅栅格影像,数据量可高达TB级。
(2)支持本地及网络共享路径下栅格影像的管理,栅格影像不要求上载到地理数据库中。
(3)可利用镶嵌数据集裁剪瓦片并发布瓦片服务,也可直接通过MapX发布镶嵌数据集服务。
(4)可管理不同空间参照系的栅格影像,对于不同空间参照系的栅格影像,可统一动态投影到同一个坐标系下显示。
(5)可对栅格影像进行去黑边处理。在分幅栅格影像采集后,每一个分幅栅格影像四周可能会存在黑色的无效像元,MapGIS 10镶嵌数据集可通过轮廓线去除黑边,且不会修改源栅格影像数据信息。
(6)可管理同一位置不同分辨率的栅格影像。例如,某个市的镶嵌数据集包含1:10000和1:2000两种比例尺的栅格影像,当比例尺小于1:10000时,看到的是1:10000栅格影像拼接效果,当比例尺大于1:10000时,看到的是1:2000栅格影像拼接效果。
(7)可对镶嵌数据集内所有栅格影像进行统一显示设置。尤其是多幅DEM数据,如果各自拉伸显示,两个图幅接边位置会有明显的界限,采用统一拉伸可有效消除界限。
创建镶嵌数据集后,添加源栅格影像或构建概视图时,都会为镶嵌数据集添加一个栅格项,每一个栅格项都有一组属性信息。
3.5.1 创建镶嵌数据集
在使用镶嵌数据集前,必须先创建一个空的镶嵌数据集容器。在创建的过程中,会定义镶嵌数据集的波段、像元类型、空间参照系等属性信息,所有添加的栅格均会以这些属性信息为基准。
目前MapGIS 10只支持在Oracle数据库和SQL数据库中创建镶嵌数据集。
在创建镶嵌数据集之前,需添加在Oracle、SQL中的数据源且已连接(具体操作内容详见第6章)。操作方法如下。
(1)右键单击镶嵌数据集,在弹出的右键菜单中选择“创建”,可弹出“镶嵌数据集创建向导”对话框,如图3-60所示。
图3-60 “镶嵌数据集创建向导”对话框
(2)设置基本信息。
“名称”:用于设置镶嵌数据集名称,不能与该地理数据库中已有的镶嵌数据集重名。
“产品定义”:用于定义镶嵌数据集的波段信息。
“像元类型”:用于定义镶嵌数据集的像元类型。MapGIS 10支持8位无符号整数、8位有符号整数、16位无符号整数、16位有符号整数、32位无符号整数、32位有符号整数、32位浮点数和64位浮点数,共8种像元类型。当像元类型为“默认类型”时,镶嵌数据集的像元类型与第一个添加的栅格数据一致。
(3)设置空间参照系信息,如图3-61所示。为镶嵌数据集设置空间参照系信息,此处为必选项且空间参照系不能为空。镶嵌数据集在显示时以此空间参照系为基准,当镶嵌数据集中的栅格数据的空间参照系与此设置不一致时,均会动态投影到此空间参照系中显示。
图3-61 设置空间参照系信息
(4)确认创建信息,单击“完成”按钮即可创建一个空的镶嵌数据集,如图3-62所示。
图3-62 确认创建信息
3.5.2 在镶嵌数据集中添加栅格数据
在创建镶嵌数据集后,就可以在镶嵌数据集中添加栅格数据,并通过镶嵌数据集查看所添加的栅格数据拼接显示效果。
(1)右键单击上述创建的镶嵌数据集,在弹出的右键菜单中选择“添加栅格数据”,可弹出“添加栅格至镶嵌数据集-[镶嵌数据集]”对话框,如图3-63所示。
图3-63 “添加栅格至镶嵌数据集-[镶嵌数据集]”对话框
(2)设置待添加的栅格数据信息。
“栅格类型”:目前只支持栅格数据类型。
“输入数据”:可支持文件夹和栅格文件两种类型。将文件夹添加到数据源列表后,在执行时会将文件夹中所有符合要求的栅格数据都添加到镶嵌数据集中。目前MapGIS 10只*.msi、*.tif、*.img、*.bil四种格式。将栅格文件添加到数据源列表后,在执行时会将该栅格文件添加到镶嵌数据集中。目前MapGIS 10只支持*.msi、*.tif、*.img、*.bil四种格式。
“数据源列表”:可调节数据源列表信息的顺序。单击“+”按钮可添加文件夹或栅格文件数据源;单击“-”按钮可删除数据源列表中选中的单个或多个数据源;单击“↓”或“↑”按钮可调节数据源列表中数据源的顺序。
(3)单击“下一步”按钮,设置高级选项信息,如图3-63所示。
图3-64 设置高级选项信息
在“基本设置”栏中,勾选“更新像元大小范围”选项可计算所有待添加栅格的像元大小范围,值会写入到属性表的“MinPS”“MaxPS”中;若不勾选,则不会进行计算,“MinPS”“MaxPS”的值为空。勾选“更新边界”选项可根据所有待添加栅格的轮廓线,生成镶嵌数据集的边界面;若不勾选,则不会生成边界面。
在“金字塔设置”栏中,可通过下面三个参数设置在镶嵌数据集中使用的金字塔。“最大级别”用于定义将在镶嵌数据集中使用的最大金字塔等级数;“最大像元大小”用于定义将在镶嵌数据集中使用的金字塔的最大像元大小;“最小行数或列数”用于定义将在镶嵌数据集中使用的金字塔的最小行数或列数。
在“高级选项”栏中,“输入的空间参照系”用于设置待添加栅格数据的空间参照系,会存在如下情况:此设置为空时,若待添加栅格数据包含空间参照系信息,则可成功添加,若待添加栅格数据中不包含空间参照系,则会添加失败;当此设置非空且不勾选“强制对输入数据使用该参照系”选项时,若待添加栅格数据中不包含空间参照系,则会使用此空间参照系,若待添加栅格数据中包含空间参照系,则此设置不起作用;当此设置非空且勾选“强制对输入数据使用该参照系”时,不论待添加的栅格数据中是否包含空间参照系信息,均采用此设置的空间参照系。“输入数据过滤器”用于通过过滤条件对源栅格数据进行过滤,只添加符合条件的源栅格数据。“包括子文件夹”选项用于通过文件夹类型添加栅格数据时,若勾选此项,则会遍历该文件夹及子文件夹中所有符合要求的栅格;若不勾选此项,则只遍历该文件夹下所有符合要求的栅格。“操作描述”用于对操作进行一定的描述。
(4)单击“下一步”按钮,确认设置信息,单击“确认”按钮即可添加相应的栅格数据,如图3-65所示。
图3-65 “确认设置”界面
3.5.3 镶嵌数据集的修改和编辑
1.镶嵌数据集的属性
创建镶嵌数据集后,在添加源栅格数据或构建概视图时,都会为镶嵌数据集添加一个栅格项,每一个栅格项都有一组属性信息,如图3-66所示。
图3-66 栅格项的属性信息
“ObjectID”是镶嵌数据集中每一个栅格项的唯一标识(ID),具有一一对应的关系,即使删除镶嵌数据集中某一个栅格项,其唯一标识也不会再被其他栅格项使用。
“Name”用于记录镶嵌数据集中每一个栅格项的文件名称。当源栅格数据名称与源栅格数据存储名称一致时,概视图名称由系统根据概视图层级和分块行列号等信息自动指定。
“MinPS”“MaxPS”用于记录镶嵌数据集中每一个栅格项的显示像元大小范围,单位与镶嵌数据集的空间参照系单位一致。此范围控制镶嵌数据集中每一个栅格项的显示比例尺范围,当超出该显示比例尺范围时,只显示轮廓线,不显示图像。
“LowPS”“HighPS”用于记录镶嵌数据集中每一个栅格项的像元大小的值,单位与镶嵌数据集的空间参照系单位一致。LowPS为真实分辨率,HighPS为使用的最高层金字塔的分辨率。若源栅格数据没有金字塔信息,则LowPS和HighPS相同。
“Category”用于标识栅格项是源栅格数据还是概视图。概视图又包括未处理概视图、概视图、待移除概视图、过时的概视图四种状态。
“CenterX”“CenterY”用于记录镶嵌数据集中每一个栅格项的中心点的坐标。
2.构建轮廓线
轮廓线是镶嵌数据集中每一个栅格数据在镶嵌数据集的空间参照系下的轮廓区范围,镶嵌数据集中的源栅格数据和概视图均存在轮廓线信息。在默认情况下,轮廓线是镶嵌数据集中源栅格数据和概视图的外包矩形范围。但在更多情况下,可以通过构建轮廓线,将轮廓线设置为镶嵌数据集中源栅格数据和概视图的有效范围,从而起到去除栅格黑边的效果。轮廓线是使用镶嵌数据集的空间参照系创建的,它可能与源栅格数据的范围不同,如图3-67所示。
图3-67 轮廓线
(1)右键单击镶嵌数据集,在弹出的右键菜单中选择“修改→构建轮廓线”,可弹出如图3-68所示的“构建轮廓线”对话框。
图3-68 “构建轮廓线”对话框
(2)设置参数信息。
在“查询定义”栏中,可通过SQL语句只对符合条件的栅格数据进行轮廓线的重新构建,此参数为空时,对镶嵌数据集中所有栅格数据进行操作。
在“其他选项”栏中,“计算方法”选择“8方向边界追踪”法;“最小像元值”“最大像元值”用于设置像元范围,在构建轮廓线时,只有此范围内的像元被认为是有效部分;当勾选“跳过概视图”选项时,不对概视图和栅格数据进行操作,当不勾选此选项时,会对概视图的轮廓线进行构建;当勾选“更新边界”选项时,会根据新的轮廓线重新生成边界,当不勾选此选项时,则不发生变化。
(3)参数信息设置好之后单击“确定”按钮,即可完成轮廓线的构建,如图3-69所示。
图3-69 构建轮廓线成功
3.边界
边界是在镶嵌数据集内通过源栅格数据的轮廓线定义的所有栅格数据的范围。边界以面要素的形式存储在地理数据库中,每一个镶嵌数据集只能有一个边界,可能是一个单独多边形面,也可能是组合图元面。
(1)构建边界。边界用于确定镶嵌数据集的空间范围,只有边界范围内的栅格数据可以显示。在特定需求下,可利用构建边界功能来修改镶嵌数据集边界范围,从而改变镶嵌数据集的显示范围。图3-70中的折线为边界,只有边界范围内栅格数据可见。
图3-70 修改镶嵌数据集的边界
① 右键单击镶嵌数据集,在弹出的右键菜单中选择“修改→构建边界”,可弹出如图3-71所示的“构建边界”对话框。
② 设置参数信息。
“查询定义”可通过SQL语句限定只使用符合条件的栅格数据轮廓线来重新构建边界;当SQL条件为空时,可对镶嵌数据集中所有栅格数据进行操作。
图3-71 “构建边界”对话框
当不勾选“追加到现有边界”选项时,符合SQL条件的所有栅格数据的轮廓线即新的边界;当勾选该选项时,最终的边界是符合SQL条件的所有栅格数据的轮廓线范围(即新的边界)和原边界的并集,如图3-72所示,实线为边界,虚线为轮廓线。
图3-72 追加到现有边界
③ 参数信息设置好之后,单击“确定”按钮即可完成边界的构建,如图3-73所示。
图3-73 构建边界成功
(2)更新边界。镶嵌数据集的边界是通过源栅格数据的轮廓线来定义所有栅格数据范围的,只有边界范围内的栅格数据可以显示。在特定需求下,想要显示特定矢量区域范围内的栅格数据时,如想要在镶嵌数据集中显示某行政区域的栅格数据,并且有一幅此区域的行政区划图,这就可以通过更新边界来完成。更新边界如图3-74所示。
① 右键单击镶嵌数据集,在弹出的右键菜单中选择“修改→更新边界”,可弹出如图3-75所示的“更新镶嵌数据集边界”对话框。
② 在“更新镶嵌数据集边界”对话框中可进行数据的选择,边界是以面要素的形式存储在地理数据库中的,所以在更新边界时需要选择相应的区图层,可在本地数据库(MapGISLocal)和SQL数据库中进行选择,如图3-76所示。
图3-74 更新边界
图3-75 “更新镶嵌数据集边界”对话框
图3-76 选择数据
图3-77 导入成功
③ 数据选择完成之后,可对选择的区图层进行查询过滤,通过SQL语句选取符合条件的区图元作为更新的边界。当不进行查询过滤时,区图层中所有图元都可作为新的边界。设置完成之后单击“确定”按钮即可导入成功,如图3-77所示。
4.概视图
镶嵌数据集可以管理成千上万幅栅格数据。为了提高镶嵌数据集的显示效率,采用小比例尺时一般只显示轮廓线,不显示源栅格图像。为了保证在任意比例尺下都能正确地显示镶嵌数据中源栅格数据的拼接效果,可以对镶嵌数据集构建概视图。
镶嵌数据集的概视图类似于栅格数据集的金字塔。概视图是在镶嵌数据集的所有栅格数据拼接显示的效果下,按照某种规则构建不同级别分辨率的栅格数据副本。查看整个镶嵌数据集时,会快速显示数据的较低分辨率副本,在放大过程中则依次会显示更高分辨率的副本。
MapGIS 10对镶嵌数据集的概视图提供两个工具:定义概视图工具,可用于自定义将要生成的概视图规则;构建概视图工具,可用于更新或生成概视图。
概视图是源栅格数据的低分辨率副本,也可以认为是一个独立的栅格数据。镶嵌数据集定义概视图后,可在镶嵌数据集属性表中查看概视图栅格列表,概视图基本属性结构与源栅格数据一致。
MapGIS 10中的概视图有以下四种状态:
未处理的概视图:已定义的空概视图,没有图像信息。
概视图:已经定义并构建的概视图,包含图像信息。
待移除概视图:包含图像信息的概视图,但所在范围内的源栅格数据全部缺失。在默认情况下,系统会自动从镶嵌数据集中删除此类概视图。
过时的概视图:包含图像信息的概视图,其范围内的源栅格数据已被修改或部分缺失。
(1)定义概视图。MapGIS 10构建并使用镶嵌数据集的概视图前,需要先定义并生成概视图。
① 右键单击已创建好的镶嵌数据集,在弹出的右键菜单中选择“优化→定义概视图”,可弹出如图3-78所示的“定义概视图”对话框。
图3-78 “定义概视图”对话框
② 设置参数信息。
在“输出位置”栏中可设置概视图的保存位置,MapGIS 10支持数据库和本地文件夹两种方式。
在“处理范围”栏中可设置概视图的范围。在默认情况下,将为包含在镶嵌数据集边界内的区域生成概视图。但在某些情况下,可能需要控制生成的区域,可以通过指定坐标来定义矩形区域。MapGIS 10也支持选择一个数据的范围作为生成概视图的范围。
如果不想使用所有栅格数据的金字塔,可通过“像素大小”设置概视图的基础像素大小,其单位与镶嵌数据集的空间参照系单位相同。当该值为0时,会根据金字塔自动计算最佳基础像素大小。
“级数”用于设置概视图的最大级别数,当该值为0时,MapGIS 10会自动计算概视图级别的最佳值;当该值为非0时,概视图的最大级别为该指定值。
“行数”“列数”用于设置概视图的分块大小。行数和列数越大,单张概视图的尺寸就越大,构建概视图的总数量就越少,源栅格数据发生变化时需要重新生成文件的可能性也越大。
“采样系数”用于设置概视图构建等级系数,此系数用来确定后续概视图的大小。例如,如果第一个等级概视图的像素大小为n,采样系数为3,则下一个概视图的像素大小将为3n。
“重采样方法”用于设置生成概视图的重采样方法。
③ 参数信息设置好之后单击“确定”按钮,即可完成概视图的定义,如图3-79所示。
(2)构建概视图。已定义概视图,但未构建或构建的概视图已过时,可通过此功能构建概视图。
① 右键单击已创建好的镶嵌数据集,在弹出的右键菜单中选择“优化→构建概视图”,可弹出如图3-80所示的“构建概视图”对话框。
图3-79 定义概视图成功
图3-80 “构建概视图”对话框
② 设置参数信息
在“查询定义”栏中,可通过SQL语句来限定只使用符合条件的栅格数据构建概视图;当SQL条件为空时,对镶嵌数据集中所有栅格数据进行操作。
在“概视图生成选项”栏中,当镶嵌数据集的范围大于已定义的概视图范围时,勾选“定义缺失概视图分块”选项可对缺失的范围定义概视图。当用户定义概视图后添加栅格数据时,可直接通过此功能定义新增栅格数据范围的概视图,而不必执行定义概视图的操作。当勾选“生成概视图”选项时,生成概视图;反之不生成概视图。当勾选“仅生成缺失概视图图像”选项时,对未处理的概视图进行生成概视图操作;反之,不对该类概视图进行操作。当勾选“仅重新生成过时的概视图图像”选项时,对过时的概视图进行生成概视图操作;反之,不对该类概视图进行操作。
③ 参数信息设置好之后,单击“确定”按钮即可构建概视图。
5.移除栅格
移除栅格功能是指从镶嵌数据集中移除指定的栅格项,包括源栅格数据和概视图。
(1)右键单击镶嵌数据集,在弹出的右键菜单中选择“移除栅格”,可弹出如图3-81所示的“移除栅格”对话框。
图3-81 “移除栅格”对话框
(2)设置参数信息。
“查询定义”栏中的条件不能为空。移除栅格时,必须设置SQL语句,只对符合条件的栅格进行操作。
在“其他选项”栏中,当选中的栅格中包括概视图时,勾选“删除概视图图像”选项后可删除概视图图像,镶嵌数据集中依然会有该概视图,但没有图像。当移除镶嵌数据集中的栅格时,勾选“更新像元大小范围”选项后可根据剩余的栅格自动计算像元大小范围;反之,镶嵌数据集中像元大小范围保持不变。当移除镶嵌数据集中的栅格时,勾选“更新边界”选项后可根据剩余的栅格自动更新镶嵌数据集边界;反之,不会更新边界。当移除镶嵌数据集中的栅格时,勾选“标记受影响的概视图”选项后可标记受影响的概视图状态;反之,不会改变概视图状态。当用户移除了部分源栅格数据时,建议勾选该选项,以标记受影响的概视图,只需利用构建概视图功能对此部分概视图进行重新构建,可节约时间成本。
勾选“移除镶嵌数据集项”选项后可移除满足SQL语句的栅格项;反之,不移除。
(3)参数信息设置好之后,单击“确定”按钮即可移除栅格,如图3-82所示。
6.计算项目可见性
计算项目可见性是指重新计算镶嵌数据集中每一个栅格项的可见性等级,包括源栅格数据和概视图。其结果会修改属性表中的MinPS和MaxPS。当显示小比例尺范围时,如果只能看到轮廓线,则可通过此功能增大MaxPS值,保证小比例尺范围也能看到源栅格数据的拼接效果。
图3-82 移除栅格成功
(1)右键单击镶嵌数据集,在弹出的右键菜单中选择“修改→计算项目可见性”,可弹出如图3-83所示的“计算项目可见性”对话框。
(2)设置参数信息。
在“查询定义”栏中,可通过SQL语句限定只对符合条件的栅格数据进行操作;当SQL语句为空时,会对镶嵌数据集中所有栅格数据进行操作。
在“其他选项”栏中,“范围系数”用于定义结果相对于HighPS的倍增系数,默认为10,如源栅格的HighPS为1.6,则MaxPS为16。勾选“计算最小像元大小”选项后可重新计算镶嵌数据集中每个选定栅格数据的最小像元大小,即MinPS;反之,不计算。勾选“计算最大像元大小”选项后可重新计算镶嵌数据集中每个选定栅格数据的最大像元大小,即MaxPS;反之,不计算。勾选“仅更新缺失值”选项后,仅对镶嵌数据集中MinPS和MaxPS为空的栅格数据进行重新计算。
(3)参数信息设置好之后,单击“确定”按钮即可计算项目可见性,如图3-84所示。
图3-83 “计算项目可见性”对话框
图3-84 计算项目可见性成功