ngEO Browse Server

ngEO Task 4 CDR V2 - Toulouse - 2014-06-04

EOX IT Services GmbH, Austria

office@eox.at @eox_a

Stephan Meißl stephan.meissl@eox.at @Schpidi


Creative Commons License This work is licensed under a Creative Commons Attribution 4.0 International License.

ngEO Architecture
BROW Architecture
Flow of Browse Images

Interfaces with the FEED

Ingestion of Browse Images

Preprocessing

  • Input Geographic Metadata for Geo-referencing
    • Footprint polygon - footprint
    • Regular grid of tiepoints - regularGrid
    • Pre-georeferenced images
      • rectifiedBrowse
      • modelInGeotiff
  • Optimizations
    • Footprint generation
    • Re-projection
    • Addition of alpha-channel
    • Internal tilling
    • Overviews
    • Compression

Interfaces with the WEBC
& Generic Clients

Retrieval of Browse Images

Interfaces with the WEBS

  • Authorization invoked by BROW
    • Authentication done on proxy
    • Patch to MapCache
    • Simple Python script to query WEBS
      • Only RESTRICTED and PRIVATE layers
      • Username from HTTP header e.g. SP-Person-Identifier
      • Authorization based on browse layer & username
    • Memcached to cache decisions

Interfaces with the CTRL

Command Line Interfaces

Ingest, Export, Import, and Delete


$ python manage.py ngeo_ingest <browse-report-xml>
$ python manage.py ngeo_export --layer=<layer-id> | --browse-type=<browse-type> [--start=<start-date-time>] [--end=<end-date-time>]
$ python manage.py ngeo_import <package-path>
$ python manage.py ngeo_delete --layer=<layer-id> | --browse-type=<browse-type> [--start=<start-date-time>[--end=<end-date-time>]
                        
Export of Browse Images
Import of Browse Images
Deletion of Browse Images
BROW Components
BROW Components
BROW Components
BROW Component Core
BROW Component Cache
BROW Core Data Model
BROW Cache Data Model

Technology Baseline

  • CentOS 6 64bit repositories (base, extras, updates) based on RHEL 6
    • Apache HTTP server 2.2: httpd, mod_wsgi
    • PostgreSQL 8.4: postgresql-server, postgresql
    • Python 2.6: python, python-lxml, python-psycopg2, pytz
  • EPEL & ELGIS repositories
    • Django 1.4: Django14
    • PROJ.4 4.8: proj
    • GDAL 1.9: gdal, gdal-python
    • PostGIS 1.5: postgis
  • EOX repository
    • libxml2 2.7: libxml2, libxml2-python - GML patch
    • MapServer 6.2: mapserver, mapserver-python
    • MapCache 1.2: mapcache - authz patch
    • Memcached 1.4: memcached
    • EOxServer 0.3: EOxServer
    • ngeo.b.core 2.0: ngEO_Browse_Server - 1.0 deprecated

Development & Testing

  • Git hosted on GitHub
  • Vagrant & VirtualBox (see HOWTO)
  • Jenkins CI
  • Python/Django unit test framework
  • Performance tests using JMeter
  • Integration testing on OpenStack platform provided by Task 5
JMeter
BROW Installation
BROW Deployment Basic
BROW Deployment Multiple
BROW Deployment Alternative

Status

  • Finished with implementation
  • Deliverables
    • DDS 1.4 20 May 2014
    • IOM 1.5 23 May 2014
    • SSTP 1.4 23 May 2014
    • SSTR TBD
  • Open Jira issues
  • Warranty

Further EOX Contributions

  • Background & Overlay Maps Service Operation
    http://esa.maps.eox.at
    Browse Server Architektur
  • Provision of integration and validation platform for Task 4
  • Multi-Mission Hosting & Validation (Task 5)
  • 3D Browse Extension (V-Manip project)

ngEO Browse Server

ngEO Task 4 CDR V2 - Toulouse - 2014-06-04

EOX IT Services GmbH, Austria

office@eox.at @eox_a

Stephan Meißl stephan.meissl@eox.at @Schpidi


View presentation at http://schpidi.github.io/ngeo_brow_cdr_v2


Creative Commons License This work is licensed under a Creative Commons Attribution 4.0 International License.

European Space Agency - ESA Thanks to ESA for supporting Open Source