Musings and thoughts on how to use observational seismology as an educational tool, or even just a hobby. Linked closely with dentonseismo.co.uk
Earthquake location by backprojection
Get link
Facebook
X
Pinterest
Email
Other Apps
What would happen if time could run backwards as well as forwards ?
Well seismologists can run time backwards in a computer and work out where an earthquake has happened.
We know what time a seismic wave reaches a monitoring station, and we know the speed it travels. If we run time backwards we can then work out the locus of possible origins for the source of the earthquake at each time in the past, for each station this will be a circle of possible origin locations that increases in size as we go back in time. With three or more stations the origin location (and time) of the event can be estimated from the point when all of these possible locations converge on one point.
A simple python program and some data from a recent earthquake in Cornwall illustrates this principle
importmatplotlib.pyplotaspltimportmathimportnumpyasnpfrommatplotlib.patchesimportCircleimportmatplotlib.animationasanimationfrommatplotlib.animationimportFuncAnimation#Writer = animation.writers['ffmpeg']#writer = Writer(fps=20, metadata=dict(artist='Paul Denton'),bitrate=1800)#image_file = background image of cornwall# background plot 20px/kmscale=20img=plt.imread('./corn_map.png')stations=['PZ','CCA1','RL','FL']x=[315,764,946,958]y=[487,330,164,417]#pick times (sec after 16:52pick=[8.430,7.600,9.418,7.880]# Create a figure. Equal aspect so circles look circularfig,ax=plt.subplots(1)ax.set_aspect('equal')# pwave velocity in crust =5.76km/secspeed=5.76#depth=10kmdepth=10.0#set latest possible time for event (directly below closest station)latest_time=min(pick)-depth/speed-0.01# Create a figure. Equal aspect so circles look circularfig,ax=plt.subplots(1)ax.set_aspect('equal')ax.imshow(img)defrun_animation():anim_running=True# section to allow stopping of animation ona key pressdefonClick(event):nonlocalanim_runningifanim_running:anim.event_source.stop()anim_running=Falseelse:anim.event_source.start()anim_running=Truedefupdate(frame_number):#assume 1x fframenumber=10 msecax.clear()ax.imshow(img)# set a test origin time and go backwards in timetime=round(latest_time-(frame_number/100),2)label='time=16:52:'+str(time)# plot time label on animationax.text(100,750,label)foriinrange(4):traveltime=pick[i]-time# travel time to each station for this test originslope=traveltime*speed# slopw distance from station for this test originepidist=math.sqrt(slope*slope-depth*depth)# surface distance for this slope distancesize=epidist*scale# convert surface distance to map scalecirc=Circle((x[i],y[i]),size,color='k',fill=False)# plot a range sircle of all possible locations that match# this test origin time for each stationax.add_patch(circ)fig.canvas.mpl_connect('button_press_event',onClick)# pause animation when a mouse is clickedanim=animation.FuncAnimation(fig,update,frames=200)run_animation()# Show the image#animation.save('cornwall_backprojection.mp4')plt.show()
Since the BBC:microbit has an accelerometer chip on it it seems only natural to turn it into the heart of an educational seismometer. microbit accelerometer data recorded by jAmaseis datalogging software So what steps need to be done 1) install the mbed serial driver to connect your microbit to your (windows) computer using a USB lead 2) write some code to output acceleration data to the serial line on the microbit 3) make sure you have suitable microbit device file for jamaseis 4) connect it all together In detail 1) install the mbed serial driver for windows see https://developer.mbed.org/handbook/Windows-serial-configuration This will create a virtual serial COM port on your computer... you can check this by looking at Computer...properties...device manager (windows7) On my computer the microbit appears as COM23 2) write some code to output acceleration data to the serial line.. you can do this in a browser on the mic...
So an earthquake has happened... you have see some seismograms using the excellent Python Obsy toolkit and some simple scripts... now you want to plot a map or two. Simple location map created in Python using the Folium library import folium # setting the boundaries of the map and choosing a map style m = folium . Map ( location = [ 50.067 , - 5.187 ], zoom_start = 10 , tiles = 'Stamen Terrain' ) # put a marker on the map for the reported BGS earthquake location folium . Marker ( location = [ 50.067 , - 5.187 ], popup = 'quake' , icon = folium . Icon ( color = 'red' )) . add_to ( m ) # next add markers for the locations of all the seismic monitoring stations in Cornwall folium . Marker ( location = [ 50.1867 , - 5.2273 ], popup = 'BGS_CCA1' , icon = folium . Icon ( color = 'green' )) . add_to ( m ) folium . Marker ( location = [ 50.1486 , - 5.0945 ], popup = 'FL_RB30C' , icon = folium . Icon ( color = 'green...
In the 2019-20 football season DentonSeismo in collaboration with Sky Bet installed seismic monitoring stations at a number of championship football stadiums in order to monitor the crowd response to home goals. Whose goal will get the greatest response Barnsley F.C.
Comments
Post a Comment