community seismic network for early warning rishi chandy rita a. and Øisten skjellum surf fellow...
Post on 20-Dec-2015
215 views
TRANSCRIPT
Community Seismic Community Seismic Network for Early Network for Early
WarningWarning
Rishi ChandyRishi ChandyRita A. and Øisten Skjellum SURF FellowRita A. and Øisten Skjellum SURF Fellow
Daniel ObenshainDaniel ObenshainKiyo and Eiko Tomiyasu SURF ScholarKiyo and Eiko Tomiyasu SURF Scholar
Daniel RosenbergDaniel RosenbergKiyo and Eiko Tomiyasu SURF ScholarKiyo and Eiko Tomiyasu SURF Scholar
Annie TangAnnie Tang
Mentors: K. Mani Chandy, Robert Clayton, Andreas Mentors: K. Mani Chandy, Robert Clayton, Andreas KrauseKrause
California Institute of TechnologyCalifornia Institute of Technology
Who are we?Who are we?
Daniel Obenshain
Annie Tang
Rishi Chandy
Daniel Rosenberg
Our MentorsOur Mentors
Dr. K. Mani ChandyProfessor of Computer Science
Dr. Andreas KrauseAssistant Professor ofComputer Science
Dr. Rob ClaytonProfessor ofGeophysics
Michael OlsonGrad StudentComputer Science
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
Slow trains
Early Warning Can HelpEarly Warning Can Help
Slow trains
Stop elevators
Early Warning Can HelpEarly Warning Can Help
Slow trains
Stop elevators
Open fire station doors
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.
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
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/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
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
Accelerometer
Long Term Average
Short Term Average
Picking AlgorithmPicking Algorithm
Accelerometer
New DataLong Term Average
Short Term Average
Picking AlgorithmPicking Algorithm
Accelerometer
Short Term Average
Long Term Average
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.
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
GUIGUI
3 Axes3 Axes Data streams from Data streams from
the rightthe right
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
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
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
Client Side OverviewClient Side Overview
RegistrationRegistration– Keys, location, sensor type, address Keys, location, sensor type, address
(optional)(optional)– Client IDClient ID
Data StorageData Storage– SAC file, ring bufferSAC file, ring buffer
HeartbeatHeartbeat– Sensor “check in”, log request, playback Sensor “check in”, log request, playback
requestrequest
RegistrationRegistration
TCP Message:TCP Message:– Keys, location, sensor type, address Keys, location, sensor type, address
(optional)(optional)– Client IDClient ID
Key Generator:Key Generator:– Key pair: public key & private keyKey pair: public key & private key– DSADSA
RegistrationRegistration
SkyhookSkyhook– Software only Hybrid Positioning System Software only Hybrid Positioning System
(XPS)(XPS) Combine WPS, GPS, and Cellular TowersCombine WPS, GPS, and Cellular Towers
– Accuracy: 10 to 20 metersAccuracy: 10 to 20 meters– Latitude, longitude, addressLatitude, longitude, address– Reasons to choose Skyhook:Reasons to choose Skyhook:
GPS signal is not always availableGPS signal is not always available Fast and accurateFast and accurate Cons: needs Wi-FiCons: needs Wi-Fi
– IP AddressIP Address
Data StorageData Storage
Ring BufferRing Buffer– New data is pushed inNew data is pushed in– Oldest data is deletedOldest data is deleted– Keep STA/LTAKeep STA/LTA
SAC FileSAC File– Seismic Analysis CodeSeismic Analysis Code– Analyze data in time seriesAnalyze data in time series
Data StorageData Storage
SAC File (continue)SAC File (continue)– HeaderHeader
Sampling interval, start time, length, station Sampling interval, start time, length, station location, etc.location, etc.
– LogsLogs
HeartbeatHeartbeat
TCP MessageTCP Message– Time, location, Client IDTime, location, Client ID– Log Request, Playback Request, UpdatesLog Request, Playback Request, Updates
Purpose Purpose – Active SensorsActive Sensors– Current LocationsCurrent Locations– Communication between client and Communication between client and
serverserver– CalibrationCalibration
DataData
DataDataWe have lots of it.We have lots of it.
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
Main techMain tech– Java, PHP, Javascript, XMLJava, PHP, Javascript, XML– MySQLMySQL– Apache Java LibrariesApache Java Libraries
ServerServer
Registration Handler
Pick Handler
Heartbeat Handler
Database Associator
MessagingMessaging
Open and extensible XML schemaOpen and extensible XML schema– Allows others to join the networkAllows others to join the network
We use TCP and UDPWe use TCP and UDP
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
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 signatureCheck signature
Pick Message HandlerPick Message Handler
Listen for incoming picksListen for incoming picks– Parse messageParse message– Check signatureCheck signature– 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.
SecuritySecurity
All messages from the client are All messages from the client are verified using XML signatures.verified using XML signatures.
SecuritySecurity
All messages from the client are All messages from the client are verified using XML signatures.verified using XML signatures.– Client has private key, Server knows Client has private key, Server knows
public keypublic key
SecuritySecurity
All messages from the client are All messages from the client are verified using XML signatures.verified using XML signatures.– Client has private key, Server knows Client has private key, Server knows
public keypublic key– Client signs messages using its private Client signs messages using its private
keykey
SecuritySecurity
All messages from the client are All messages from the client are verified using XML signatures.verified using XML signatures.– Client has private key, Server knows Client has private key, Server knows
public keypublic key– Client signs messages using its private Client signs messages using its private
keykey– Server verifies messages using the Server verifies messages using the
stored public keystored public key
SecuritySecurity
All messages from the client are verified All messages from the client are verified using XML signatures.using XML signatures.– Client has private key, Server knows public Client has private key, Server knows public
keykey– Client signs messages using its private keyClient signs messages using its private key– Server verifies messages using the stored Server verifies messages using the stored
public keypublic key This prevents any message interception This prevents any message interception
attacksattacks We can control valid clientIDsWe can control valid clientIDs
Server-side ChallengesServer-side Challenges
Incoming messages from a vast Incoming messages from a vast networknetwork– Can’t get overwhelmedCan’t get overwhelmed– Want to grab as much data as we canWant to grab as much data as we can– Application must be scalableApplication must be scalable
Response time is criticalResponse time is critical– Excessive latency is unacceptableExcessive latency is unacceptable– Indiana Jones effectIndiana Jones effect
Methods must be accurate and preciseMethods must be accurate and precise– EW is useless otherwiseEW is useless otherwise
RegistrationRegistration
Clients sends XMLClients sends XML– Latitude, LongitudeLatitude, Longitude– Public KeyPublic Key
Server returns XMLServer returns XML– Unique clientIDUnique clientID
Example Registration XMLExample Registration XML
<registration><publicKey>349oi3j4oij32ui23</publicKey><location>
<latitude>40.779761</latitude><longitude>-74.0310</longitude>
</location><locationDescription>
1200 E California Blvd Pasadena, CA 91125</locationDescription><sensor>usb:deviceID</sensor>
</registration>
HeartbeatHeartbeat
Clients update us on their statusClients update us on their status– locationlocation
Server returns:Server returns:– Software updatesSoftware updates– Tunable parametersTunable parameters– Playback waveformsPlayback waveforms– Log RequestsLog Requests
Location is updated in DBLocation is updated in DB
Playback OperationPlayback Operation
We can distribute waveforms for We can distribute waveforms for clients to simulateclients to simulate
Playback OperationPlayback Operation
We can distribute waveforms for We can distribute waveforms for clients to simulateclients to simulate
Stress-test the networkStress-test the network Evaluate new algorithmsEvaluate new algorithms Determine network latenciesDetermine network latencies
Log RequestsLog Requests
Clients send Pick Messages using Clients send Pick Messages using UDPUDP– Sufficient for early warning calculationSufficient for early warning calculation
Log RequestsLog Requests
Clients send Pick Messages using Clients send Pick Messages using UDPUDP– Sufficient for early warning calculationSufficient for early warning calculation– Insufficient for later analysisInsufficient for later analysis
After an earthquake, server requests After an earthquake, server requests logs during Heartbeatlogs during Heartbeat
Server OperationServer Operation
Registration
Listener
Alert Listener
Clients’Registration
Handlers
SignedRegstrMesg
Error, NoUpdate, orHandlers
Calculation
Handler
WarningHandler
ControllerServer’s Registration Listener is self-contained
Handlers and Queues managed
Core
pro
cessin
g
Clients’Registration
Handlers
Clients’Registration
Handlers
Clients’Registration
Handlers
Equipment, devices,notification systems
Clients’Registration
Handlers
Clients’Registration
Handlers
Clients’Registration
Handlers
Clients’Alert Handlers
Server-side AnalysisServer-side Analysis
Bayesian decision-makingBayesian decision-making
Server-side AnalysisServer-side Analysis
Bayesian decision-makingBayesian decision-making
Once posterior is sufficient, we send Once posterior is sufficient, we send EWEW
Next StepsNext Steps
Cell phones w/ Cell phones w/ accelerometersaccelerometers– AndroidAndroid
Laptops w/ Laptops w/ accelerometersaccelerometers
Google App EngineGoogle App Engine– Robust, scalableRobust, scalable
AcknowledgementsAcknowledgements
Thanks to Professors K. Mani Chandy, Thanks to Professors K. Mani Chandy, Rob Clayton, Andreas Krause, and Rob Clayton, Andreas Krause, and Michael Olson for their mentorship Michael Olson for their mentorship and guidanceand guidance
Our generous SURF sponsorsOur generous SURF sponsors– Rita A. and Øisten SkjellumRita A. and Øisten Skjellum– Kiyo and Eiko TomiyasuKiyo and Eiko Tomiyasu
Thank YouThank You
Q&A SessionQ&A Session