1

概述

ArcGIS地图瓦片包,俗称TPK格式切片,已经广泛应用于涉及野外电子调绘的测绘项目中。作为底图,它可以承载影像以及作为辅助信息的栅格化后的矢量,并将他们打包封。该格式数据本质为栅格数据,针对移动端的加载速度和显示效果均有明显优化,具有灵活的多级比例尺控制机制,实际使用体验好。

貌似该格式为ESRI的原创,但按照切片的基本原理来看,这个格式和其他切片相比并没有实质性的区别或优势,但是依托于ArcGIS强大的数据处理工具集,使得切片制作的过程对数据的处理和汇总更容易,而就这些制作工具本身而言,他们秉承了ArcTool的一贯的容易上手的风格,并没有太多需要说明。本次单独总结该流程,是为了将相关技术一起总结,形成一个小体系。

【注:文中所用ArcGIS Desktop 为10.6版本,各工具与较早版本的差异未作比较】

2

准备工作

2.1

数据准备

矢量数据的准备无需赘言,栅格数据通常需要提前处理。

A 空间参考的处理

大多数时候,栅格数据没有定义空间参考,因为通常会与对应的矢量数据配套使用。而制作切片用到的矢量数据可能比较杂乱,但他们自身通常带有空间参考,可以通过ArcGIS的动态投影技术得到正确的位置表达,所以现实中便可能碰到如下情况:

移动端APP不支持动态显示,所以切片本身必须是CGCS2000或WGS84;

因为所以数据框通常使用CGCS2000;

实际为高斯平面坐标,且未明确定义的栅格数据无法正常叠加。

这时候最简单的处理方式无疑是给栅格数据定义空间参考。我们将使用到【Define

Projection】-【定义空间参考】工具。

【定义空间参考】工具界面

工具本身很简单,只有两个参数,唯一值得注意的可能是工具在对已有空间参考的数据集使用时会提出警告,而如果已有空间参考的栅格数据无法正常叠加,则应该仔细分析原因了。

B 影像黑边以及拼接处理

若需要做切片的区域较大,比例尺要求又不高,这时候通常需要用到多幅影像同时制作切片。拼接影像即影像镶嵌是首先想到的,但对于只是用影像来制作一次切片的我们来说,这并不是最好的选择。因为镶嵌是一个“追加”的过程,每增加一幅影像数据到镶嵌总影像中的过程就必须将全部已镶嵌的数据写一次,导致分幅数越多耗时越难以忍受。那么“在ArcGIS中把影像全打开直接做切片”这个方法的障碍就是黑边了。

通常去黑边的方法有两种,一种需要读写栅格数据,用到【Copy

Raster】-【栅格复制】工具,通过设置“忽略背景值”过滤掉黑边,即“0,0,0”部分;另一种不改变也不产生新数据,只是修改栅格的显示方式,不显示像元值为“0,0,0”的黑色部分。显然后者更适合制作切片。但是值得注意的是,后者会将图像内部的黑色部分一并设置成不显示,这一点区别于前者只处理图像边缘的方式。

【复制栅格】工具界面

设置0,0,0像元值不显示

2.2

Mxd文档以及xml配置文件

Mxd文档用来记录制作切片所需所有数据和符号配置的组织关系与图形表达,我们希望在其中预览切片的效果。所以制作过程最值得注意的地方可能是:

配置标注的字号大小,颜色对比情况;

矢量栅格叠加后的清晰度,颜色对比情况;

前述“数据框的空间参考”显然也是非常重要的参数配置。

Xml经常被用作配置信息记录,这里所指的xml文件是用来记录切片参数的,这种方式有效的减少了“制作地图瓦片包”工具所需要呈现的参数选择窗口数量,也方便了配置信息的复用。制作该xml文件也是有相应工具的,即【Generate

Tile Cache Tiling Scheme】-【生成瓦片缓存的瓦片方案】

【生成瓦片缓存的瓦片方案】工具界面

【Input Data Source】-【输入数据】 照理说只是制作方案配置文件,不需要具体的待制作数据,我猜想这里恐怕只是为了预填充高级选项中的一些参数而已;

【Out Tiling Scheme】-【输出配置文件位置】 即xml位置;

【Generation Method】-【生成方式】支持新建方案和在已有方案上修正;

【Predefined Tiling Scheme】-【已有方案位置】预定义方式下激活

【Number of Scales】-【比例级数】总级数,可以不用提前设置,将根据下面【Scale】-【比例尺】窗口中实际填写的个数而动态修改;

【Cell Size】-【单元格大小】选中后会将比例尺转换为切片每一级别单元格大小来定义;

【Scale】-【比例尺】按照两倍关系填写,从小到大还是从大到小都可以,若是比例尺模式,只需要填写分母;

接下来是【高级选项】:

