多任务切图

功能说明

SuperMap iDesktop/iDesktopX 提供多任务切图功能,多任务切图又分为单机多任务切图多机多任务切图两种方式。

多任务切图原理

多任务切图是根据地图的比例尺和地理范围等将地图切图任务拆分成多个子任务,然后将拆分后的任务部署在共享目录中从而实现多机同时访问。多机同时开启多条进程,每条进程会到指定的目录获取并执行切图任务,并将切图结果保存到同一个文件夹中,从而实现多任务并行切图。多任务切图方式能充分利用机器的硬件资源,综合利用多个节点并行切图,极大提升切图的效率。

多任务切图

一、切图前准备

1. 了解数据物理组织方式,调整数据存储方式

根据实验室测试验证得出的切图性能数据结果,相较于单任务切图,单机多任务切图可以有效提高切图效率。相较于单机多任务切图,多机多任务切图又可以进一步提升切图效率。

当单机多任务切图仍然无法满足性能需求时,可以考虑使用多机多任务切图。多机多任务切图,对于数据存储有一定要求。为了便捷快速地从单机多任务切图部署为多机多任务切图,减少重复部署操作,用户可预先了解切图工作空间中数据物理组织方式,根据数据源特点,适当调整切图的数据存储方式,可参照下表根据不同数据源特点及数据体量,选择合适的存储方式。

MutlMaptiledata1

注意 :镶嵌数据集内部如果引用的是影像文件的绝对路径,拷贝到不同机器的不同目录后,需要在该机器上重新指定影像文件的路径,以保证该机器上可以正常显示镶嵌数据集,否则切出来的瓦片为白图。

2. 了解瓦片存储需求,选择合适的瓦片存储类型

SuperMap iDesktop/iDesktopX 在生成地图瓦片时,提供三种瓦片存储类型,分别是原始型、紧凑型、MongoDB 型;三种存储类型各有不同的特点,选择不同的存储类型会对瓦片大小,生成时间等造成一定影响。

三种瓦片存储类型的特点如下:

MutlMaptiledata2

针对这三种瓦片存储方式,根据实验室环境得出的性能测试结果,推荐如下:

MutlMaptiledata3

注意 : 采用多机多任务切图时,需提前准备一个可读写的共享目录作为多机多任务切图的工作目录,该目录用于存储原始型和紧凑型瓦片、多任务内部调度需要的子任务信息文件、切图日志文件等。

3. 了解数据特点,选择提高切图性能的方法

地图数据比较复杂,可以通过地图调优和切图时的一些参数设置,来提高切图效率。主要有以下几种:

(1) 对于电子地图,建议先使用地图性能诊断对地图进行调优。请详见地图性能诊断工具的使用,一般会涉及到对矢量数据集创建空间索引、影像数据集创建影像金字塔、设置图层的最大最小可见比例、数据集抽稀等。

(2) 分散的数据或者切图范围横纵某个方向上跨度很大且不规则存在很多空白区域,在切图时,可以通过自定义表达式或者选择切图范围对象来仅生成边界数据集范围内的瓦片。

例如,下图所示的内蒙古地区,该省份行政区划不规则。在设置切图范围时,可以通过选择对象自定义表达式来缩小有效切图区域,提高多任务拆分和切图效率。

注意 :在使用选择对象参数时,如果被选择的对象所在的图层仅用于选择对象而不参与切图,请勾选过滤选择对象所在的图层

MutlMaptileExample1

(3) 当地图中只有栅格、影像或者镶嵌数据集且切图层级比例尺比较大时,推荐使用基础比例尺进行切图。但基础比例尺切图,存在一定的使用要求。

  • 用于切图的地图中,不支持矢量图层。当含有矢量图层时,该选项不可用。即仅支持地图中图层为影像数据集、栅格数据集、镶嵌数据集等图层。
  • 当剖分方式为本地剖分时,还存在以下限制:

切图比例尺之间必须是连续的两倍关系,例如:当切图比例尺为[1:468,1:936,1:1872]时,该选项可用。当切图比例尺为[1:468,1:1000,1:1872]或者[1:468,1:1872]时,该选项不可用。

