Inspiration

I did a physical hackathon at one of the top colleges in my city, and the theme was wildfires. It really got me thinking about the effects of wildfires and other natural disasters. This project was originally meant to be exclusively for wildfires but when I saw that the EONET (Earth Observatory Natural Event Tracker) API had information on other sorts of disasters as well, I knew I had to add it in.

What it does

It gets the coordinates of the latest natural disasters and the coordinates of these events from EONET. It then displays them as points on an interactive map of the Earth. It updates every 2 minutes, so if there is a change, for example a storm moving, it is visible on the map.

How I built it

I used the EONET API from NASA and Python web scraping to get all the data from EONET. I then used this data, which included timestamps and geographical coordinates to plot the locations of the events on an interactive map using PyQt, Folium, and the Requests modules. I also added description of each events - the timestamps, event titles and categories - to be displayed on click of each marker.

Challenges I ran into

I have little to no experience with UI/UX and frontend development. I struggled greatly with making the map and the markers work, but in the end I figured it out.

Accomplishments that I'm proud of

Not giving up and actually getting it done. I'm proud of myself for keeping up the hard work and finally finishing this hackathon (unlike the other 3 I participated in lol)

What I learned

I learnt how to use PyQt and how to use the Folium module. I also learned how to do web scraping and how to use NASA's EONET API

What's next for the Natural Disaster Tracking App

I want to add extended functionality, like color coding and configurability so that it shows region specific or event specific markers, for example only showing events in New York or only showing wildfires. I feel like this would increase the usability of the app as not just an exploratory tool but as an application specific tool that would allow for groups like firefighters to fight, for example, wildfires in New York. I also want to package it better into a proper app that could be downloaded rather than a Python script.

Built With

Share this project:

Updates