community seismic network
DESCRIPTION
Community Seismic Network. Daniel Obenshain along with K. Mani Chandy, Robert Clayton, Andreas Krause, Michael Olson, Matthew Faulkner, Leif Strand, Rishi Chandy, Daniel Rosenberg, Annie Tang, and others California Institute of Technology. XKCD. - PowerPoint PPT PresentationTRANSCRIPT
Community Seismic Community Seismic NetworkNetwork
Daniel ObenshainDaniel Obenshain
along withalong with
K. Mani Chandy, Robert Clayton, Andreas Krause, K. Mani Chandy, Robert Clayton, Andreas Krause, Michael Olson, Matthew Faulkner, Leif Strand, Michael Olson, Matthew Faulkner, Leif Strand, Rishi Chandy, Daniel Rosenberg, Annie Tang, Rishi Chandy, Daniel Rosenberg, Annie Tang,
and othersand others
California Institute of TechnologyCalifornia Institute of Technology
XKCDXKCD
Image by Randall Munroe of xkcd.com, Creative Commons Attribution-Noncommercial 2.5 License
Internet and EarthquakesInternet and Earthquakes
In the comic:In the comic:– The tweets travel faster than the The tweets travel faster than the
earthquakeearthquake– Other users get quake information Other users get quake information
before it hitsbefore it hits– They are too slow to do anything about They are too slow to do anything about
it.it.
BackgroundBackground
Earthquakes are dangerous threatsEarthquakes are dangerous threats– USGS estimates 2000 deaths and $200 billion USGS estimates 2000 deaths and $200 billion
damages from 7.8 magnitude quakedamages from 7.8 magnitude quake
BackgroundBackground
Earthquakes are dangerous threatsEarthquakes are dangerous threats– USGS estimates 2000 deaths and $200 billion USGS estimates 2000 deaths and $200 billion
damages from 7.8 magnitude quakedamages from 7.8 magnitude quake Early warning could minimize sufferingEarly warning could minimize suffering
– Activate safeguards in critical operationsActivate safeguards in critical operations
BackgroundBackground
Earthquakes are dangerous threatsEarthquakes are dangerous threats– USGS estimates 2000 deaths and $200 billion USGS estimates 2000 deaths and $200 billion
damages from 7.8 magnitude quakedamages from 7.8 magnitude quake Early warning could minimize sufferingEarly warning could minimize suffering
– Activate safeguards in critical operationsActivate safeguards in critical operations Providing early warning is an interesting Providing early warning is an interesting
problemproblem– Bayesian decision theory, geology, distributed Bayesian decision theory, geology, distributed
computingcomputing
BackgroundBackground
Earthquakes are dangerous threatsEarthquakes are dangerous threats– USGS estimates 2000 deaths and $200 billion USGS estimates 2000 deaths and $200 billion
damages from 7.8 magnitude quakedamages from 7.8 magnitude quake Early warning could minimize sufferingEarly warning could minimize suffering
– Activate safeguards in critical operationsActivate safeguards in critical operations Providing early warning is an interesting Providing early warning is an interesting
problemproblem– Bayesian decision theory, geology, distributed Bayesian decision theory, geology, distributed
computingcomputing Current seismic network is too sparseCurrent seismic network is too sparse
– Can’t provide enough early warningCan’t provide enough early warning
Sensor Network is too Sensor Network is too SparseSparse
A sensor network of one hundred sensors.
A sensor network of one thousand sensors.
SCSN (Southern California Seismic Network) has ~350 sensors right now.
Sensor Network is too Sensor Network is too SparseSparse
Ten thousand sensors! Both a 3 second wave and a 1 second wave.
Early Warning Can HelpEarly Warning Can Help
The information The information can also help the can also help the electrical grid.electrical grid.
Southern California Edison Territory
Early Warning Can HelpEarly Warning Can Help
The information The information can also help the can also help the electrical grid.electrical grid.
The grid can be The grid can be shut down and shut down and made safe prior to made safe prior to severe shaking.severe shaking.
Southern California Edison Territory
Early Warning Can HelpEarly Warning Can Help
The information The information can also help the can also help the electrical grid.electrical grid.
The grid can be The grid can be shut down and shut down and made safe prior to made safe prior to severe shaking.severe shaking.
Power back in a Power back in a day, not weeks day, not weeks after earthquake.after earthquake.
Southern California Edison Territory
BenefitsBenefits
Provide Early WarningProvide Early Warning Easy deployment in areas without Easy deployment in areas without
existing seismic networksexisting seismic networks– Peru and IndonesiaPeru and Indonesia
Cell phones are prevalentCell phones are prevalent
Identify hard-hit areas quicklyIdentify hard-hit areas quickly– Direct first respondersDirect first responders
That’s why we’re That’s why we’re doing it.doing it.
What about how What about how we’re doing it?we’re doing it?
Expand the NetworkExpand the Network
We want to add more data.We want to add more data. Why not get data from as many Why not get data from as many
sources as possible?sources as possible?
Expand the NetworkExpand the Network
We want to add more data.We want to add more data. Why not get data from as many Why not get data from as many
sources as possible?sources as possible? Add in acceleration devices of Add in acceleration devices of
different types, cell phones, laptops, different types, cell phones, laptops, etc.etc.
Expand the NetworkExpand the Network
We want to add more data.We want to add more data. Why not get data from as many Why not get data from as many
sources as possible?sources as possible? Add in acceleration devices of Add in acceleration devices of
different types, cell phones, laptops, different types, cell phones, laptops, etc.etc.
The User installs some client software The User installs some client software and his or her acceleration data and his or her acceleration data becomes part of the network.becomes part of the network.
The ClientThe Client
Registration
Handler
SensorHandler
ServerRegistration
Handler
Error, NoUpdate, orHandlers
Calculation
Handler
Alert Handler
Controller
Registration handler invoked on first run
Returns Proceed, Error, or New Handlers
Handlers and Queues managed
Core
pro
cessin
g
ServerAlert
Listener
Example Client – Cell PhoneExample Client – Cell Phone
Measures 3-D accelerationMeasures 3-D acceleration Program runs in Program runs in
backgroundbackground Especially good while Especially good while
chargingcharging
Example Client – Cell PhoneExample Client – Cell Phone
Martin Lukac (of UCLA) recorded a minor seismic Martin Lukac (of UCLA) recorded a minor seismic event on a Nokia phone, with different software.event on a Nokia phone, with different software.
Picking AlgorithmPicking Algorithm
How often should the client send How often should the client send data to the server?data to the server?
Picking AlgorithmPicking Algorithm
How often should the client send How often should the client send data to the server?data to the server?
Only when significant shaking is Only when significant shaking is occurring.occurring.
Picking AlgorithmPicking Algorithm
How often should the client send How often should the client send data to the server?data to the server?
Only when significant shaking is Only when significant shaking is occurring.occurring.
How does the client know?How does the client know?
Picking AlgorithmPicking Algorithm
How often should the client send How often should the client send data to the server?data to the server?
Only when significant shaking is Only when significant shaking is occurring.occurring.
How does the client know?How does the client know? It performs a simple calculation on It performs a simple calculation on
the incoming data stream.the incoming data stream.
Picking AlgorithmPicking Algorithm
How often should the client send How often should the client send data to the server?data to the server?
Only when significant shaking is Only when significant shaking is occurring.occurring.
How does the client know?How does the client know? It performs a simple calculation on It performs a simple calculation on
the incoming data stream.the incoming data stream. We call this the “Picking Algorithm.”We call this the “Picking Algorithm.”
Picking AlgorithmPicking Algorithm
STA – Short Term Average : the STA – Short Term Average : the average acceleration over the past average acceleration over the past several data pointsseveral data points
STA/LTA > trigger
Picking AlgorithmPicking Algorithm
STA – Short Term Average : the STA – Short Term Average : the average acceleration over the past average acceleration over the past several data pointsseveral data points
LTA – Long Term Average : the LTA – Long Term Average : the average acceleration over more data average acceleration over more data pointspoints
STA/LTA > trigger
Picking AlgorithmPicking Algorithm
STA – Short Term Average : the STA – Short Term Average : the average acceleration over the past average acceleration over the past several data pointsseveral data points
LTA – Long Term Average : the LTA – Long Term Average : the average acceleration over more data average acceleration over more data pointspoints
trigger – a thresholdtrigger – a threshold
STA/LTA > trigger
Picking AlgorithmPicking Algorithm
If STA/LTA > trigger is true, then we If STA/LTA > trigger is true, then we have “picked.”have “picked.”
Picking AlgorithmPicking Algorithm
If STA/LTA > trigger is true, then we If STA/LTA > trigger is true, then we have “picked.”have “picked.”
The algorithm then waits a little bit The algorithm then waits a little bit before sending a message to the before sending a message to the server.server.
Picking AlgorithmPicking Algorithm
If STA/LTA > trigger is true, then we If STA/LTA > trigger is true, then we have “picked.”have “picked.”
The algorithm then waits a little bit The algorithm then waits a little bit before sending a message to the before sending a message to the server.server.
This is to make sure it sends data This is to make sure it sends data from the peak of the wave.from the peak of the wave.
Picking AlgorithmPicking Algorithm
Pause for this length of time beforesending a message to the server.
1 2 3
1. Detected significant shaking2. Maximum shaking3. Sent message to server
Picking AlgorithmPicking Algorithm
After sending a message to the After sending a message to the server, the client will wait a while server, the client will wait a while before picking again.before picking again.
Picking AlgorithmPicking Algorithm
After sending a message to the After sending a message to the server, the client will wait a while server, the client will wait a while before picking again.before picking again.
This is to stop the client from picking This is to stop the client from picking multiple times for the same shaking.multiple times for the same shaking.
Picking AlgorithmPicking Algorithm
Delay for this length of timebefore picking again.
1
1. Last message sent to server2. The coda of the earthquake,
where we don’t want to pick
2
Picking AlgorithmPicking Algorithm
Five tunable parameters.Five tunable parameters.– Length of STALength of STA
Picking AlgorithmPicking Algorithm
Five tunable parameters.Five tunable parameters.– Length of STALength of STA– Length of LTALength of LTA
Picking AlgorithmPicking Algorithm
Five tunable parameters.Five tunable parameters.– Length of STALength of STA– Length of LTALength of LTA– Value of triggerValue of trigger
Picking AlgorithmPicking Algorithm
Five tunable parameters.Five tunable parameters.– Length of STALength of STA– Length of LTALength of LTA– Value of triggerValue of trigger– How long to wait after picking before How long to wait after picking before
sending a message to the serversending a message to the server
Picking AlgorithmPicking Algorithm
Five tunable parameters.Five tunable parameters.– Length of STALength of STA– Length of LTALength of LTA– Value of triggerValue of trigger– How long to wait after picking before How long to wait after picking before
sending a message to the serversending a message to the server– How long to wait between messagesHow long to wait between messages
Picking AlgorithmPicking Algorithm
Five tunable parameters.Five tunable parameters.– Length of STALength of STA– Length of LTALength of LTA– Value of triggerValue of trigger– How long to wait after picking before How long to wait after picking before
sending a message to the serversending a message to the server– How long to wait between messagesHow long to wait between messages
They can all be tuned by the server, They can all be tuned by the server, on a client-by-client basis.on a client-by-client basis.
GUIGUI
Acceleration data is displayed in real Acceleration data is displayed in real time on the user’s screen.time on the user’s screen.
GUIGUI
Acceleration data is displayed in real Acceleration data is displayed in real time on the user’s screen.time on the user’s screen.
Promotes use of the software.Promotes use of the software.
GUIGUI
Acceleration data is displayed in real Acceleration data is displayed in real time on the user’s screen.time on the user’s screen.
Promotes use of the software.Promotes use of the software. Can be used in science classrooms to Can be used in science classrooms to
explain project.explain project.
GUIGUI
Acceleration data is displayed in real Acceleration data is displayed in real time on the user’s screen.time on the user’s screen.
Promotes use of the software.Promotes use of the software. Can be used in science classrooms to Can be used in science classrooms to
explain project.explain project. Each message to the server marked Each message to the server marked
by a red line.by a red line.
GUIGUI
3 Axes3 Axes Data streams from Data streams from
the rightthe right The red line The red line
represents a represents a message to the message to the serverserver
Client-server messagesClient-server messages
RegistrationRegistration– Location (or an approximation)Location (or an approximation)– Given a client idGiven a client id
PicksPicks HeartbeatHeartbeat
Client-server messagesClient-server messages
RegistrationRegistration PicksPicks
– Short UDP messageShort UDP message– Location, time, and acceleration Location, time, and acceleration
experiencedexperienced– Can be a playback message!Can be a playback message!
HeartbeatHeartbeat
Client-server messagesClient-server messages
RegistrationRegistration PicksPicks HeartbeatHeartbeat
– Check in with serverCheck in with server– Get any updates, playback infoGet any updates, playback info– For security, server will never push For security, server will never push
updates. Client must call in to get updates. Client must call in to get updates.updates.
Client-server messagesClient-server messages
RegistrationRegistration PicksPicks HeartbeatHeartbeat All are in XML format.All are in XML format.
– Human readableHuman readable– Easily extendedEasily extended– Can easily interface with other, similar Can easily interface with other, similar
projectsprojects
Sensor ValidationSensor Validation
Tested our sensor with artificial Tested our sensor with artificial event.event.
Sensor ValidationSensor Validation
Tested our sensor with artificial Tested our sensor with artificial event.event.
Compared our sensor to the SCSN Compared our sensor to the SCSN (Southern California Seismic (Southern California Seismic Network) sensor in the basement of Network) sensor in the basement of Millikan Library.Millikan Library.
Sensor ValidationSensor Validation
Tested our sensor with artificial Tested our sensor with artificial event.event.
Compared our sensor to the SCSN Compared our sensor to the SCSN (Southern California Seismic (Southern California Seismic Network) sensor in the basement of Network) sensor in the basement of Millikan Library.Millikan Library.
Caused seismic activity with a Caused seismic activity with a sledgehammer.sledgehammer.
Sensor ValidationSensor Validation
We have since switched to better noise We have since switched to better noise filtering and a better sensorfiltering and a better sensor
Still, the correlation is visibleStill, the correlation is visible
ServerServer
Four main tasksFour main tasks– Handle new user registrationHandle new user registration
ServerServer
Four main tasksFour main tasks– Handle new user registrationHandle new user registration– Listen for pick messagesListen for pick messages
ServerServer
Four main tasksFour main tasks– Handle new user registrationHandle new user registration– Listen for pick messagesListen for pick messages– Handle heartbeat messagesHandle heartbeat messages
ServerServer
Four main tasksFour main tasks– Handle new user registrationHandle new user registration– Listen for pick messagesListen for pick messages– Handle heartbeat messagesHandle heartbeat messages– Analyze dataAnalyze data
UDP vs TCPUDP vs TCP
We send messages using two different We send messages using two different protocols.protocols.
TCP (Transmission Control Protocol)TCP (Transmission Control Protocol)– Handshake delayHandshake delay– Error correctionError correction
UDP vs TCPUDP vs TCP
We send messages using two different We send messages using two different protocols.protocols.
TCP (Transmission Control Protocol)TCP (Transmission Control Protocol)– Handshake delayHandshake delay– Error correctionError correction
UDP (User Datagram Protocol)UDP (User Datagram Protocol)– FastFast– UnreliableUnreliable
Pick Message HandlerPick Message Handler
Pick messages are sent using UDP Pick messages are sent using UDP packets.packets.
Reasons:Reasons:– Unsure of condition of networkUnsure of condition of network– Speed is importantSpeed is important
Pick Message HandlerPick Message Handler
Listen for incoming picksListen for incoming picks– Parse messageParse message
Pick Message HandlerPick Message Handler
Listen for incoming picksListen for incoming picks– Parse messageParse message– Check for playback flagCheck for playback flag
If the flag is not present, the pick is stored in If the flag is not present, the pick is stored in the database.the database.
If the message is flagged as playback, it is If the message is flagged as playback, it is written to a separate table in the database.written to a separate table in the database.
Server OperationServer Operation
Registration
Listener
Alert Listener
Calculation
Handler
WarningHandler
Controller
Core
pro
cessin
g
Equipment, devices,notification systems
Heartbeat
Listener
ClientsClientsClientsClientsClientsClientsClientsClientsClients
Server-side AnalysisServer-side Analysis
Bayesian decision-makingBayesian decision-making
Once posterior is sufficient, we send Once posterior is sufficient, we send Early WarningEarly Warning
Tested on Fake DataTested on Fake Data
Priors from Priors from Gutenberg-Richter Gutenberg-Richter law (mag vs. num)law (mag vs. num)
Fake data stream Fake data stream with errors in itwith errors in it
Located epicenter Located epicenter to within 25 kmto within 25 km
Located epicenter Located epicenter in 10 secondsin 10 seconds
Display dataDisplay data
Heat mapHeat map Hotter colors = higher magnitude Hotter colors = higher magnitude
pickspicks
Google App EngineGoogle App Engine
Server Server implemented on implemented on Google App EngineGoogle App Engine
Our data is sent to Our data is sent to and stored thereand stored there
Robust, scalableRobust, scalable
Machine LearningMachine Learning
Feedback loopFeedback loop Five parameters (or more!) per clientFive parameters (or more!) per client If a client picks more often than If a client picks more often than
normal, tune it downnormal, tune it down If a client picks less often than If a client picks less often than
normal, tune it upnormal, tune it up
Machine LearningMachine Learning
A client next to A client next to constructionconstruction
Not useful for small Not useful for small seismic eventsseismic events
Still useful for big Still useful for big ones!ones!
Set the threshold Set the threshold higher.higher.