如下图所示,勾选基础比例尺且将其设置为当前切图比例尺中的最大层级。下图中切图比例尺为0到14层,则基础比例尺推荐设置为14层对应的比例尺。

注意 :对于镶嵌数据集图层,如果采用基础比例尺进行切图,可以不构建镶嵌数据集影像的金字塔和概视图,进一步节省数据处理的时间。

MutlMaptileExample2

二、部署单机多任务与多机多任务切图

在了解了数据的物理组织方式、瓦片存储方式和数据特点后,可首先采用单机多任务切图,然后根据日志中显示的切图速度,预估出初步的切图总耗时,进而初步判断出是否继续尝试部署多机多任务切图。

注意 :切图是一个比较复杂的过程,其切图速度受机器环境的影响比较大。磁盘的读写速率、内存的大小、cpu的性能等,不同机器之间的切图速度基本不具有可对比性。所以,建议在实际切图的机器上进行单机多任务切图,根据日志信息来预估切图速度。

1. 首先采用单机多任务切图,操作流程如下

【新建切图任务】->【设置切图参数】->【设置切图范围】->【多任务切图】。

(1)新建切图任务 :打开待切地图,在地图窗口右键选择生成地图瓦片(多任务)项,在弹出的对话框中选择新建多任务切图

(2)设置切图参数 :在多任务:生成地图瓦片对话框中,设置切图比例尺层级,瓦片类型(矢量瓦片还是栅格瓦片)、栅格瓦片的图片类型、瓦片的工作目录(多任务切图内部任务调用需要的一系列文件)、瓦片存储类型等参数。详细参数说明,请详见切图参数说明

(3)设置切图范围 :设置瓦片范围、索引范围。详细参数说明,请详见切图参数说明。

(4)多任务切图 :在多任务切图界面上执行生成,等待一段时间,可以在输出信息中看到详细的子任务耗时。

根据界面上显示的待执行任务数任务数和子任务耗时,可以初步预估出切图总耗时。一般小比例尺切图速度比较快,对整体瓦片耗时影响不大,这里我们选取大比例尺子任务的完成时间作为参考。如下图所示,总共存在18个待执行的瓦片任务数,该机器默认开启了18个进程来切图,所以所有瓦片任务将同时开始切图。通过输出信息可以看到较大比例尺的1157203,完成该比例尺下的一个切图任务总耗时约为138s。考虑进程启动等耗时,预估整体瓦片切图耗时大约为3分多钟。

MutlMaptileExample4

2. 当单机多任务切图时间比较长时,比如预估出来需要耗时24小时,可以先分析当前切图可能存在的速率瓶颈,请详见根据切图日志来分析当前切图可能存在的速率瓶颈,如果已无可优化空间,则可以考虑尝试增加切图机器,即引入多机多任务切图。

这里执行单机多任务切图的机器,我们称之为主机(负责切图任务的调度等),加入主机切图的机器成为子机。子机需要访问主机的工作目录以获取相关切图任务信息,所以需要将主机的工作目录设置为共享目录。子机的基本操作步骤如下:

【打开与主机相同工作空间中的同一个地图】->【执行多任务切图】->【将工作文件设置为主机工作目录中的文件】->【加入主机切图并检测连接情况】->【生成】。

各个步骤的需注意以下内容:

(1) 打开与主机相同工作空间中的同一幅地图:可以将主机上的切图数据整体拷贝到各个子机上,子机打开本地数据;子机也可以直接访问主机共享目录中的工作空间,这里需注意对镶嵌数据集的处理,请详见了解数据物理组织方式,调整数据存储方式。在子机加入主机切图前,建议在子机上打开地图,检查子机浏览到的数据是否正确。

(2) 执行多任务切图 :在地图窗口右键选择生成地图瓦片(多任务)项,在弹出的对话框中选择执行多任务切图

(3) 将工作文件设置为主机工作目录中的文件:在多任务切图对话框中,设置切图任务的相关参数,详细参数描述请参见多任务切图参数

注意 :将 工作文件 设置为主机 工作目录 中的文件,主机的工作目录,必须是共享目录。子机设置了正确的工作文件后,将自动读取当前切图进度等信息。