【Tile Origin in Map Units】-【按照地图文档单位的原点坐标】通过设置输入数据而预填写,可以不用理睬,因为方案具体使用的时候可以通过其他设置项覆盖或使此参数失效;

【DPI】-【每一个瓦片栅格的dpi】【Tile Size】-【瓦片尺寸】【Storage Format】-【存储格式】最好使用默认;

【Tile Format】-【瓦片格式】即单个瓦片的实际图片格式,各种格式的优劣在帮助中有介绍,需要注意的是这里设置的格式和后续具体切片的时候需要设置的格式最好完全一致,避免出现切片不能包含和显示栅格数据的问题;

【Tile Compression Quality】-【瓦片压缩质量】只针对前面瓦片格式选择时,对应格式支持压缩的情况,也就是混合模式或者JPG格式。

3

正式制作

经过前述准备,正式的制作也就只是用到一个工具,即【Create

Map Tile Package】-【生成地图瓦片包】。

【生成地图瓦片包】工具界面

【Input Map Document】-【输入地图文档mxd】只能是mxd

【Package for ArcGISonline GoogleMaps

BingMaps】勾选后将使用地理信息公共服务平台通用的xml方案制作切片,该方案要求数据框的空间参考必须为【WGS

1984 Web Mercator (Auxiliary Sphere)】且切片对应比例尺级别为1-24级(滑块虽然可以指定24级,但按照OGC规范应该只有20级,工具帮助文档也是如是说),需要根据实际需求调整切片所包含的级数。当我们取消此选项时,将激活【Service】-【选项】即可用使用我们前面制作的xml了。

【Output File】-【输出tpk】文件路径;

【Tile Format】-【瓦片格式】若使用了自定义xml,尽量两者对应;

【Level of Detail】-【切片包含层级】调整滑块后,其右侧等级将不被切片采纳

【Extent】-【展布范围】包含五种选项:

【Default】-【默认】mxd文档的数据中被勾选显示的图层的展布最大范围

【Union of Input】-【输入数据的并集】mxd文档的数据展布最大范围

【Intersection of Input】-【输入范围的交集】mxd所有图层的输入范围交集

【As Specified Below】-【指定范围】没搞懂这里的坐标是指什么的坐标,前面制作xml的时候有一个地方出现了“原点坐标”,而mxd本身有展布范围,其坐标单位可由他自己决定,另外在layout视图下对应mapping也有一套坐标。官方说明文字有限。

【Same as Display】-【与显示范围相同】即和mxd保存时的显示范围相同

【Same as XXX Layer】-【与某个层范围相同】即和某个图层的范围相同。

4

优化

在大批量制作切片的时候,我们希望提高工具的执行效率,尤其是核心的制作工具,通常有以下的优化方法:

4.1

非并行优化方式

即开启64位后台地理处理。当用户在64位操作系统中安装“64位后台地理处理”软件包,并开启ArcMap的“后台处理”(Background Processing)选项,可激活64位后台地理处理,即GP工具将在ArcMap后台以RuntimeLocalServer进程占用CPU一个线程的全部资源的方式执行。RuntimeLocalServer进程虽然有两个,但分工不同,用户安排的多个GP任务只会逐个顺序执行,相对于原有的32位后台地理处理,优化了内存资源利用。32位软件不能充分利用如今“海量”内存的情况在ArcGIS

Pro中得到了很好的解决。

4.2

并行优化方式

A

ArcMap进程并行

就是软件“多开”,需要注意的是,栅格数据天然支持多用户并发访问,而矢量数据则不然,如果在一台电脑上打开多个ArcMap进程,配置参数并允许切片制作流程,期间涉及同一份矢量数据的哪怕只是读取的操作,都会导致程序因为无法获取资源独占锁而报错

B 设置“并行因子”

“并行因子”是10.1的SP1开始,在GP工具的环境变量中加入的新设置项。该选项允许用户设置GP工具执行过程可利用的CPU核心数量。但并行的本质需要改变GP工具内部的算法,而ArcGIS中的GP工具整体性高,执行过程不易拆分,目前经过改进的支持并行工具的较少。以该种并行方式执行的GP工具,在执行过程中,会开启与并行因子数量相适应的名为ArcSOCP的进程,以及固定的一个ArcSOMP进程。其中并行分担GP工具处理任务的是前者。值得注意的是,前述后台处理方式和此种“并行因子”优化的方式无法同时开启,后台处理方式会以独占形式激活运行。

C

Python脚本并行调用

“批处理”是目前针对单个GP任务多次执行情况的常用解决方法,但批处理的本质是串行方式逐个执行任务,仅仅节省了分别配置单个任务参数的时间,此时若要充分利用硬件资源,则适合通过Python实现并行调用。值得注意的是,栅格处理的效率提升瓶颈通常是磁盘IO,当充分利用了CPU以后,还需要考虑提高存储介质的速度。

