Meteorite Explorer is a data analysis and visualization project that explores meteorite landings worldwide. The project uses various libraries and tools to perform statistical and visual analysis on meteorite data, including geospatial mapping, treemaps, box and whisker plots, word clouds, and more.
This Project is combined effort of my members
- Talha Shakeel
- Bilal Abid
- Rayyan Ali Shah
- Emaan Yawer Shehzad
- Installation
- Data Source
- Exploratory Data Analysis
- Filtering Meteorite Fell Data
- Applying Different Interpolation Techniques
- Applying Deep Learning and Machine Learning
- Web Application Overview
- Project Collaboration and Contributions
To run the project, you need to have Python installed on your machine. Additionally, you can install the required dependencies using the following:
!pip install -r requirements.txt
The dataset used for this project is sourced from NASA and is publicly available on the NASA Open Data Portal.
Upon obtaining the dataset, several preprocessing steps were undertaken to enhance its usability for analysis and visualization.
-
Geolocation to Country Conversion:
- The
GeoLocation
information was processed to extract latitude and longitude. - Utilizing an external API, these coordinates were translated into country names.
- Note: This process took approximately 10 hours to complete.
- The
-
Data Filtering:
- The dataset was filtered to include only entries with years falling between 1800 and 2022.
- NaN values were removed from the dataset.
- Entries with zero values were excluded from the dataset.
These preprocessing steps aim to enhance the dataset's quality and relevance for subsequent analysis and visualization in the Meteorite Explorer project.
-
Geospatial Distribution (Map):
- Worldwide meteorite landings with mass-indicated markers.
-
Meteorite Class Distribution (Treemap):
- Insights into the prevalence of different meteorite classes.
-
Box and Whisker Plot for Geolocation:
- Distribution of latitude and longitude values.
-
Word Cloud for Meteorite Names:
- Visualization of frequently occurring words in names.
-
Meteorites Found/Fell Over the Years (Stacked Bar Plot):
- Temporal distribution of discoveries.
-
Distribution of Meteorites Found/Fell (Pie Chart):
- Proportion of found versus observed falling meteorites.
-
Distribution of Meteorites Found Across Countries (Pie Chart):
- Top 10 countries with meteorite finds and an "Other" category.
These visualizations and many more collectively contribute to a comprehensive exploration of meteorite data, enabling users to grasp key patterns, distributions, and trends.
We have meticulously filtered our dataset to focus exclusively on meteorites that have genuinely "Fell." This deliberate exclusion of entries labeled as "Found" ensures precision in our analysis. Entries marked as "Found" may indicate the discovery of meteorites in a specific year, but they do not necessarily represent the actual year of the meteorite fall. Our project's primary goal is to predict future meteorite fall locations, directing our focus toward proactive research rather than retrospective documentation.
In this phase, we refine our yearly meteorite data to a more granular monthly level for a comprehensive analysis:
-
Data Collection by Year:
- Meteorite data is systematically collected for each
Year
.
- Meteorite data is systematically collected for each
-
Monthly Conversion:
- For each year, we generate a list of data for all
12 months
.
- For each year, we generate a list of data for all
-
Geolocation Assignment:
- Geolocations are strategically assigned to months, incorporating specialized handling techniques to enhance accuracy.
This meticulous process prepares our meteorite fall data in a structured format, setting the stage for subsequent analysis and modeling focused on uncovering monthly trends.
- Cubic Interpolation
- Nearest Neighbor Interpolation
- Spline Interpolation
After careful evaluation, we found that the results obtained from Spline Interpolation were the much more reliable. Therefore, we chose to use Spline Interpolation for our prediction.
In the domain of Deep Learning, we adopted a technique known as Shallow Deep Learning
integrating Long Short-Term Memory (LSTM)
networks within a simplified architecture. This approach was carefully chosen to maximize the potential of LSTM for superior results.
In the realm of Machine Learning, we explored various methodologies, with the Random Forest model
emerging as a prominent contender. However, upon thorough comparison, the performance achieved with LSTM significantly outpaced the results obtained from Random Forest. This underscores the effectiveness of our deep learning strategy in producing outstanding outcomes.
- Uses
os
for file handling. save_map
removes existing files, generates, and saves a new heat map.
- Utilizes deep learning for latitude and longitude predictions.
- Index Route (
'/'
):- Handles GET/POST.
- On POST, generates predictions, saves a new heat map, and redirects to
show_map
. - On GET, renders
index2.html
.
- Map Route (
'/map'
):- Renders
map.html
displaying the heat map.
- Renders
- Exposes the local server using Ngrok.
index2.html
: Form for user input (year), sends POST request.map.html
: Displays the generated heat map.
- Executed through the
__main__
block, using the development server.
We believe in the power of collaborative efforts to enhance and refine the Meteorite Explorer project. In the spirit of open-source development, we have made our project accessible for contributions from the community. Your insights, expertise, and ideas can play a crucial role in improving the accuracy and efficiency of meteorite landing predictions.
-
Fork the Repository:
- Start by forking the Meteorite Explorer repository to your GitHub account.
-
Clone the Repository:
- Clone the forked repository to your local machine using the following command:
git clone https://github.com/your-username/meteorite-explorer.git
- Clone the forked repository to your local machine using the following command:
-
Create a Branch:
- Create a new branch for your contributions:
git checkout -b feature/your-feature-name
- Create a new branch for your contributions:
-
Make Changes:
- Implement your enhancements or fix bugs in the codebase.
-
Commit Changes:
- Commit your changes with clear and concise commit messages:
git commit -m "Add your commit message here"
- Commit your changes with clear and concise commit messages:
-
Push Changes:
- Push your changes to your GitHub repository:
git push origin feature/your-feature-name
- Push your changes to your GitHub repository:
-
Submit a Pull Request:
- Open a pull request from your forked repository to the main Meteorite Explorer repository.
- Provide a detailed description of your changes and improvements.
-
Algorithmic Enhancements:
- Improve interpolation techniques or explore new methods for prediction.
-
Data Processing Optimization:
- Enhance the efficiency of data preprocessing steps for better performance.
-
Visualization Improvements:
- Introduce new visualizations or enhance existing ones for a more informative display.
-
Machine Learning Model Refinement:
- Experiment with different models or fine-tune existing ones for better accuracy.
-
Web Application Features:
- Add new features or improve the user interface of the web application.
-
Documentation and Readme Updates:
- Contribute to clearer documentation or update the readme for better project understanding.
By contributing to the Meteorite Explorer project, you become an integral part of our mission to advance meteorite prediction research. Your collaboration is not only welcomed but highly valued as we work together to push the boundaries of knowledge in this fascinating field.
Thank you for considering contributing to our open-source project! Together, we can make significant strides in improving meteorite landing predictions and expanding our understanding of celestial events.