(4) 加入主机切图并检测连接情况:执行【连接测试】后,程序将自动检测子机和主机间的通讯是否正常。如果是MongoDB存储类型的瓦片,程序会自动检测子机和数据库的连接是否正常。

MutlMaptileExample5

(5) 生成 :参数确认无误后,点击生成,执行切图任务。

  • 执行多任务切图时,会在 CacheTask 目录下生成一个 doing 文件夹,每个进程获取到的子任务会从 task 移至 doing 文件夹中。当子任务切图完成后,会将该任务从 doing 文件夹移至同级的 build 文件夹中,如若切图过程中有切图失败的子任务,会新生成一个 failed 文件放置失败的子任务,若中途终止切图,doing 文件夹中仍然有.sci 文件,程序会自动将其中的sci 文件移至 task 中重新再切。

    MultiProcessCachingFile

  • 每台切图机器会按照设置的任务数,在共享目录Task 文件夹领取拆分的子任务,不同的机器领取不同的任务,被领取的子任务会从 task 移至 doing 文件夹中。当子任务切图完成后,会将该任务从 doing 文件夹移至同级的 build 文件夹中。例如同时部署三台机器,进程数分别设置为6、8、10,则有24个子任务sci同时执行切图,切图完成的进程会再在 task 中领取任务,直到无任务可领,则执行切图完成。

3. 增加切图机器后,子机的【多任务切图】界面的输出信息中可以看到当前子机的切图速率。由于受网络传输、子机机器配置等影响,子机的切图速率一般比主机稍慢。可以等待一段时间,然后根据输出信息,继续判断是否需要进一步增加其它子机。

注意:如果增加子机切图后,切图速度没有明显增加,需要移除该子机。可以在子机的【多任务切图】界面上直接点击【关闭】,主机将自动回收该子机未完成的切图任务并重新分配这些切图任务。不影响主机和其它子机的切图以及切图结果的正确性。

三、根据切图日志来分析当前切图可能存在的速率瓶颈

在【多任务切图】界面的输出信息中,可以看到各个子任务的完成时间。相关时间的解释及可能存在耗时长的原因如下:

MutlMaptileExample6

MutlMaptiledata4

四、切图参数说明

目前SuperMap iDesktop/iDesktopX支 持生产两类瓦片,栅格和矢量瓦片。可以通过设置地图瓦片参数界面上的瓦片类型进行切换。详细参数相关解释如下:

