使用带有时间和高程数据的栅格图像马赛克插件

介绍

本教程如下 使用用于栅格时间序列数据的ImageMosaic插件 并说明如何使用两者管理图像拼接 Time高程 属性。

所用的数据集是一组用于天气预报的栅格图像,代表某一区域在不同时间和海拔的温度。

第章中解释的所有步骤 配置 属于 ImageMosaic 章节还是一样的。

本教程介绍如何配置 elevationregex.properties 这是需要的附加配置文件,以及如何修改 indexer.properties .

使用的数据集不同,因此 timeregex.properties 需要在上一个教程中使用。

还将显示查询geoserver如何要求指定时间和高程尺寸的图层。

教程中使用的数据集可以下载 Here

配置示例

处理高程属性所需的其他配置包括:

  • 改进以前版本的 indexer.properties 文件

  • 添加 elevationregex.properties文件 以便从文件名中提取立面尺寸

索引器.属性:

在这里,用户可以指定在数据库中创建表时需要地理服务器的信息。

在这种情况下,时间值存储在列摄取中,如前一个教程所示,但现在必须指定高程列。

Caching=false
TimeAttribute=ingestion
ElevationAttribute=elevation
Schema=*the_geom:Polygon,location:String,ingestion:java.util.Date,elevation:Double
PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](ingestion),DoubleFileNameExtractorSPI[elevationregex](elevation)

高度表属性:

请记住,每个tif文件都必须遵循以下命名约定:

{coveragename}_{timestamp}_[{elevation}].tif

在TimeRegex属性文件中,用户必须指定文件名中的提升看起来像的模式。在本例中,它由4位数字、点“.”和其他3位数字组成。

本教程中使用的文件名示例如下:

gfs50kmTemperature20130310T180000000Z_0600.000_.tiff

geoserver imagemosaic插件扫描文件名并搜索与指定模式匹配的第一个匹配项。这里的内容 elevationregex.properties

regex=(?<=_)(\\d{4}\\.\\d{3})(?=_)

TimeRegEx.属性:

如您所见,此数据集中的时间被指定为ISO8601格式:

20130310T180000000Z

而不是形式 出生年月日 和前面的教程一样。所以要在timeregex.properties中指定的regex是:

regex=[0-9]{8}T[0-9]{9}Z(\?!.\*[0-9]{8}T[0-9]{9}Z.\*)

基于文件存储的覆盖率

一旦mosaic配置就绪,就可以在geoserver上加载存储mosaic。

所需步骤与上一章所示相同。加载存储并发布层后,请注意WMS功能文档和Postgres表中的差异。

WMS能力文档

WMS能力文档有点不同,现在还有维度 高程 . 在本例中,时间和高程标注都设置为 List .

<Dimension name="time" default="current" units="ISO8601">
        2013-03-10T00:00:00.000Z,2013-03-11T00:00:00.000Z,2013-03-12T00:00:00.000Z,2013-03-13T00:00:00.000Z,2013-03-14T00:00:00.000Z,2013-03-15T00:00:00.000Z,2013-03-16T00:00:00.000Z,2013-03-17T00:00:00.000Z,2013-03-18T00:00:00.000Z
</Dimension>
<Dimension name="elevation" default="200.0" units="EPSG:5030" unitSymbol="m">
        200.0,300.0,500.0,600.0,700.0,850.0,925.0,1000.0
</Dimension>

Postgres上的桌子

启用了高程支持后,postgres上的表对于每个图像都有一个字段 高程 填充高程值。

../../_images/elevationTable.png

备注

用户必须手动创建表的索引,以便加快按属性搜索。

时间戳上的查询层:

为了在特定时间即时显示地图快照和高程,您必须在请求中传递这些参数。

  • &time= < 模式 >,如前所示,

  • &elevation= < 模式 >通过高程值的位置。

例如,如果用户想要获取当天的温度覆盖图像 2013-03-10 at 6 PM 海拔高度 200米 必须附加到请求:

&time=2013-03-10T00:00:00.000Z&elevation=200.0
../../_images/temperature1.png

仰角当天 300.0米 ::

&time=2013-03-10T00:00:00.000Z&elevation=300.0
../../_images/temperature2.png

请注意,如果仅将时间维度附加到请求,则将显示高程。 200米 (如果存在)因为 违约 标记的属性 <Dimension name="elevation" ... 在WMS功能文档中设置为 200