Software Development at the LMU - Munich. Ideas, Vision, Commitment?



Similar documents
Seismic waveform data retrieval

Network of European Research Infrastructures for Earthquake Risk Assessment and Mitigation. Report

Geophysical observation network of JAMSTEC in Northwest Pacific Region

A Tool for Evaluation and Optimization of Web Application Performance

Integrated Open-Source Geophysical Processing and Visualization

Agents and Web Services

Wiley. Automated Data Collection with R. Text Mining. A Practical Guide to Web Scraping and

About This Document 3. Integration and Automation Capabilities 4. Command-Line Interface (CLI) 8. API RPC Protocol 9.

Replication and High-Availability

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Xtreeme Search Engine Studio Help Xtreeme

NaviCell Data Visualization Python API

Crawl Proxy Installation and Configuration Guide

Dream Report vs MS SQL Reporting. 10 Key Advantages for Dream Report

owncloud Architecture Overview

Automating System Administration with Perl

XML Processing and Web Services. Chapter 17

Cross-domain Identity Management System for Cloud Environment

COLLEGE OF COMPUTER SCIENCE & INFORMATICS Information Technology Courses

PATROL Internet Server Manager Technical Brief

An Oracle White Paper May Creating Custom PDF Reports with Oracle Application Express and the APEX Listener

Key Benefits of Microsoft Visual Studio 2008

MD Link Integration MDI Solutions Limited

Implementing Mobile Thin client Architecture For Enterprise Application

Digital Asset Management System Quality Assurance Testing A Case Study

Lightweight Data Integration using the WebComposition Data Grid Service

NatureServe s Environmental Review Tool

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

Introduction Installation Comparison. Department of Computer Science, Yazd University. SageMath. A.Rahiminasab. October9, / 17

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

REST web services. Representational State Transfer Author: Nemanja Kojic

Technical. Overview. ~ a ~ irods version 4.x

Easy configuration of NETCONF devices

Firewall Builder Architecture Overview

Owner of the content within this article is Written by Marc Grote

Indian Journal of Science International Weekly Journal for Science ISSN EISSN Discovery Publication. All Rights Reserved

UForge 3.4 Release Notes

Why API? Using the REST API in an education environment. JAMF Software, LLC

Manage Workflows. Workflows and Workflow Actions

FileMaker Server 9. Custom Web Publishing with PHP

Microsoft SQL Server 2005 Reporting Services Step by Step

Apple Client Management with JAMF. Andrew D Huston Client Infrastructure Group Informa8on Services Kent State University

Using the Cisco OnPlus Scanner to Discover Your Network

DecisionSpace. Prestack Calibration and Analysis Software. DecisionSpace Geosciences DATA SHEET

An Introduction to Using Python with Microsoft Azure

Inmagic Content Server Workgroup Configuration Technical Guidelines

SAP HANA Core Data Services (CDS) Reference

ICE Trade Vault. Public User & Technology Guide June 6, 2014

Using the vcenter Orchestrator Plug-In for vsphere Auto Deploy 1.0

Advanced Service Design

Rotorcraft Health Management System (RHMS)

Technologies for a CERIF XML based CRIS

Interwise Connect. Working with Reverse Proxy Version 7.x

Basic & Advanced Administration for Citrix NetScaler 9.2

OSF INTEGRATOR for INGRAM MICRO Integration Guide

Introduction to Python

SOFTWARE TESTING TRAINING COURSES CONTENTS

Quick start. A project with SpagoBI 3.x

Managing Large Imagery Databases via the Web

A Web services solution for Work Management Operations. Venu Kanaparthy Dr. Charles O Hara, Ph. D. Abstract

Deploy. Friction-free self-service BI solutions for everyone Scalable analytics on a modern architecture

Report. Architecture specification for data. workbench

Pentaho Data Integration Tool

MicroStrategy Course Catalog

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

Data Management in an International Data Grid Project. Timur Chabuk 04/09/2007

Jitterbit Technical Overview : Microsoft Dynamics CRM

System Architecture V3.2. Last Update: August 2015

An Overview of the National Earthquake Information Center Acquisition Software System, Edge/Continuous Waveform Buffer

1 (11) Paperiton DMS Document Management System System Requirements Release: 2012/

NASA's Strategy and Activities in Server Side Analytics

IBM WebSphere Adapter for Quick Start Tutorials

Technical Information Abstract

Institute of Computational Modeling SB RAS

<Insert Picture Here> Oracle SQL Developer 3.0: Overview and New Features

Image Databases INLS 623 Lina Huang Elise Moore Ketan Palshikar Nevin Yang

FileMaker 11. ODBC and JDBC Guide

The Data Grid: Towards an Architecture for Distributed Management and Analysis of Large Scientific Datasets

ANSA and μeta as a CAE Software Development Platform

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

Sisense. Product Highlights.

Managing Servers in the Enterprise