栅格瓦片

  • 版本号 :用来对生成地图瓦片的版本进行设置。不同版本的地图瓦片,需要与相应版本的服务器版本匹配,以方便地图切片在服务端进行发布。系统提供了六种版本的地图瓦片生成方式。

    只有在选择5.0版本的时候才能激活剖分方式。剖分方式分为两种:本地剖分和全球剖分。全球剖分方式生成的瓦片为三维地图瓦片,可加载到场景中。默认情况使用本地剖分。

    由于5.0版本的瓦片采用了高精度校准方式,对于首次生成地图瓦片的用户, 推荐使用5.0版本的瓦片方案。

    • 2.0版本适用于 IS .NET。
    • 2.1版本适用于 IS .NET 使用新的瓦片图片生成方案。
    • 3.0版本适用于 iServer 2.0。
    • 3.1版本适用于 iServer 2.0 使用新的瓦片图片生成方案。
    • 4.0版本适用于 iServer 6R。
    • 5.0版本适用于 iServer 6R(2012) SP1及以上版本。
  • 剖分方式 :分为本地剖分和全球剖分。 本地剖分时,用户可自定义比例尺数值;全球剖分时,是按照剖分规则约定了26个层级,首层编号为0,支持的最大层级数为25,每个层级对应固定的比例尺数值,用户只能选择,无法修改。全球剖分方式生成的瓦片,同时也支持加载到场景中浏览。
  • 比例尺 :程序会按照地图数据自动生成比例尺列表,您可手动输入固定比例尺。对于本地剖分的栅格瓦片,支持输入任意比例尺数值。如果地图中设置了固定比例尺,程序初始化时将自动读取这些比例尺作为切图比例尺,用户可以进一步继续修改。

    注意 :为了充分利用瓦片数据,同时实现多级缩放,可以对地图设置多个比例尺。多级比例尺可在浏览过程中比较顺畅,不会出现比较大的跳跃。在地图制作的过程中要考虑要素在不同的比例尺下是否需要显示。

    支持将设置好的比例尺参数导出为 *.xml 格式的比例尺配置文件,便于再次使用或者应用于其他制图场景。比如地图属性中设置地图固定比例尺。

  • 图片类型 :支持JPG,PNG,DXTZ,GIF,JPGPNG ,PNG8和 WEBP七种图片格式,默认为 WEBP 格式。5.0版本的瓦片支持 JPGPNG 和 PNG 8两种图片类型。详细说明请参见图片类型
  • 背景透明 :该参数需配合图片类型来使用。当地图设置了背景色时,勾选此项,在生成地图瓦片的时候,会自动将背景色设置为透明;否则将保留地图的背景色。
  • 块大小(像素) :该获取瓦片预处理后生成的每个瓦片分块文件的采样尺寸,单位为像素。应用程程提供了 20482048,10241024,512512,256256,128128,6464 六种尺寸共用户选择,默认大小为 256*256,是常规瓦片显示使用最多的尺寸,当用户需要高分屏显示时,可调整该参数。
  • 图片质量 :瓦片图片质量分值,默认为75,是经实验室测试验证在该默认值下的图片清晰度、图片体积是最优的状态。其中,不同图片类型,支持的图片质量的情况不同:

    • 当图片类型为 DXTZ、GIF、WEBP时,不支持设置图片质量;
    • 当图片类型为 PNG、PNG8、JPG_PNG 时,图片质量的取值范围是:(0,90];
    • 当图片类型为 JPG 时,图片质量的取值范围是:[10,100];

    注意:图片质量越低,图片的体积越小,能够节约空间,但是图片也会压缩得越严重,会造成瓦片数据变模糊,因此,根据需求合理设置图片质量。若用户对于瓦片质量和瓦片体积有更高要求,建议生成WEBP格式的瓦片。

  • 忽略无效数据区域瓦片 :无效数据即不包含任何内容的地图区域,勾选该复选框,程序将忽略无效区域,不生成相对位置的瓦片,可节约生成瓦片的耗时,同时减少瓦片的体积。

    适用于切图数据中有大范围无数据区域,例如内蒙古省,属于条形区域有数据,其他区域无数据,勾选该选项,程序将不生成无数据区域的瓦片,即节约耗时,又减少体积。

  • 分辨率 :支持设置切图时使用的地图分辨率,默认分辨率为96DPI,当用户对切图后瓦片显示的DPI 有特殊要求时,可修改该值,否则不建议修改。修改该值将使得瓦片显示结果与实际地图效果不相符。
  • 基础比例尺 :基于金字塔算法生成瓦片,是一种更高效的地图瓦片生成方式,该方式先基于所选基础比例尺生成最大比例尺层级瓦片;然后,通过金字塔算法,基于最大比例尺层级瓦片创建其他比例尺层级瓦片。

    该功能仅适用于影像地图(地图中只有影像图层,不包含矢量图层)生成栅格瓦片;并且,瓦片的比例尺组中的数值必须是2倍关系,即:1:4000,1:2000,1:1000,1:500,1:250。

    不勾选该参数,程序则分别基于设置的比例尺层级切图生成瓦片。

  • 路径设置-瓦片名称 :结果瓦片文件夹以及sci文件的名称。以打开文件型数据源的方式打开该sci文件,可以在地图中浏览结果栅格瓦片。
  • 路径设置-工作目录 :对于原始型和紧凑型瓦片,结果瓦片存储在该目录中。对于MongoDB瓦片,结果瓦片存储在MongoDB中,该目录存储的是程序切图需要的本地文件。

    相对于单任务切图,多任务切图除了在该目录存储结果瓦片,还存储了多任务切图程序需要的本地文件,比如图瓦片的总sci及拆分后的子sci等。需将该文件设置为共享工作目录,确保其他机器对该共享目录有读写权限,便于其它切图机器上的进程从该目录中获取切图子sci。

  • 输出设置-存储类型 :程序提供3种瓦片类型:紧凑、原始、MongoDB。有关存储类型的详细描述,请参见地图瓦片存储类型

    • 紧凑型表示采用一定的压缩和加密机制,在建立瓦片时对数据进行压缩和加密;
    • 原始表示不对数据进行压缩,保留模型数据的原始信息。
    • MongoDB 型是将生成的瓦片切片文件,以分布式格式存储在服务器的数据库中,地图切片的存取速度较快,便于数据分享与发布。当选择 MongoDB 类型时,需先启动 MongoDB 服务,支持检查当前服务是否可用。有关MongDB 数据库使用,请参看 MongDB 使用说明

