community seismic network for early warning

Post on 15-Jan-2016

38 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Community Seismic Network for Early Warning. Rishi Chandy Rita A. and Øisten Skjellum SURF Fellow Daniel Obenshain Kiyo and Eiko Tomiyasu SURF Scholar Daniel Rosenberg Kiyo and Eiko Tomiyasu SURF Scholar Annie Tang Mentors: K. Mani Chandy, Robert Clayton, Andreas Krause - PowerPoint PPT Presentation

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

top related