EarthQuaker: A Cloud-Based Interactive Dashboard of Global Seismic Activities
By Emily Zhou and Junyi Yang, University of Pennsylvania
See the projectThe EarthQuaker Project is an interactive dashboard that displays historical seismic activity and provides comprehensive insights into earthquake occurrences worldwide.
The front-end part of this dashboard is made up of a 3D interactive map and three figures. We used the Deck GL framework to implement the map. The hexagons represent clusters of earthquakes with both high magnitude and significance. They are colored by the largest earthquake magnitude inside and their heights are relative to their significance. The tool-tip bar on the upper right corner allows you to play around with the radius, coverage, and elevation scale of the hexagon. We implemented the three figures at the bottom using the D3.JS. The two donut charts show the distribution of earthquakes by continent and by magnitude for the top 200 earthquakes with the highest magnitude. This diagram on the left-hand side iteratively shows you the location of the top 200 earthquakes.
At the backend of this dashboard is a data pipeline set up on Google Cloud, with a series of cloud functions extracting, preparing, loading, and manipulating both the earthquake and continent data. All of the scripts are written in python, along with a requirments.txt file specifying the packages needed. Google cloud will use this file to create a virtual environment for each python script for them to successfully run on the cloud. The cloud functions are chained together into a cloud workflow. We’ve configured our workflow to run on the cloud every day, but it only gets to repeat the extract, prepare, and load process every 30 days. This is because on one hand, this USGS database we use gets updated every 30-days and we would like to be consistent with that. On the other hand, we have set up a bucket on Google Cloud Storage to store all the earthquakes since April 2024. This becomes a historical database for earthquakes where we could query from to make our visualizations. As such, updating the entire database every 30 day will allow us to get 30-days of completely new data from USGS without having overlapping earthquake occurrences in our cloud storage.