注意 : MongoDB 2.0 版本的认证模式,不支持生成地图瓦片。

  • 瓦片范围过滤选择对象所在的图层完全填充瓦片索引范围 参数的详细描述,请参看单任务切图->瓦片范围
  • 任务颗粒度 :可根据预估的任务数来设置任务拆分颗粒度,分为智能、细粒度、中粒度和粗粒度四种颗粒度。

矢量瓦片

矢量瓦片的详细参数说明,请参见矢量瓦片参数说明

多任务切图

  • 设置切图工作空间 :支持添加文件型工作空间和数据库型工作空间中地图执行切图。当选择文件型工作空间时,只需指定工作空间路径; 当选择数据库型工作空间,需选择工作空间类型、输入数据库连接信息,有关数据库连接信息的详细描述可参看打开数据库型数据源

    • 工作空间路径 :该路径为待切地图所在的工作空间路径。若切图数据为 注意 :用户需确保该工作空间中的待切地图与拆分任务时的地图一致,若不一致,会导致结果无法正确浏览,此时建议用户对更新后的地图重新拆分任务后,再切瓦片。
    • 地图名称 :设置待切的地图名称。
  • 任务数 :设置切图的任务数,即在当前机器上开启几个进程来执行切图任务。进程数需要根据机器的配置和进程使用情况来设置,默认任务数为计算机 CPU 线程数*1.5倍,切图时CPU 利用率为100%。进程数可在切图过程中随时进行调整,若输入的进程数比当前进程数多,单击应用按钮,即可及时增加对应进程执行切图;若输入的进程数比当前进程数少,单击应用按钮,即可及时减少对应正在执行切图的进程。
  • 工作文件 :指定至瓦片工作目录下以瓦片名称命名的文件夹中的sci文件。多机多任务切图则设置为主机工作目录中的文件,主机的工作目录,必须是共享目录。
  • 使用本机切图 :使用本机执行切图任务。

    • 端口号 :用于唯一标识主机上的一个应用进程,方便不同应用进程之间的通信,指定端口可以提供可靠的数据传输,程序默认端口号为31363,若在执行切图时该端口提示被占用,请检查端口使用情况,指定其他端口。
  • 加入主机切图 :放置拆分任务的工作目录即为主机,其他机器调取主机任务协同执行切图时,选择该项。

    • 主机名 :输入主机的 IP 地址。
    • 端口号 :主机执行切图的端口。

切图进程 :在对话框右侧面板中可实时查看切图进度,包括总进度、总任务数、已完成任务数、待执行任务数、失败任务数及 执行中的任务数,便于实时掌握切图进度。

  • 列表框中可实时查看每个切图比例尺下子任务的详细进度信息。
  • 支持调整某个切图比例尺的优先级以及暂停该比例尺的相关切图任务,操作方式为选择待调整比例尺右键,在右键菜单中设置暂停执行或优先执行 。
  • 支持进度和日志的实时刷新显示。

输出信息 :在对话框下侧的实时显示切图过程中的输出信息。

重置失败任务:在多任务切图对话框,提示有失败任务数,可通过重置失败任务,对失败的任务进行重新切图。若仍提示有失败任务,请进一步检查地图数据或拆分的任务,再重启多任务切图程序。

相关主题

生成地图瓦片

单任务切图

多任务切图效率比对

生成多版本瓦片