arcgis制作瓦片地图_利用ArcGISDesktop制作【地图瓦片包(TPK切片包)】的技术流程及优化...相关推荐

  1. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(二)

    今天继续新的专题.主要讲解[利用PYTHON制作桌面版爬虫软件]下的如何实现界面功能(一).该讲主要包括以下三个内容:掌握如何编写主函数,运行界面. 了解pywin32模块. 如何用python识别Q ...

  2. python制作阴阳师脚本_利用python制作一个阴阳师小游戏

    利用python制作一个阴阳师小游戏 发布时间:2020-11-27 13:59:49 来源:亿速云 阅读:84 这期内容当中小编将会给大家带来有关利用python制作一个阴阳师小游戏,文章内容丰富且 ...

  3. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(一)

    抱歉,对长沙房地产数据的挖掘与分析[三],想了蛮久,觉得对自己的分析结果不是很理想.等我完善好了,我再发出来吧.今天继续开启新的一专题.主要讲解如何用PYTHON实现简单的桌面软件的制作. 题外话,我 ...

  4. python制作小工具_利用Python制作翻译小工具

    话不多说,直接上代码. Component文件: # coding:utf-8 from tkinter import * from tkinter import ttk from tkinter i ...

  5. js拆字_分图程序 _制作个人字体_手写字制作ttf字体方法

    js拆字_分图程序 _制作个人字体_手写字制作ttf字体方法 前言 FontForgeBuilds制作ttf FontForgeBuilds制作个人字体 Adobe_Fireworks_CS5批量转换 ...

  6. w10自动删除文件怎么关了_绝地求生怎么删除新地图_删新沙漠地图文件办法

    绝地求生怎么删除新地图?对于这张沙漠地图来说,很多玩家都不喜欢,大家都觉得掩体太少了,很容易死不好玩,还是比较喜欢老地图,怎么才能删除这张沙漠地图,从而不会匹配到呢?下面安卓市场小编就为各位玩家带来绝 ...

  7. python拼图_利用python制作拼图小游戏的全过程

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 关注公众号:Python学习指南,回复"拼图"即可获取源码 环境搭建 安装P ...

  8. python自己做电子词典_利用PyQt5制作电子词典

    详细代码参考github,如果喜欢,欢迎star和fork. 利用PyQt5制作电子词典 年前(2018年12月22日)Crossin编程教室发布了一个制作电子词典的小作业,自己懒懒散散的做了一个,大 ...

  9. js 万年历农历转阳历 方法_利用JS制作万年历的方法

    本篇文章主要介绍了利用JS制作万年历的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 我们知道,万年历在人们的生活中是在平常不过的一种东西了,那么怎样用JS来实现在网 ...

  10. ae制作小球轨迹运动_利用Ae制作出自由落地运动小球的详细步骤

    各位知道在Ae中如何制作出自由落地运动小球呢?不太会操作的用户可以去下文学习下利用Ae制作出自由落地运动小球的详细步骤. 我们先准备好小球图片素材,背景颜色为黑色.导入素材,新建合成.将素材拖拽的合成 ...

最新文章

  1. Android语音信号波形显示
  2. 每日算法练习之括号配对
  3. freetype-go学习
  4. Linux中的一个命令行计算器bc简介
  5. ASP.NET MVC+Spring.net+Nhibernate+EasyUI+Jquery开发案例(1)
  6. PHP常用工具方法集...
  7. python入门--字符串,切片
  8. 在腾讯,如何做 Code Review
  9. 计算机应用基础的文档,计算机应用基础
  10. 三大运营商回应“提速降费”:认真落实各项要求
  11. Sql Server函数全解(五)之系统函数
  12. 「leetcode」78. 子集【回溯算法】详解!
  13. Android studio 使用阿里巴巴图标矢量图库
  14. SolidWorks齿轮设计软件工具 GearTrax介绍
  15. TIFF图像文件格式与实例分析
  16. xbox360手柄win10无法识别,显示未知设备
  17. 基于STM32+铂电阻设计的测温仪
  18. linux挂载光盘镜像到mnt目录,CentOS系统中挂载光盘镜像ISO文件的教程
  19. CentOS 7.8安装mysql 5.7.30
  20. java highchart统计图_java+highchart实现分类下钻柱形图

热门文章

  1. 如何定义StrokeIt手势 常用StrokeIt手势大全
  2. win10去掉快捷方式小箭头_桌面快捷方式小箭头去除与恢复方法
  3. c语言作业陌路寒暄,短学期算法与编程实习的C语言题目
  4. 桌面快捷方式小箭头隐藏与还原(亲测有效)
  5. 十、线程(11 章)
  6. Elasticsearch最佳实践之使用场景
  7. 【音频编码】AAC编码之FDK AAC
  8. python求球的表面积_python中计算体积或表面积的好算法
  9. C++ vector 和push_back 详解
  10. 窃取式调度器(Stealing Scheduler)-高并发