Geoserver ImageMosaic timeregex.properties无法正确读取时间戳问题
Geoserver ImageMosaic时间戳提取失败问题解决
问题背景
使用Ubuntu系统下的Geoserver 2.26.0配置ImageMosaic存储,用于提供小时级栅格数据。栅格文件存放在rasters/目录,命名格式为qpe_20241004060000.tif,但创建存储后DBF文件无法正确读取时间戳,时间字段无有效数据。
当前配置详情
栅格文件名示例
qpe_20241004060000.tif qpe_20241004070000.tif qpe_20241004080000.tif
timeregex.properties配置
regex=([0-9]{14}),format=yyyyMMddHHmmss
indexer.properties配置
TimeAttribute=ingestion ElevationAttribute=elevation Schema=*the_geom:Polygon,location:String,ingestion:java.util.Date,elevation:Integer PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](ingestion)
问题原因与修复方案
核心问题
当前正则表达式仅匹配14位数字,但未考虑文件名的前缀qpe_和后缀.tif,导致无法精准定位时间戳部分,匹配失败。
修复步骤
修正timeregex.properties的正则表达式
更新为能匹配完整文件名结构的正则,精准捕获中间的14位时间戳:regex=qpe_([0-9]{14})\\.tif,format=yyyyMMddHHmmss说明:
\\.是对.的转义(正则中.为通配符),确保只匹配.tif后缀的文件。清理旧索引文件
删除rasters/目录下已生成的index.dbf、index.shp、index.shx等索引文件,避免旧数据干扰。重新创建ImageMosaic存储
在Geoserver管理界面中重新创建ImageMosaic存储,系统会基于修正后的配置重新生成索引,此时DBF文件的ingestion字段应能正确显示解析后的时间戳。
额外排查点
- 若问题仍存在,查看Geoserver日志文件(
logs/geoserver.log),检查是否有正则匹配失败的报错信息 - 确认Geoserver进程对
rasters/目录及文件有读取权限 - 验证
indexer.properties中PropertyCollectors配置是否正确关联timeregex配置文件
内容的提问来源于stack exchange,提问作者DarwinsBeard
相关产品推荐
相关产品推荐

