本工作流的用户主要是组织内的影像数据管理者,其负责使各种用户社区可以访问高程数据。本工作流假定影像数据管理者使用 ArcGIS Desktop 来管理数据,并使用 ArcGIS Server 将数据作为一个或多个影像服务进行分发,但是仅在 ArcGIS Desktop 中管理和分发高程数据时,本工作流同样适用。
本工作流用于处理以 LAS 文件(LAS 数据集和 Terrain 数据集格式同样可用于本工作流)形式存储的基于像元的栅格高程数据和 3D 点数据。
以下列出了高程数据管理的常规设计。后面会逐一对其进行讨论。
- 数据存储(大小、要求和位置)。
- 准备数据(可能需要预处理)。
- 为每个源集合创建一个镶嵌数据集。
- 根据每个主集合创建一个镶嵌数据集。
- 创建不同的镶嵌数据集,以便进行可视化、分析、用户访问和发布(供引用)。
数据存储
这里不讨论数据存储,但是根据您的需求,确实需要对数据存储进行一些规划。有关概述了一个成功地理信息系统的设计方法的信息,请参阅 Esri 的 系统设计策略。
需要指出的一点是数据组织。理想情况是,可以在按产品分组的文件夹中组织数据。例如,将 SRTM 数据保存在一个文件夹中,而将 NED 1/3 弧秒数据保存在另一个文件夹中。在第 3 部分的步骤中,您将看到在质量保证/质量控制 (QA/QC) 和长期维护中加载数据时这将如何发挥作用。
数据用法
本工作流强调了三种不同的高程数据使用模式。大多数最终用户需要查看地形的直观显示以满足其需要,而很少一部分用户需要查看地形分析的结果。极少部分用户(例如工程师)需要访问实际高程值来完成自己的分析。
由于系统效率和响应会受到显著影响,了解上述用户的差异并对其实施正确的使用模式至关重要。将被重复引用的各种用法模型有:查看器用法、分析结果用法和数据值用法。
用法模型 1 - 查看器用法
用户需要查看高程数据的制图表达。因此,数据管理者必须在服务器上创建相应的可视化产品,然后将这些视图提供给用户。这些用户是指数量最大但对技术需求最少的用户组(在许多情况下指公众),他们希望可以轻松访问任何基于高程数据且相对明确的产品。示例包括:
- 山体阴影或地貌晕渲图像 - 用来添加到地形图或底图中
- 表示坡度的影像 - 用于城市规划、山崩敏感性等
- 表示坡向的影像 - 用于农业、野生动物栖息地描绘及管理、气候建模等
当然,对于使用 ArcGIS 的用户,应用程序通过为用户提供对高程数据的访问权限,可以自己生成这些产品。
用法模型 2 - 分析结果用法
用户定义用于在服务器端分析高程数据的参数和感兴趣区域,然后检索结果。这些用户是指需要访问可在服务器上生成的各种分析产品的用户组。结果通常是在不传输原始源数据的情况下向用户提供的地图或离散要素。示例包括:
- 可见性和视线分析的视域计算 - 用于确定从某位置可以看见什么,用于为手机信号塔和微波通信设备选址,或者用于规划清除挖方
- 在灾害管理中的应用 - 用于疏散计划、防洪减灾和实时决策所用的基于 Web 的当前洪水数据叠加
- 工业规划 - 用于风向剖析、风力发电厂位置可见性分析,或用于水电站坝设计
- 制图等值线的计算 - 用于在地图上显示
- 沿直线或线段的剖面图计算 - 用于工程管道线路和压力计算、道路规划,或树木采伐道路规划和开采成本计算
对于上述应用,用户通常不需要实际高程值。通过仅分发这些产品,带宽要求可能会略微降低,因为数据量会减小。例如,原始高程值为 32 位,而视域可能为 1 位或 8 位的结果。
用法模型 3 - 数据值用法
用户需要访问高程值。这些用户是指需要数字格式的原始高程值来支持数值计算(假设在客户端 Web 或桌面应用程序中)的用户。示例包括:
- 作为次级过程中的输入 - 用于影像的正射校正
- 作为数据模型或过程中的输入 - 用于创建等值线,或用于完成水流分析,以在灌溉系统的水文地理设计或洪水建模中使用
在上述三种用法模型中,就时间和对服务器的资源耗用来说,此模型最为昂贵,因为它经常需要访问和传输极大量的数据。
要求
需要提供合适的数据和访问权限来满足上述用法模型。以下并不是完整的要求列表,只是介绍特定于高程数据的一些重要要求。您必须决定在您的组织中这些要求是否适用,然后做出正确实施的决定。
- 分发影像、结果或数据
- 提供内部、Intranet 或 Internet 访问权限
- 提供一个或多个高程模型或制图表达
- 为 1、10、100 或 100 万个用户提供访问权限
- 提供对源数据的访问权限
- 将许多数据源作为一个源管理
- 对源的访问受限并且管理权限受限
- 必须能够轻松更新或替换内容
数据下载和导出
对于影像数据管理者和最终用户来说,了解高程数据的任何采样都会更改数据十分重要。例如,如果在全分辨率外的其他分辨率下、不同投影中或像素对齐的情况下查看数据集,将会对数据重采样。对高程数据集过采样并不少见,例如,将基于 5 米标注间隔的数据集创建的视域比例放大至 1:1,000 便会出现过采样,因为数据过于接近。
对于某些应用,用户可能需要访问感兴趣区域中的数值(数据值用法)。将数字数据值提供给客户端的方法有两种:导出或下载。
导出是指在指定范围和空间参考中提取数据。导出可能会提供原始数据值、原始数据值的重采样版本或已处理版本(例如山体阴影或坡度影像)。下载是指传输原始(全分辨率,非重采样)数据值,通常是指定区域内的数据值。应该明确的是,下载会导致大量的数据从服务器传输至客户端(尤其是当数据覆盖很大区域以及包含大量数据集时)。因此,必须实施相应的限制来确保用户和系统对结果做好准备,例如,对要传输的最大数据量设置限制或设计带有警告的 Web 应用程序。
数据源
下面列出了此工作流中使用的示例数据。这些数据可以采用各种位深度,通常为有符号或无符号的 16 位或浮点型。
此工作流假设数据管理者使用本地存储的内部数据。
数据 | 说明 |
---|---|
GTOPO | GTOPO 是分辨率为 30 弧秒(大约 1 km)的全球高程数据集,可从全球 30 弧秒高程 (GTOPO30) 下载。 |
SRTM | 航天飞机雷达地形测绘使命 (SRTM) 是接近全球范围的高程数据,可从航天飞机获得,用于生成最为完整的地球高分辨率数字地形数据库。 可从航天飞机雷达地形测绘使命获得。 |
NED 10、NED 30 | 国家高程数据集 (NED) 由 USGS 针对美国而创建。分辨率为 1 弧秒(大约 30 米,即 NED 30)和 1/3 弧秒(大约 10 米,即 NED 10)的 NED 数据可在全国范围内使用。 请参阅 http://ned.usgs.gov/。 |
激光雷达 | 激光雷达数据可能来自多种数据源。在这种特定情况下,数据由俄勒冈地铁区域土地信息系统 (RLIS) 提供,该数据可用于提供 DTM 和 DSM。 |
数据管理组织和服务(产品)
关键目标之一是确保所有数据(不考虑范围)作为独立单元来管理和分发。备选方法(此方法通常会随着时间推移、组织的发展以及各个项目的完成而得到采用)是将不同地理区域的数据作为独立数据集进行管理。不过,ArcGIS 提供了有效地管理巨大数据集集合的功能,它可以降低之前因数据重复和不必要的管理开销而引起的创建和维护成本。
镶嵌数据集组织
镶嵌数据集对于管理、显示和发布高程数据集合来说是最佳数据结构,因为它可以管理所有不同的栅格文件格式和分辨率,并且文件在磁盘上是以原始格式进行维护的。还有很多用来显示和处理高程数据的选项,例如,允许使用最佳分辨率在适合比例下进行显示的动态镶嵌,也有一些函数可用于处理数据从而在不复制源数据的情况下创建多个产品。
特定于高程数据的函数有山体阴影、晕渲地貌、坡向和坡度。
将镶嵌数据集分成两种类型会更具优势:一种主要用于管理,另一类用于提供其他数据制图表达(例如山体阴影)以及供您发布。这种分离有利于进行组织。可以在一个镶嵌数据集内管理影像,而使用另一个镶嵌数据集来共享或传播(发布)内容。
下面概述了不同类型的镶嵌数据集及其可能的用途:
- 源 - 用于管理影像。它通常包含一组相似的影像。您有时会使用许多这样的源镶嵌数据集来管理不同的集合(例如 SRTM 和 NED)。这些源镶嵌数据集可以直接发布或者(通常)用作其他镶嵌数据集的源。
- 主(或派生)- 用于将多个源编译成单个镶嵌数据集。主镶嵌数据集的源通常是一个或多个源镶嵌数据集,但也可以包括其他影像或服务。
- 引用 - 一种独特的镶嵌数据集,主要用于共享或发布影像。引用的镶嵌数据集是使用一个镶嵌数据集作为输入而创建的,并且不允许编辑表中的项,因此,可以保证输入安全而不被更改。引用的镶嵌数据集用来为源或主镶嵌数据集输入提供以不同方式处理的输出。
源镶嵌数据集和主(派生)镶嵌数据集是有助于理解镶嵌数据集组织结构的符号名称,而引用的镶嵌数据集是一种物理结构不同的镶嵌数据集。
高程数据可以存储在您自己或数据供应商组织的文件夹中,但是需要使用一个或多个镶嵌数据集和影像服务来对其进行管理和分发。通常,通过具有相同的波段数和位深度来确定源镶嵌数据集中包含的数据。在这种情况下,由位深度和产品来确定;例如,激光雷达派生的数据可以在一个源镶嵌数据集中组织,而 SRTM 数据在另一个源镶嵌数据集中组织。这有助于保持数据的组织状态,而使具有不同垂直单位的数据分隔开;例如,激光雷达派生的数据以英尺为单位,而 SRTM 数据以米为单位。这还允许您优化轮廓线(如有必要),或控制对每个产品唯一的 NoData。
可以使用主镶嵌数据集将源镶嵌数据集合并在一起。可能会将某些函数添加到一些源中,以确保数据代表相同的信息(例如,从英尺转换为米,或椭圆体高转换为正高)。(对于大多数要求,建议将使用正地面高度的镶嵌数据集创建为构建其他服务所依据的主服务并作为主服务进行维护。)
最终产品和服务
各种引用的镶嵌数据集可以基于主镶嵌数据集创建,以便提供下列推荐的高程数据服务:
- 正地面高度
- 正表面高度 - 如果表面高程数据 (DSM) 可用(显示建筑物、树冠和桥等)
- 椭圆体地面高度
- 用于可视化:
- 山体阴影
- 晕渲地貌
- 坡度
- 坡向(用于可视化和分析)
如果用户社区需要多种大地水准面校正,数据管理者可能希望将大地水准面发布为影像服务,从而为用户提供适合的选项。
海洋注意事项
在所有情况下,数据管理者必须决定如何表示海洋。正确的选择取决于数据必须支持的应用程序。其中包括以下选项:
- 海洋是值为 0 的高程
- 海洋是 NoData。
- 海洋使用深海探测数据表示
对于大多数应用程序,可以接受使用 0 表示任何海平面。如果海洋定义为 NoData,则在任何 NoData 区域中的正射校正都将失败。填入零值的一个简单方法是将分辨率非常低的世界范围的虚拟影像(其中所有像素值都为 0)添加到镶嵌数据集中。然后,当数据(例如 SRTM 数据)中的值为 NoData 时,将显示虚拟影像中的 0 值。
如果数据管理者选择包含深海探测数据,海洋中将会出现负高程值,这样便可对海底进行可视化。这实现了多个服务对数据渲染(显示)的灵活性;一个客户端应用程序可以将高程小于 0 的水体显示为蓝色填充,在同一区域,另一个客户端应用程序可将表面以下高程渲染为晕渲地形。
概视图
在基础等级,镶嵌数据集概视图类似于栅格数据集金字塔。它们都是较低分辨率的影像,创建此类影像的目的在于提高显示速度及降低 CPU 使用率,因为测试较少的栅格便可显示镶嵌的影像;但它们差别很大,因为您可以对许多用于创建镶嵌数据集金字塔的参数进行控制。您可以创建只覆盖特定区域的镶嵌数据集概视图,也可以只在特定分辨率上进行创建。通过创建该概视图,您可以查看包含在整个镶嵌数据集中的所有栅格,而不仅仅是单个栅格。概视图通常始于栅格金字塔 (pyramid) 停止的位置,但如果您不希望使用所有栅格的金字塔 (pyramid),则可指定生成概视图的基础像素大小。
数据管理者应该考虑概视图的最佳构建方法。概视图可基于项目数据创建,但如果可从备用源(例如 GTOPO、ETOPO 和 GMTED2010)获得相应的低分辨率数据集,则建议使用低分辨率数据集创建概视图。本工作流的其余部分基于此方法来构建由不同空间分辨率(因此对概视图通常没有要求)下的多个数据集组成的大型区域影像服务。
元数据
数据管理者需要验证所有高程数据的大量属性。数据管理者必须检查并决定哪些组件需要重点维护,以及哪些元数据字段需要重点向数据用户显示。下面列出的元数据是出于质量保证和系统配置目的而推荐的。
数据管理者应验证的元数据包括:
- 数据源或所有者。
- 版权所有。
- 地平坐标系(投影、基准面和单位)。
- 垂直基准面(特定模型,注意它是椭球体模型还是正高模型)和单位(英尺或米)。
- 水平精度(通常以 CE90 或 CE95 进行测量,但也可报告为 RMS 误差或 RMSE)。
- 垂直精度(通常以 LE90 进行测量)。
- 分辨率(存储在数据文件中的采样间距,与数据的水平精度不同)。
- 高程表面类型(DEM 与 DSM)。
- NoData 在数据集中的定义方式:
- 是否有 NoData 区域?
- 如果有,是否由单个值表示?
- NoData 是否仅局限于数据集的边缘或者在有效数据内是否有 NoData 孔洞?
- 某些产品具有定义空白区域的相关要素类。查看这些区域是否填有值以及该值是否为 NoData 值。
- 该数据是否从其他源取样的?
- 原始数据的采集日期。
- QA/QC 的完成日期、执行者以及使用的方法和/或标准。
- 数据是发布的还是受限制的(数据可能是专有的、分类的或免费公开发布的)?
对于独特的元数据字段,可能需要手动将其添加到镶嵌数据集的属性(例如水平和垂直精度)表中。这样,用户便可在镶嵌数据集中轻松查询此信息。
格式优化
并不总是需要格式优化,但是当数据采用的格式不是最佳格式或者不能得到很好的支持时,需要格式优化。下面列出了有关在构建单一集合以及发布为服务时,支持对高程数据进行预处理的一些建议。
- 将点或 TIN 数据转换为栅格格式。根据源的不同,可以选择多种地理处理工具。请参阅转为栅格工具集或 3D Analyst 转换工具集。
- LAS 文件、LAS 数据集和 terrain 数据集不需要转换为栅格数据集。镶嵌数据集本身就支持这类数据。
- 高程数据的最佳格式是 32 位浮点值以分块 TIFF 格式存储(采用 LZW 压缩)。LZW 压缩的特点是无损、快速、在文件中自动将数据切片并且在栅格格式下 NoData 值不占用空间。
- Esri 通常建议不转换高程数据的原始格式,除非文件格式效率低并且服务器性能受损。例如,在以下任一情况下,应该先转换数据,然后再将数据添加到镶嵌数据集:
- 高程数据以低效率的文件格式存储,例如 ASCII XYZ(读取效率低)。
- 高程数据文件较大(行数或列数 > 5000)、数据未切片或没有金字塔,而且服务器性能很重要。
某些情况下,在转换数据之前需要运行性能检查,以确定这些数据是否已经适合还是可以通过转换进行优化。例如:
- 如果原始数据存储为 JPEG 2000,请注意解压缩需要时间,而这会对性能产生严重影响。为获得最佳性能,可能需要将数据转换为分块 TIFF 格式。
- 如果原始数据为 Esri Grid 格式,而且在多处理环境中可扩展性十分重要,最好转换数据格式。
文件转换
如果文件需要从一种格式转换为另一种格式,但不需要更改位深度或数据集的其他属性,可使用栅格转其他格式(批量)工具。如果需要更改某些属性,可使用复制栅格工具。将该工具应用到多个数据集时,可以右键单击该工具,然后单击“批处理”或编写一个脚本来插入多个数据集。在任一情况下,必须设置环境。您可以在应用程序级别(如果要将此操作应用到多个工具)或工具级别执行该操作。
- 访问环境 对话框。
- 在主菜单中,单击地理处理 > 环境。
- 在工具上,单击 环境按钮。
- 展开 栅格存储部分。
- 选中构建金字塔。
- 单击金字塔重采样技术下拉箭头,然后单击双线性。
- 单击金字塔压缩类型下拉箭头,然后单击 LZW。
- 选中计算统计数据。
- 为 x 和 y 跳跃因子输入 1000。
该值由列数除以 1000 后得到。
- 单击压缩下拉箭头,然后单击 LZ77。
- 验证分块大小的宽度和高度是否均为 128。
投影
如果没有为每个数据集定义投影,可使用定义投影工具。有关详细信息,请参阅博客我的影像在错误的位置。
构建金字塔
如果数据不包含金字塔,而且分块较大(行数或列数大于 5,000),则建议创建金字塔。要确定文件是否有金字塔,可右键单击目录窗口或内容列表,然后单击属性,在“栅格信息”下查找“金字塔”。
为多个数据集构建金字塔时,可使用构建金字塔和统计值工具。请使用上述环境设置。
金字塔需要一些额外的磁盘空间,而且会被写入扩展名为 .ovr 的单独文件中。
FWTools
从 http://fwtools.maptools.org 下载 FWTools,然后执行以下命令:
gdal_translate.exe -of Gtiff -co "TILED=YES" -co "COMPRESS=LZW" Input.xxx Output.tif
gdaladdo.exe -r average -ro --config TILED YES --config PHOTOMETRIC_OVERVIEW LZW output.tif 2 4 8 16
对于 16 位影像,在 Input.xxx 前插入 -co NBITS=12。
如果创建的文件大于 4 GB,可在 input.xxx 前插入 BIGTIFF=YES 或 BIGTIFF=IF_NEEDED。
构建统计数据
要在 ArcGIS Desktop 应用程序中执行一些地理处理操作或某些任务(例如应用对比度拉伸或分类数据),需要栅格数据集或镶嵌数据集的统计数据。在本工作流中,不需要为每个数据源构建统计数据,因为不会单独显示或使用它们,也不会根据单个数据集的统计数据创建任何函数或产品。出于显示目的,将生成镶嵌数据集的统计数据。
有关统计数据的详细信息,请参阅栅格数据集统计数据。