Course 6232A: Implementing a Microsoft SQL Server 2008 Database

SharePoint Checklist and Resources

Rich Media & HD Video Streaming Integration with Brightcove

FileMaker Server 10 Help

Radio Network Configuration and Management System

VPMS - Advanced Media Management

Transcription:

1 Software Development at the LMU - Munich Ideas, Vision, Commitment?

ObsPy 2

3 ObsPy ObsPy Python toolbox for seismologists Goal: facilitate rapid application development for seismology Modular extensible architecture Waveform data: GSE2/GSE1, MiniSEED, SAC, SEG-Y, SH Q/ASCII, SEISAN, IRIS TSPAIR & SLIST, WAV Inventory data: Dataless SEED, XML-SEED, RESP Data request clients: ArcLink/WebDC, IRIS DHI/Fissures, SeisHub, IRIS Web Service, NERIES Web Service Signal processing: Filters, triggers, instrument correction, rotation, array analysis, beamforming Plotting: spectrograms, beachballs and waveforms Waveform indexer

ObsPy ObsPy Open source (LGPL or GPL) 6 core developers Platform independent (Win, Mac, Linux) and tested Test-driven development (TDD), currently ~500 unit tests (http:/tests.obspy.org) Reliance on well-known third-party libraries (numpy, scipy, matplotlib) Reusing well established code, e.g. libmseed, GSE UTI Automated build of API documentation from source Binary distributions: PyPI (http://pypi.python.org) & Windows Installer Source code & community webpage containing tutorials, installation instruction, ticket system, mailing lists http://www.obspy.org 4

5

Databases and Archiving: Problem: Real time System often to restrictive to do advanced science Common databases not flexible enough to support fast developing and parameter rich fields in geosciences (e.g., volcanology, computational seismology, local observatories) Missing multi-user or inter-institutional link between different data bases Our solution: SeisHub 6

SeisHub SeisHub Native, document-centric XML database RESTful Web service (HTTP, HTTPS), Standard relational database as back-end Both worlds: SQL for querying and manipulating data and any standard connected to XML, e.g. XSLT or XSD Not restricted to seismology at all Extended to a classical seismic database Index of local, file-based waveform archive (MiniSEED, GSE2, SAC,...) Meta Data: Gaps, overlaps, quality and timing information Waveform previews (30s) XML resource types for handling inventory data (XML-SEED) and events (QuakeML based) Remote waveforms access (ArcLink) 7

8 SeisHub SeisHub Technical Details Python-based, standalone web service Platform independent, open source (GPL) Implementation of various web protocols, like HTTP, SSH, SFTP Plug-in architecture: Dynamic discovering and loading of modules and support for Python.egg files Development remarks: Test-driven development proven software, so far ca. 250 test cases Well-documented source code Subversion Trac: ticket system and project wiki

9 SeisHub SeisHub: Database Design Data storage Primary data file system Continuous waveform archive (MiniSEED, GSE2, SAC...) Other data via (GeoTIFF, GPS time series, etc.) file system Meta Data Web service on top of a XML/relational database hybrid Data is packed into a XML document Data structure is within the document, no need for a predefined database schema XML resources are archived into a BLOB field Only searchable values are indexed Pointers to primary data

10 SeisHub SeisHub: Database Design Data access HTTP/HTTPS: REST web service XML documents have a fixed resource identifier (URL's) Data transformation via XML Style Sheets on request (?output=...) Data validation via Schema (XML Schema, RelaxNG, Schematron) on resource upload Document properties like related meta data or indexes SFTP: XML documents mapped into a virtual file system

11 SeisHub SeisHub: Database Design Indexing Generated using a XPath expression, type and additional options Simple creation + reindexing via web interface Various build-in types (datetime, bool, numeric, double, float, etc..) ProcessorIndex: custom processing Searching XPath-like query on XML catalog object (restricted to indexes) SQL on database object Mapper: predefined queries & output format bound to an fixed URL FileSystemResource: integrates a file system directory (read only)

12 SeisHub SeisHub: Advantages Technical: Sharing data over the network, but no firewall problems (HTTP / HTTPS) License free, open source, internet standards Platform independent, most basic client is a standard browser XML: Data validation on upload (XML schemas) Data transformation on request (XML stylesheets) Querying: SQL or XPath Scientist: May modify there data provided as XML document at any time without corrupting the underlying database May dynamically add or delete search indexes, schemas and stylesheets

13 Import of QuakeML via XSLT # -*- coding: utf-8 -*- import sys, httplib import os import glob import base64 from obspy.core import UTCDateTime USER = "xxxxx" PASS = "xxxxx" SERVERNAME = 'dummy.geophysik.uni-muenchen.de:8080' URL = '/xml/seismology/event/%s?format=seiscomp' now = UTCDateTime() auth = 'Basic ' + (base64.encodestring(user + ':' + PASS)).strip() filelook = "/home/seisdata/.seiscomp3/log/events/%04d/%02d/*/*/*.last.xml"%(now.year,now.month) #filelook = "/home/seisdata/.seiscomp3/log/events/%04d/*/*/*/*.last.xml"%(now.year) for filename in glob.glob(filelook): # print filename # read data + remove namespace because SeisHub doesn't like namespaces data = open(filename, 'rt').read() data = data.replace('xmlns="http://geofon.gfz-potsdam.de/ns/seiscomp3-schema/0.6"', '') #construct and send the header webservice = httplib.http(servername) webservice.putrequest("put", URL % (os.path.basename(filename))) webservice.putheader('authorization', auth) webservice.putheader("host", "localhost") webservice.putheader("user-agent", "Python PUT") webservice.putheader("content-type", "text/xml; charset=\"utf-8\"") webservice.putheader("content-length", "%d" % len(data)) webservice.endheaders() webservice.send(data) # get the response statuscode, statusmessage, header = webservice.getreply()

Use case (specific): e-tomo Europe Evolutionary tomography of the contiguous European continent. Evolutionary means (dis-) continuous improvement of tomographic model(s) using waveform inversion as more receiver stations and earthquakes become available.

e-tomo workflow (1/2)

Retrieve earthquake data from archive in near real time (ObsPy) e-tomo workflow (1/2)

e-tomo workflow (1/2) Retrieve earthquake data from archive in near real time (ObsPy) Retrieve earthquake source parameters (or estimate)

e-tomo workflow (1/2) Retrieve earthquake data from archive in near real time (ObsPy) Retrieve earthquake source parameters (or estimate) Run forward Simulations with various solvers and models (axisem, ses3d, seissol)

e-tomo workflow (1/2) Retrieve earthquake data from archive in near real time (ObsPy) Retrieve earthquake source parameters (or estimate) Run forward Simulations with various solvers and models (axisem, ses3d, seissol) Store real and synthetic data Visualization (e.g., SeisHub, Google Earth)

e-tomo workflow (1/2) Retrieve earthquake data from archive in near real time (ObsPy) Retrieve earthquake source parameters (or estimate) Run forward Simulations with various solvers and models (axisem, ses3d, seissol) System for interactive and automatic data mining (ObsPy/SeisHub) phase, amplitude fits Store real and synthetic data Visualization (e.g., SeisHub, Google Earth)

e-tomo workflow (1/2) Retrieve earthquake data from archive in near real time (ObsPy) Retrieve earthquake source parameters (or estimate) Run forward Simulations with various solvers and models (axisem, ses3d, seissol) Graphical representation of phase and amplitude Information (e.g., GIS, Google Earth) System for interactive and automatic data mining (ObsPy/SeisHub) phase, amplitude fits Store real and synthetic data Visualization (e.g., SeisHub, Google Earth)

choose different simulations (method, earth model)

Apply interactive adjustable filter or simulations, apply measures of coherence and display it graphically

Interactive selection of specific region and display synthetic

e-tomo workflow (2/2) If applicable: Calculation of kernels for new data (receivers or events) END

e-tomo workflow (2/2) If applicable: Calculation of kernels for new data (receivers or events) Subsurface model Updates, new versions Quantifiable quality improvement END

e-tomo workflow (2/2) If applicable: Calculation of kernels for new data (receivers or events) Subsurface model Updates, new versions Quantifiable quality improvement Recalculation of all earthquake souce Parameters with best model END

e-tomo workflow (2/2) If applicable: Calculation of kernels for new data (receivers or events) Subsurface model Updates, new versions Quantifiable quality improvement Recalculation of all earthquake souce Parameters with best model END Event Data base with improved locations, stfs and mechanisms

e-tomo workflow (2/2) If applicable: Calculation of kernels for new data (receivers or events) Subsurface model Updates, new versions Quantifiable quality improvement Recalculation of all earthquake souce Parameters with best model END Event Data base with improved locations, stfs and mechanisms

19 Vision: Observatory Scale: Connecting different Observatories together (client/server application) Developing more web services (e.g., quality control, array techniques etc.) with use of ObsPy as underlying signal toolbox Computational Seismology: flexible storage of ALL simulation relevant data in a data base (e.g., earth model, code used) storage of both synthetic and real data in the same archive; searchable field of methods, models mentioned above web service for estimating different scenarios (e.g, PGV for different regions) - attached to a GIS storage and interactive search of synthetic seismograms of virtual stations up to a supported precision

20 ObsPy: No direct Funding! Partial funding out of VERCE Open Source Project: small entry barriers; make people feel responsible for modules; focus on students/young researches Problem driven Automated testing increases the productivity and sustainablity More active input of the community is needed. SeisHub: No Funding! At present no active developer working on it. Partial funding out of VERGE possible. Already strong connection to the Geophysical Observatory will guarantee the sustainability at least to a lower level. Open Source Project! Documentation and active involvement of the community needed