Data Science Project:
Meteorite Geospatial Data Visualization
(NASA data)
September 2025
- The following map shows all witnessed meteorites' (a meteor that was detected in the atmosphere, and whose landing coordinates were calculated or found out in some other way) locations. So, the meteorites that were found afterwards aren't included.
- Use the +/- buttons in the top left corner to zoom the map in and out. Click on the markers to see information on each meteorite.
Behind the map visualization underlies a specific two-part data science
process. The first part of the process is handled by a
Python
script executed as a scheduled once-a-month
AWS Lambda
function:
-
First a
NASA meteorite dataset
(.csv)
is downloaded. -
Then a
Pandas DataFrame
is formed from the downloaded dataset.
-
Next up comes data wrangling, where unnecessary columns and rows are
removed from the DataFrame
(because some rows have null values for latitude and/or longitude).
-
Then a
GeoPandas GeoDataFrame
is constructed from the DataFrame.
-
A
Shapefile
is then created from the GeoDataFrame. Note that Shapefiles aren't really files but rather groups of files. This particular Shapefile consists of 4 different files
(.cpg, .dbf, .shp, .shx),
that are compressed into an Archive(.zip)
that's stored in an AWS S3bucket.
The latter part is done by a user's web browser every time it requests the webpage you're reading right now:
-
A JS script constructs a
Leaflet
map and adds a Google Satellite tile layer to it.
-
The Shapefile stored in S3 is then fetched using
Shapefile.js,
which, in one fell swoop, converts it into GeoJSON.
The GeoJSON consists of Points
(here: meteorite information about to be inserted to the map).
- Finally, the GeoJSON is added to the map as a layer.