发布和使用 ArcGIS Server 服务之--影像服务
前面我们知道arcgis server都有那些服务以及这些服务是干什么的,有什么用,具体参考:
arcgis server的各种服务类型简要介绍
下面,我就以这个来介绍一下:地图服务:发布和使用ArcGIS Server 服务之–地图服务(Mapserver)
要素服务:发布和使用 ArcGIS Server 服务之–要素服务(feature server)
影像服务:发布和使用 ArcGIS Server 服务之–影像服务(image server)
OGC 服务:发布和使用 ArcGIS Server 服务之–OGC服务(WMS/WMTS/WFS/WCS/WPS)
缓存服务:发布和使用 ArcGIS Server 服务之–缓存服务(TileServer)(一)
缓存服务:管理和迁移ArcGIS Server服务和缓存服务(TileServer)(二)
地理处理服务、矢量切片服务、场景服务
、地理数据服务、以及几何服务、KML 服务、地理编码服务、定位器Maritime Server、路径服务、Schematics 服务、流服务、公共设施网络服务、Workflow Manager 服务等;,以及如何使用JS调用这些服务。
1.什么是影像服务?
要了解什么是影像服务;
那么我们需要了解什么是栅格数据? 栅格数据的组织是什么? 栅格数据能干什么? 怎么样才能把栅格数据发布成影像服务? 影像服务能干什么? 我们该怎么用影像服务?
那么让我们带着这些疑问,开始我们的学习之旅吧!
首先:可以使用 ArcGIS Server 将栅格数据和影像数据共享为影像服务。
影像服务提供了一种通过 web 服务访问栅格数据的方式。
此外,您也可以将数据**共享为文档(例如地图文档)**的一部分,或共享为其他服务(例如地理数据服务)的一部分。
在我们需要了解什么是影像服务的时候,我们需要知道什么是栅格数据,如何将栅格数据发布成影像服务,那么接下来我们一起去看看;
1.1影像服务的数据源和支持方式
栅格数据的组织形式
先一起来看看什么是栅格数据,请参考:
Python+GDAL栅格数据基本操作
通过上面我们知道了什么是栅格数据后,那么我们一起来看看栅格数据的组织形式:
主要是三种方法来组织、存储和管理栅格数据(栅格数据模型)。
这些结构和相应的表示为:
栅格数据集
镶嵌数据集
栅格目录
栅格目录,下面不对此进行讨论,因为它已被镶嵌数据集所取代,后者具有更多的功能、用途和作用。
比较栅格数据的存储模型
栅格数据集 | 镶嵌数据集 | |
---|---|---|
描述 | 某个对象的单张图片,或者覆盖某个具有空间连续性的区域的无缝影像。它可以是原始影像,也可以是许多影像附加(镶嵌)在一起而形成的结果。 | 以目录形式存储的栅格数据集的集合,通过该目录,可以存储、管理、查看以及查询栅格和激光雷达数据的集合。可将它视为镶嵌影像,但可访问集合中的各个数据集。 |
存储 | 存储为磁盘或地理数据库中的文件。 | 但是,在地理数据库中,可以具有以文件的形式存储在磁盘上的参考。 |
地图图层 | 一个地图图层。 | 一个地图图层。 |
同类数据还是异类数据 | 同类数据:单一格式、数据类型和文件。 | 异类数据:多种格式、数据类型、文件大小和坐标系。 |
元数据 | 存储一次,并且应用于完整数据集。 | 可存储在栅格记录中,并且可在属性表中存储为属性。 |
缩减采样的数据集 | 整个栅格数据集的单个金字塔。 | 针对每个栅格数据集的金字塔,以及针对整个集合的概视图(类似于金字塔)。 |
地理处理和影像分析 | 可用作许多地理处理和分析工具的数据源。可以用在影像分析窗口中。 | 可用作许多地理处理和分析工具的数据源。可以用在影像分析窗口中。 |
优点 | 可在任何比例下快速显示。镶嵌可节省空间,因为不存在任何叠置数据。 | 管理栅格数据的大型集合。可在任何比例下快速显示。不会丢失用于创建镶嵌的数据。用户能够访问集合中的全部内容。可通过设置属性来控制镶嵌显示画面。动态处理。 |
缺点 | 更新文件或个人地理数据库栅格数据集时速度较慢,因为必须重写整个文件。 | 生成概视图需要一定的时间。 |
用途 | 可直接用作影像服务。 | 可直接用作影像服务。 |
建议 | 如果不需要保留镶嵌影像之间的叠置部分,或者需要快速显示大量的栅格数据时,可使用栅格数据集。 | 可使用镶嵌数据集来管理和显示栅格和激光雷达数据。它非常适合多维数据、查询、存储元数据以及叠置数据,并且提供了良好的混合解决方案。 |
影像服务的数据源有哪些?
可将以下数据发布为影像服务:
- 栅格数据集
- 栅格图层
- 镶嵌数据集
- 镶嵌图层
影像服务的数据源可以是栅格数据集(来自磁盘上的地理数据库或文件)、镶嵌数据集或者引用栅格数据集的图层文件。
对定义了动态处理的栅格数据集或栅格图层(例如符号系统或栅格函数)进行共享是影像服务的核心功能,它不需要扩展模块。
要共享镶嵌数据集或包含镶嵌函数的栅格图层,需要使用 ArcGIS Image Server。这影响的不仅仅是影像服务。例如,如果有包含镶嵌数据集的地图文档,则需要 ArcGIS Image Server。
提示:Lidar 数据也可以共享为影像服务。可向镶嵌数据集添加 terrain 数据集、LAS 数据集或 LAS 文件,然后将镶嵌数据集共享为影像服务。这使 lidar 数据可用作栅格数据,而不是点类型的矢量数据,但是如果启用了影像服务的下载功能,则可以访问源文件。
影像服务数据的位置?
发布影像服务时,会将服务定义和所有数据都转移到服务器上。
相对于在服务器上移动和复制数据,建议您采用以下任一做法:确保数据位于一个已注册到服务器中的共享驱动器上。
例如,如果要发布一个镶嵌数据集,请利用这一共享位置上的数据在共享位置中创建镶嵌数据集。确保在服务器上复制数据。例如,镶嵌数据集中所使用的数据在服务器上注册位置中所处的文件夹结构位置与在本地计算机上的文件夹结构位置相同。
注:与服务器建立连接时,通过访问服务器属性来设置这两个选项。这两个选项不在发布影像服务时设置。
要了解发布的时候,数据源在存放在哪里,那么我们需要知道的栅格数据可以放在什么地方,下面让我们一起来看看:
有三种方法可用于存储影像和栅格数据:存储为文件系统中的文件、在地理数据库中进行存储,或者从地理数据库中进行管理而存储在文件系统中。
此决定还确定是否将所有数据存储在一个单独的数据集中,或者存储在潜在多个数据集的目录中。如果选择将数据存储在文件系统中,则选择了存储栅格数据集,而地理数据库既可以存储栅格数据集,也可以存储镶嵌数据集。
注释:
那么我们能够看到,栅格数据可以放在 文件中、地理数据库,或者从地理数据库管理而存储的文件系统中;
那么我们发布的时候,也可以将其注册成server的注册文件夹,这样就可以不用拷贝了,或者镶嵌数据集索引的形式;或者是拷贝的形式,这样对磁盘存储比较浪费空间;
用户是否会将影像上传到影像服务?
可将镶嵌数据集发布为影像服务并允许用户将自己的数据上传到影像服务中,然后编辑与他们所上传的内容相关的属性。要启用该功能,在发布镶嵌数据集时必须启用“影像”功能中的“编辑”操作。
要使用此功能,地理数据库必须注册到服务器,因为您的镶嵌数据集必须位于地理数据库中。可按如下方式使用“编辑”发布影像服务:
与 ArcGIS Server 共享地理数据库并从共享地理数据库中发布镶嵌数据集。
确保使用 ArcGIS Server 将地理数据库注册为复制的数据库。
确保将相同的镶嵌数据集存储在企业级或文件地理数据库中,然后从文件地理数据库中发布镶嵌数据集。
确保使用 ArcGIS Server 将地理数据库注册为共享数据库,并从文件地理数据库中发布镶嵌数据集。这会将镶嵌数据集从文件地理数据库复制到企业级地理数据库。
因为镶嵌数据集位于企业级地理数据库中,所以确保可以通过更改镶嵌数据集方案工具来使用允许的栅格类型。当发布镶嵌数据集时,有一个方案锁;因此,如果在发布之前没有更改方案,则必须停止影像服务以更改方案。
如果用户可以在影像服务中添加、更新或删除项目,则在发布时,请确保配置编辑参数,其中包括定义将上传用户影像的服务器上的目录,并在向影像服务添加数据时定义用户可选择的栅格类型。
注:这一部分注册稍微复杂一些,这里就不详细介绍了,后续有机会会单独写一篇分享下;
1.2如何开始创建影像服务?
准备创建影像服务时需要考虑许多事情,因为栅格数据并不都是以同
一种方式提供的;它取决于您所选择的功能和操作
常见问题如下:
- 有一个栅格数据集还是多个栅格数据集?
- 栅格数据是作为影像还是作为分析操作的输入来查看?
- 是否具有多个波段以及是否需要增强?
- 是否需要处理?
- 要了解每个问题,请参阅准备影像服务。
在发布影像服务时,可以定义由服务器动态应用的处理操作(使用函数),
例如,正射校正、山体阴影、增强、波段组合、波段代数、全色锐化和过滤。支持对影像服务应用一些基本函数(通过 REST 和 SOAP),包括坡向、色彩映射表、NDVI、坡度、山体阴影和拉伸。您还可以创建栅格函数模板文件 (.rft.xml),以便使用任何栅格函数以及将它们组合使用。
此处也就是说,我们可以对栅格数据做一系列的操作,然后可以把这些操作发布成服务,然后对其进行发布成动态处理的操作;
1.3为什么要使用影像服务
ArcGIS Image Server 具有以下优势:快速使用有用的影像。
- 提供影像数据或 lidar 数据的集合作为影像服务。
- 动态创建并从原始影像提供镶嵌数据,且不需要预先对镶嵌数据进行计算。
- 使用原始影像提供多个视图。
- 访问用于构成镶嵌数据集的影像的目录。
- 使用此服务器高级影像服务功能来利用重叠的影像、执行动态处理以及浏览时间变化。
- 另外,地图文档中可包含栅格数据,但如果提供含有镶嵌数据集的文档,则需要 ArcGIS Image Server。
- 在 ArcGIS Desktop 中创建、编辑或使用镶嵌数据集不受 ArcGIS Image Server影响(无 ArcGIS Desktop 的扩展模块)。
缓存影像数据:
仅当必须创建包含影像数据的最快服务时,才需要进行缓存操作。通常来说,为栅格数据集生成的金字塔或为镶嵌数据集生成的概视图也可确保以可接受的速率来提供影像数据。
但是,如果您知道某一感兴趣的特定影像或区域将被重复多次地访问,您可能想要生成缓存。
您可以直接对影像服务进行缓存,也可以对包含栅格数据或影像服务的地图服务进行缓存。除非需要对地图服务的所有内容进行缓存,通常情况下,建议仅对矢量数据进行缓存,而不缓存影像数据(特别是在包含影像服务时)。
1.4.应该启用哪个服务功能?
发布影像服务时,应考虑客户端将如何连接到影像服务。
始终通过影像功能发布影像服务,该功能允许客户端使用 ArcGIS Server 连接或通过 REST 与影像服务进行连接。
但是,您也可以选择通过启用开放地理空间联盟 (OGC) Web 地图服务 (WMS) 或网络覆盖服务 (WCS) 功能来发布影像服务。
添加其他功能后,客户端可以访问更多种应用程序和设备中的影像服务。
功能 | 详细信息 |
影像 | 始终启用。允许显示影像。 通常在服务器端进行渲染(但是,ArcGIS Desktop 可在客户端进行渲染)。 可用于显示或分析。 许多高级功能包括查询、动态处理、查看轮廓、预览每个栅格、下载和添加。 每个功能都通过影像服务参数设置和影像功能的允许操作设置来控制。 可以启用或禁用影像服务的以下操作: 目录 - 允许客户端打开镶嵌数据集表。 下载 - 允许从镶嵌数据集中下载栅格。 编辑 - 允许客户端在镶嵌数据集中添加、更新或删除栅格。 测量 - 允许客户端执行各种测量操作。 元数据 - 允许客户端查看镶嵌数据集中各个栅格的元数据信息。 像素 - 允许客户端访问影像服务栅格的原始像素块。 上传 - 允许客户端上传栅格文件。 |
WCS | 可选择性地启用。 允许访问影像数据。 在客户端渲染(由应用程序执行)。 可用于显示或分析。 |
WMS | 可选择性地启用。 允许访问用作图片的影像。 在服务器端渲染。 可用于显示。 |
栅格数据是作为影像还是作为分析操作的输入来查看?
总体来说,在 ArcGIS 中工作时,影像服务功能提供了使用影像服务进行分析时所需的信息。
但是,如果您的应用程序不能连接到 ArcGIS Server,则 WCS 服务是理想的替代方案。
操作 | 影像服务 | WCS | WMS |
---|---|---|---|
作为影像 用户只想调整透明度、亮度和对比度,而不想调整影像的其他外观。 | X | X | X |
用于分析 影像服务将用作要进行分析的数据,例如,通过地理处理工具或通过生成表面(基于高程数据)进行空间分析。 | X | X | |
进行测量<>br用户将使用测量工具(如测量高度的工具)基于影像服务进行测量。 | X |
如何使用影像服务
影像服务参数
影像服务的参数控制了如何令栅格数据可用作影像服务以及启用或限制客户端与影像服务交互的方式。
例如,无论数据源是什么,都存在适用于所有影像服务的默认参数,例如默认重采样方法和允许的压缩方法。
此外,可通过将功能与影像服务相关联为每个影像服务配置动态处理。还有仅当影像服务的输入为镶嵌数据集时所适用的多个参数。
这些参数可对目录进行控制,如确定属性表中的哪些字段对客户端可见,以及是否允许下载或编辑(如添加)。
用户是否会基于影像服务测量高度?
如果用户使用测量工具,则影像服务上提供了一些用于实现此操作的一些设置。例如,在 ArcMap 中,测量功能受数据限制,但也受 DEM 的存在限制。如果用户将在 3D 模式下进行测量,您可以提供具有将使用的影像服务的 DEM。此设置包含在服务属性中。
2.服务准备/制作/发布/调用操作实例
使用 ArcGIS Server 发布影像服务与发布所有其他类型的服务相似。默认情况下,始终使用影像服务功能发布影像服务,此外,还可以选择 WMS 功能和 WCS 功能。用户可以连接到这些服务,就像连接到任何其他已发布的 ArcGIS Server 服务一样。
取决于软件安装的发布方式影像服务的发布方式有以下几种,具体取决于您的软件:
1)只有 ArcGIS GIS Server。
您只能发布栅格数据集和引用栅格数据集的图层文件。可以使用 ArcCatalog 或 ArcMap 中的目录 窗口发布服务。
2) 具有 ArcGIS GIS Server 和 ArcGIS Image Server。
您可以发布栅格数据集、镶嵌数据集,或者引用栅格数据集或镶嵌数据集的图层文件。可以使用 ArcCatalog 或 ArcMap 中的目录 窗口发布服务。
许可:当使用函数链中的镶嵌函数发布包含镶嵌数据集或栅格图层的地图文档时,也需要使用 ArcGIS Image Server。如果没有 ArcGIS Image Server,那么基于这些文档创建的服务将不会包含镶嵌数据集或图层。
2.2.发布服务
发布选项当选择将栅格数据共享为影像服务时,将具有下列选项:
发布服务 - 如果做好了发布的准备,您可以执行连接到 ArcGIS Server 并发布影像服务的整个过程
。
保存服务定义文件 - 如果要设置影像服务的所有属性并将这些属性传送到另一台计算机上进行发布,那么您可以创建并保存一个服务定义文件。这在云环境、安全环境或服务器非立即可用的情况下有时是必要的。
覆盖现有服务 - 如果想覆盖现有服务,可选择此选项。
同样的我们也可以使用两款软件进行这些操作,那么分别就是arcmap或者是arcgis pro软件操作;
2.2.1 arcmap发布影像服务
https://t460p.esrichina.com/server/rest/services/Imageserver/imageserverTEST/ImageServer
2.2.2 arcgis pro发布影像服务
arcgis Pro发不影像也比较简单,我们可以按下面流程直接发布即可:
点击分析,然后发布即可:
去我们的portal的内容页面查看,下我们的信息:
2.3.ArcGIS API for JavaScript调用影像服务
我们调用动态影像服务主要是利用imagelayer,如果是调用切片影像服务,那么我们就需要使用ImageryTileLayer这个类了。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<title>
Intro to ImageryLayer | Sample | ArcGIS API for JavaScript 4.16
</title>
<link
rel="stylesheet"
href="https://js.arcgis.com/4.16/esri/themes/light/main.css"
/>
<script src="https://js.arcgis.com/4.16/"></script>
<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
<script>
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/ImageryLayer"
], function (Map, MapView, ImageryLayer) {
/********************
* Create image layer
********************/
var layer = new ImageryLayer({
url:
"https://t460p.esrichina.com/server/rest/services/Imageserver/imageserverTEST/ImageServer",
format: "jpgpng" // server exports in either jpg or png format
});
/**************************
* Add image layer to map
*************************/
var map = new Map({
basemap: "topo",
layers: [layer]
});
var view = new MapView({
container: "viewDiv",
map: map,
center: [-175.34, -21.10],
zoom:15
});
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>