Inspiration

Imagine travelling somewhere to see the northern lights, only to arrive and find the sky completely cloudy. Even when aurora activity is strong, that doesn't necessarily mean you'll be able to see anything.

We wanted to explore whether historical weather and space-weather data could help people make better decisions about aurora viewing 24 hours in advance.

What it does

AuroraTime is an interactive website where users can experiment with predicting favourable conditions for viewing the northern lights.

Users can choose a location, select different weather and space-weather variables, and compare two machine-learning models: Logistic Regression and Random Forest.

Our models try to predict whether three conditions will be met 24 hours later: enough geomagnetic activity, low cloud cover and a dark enough sky.

One of our main features is Fork the Model, which lets users save experiments, change the input variables and compare the results. The website also shows missed opportunities and false alarms, so users can see where the models struggle.

AuroraTime uses real historical data to explore these predictions. It is not a live aurora forecast or a guarantee of actual sightings.

How we built it

We built the frontend using Next.js, React and TypeScript, with a Python and FastAPI backend for processing data and running machine-learning models.

We combined historical space-weather data from NASA OMNI2 with local weather data from Open-Meteo. We also used the Astral Python library to calculate the positions of the Sun and Moon.

For machine learning, we used scikit-learn to build Logistic Regression and Random Forest models.

We trained the models using data from 2024, used 2025 to help select prediction thresholds, and evaluated them using available historical data from 2026.

The website brings everything together, allowing users to run experiments and explore their results without needing to write code.

Challenges we ran into

One of our biggest challenges was combining different data sources. Weather and space-weather measurements come in different formats and time intervals, so we needed to match them correctly.

We also discovered that hours meeting our favourable-viewing checklist were surprisingly rare. This made it difficult for the models to identify them reliably. Some models missed most favourable periods, while others detected more but produced many false alarms.

Another challenge was presenting machine-learning results in a way that was understandable to someone without a technical background.

Accomplishments that we're proud of

We're proud that we built a working, interactive machine-learning application that brings together real historical data from multiple sources.

We especially like our Fork the Model feature, which encourages users to experiment rather than simply accept a prediction.

We're also proud that AuroraTime doesn't hide incorrect predictions. It shows both successful detections and mistakes, helping users understand the trade-offs involved in using machine learning for decisions.

What we learned

We learned that building a machine-learning model is only part of the challenge. Understanding the data and interpreting the results are just as important.

One of our biggest discoveries was that more predictions don't necessarily mean better decisions. A model might detect more favourable hours while also producing many more false alarms.

We also experimented with a more advanced model, XGBoost, but found that it didn't consistently outperform our simpler models.

Most importantly, we learned the value of being transparent about what a model can and cannot predict.

What's next for AuroraTime

In the future, we'd love to develop AuroraTime further by incorporating real aurora sighting records and live forecast data, allowing us to move beyond historical experiments towards practical viewing predictions.

We'd also like to explore additional factors such as light pollution, improve our models with more data, and make the results even easier to understand.

Our long-term goal is to turn AuroraTime into a useful tool for anyone planning to experience the northern lights, while keeping the predictions transparent and realistic.

Built With

Share this project:

Updates

Submission history