Image Mosaics

OGC WMS via GeoServer

Presentation by Jonathan Meyer
Applied Information Sciences

November 12, 2015

Agenda

  • Motivation
  • Dataset
  • Standards
  • Software
  • Automation
  • Demo
  • Review
  • Links

Motivation

Provide single point of access to thousands of images individually or as composite mosaic.

Dataset

Suomi National Polar-orbiting Partnership (NPP) satellite VIIRS sensor Day / Night Band collections.

Standards

Open Geospatial Consortium (OGC) Web Map Service (WMS) complaint HTTP service.

Software

Leveraging a fully FOSS stack:

  • PostgreSQL / PostGIS
  • GeoServer
  • OGC Preview

Automation

Your time is valuable. Don't repeat yourself. Use:

  • GeoServer REST API
  • Docker
  • Scripting (Python/BASH/Perl *gasp*)

Demo

  • Stack Initialization
  • Image Mosaic Configuration
  • WMS Query Examples
  • REST API Seeding and Manipulation
  • OGC Preview Visualization

Stack Initialization


docker-compose build

docker-compose up -d

bash initial-viirs-dnb.sh
					

Image Mosaic Configuration

indexer.properties


TimeAttribute=collect_time
Schema=*the_geom:Polygon,location:String,collect_time:java.util.Date
PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](collect_time)
Caching=false
AbsolutePath=true
Name=viirs_dnb
					    

timeregex.properties


regex=[0-9]{8}_[0-9]{6},format=yyyyMMdd_HHmmss
                        

fileregex.properties


regex=.*
                        

WMS Query Examples

Last 24 hours of data (relative to server time):


/geoserver/wms/reflect?
layers=mosaic:viirs-dnb&time=p1d/present
                        

Only data for the 10th:


/geoserver/wms/reflect?
layers=mosaic:viirs-dnb&time=2015-11-10/2015-11-11
                        

Mosaic REST API

List images in mosaic:


/geoserver/rest/workspaces/mosaic/coveragestores/viirs-dnb/
coverages/viirs-dnb/index/granules.json [GET]
                        

Delete image by name from mosaic:


/geoserver/rest/workspaces/mosaic/coveragestores/viirs-dnb/
coverages/viirs-dnb/index/granules.json?filter=file_name=
'npp_viirs_adaptive_dnb_20151111_230621_wgs84_fit' [DELETE]
                        

Add image by system path to mosaic:


/geoserver/rest/workspaces/mosaic/coveragestores/
viirs-dnb/external.imagemosaic
[POST with file system URL as body]
                        

OGC Preview Visualization

Review

  • GeoServer to provide OGC WMS exposure of images
  • Footprint index stored in PostGIS, column index as needed
  • GDAL for mosaic performance optimization
  • Isolation and reproducibility via Docker and GeoServer REST API

Links

Questions?

Source code and presentation
http://github.com/gisjedi/dataviz-nov2015