This project demonstrates how to extract climbing route data from the Camptocamp API, enrich it with weather information from the Meteomatics API, store the result in MongoDB Atlas, and analyze it using Python. The accompanying Jupyter notebook walks through the complete ETL pipeline and shows how MongoDB’s aggregation framework can be used to explore local climbing opportunities around Thun, Switzerland.
notebooks/report.ipynb
– Main notebook containing the code and explanations for the ETL pipeline and analysis.notebooks/report.pdf
– Static version of the notebook for quick viewing.notebooks/styles.css
– Custom CSS used when exporting the notebook to PDF.pictures/
– Diagrams and figures referenced in the report.references/
– Bibliography (references.bib
) and citation style file (plos.csl
).templates/custom.tplx
– LaTeX template used to create the PDF report.requirements.txt
– List of Python packages required to run the notebook.Clone the repository
git clone <repository-url>
cd NoSQL_Lab_with_Python_MongoDB
Create a virtual environment and install dependencies
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Create a .env
file with credentials for MongoDB Atlas and Meteomatics. Example:
MONGO_USER=your_user
MONGO_PASS=your_password
MONGO_DB=campdb
METEO_USER=your_meteomatics_user
METEO_PASS=your_meteomatics_pass
Launch Jupyter and open the notebook:
jupyter notebook notebooks/report.ipynb
Execute the cells sequentially to reproduce the data pipeline. If you only wish to read the results, open notebooks/report.pdf.
For PDF export: Render the notebook as PDF using
quarto render notebooks/report.ipynb --to pdf
The exploratory analysis evaluates 268 climbing routes near Thun. Most routes are graded between 5c and 6a and are fully bolted. Seasonal trends indicate optimal climbing between summer and fall. By aggregating and visualizing the data, the project highlights higher-difficulty routes (grade ≥7.0) around Thun and provides a clear recommendation of top climbs using a Composite Route Index.
Working on this project provided hands-on experience with MongoDB Atlas, data transformation using Python, and creating publication-ready reports with Quarto/nbconvert. Diagramming tools such as PlantUML and Eraser were used to illustrate the architecture and dataset structure.
Architecture of the ETL Pipeline
Interactive Map: Extreme Climbing Routes near Thun
MongoDB Schema Diagram