Modis COG数据集的ImageMosaic示例¶
介绍¶
本教程提供了在一些MODIS植被指数数据集的基础上配置ImageMosaic的一些提示,网址为 NASA EarthData
ImageMosaic配置文件¶
我们需要几个配置文件来正确设置ImageMosaic。配置基于以下关键点:
ImageMosaic最初将创建为空,没有任何数据。第二步将收集数据。
将根据文件名中包含的日期使用时间维度。
有关ImageMosaic配置的更多详细信息,请参阅专用文档部分: 图像马赛克配置
基于以上要点,我们可以设置以下配置文件:
indexer.properties:¶
这包含索引组成ImageMosaic的数据集的主要配置。
Cog=true
PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](time)
TimeAttribute=time
Schema=*the_geom:Polygon,location:String,time:java.util.Date
CanBeEmpty=true
Name=modisvi
相关部件:
指定ImageMosaic为COG数据集的镶嵌的COG标志
PropertyCollectors、TimeAttribute和Schema用于定义ImageMosaic索引列以及如何填充它们
CanBeEmpty允许定义空的ImageMosaic。之后它将被填充
名称是此镶嵌的名称
timeregex.properties:¶
前面的索引器引用索引模式中的时间维度和相关时间列,通过使用timeregex.properties文件中指定的正则表达式从文件名(8位数字,表示年、月、日)提取时间值来填充这些时间维和相关时间列。存储在S3存储桶中的此集合的示例文件示例是2018.01.01.tif,因此时间正则表达式将反映这一点。请注意日期的3组数字和“格式”。
regex=[0-9]{4}.[0-9]{2}.[0-9]{2},format=yyyy.MM.dd
datastore.properties:¶
由于可用数据集的数量,建议将ImageMosaic索引存储在DBMS上,即PostGIS DB。看见 datastore.properties 有关更多信息,请参阅ImageMosaic文档的部分。确保具有数据存储区中报告的名称的数据库可用
user=postgres
port=5432
passwd=postgres
url=jdbc\:postgresql\:modisvi
host=localhost
database=modisvi
driver=org.postgresql.Driver
schema=public
SPI=org.geotools.data.postgis.PostgisNGDataStoreFactory
fetch\ size=1000
max\ connections=20
min\ connections=5
validate\ connections=true
Loose\ bbox=true
Expose\ primary\ key=false
Max\ open\ prepared\ statements=50
preparedStatements=false
Estimated\ extends=false
Connection\ timeout=20
设置好这3个文件后,使用它们创建一个zip存档,并将其命名为modisvi.zip。(请注意,这些文件需要位于zip文件的根目录中,而不是子目录中)
现在可以使用睡觉调用开始创建ImageMosaic了。
图片马赛克睡觉运营¶
在接下来的步骤中,我们假设:
现有的Geoserver实例在localhost的端口8080上运行。
该Geoserver上存在名为“test”的工作区。
睡觉凭据为USER=ADMIN PASSWORD=Geoserver。
使用标志在Java系统属性上定义默认AWS区域 -Diio.https.aws.region=us-west-2 。
确保根据您的实际安装相应地更新传入的URL。
在不进行配置的情况下创建空图像镶嵌
CURL请求
curl -u admin:geoserver -XPUT --write-out %{http_code} -H "Content-type:application/zip" --data-binary @modisvi.zip http://localhost:8080/geoserver/rest/workspaces/test/coveragestores/modisvi/file.imagemosaic?configure=none
响应
201 OK
提供样品原型颗粒
下一步是为要支持的覆盖提供原型数据集。
CURL请求
curl -u admin:geoserver -XPOST -H "Content-type: text/plain" --write-out %{http_code} -d "https://modis-vi-nasa.s3-us-west-2.amazonaws.com/MOD13A1.006/2018.01.01.tif" "http://localhost:8080/geoserver/rest/workspaces/test/coveragestores/modisvi/remote.imagemosaic"
响应
202 Accepted
初始化存储(列出可用承保范围)
一旦提供了原型,我们就需要通过查询可用覆盖范围来初始化存储。
CURL请求
curl -v -u admin:geoserver -XGET http://localhost:8080/geoserver/rest/workspaces/test/coveragestores/modisvi/coverages.xml?list=all
响应
<List>
<coverageName>modisvi</coverageName>
</list>
配置覆盖范围
获得可用承保范围列表后,我们需要通过睡觉发送配置来配置承保范围。
CURL请求
curl -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d @"coverage.xml" "http://localhost:8080/geoserver/rest/workspaces/test/coveragestores/modisvi/coverages"
其中coverage.xml包含以下内容:
<coverage>
<name>modisvi</name>
<nativeName>modisvi</nativeName>
<enabled>true</enabled>
<metadata>
<entry key="time">
<dimensionInfo>
<enabled>true</enabled>
<presentation>LIST</presentation>
<units>ISO8601</units>
<defaultValue>
<strategy>MAXIMUM</strategy>
</defaultValue>
</dimensionInfo>
</entry>
</metadata>
</coverage>
添加更多颗粒
既然我们已经准备好了coverage Store并配置了覆盖层,我们就可以开始添加更多的粒度了。
CURL请求
curl -u admin:geoserver -XPOST -H "Content-type: text/plain" --write-out %{http_code} -d "https://modis-vi-nasa.s3-us-west-2.amazonaws.com/MOD13A1.006/2018.01.17.tif" "http://localhost:8080/geoserver/rest/workspaces/test/coveragestores/modisvi/remote.imagemosaic"
设置样式
MODIS数据有归一化植被指数(NDVI)和增强型植被指数(EVI)两个波段。让我们添加此ndvi.sld样式,以将适当的色彩映射表应用到ndvi波段(将此内容复制到名为ndvi.sld的文件中,以供下一次睡觉调用使用):
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
<NamedLayer>
<Name>Default Styler</Name>
<UserStyle>
<Name>ndvi</Name>
<Title>ndvi</Title>
<FeatureTypeStyle>
<Name>name</Name>
<Rule>
<RasterSymbolizer>
<ChannelSelection>
<GrayChannel>
<SourceChannelName>1</SourceChannelName>
</GrayChannel>
</ChannelSelection>
<ColorMap>
<ColorMapEntry color="#000000" quantity="-1"/>
<ColorMapEntry color="#0000ff" quantity="-0.75"/>
<ColorMapEntry color="#ff00ff" quantity="-0.25"/>
<ColorMapEntry color="#ff0000" quantity="0"/>
<ColorMapEntry color="#ffff00" quantity="0.5"/>
<ColorMapEntry color="#00ff00" quantity="1"/>
</ColorMap>
<ContrastEnhancement/>
</RasterSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
创建样式的卷曲请求
curl -v -u admin:geoserver -XPOST -H "Content-type: application/vnd.ogc.sld+xml" -d @ndvi.sld http://localhost:8080/geoserver/rest/styles
将样式设置为图层的默认样式的CURL请求
curl -v -u admin:geoserver -XPUT -H "Content-type: text/xml" -d "<layer><defaultStyle><name>ndvi</name></defaultStyle></layer>" http://localhost:8080/geoserver/rest/layers/modisvi.xml
最终预览¶
以下是图层预览的外观:

NDVI COG数据集¶