An object-oriented MATLAB toolbox for seismology

GISMO
“Anobject-orientedMATLABtoolboxforseismologyresearch,teaching
andmonitoring”
WhyamItellingyouaboutGISMO?
• ImentionedGISMOtoArmandowhenheaskedifUSFcouldprovide
anytraininginvolcanoseismology
• GISMOisusedatothervolcanoobservatories/seismicnetworks
• GISMOcanreadallINETERseismicdataformats
• AplatformonwhichwecouldquicklybuildnewtoolsforINETER
GISMO– 3targetaudiences
GISMO
Researchers
UAF,USF
Educators
“Antelope&MATLAB
Programming”, USFFall2014
CarlTapeatUAF
Observatories
INETER
Aboutme
specialistindesigning/integratingseismicmonitoringsystems
Beganstudyingvolcano-seismologyin1994
Summer1996:MontserratVolcanoObservatory
1997-1998:SystemsAnalyst/Programmer
1998-2000:AlaskaVolcanoObservatorydevelopingweb-basedreal-time
monitoringtools
• 2000-2004:LeadseismologistinMontserrat.Rebuiltseismicmonitoring
programme.
• 2006-2013:StaffseismologistatAVO&AE(I)C designingreal-time
monitoringsystems.
• 2013-Now:USFProfessor,teachingcoursesinprogramming,seismicdata
analysis,timeseriesanalysis…
•
•
•
•
WhyGISMOforvolcano-seismic
monitoring?
Componentsofaseismicmonitoringprogram
1. Seismicnetwork
2. Dataacquisition&eventdetectionsystem
3. Alarmsystems(earthquake,swarm,tremor,pyroclasticflows,lahars)
• Alternativelya24-hourOperationsRoom
4.
5.
6.
7.
8.
9.
Real-timedatavisualizationsystems(e.g.forrapidalarmresponse)
Catalogproduction/analystreviewofdata
Advancedanalysissystem
Dataarchivalsystem/datamanagementsolution
Diagnosticmonitoring&alarmstomonitorallothersoftwaresystems
Informationtoobservatorystaff,civildefence,aviationauthorities,
media,publicetc.
Step1.Choose“offtheshelf”software
Dataacquisition/eventdetectionframeworks(modular)
• SeisComP3
• Earthworm
• Antelope*
Catalogproductionsystems
• Seisan
• SWARM
• Antelope*
*Antelopeisexpensive.Everythingelseisfree!
Step2: Buildcustomsoftware
• Typicallyeachobservatorydevelopstheirowncustomsoftwareforthingslike:
• Visualizationofcatalogdata,e.g.maps,eventcounts,energyreleaserates,b-values,
magnitudeofcompleteness
• Detectingswarms
• Detectingtremor
• PlottingRSAMdata
• Locatingdebrisflows
• Matchfiltering/cross-correlationstudies
• Web-basedspectrograms
• Instrumentcorrection
•
•
•
MATLABisoftenthelanguagetheychoose
GISMOisaMATLABtoolboxthatcandomanyofthesethings/supportothers
ObsPy isanexcellentalternative
Componentsofaseismicmonitoringprogram
1. Seismicnetwork- modernhardwareisexcellent
2. Dataacquisition&eventdetectionsystem– Earthworm,SeisComP3,Antelope
3. Alarmsystems(earthquake,swarm,tremor,pyroclasticflows,lahars)–
Earthworm&SeisComP3?
4. Real-timedatavisualizationsystems(e.g.forrapidalarmresponse)– SWARM,
RSAM
5. Catalogproduction/analystreviewofdata– Seisan,SeisComP3,Antelope
6. Advancedanalysissystem– GISMO,ObsPy,Antelope
7. Dataarchivalsystem/datamanagementsolution
8. Diagnosticmonitoring&alarmstomonitorallothersoftwaresystems
9. Informationtoobservatorystaff,civildefence,aviationauthorities,media,
publicetc.
Typicalvolcanoobservatorysetup
• Earthworm/Glowwormfordataacquisition,subnettriggering,webbasedhelicorders &spectrograms
• Seisan forcatalogproduction
• Winston&SWARMforanalysisofcontinuousseismicdata
VDAPdeploysthesetools
àAcommunityofobservatorieswhocanshareexpertise
àEachdoesnothavetoreinventthewheel
INETERseismicsoftware
systems
GISMOcan
readinall
thesetypes
ofdata
produced
byINETER
GISMOcanread…
• Waveformdata
•
•
•
•
•
Miniseed,SAC&Seisan files
Seisan (WAV)databases
IRISDMC(viairisfetch)
Earthworm&Winstonwaveservers
CSS3.0(e.g.Antelope)databases
• Catalogdata
•
•
•
•
Hypoellipse (Hypoinverse soon…)
Seisan S-file(REA)databases
EventsfromIRISDMC(viairisfetch)
CSS3.0(e.g.Antelope)databases
• Instrumentcorrections
• SACpole-zerofiles
• RSAM(BOB)binaryfiles
Whatisthepoint?
• Writingcodetoloadlotsofdifferentwaveform andcatalogdata
formats(e.g.Seisan,Miniseed,SAC,hypoellipse,CSS3.0)andfroma
varietyofsources(e.g.Earthworm/Winstonwaveservers,Antelope
databases,Seisan databases,SDS,IRISDMC…)isthebiggestbarrier
forseismologiststryingtowritecodetoanalyzedata.
• GISMOeliminatesthisbarrier.Reducesthecostofdataanalysis/
research.
• Onlyafewlinesofcodeneeded…
Objections
1. MATLABisexpensive
•
•
ThereisafreeversionofMATLABcalled“Octave”
Yourtimeisexpensive.Softwarethatsavesyourtime– andallowsyoutorapidly
respondtoseismic/volcanicemergenciesisvaluable
2. MATLABisslow
•
•
Well-writtenMATLABcodeisalmostasfastasCorFortran.Butitis10+times
fastertowrite&easiertodebug
Computersare1000timesfasterthan20yearsago.Biggestcostisyourtime
writingcode,notcomputertimerunningcode.
3. I’dratheruseExcel!
•
Excelisgreatforfinancialspreadsheets.Butitisnotgoodatallforscientificdata
analysis.Analysesarelimited.Graphsarepoor.Excelisnotextendable.Workisnot
repeatable!GettingdataintoandoutofExcelisanightmare.Tip:donotuseExcel
WehaveObsPy.SowhyGISMO?
• ObsPy isasimilarprojectwithgreaterresources
• WealllikeObsPy (Iuseitforteaching,researchtoo)
• Pythonisfree!
But:
• SomuchseismologycodealreadywritteninMATLAB,rewritingitall
inPythonisimpractical(thinkFortran77)
• WestillneedagoodseismologytoolboxinMATLAB
GISMOiscommunitycode
• Usedbyover300peopleworldwidesince2009
• LedbyCelso Reyes&GlennThompson
• Contributionsencouraged…thisishowGISMOcangrowand
improve…
GISMOTimeline
• 2004-2006CelsoReyesdevelopsfirstversionof”TheWaveform
Suite”.Object-oriented.
• 2008Celso&MikeWestpackageotherclassesandcontributedcodes
aroundTheWaveformSuite.ThispackageiscalledGISMO.
• 2011CatalogclassaddedbyGlenn.Nolongerjustwaveformdata.
• 2015LisaKempler (MathWorks)contactsMike,Celso,Glennabout
GISMO.MathWorks wantstoseethisprojectgoforward.
• 2015(Fall)GlenntakesoverGISMO.MigratedfromGoogleCodeto
GitHub.Celsorejoinseffort.Begintoadddocumentation,unittests.
Softwaredevelopment
Project
Management
(e.g.Asana,
Gannter)
writecommentsfirst
useversioncontrol
TheWaterfallModel
unitandintegrationtesting
documentation
Multi-tieredapplications
• Aswemovetobig
data,weneedscalable
workflows
• Database-driven
• Abstraction:Userdoes
notneedtoknow
detailsofdatastorage
CSS3.0database– 3parts
CSS3.0 schema
Rawwaveform
data
network
• Antelope provides APIsinC,Fortran,Perl,PhP,MATLAB,Python whichprovideabstraction
• Antelope provides applications(e.g.dbpick, dbloc2, dbevents) builtonthisabstraction
• Easytobuild ownapplications
catalog
GISMO– 3parts
GISMO
baseclasses
Waveform
(WaveformSuite)
network
Catalog
GISMOprovidesabstraction.Youonlyneedtoknowhowtomanipulation baseclasses(datatypes).Donotneedtoknow
howthesearestored/retrieved.
Foundationofagoodseismictoolbox
1.
2.
3.
Mustbeobject-oriented
Useabstractionsousersdonotneedtoknowwritedatastorage/formatspecificcode
Baseclassestodescribemaindifferenttypesofseismicdata
• waveform
• Catalog
• Network
• Sites
• Instrumentresponses
4.
Import/exportfunctionstoread/writecommonseismicdataformatsanddatasources
Thenaddingfunctionalitybecomeseasy.
GISMOisclosestMATLABtoolboxtomeetingthesegoals
Short-termtargets
1. StabilizeGISMO,createnewrelease
• Fixissues,e.g.withwaveform/load_antelope
• Addunittests
• Internalconsistency(helicorder ->drumplot)
2. Document
• wiki
3. AdaptGISMOforvolcanomonitoring
• INETERtrainingnextweek
• Miniseed data,Earthworm/Winstonwaveservers,RSAMdata,Seisan catalogs
4. Publicize
• PresentatIRISWorkshop
5. InterfacewithObsPy
• Movewaveform/Catalogobjectseasilybetweenthem
TheGISMOprojectongithub.com
Website:
https://geoscience-community-codes.github.io/GISMO/
Coderepository:
https://github.com/geoscience-community-codes/GISMO
Wiki:
https://github.com/geoscience-community-codes/GISMO/wiki
IssueTracker:
https://github.com/geoscience-community-codes/GISMO/issues
ApplicationsbuiltonGISMO
• AVOspectrogramshttp://www.aeic.alaska.edu/spectrograms/
• Fastestwaytobrowselargecontinuousseismicdatasets
• VersionsofthisinMontserrat,Cascades,Hawaii,NEIC