Welcome to the Climate Learning & Data Exploration Platform – an interactive educational tool designed to help students and researchers analyze, visualize, and explore climate datasets.
This platform provides an engaging learning experience using Python, Xarray, Matplotlib, and Cartopy for climate science. Whether you're a beginner in climate data analysis or an advanced researcher, this tool simplifies working with NetCDF files and helps you extract meaningful insights from climate data.
- 📚 Educational Modules → Learn Python, NumPy, Xarray, Matplotlib, Cartopy, and SciPy for climate analysis.
- 📂 NetCDF Data Exploration → Upload & explore metadata of climate datasets.
- 📈 Time-Series Visualization → Plot long-term trends and seasonal variations.
- 🌎 Spatial Mapping → Generate interactive maps using Cartopy.
- 🎮 Playground Mode → Write, test, and run Python code interactively inside the app.
- 🛠️ Advanced Analysis → Perform custom slicing, resampling, regression analysis, and filtering.
git clone https://github.com/shiv3679/Unnamed.git
cd climate-learning-platformUsing Conda:
conda create --name venv python=3.9
conda activate venvUsing pip:
pip install -r requirements.txtstreamlit run app.py- Navigate to the "Playground" section.
- Upload a NetCDF climate dataset (
.ncformat). - View metadata, variables, dimensions, and attributes.
- Choose Time-Series Analysis 📈 to analyze long-term temperature trends.
- Select Spatial Visualization 🗺️ to generate interactive maps.
- Try Contour Plots & Wind Vector Analysis to understand climate patterns.
- Write & execute custom Python scripts inside the app.
- Experiment with Xarray, Matplotlib, and SciPy interactively.
import xarray as xr
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
# Load NetCDF dataset
data = xr.open_dataset('datasets/india.1960.2022.tmp.nc')
# Extract temperature variable and compute mean over time
temperature = data['tmp'].mean(dim='time')
# Create map projection
fig, ax = plt.subplots(figsize=(8,6), subplot_kw={'projection': ccrs.PlateCarree()})
# Plot temperature data
mp = ax.imshow(temperature, cmap='coolwarm', origin='lower',
extent=[data.lon.min(), data.lon.max(), data.lat.min(), data.lat.max()])
# Add coastlines and borders
ax.add_feature(cfeature.BORDERS, edgecolor='black')
ax.add_feature(cfeature.COASTLINE)
# Add colorbar
plt.colorbar(mp, label='Temperature (°C)')
plt.title('Mean Surface Temperature (1960-2022)')
plt.show()- ✔️ Add more datasets for climate analysis.
- ✔️ Enable interactive 3D visualizations using Plotly.
- ✔️ Improve user interface & performance.
- ✔️ Provide more hands-on tutorials for climate data analysis.
This project is open-source and licensed under the MIT License.
Maintainer: Shiv Shankar Singh
📧 Email: shivshankarsingh.py@gmail.com