Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files- .gitignore +12 -12
- Dockerfile +28 -28
- data/aqi_history.json +1 -0
- data/dataset_meta.json +111 -0
- data/earthquake_history.json +1 -0
- data/flood_baseline.json +4 -0
- data/llm_context.json +111 -0
- data/weather_history.json +0 -0
- groq_llm.py +1 -1
- main.py +21 -7
- pyrightconfig.json +19 -0
- requirements.txt +13 -13
- test_output.json +17 -0
.gitignore
CHANGED
|
@@ -2,21 +2,21 @@ __pycache__/
|
|
| 2 |
*.py[cod]
|
| 3 |
*$py.class
|
| 4 |
climai.log
|
| 5 |
-
|
| 6 |
*.txt
|
| 7 |
!requirements.txt
|
| 8 |
.git/
|
| 9 |
.venv/
|
| 10 |
.vscode/
|
| 11 |
-
|
| 12 |
-
*.ttf
|
| 13 |
-
*.woff
|
| 14 |
-
*.woff2
|
| 15 |
-
*.png
|
| 16 |
-
*.jpg
|
| 17 |
-
*.jpeg
|
| 18 |
-
*.gif
|
| 19 |
-
*.svg
|
| 20 |
-
__pycache__/
|
| 21 |
-
*.pyc
|
| 22 |
web/
|
|
|
|
| 2 |
*.py[cod]
|
| 3 |
*$py.class
|
| 4 |
climai.log
|
| 5 |
+
|
| 6 |
*.txt
|
| 7 |
!requirements.txt
|
| 8 |
.git/
|
| 9 |
.venv/
|
| 10 |
.vscode/
|
| 11 |
+
|
| 12 |
+
*.ttf
|
| 13 |
+
*.woff
|
| 14 |
+
*.woff2
|
| 15 |
+
*.png
|
| 16 |
+
*.jpg
|
| 17 |
+
*.jpeg
|
| 18 |
+
*.gif
|
| 19 |
+
*.svg
|
| 20 |
+
__pycache__/
|
| 21 |
+
*.pyc
|
| 22 |
web/
|
Dockerfile
CHANGED
|
@@ -1,28 +1,28 @@
|
|
| 1 |
-
# Use an official Python runtime as a parent image
|
| 2 |
-
FROM python:3.10-slim
|
| 3 |
-
|
| 4 |
-
# Set the working directory
|
| 5 |
-
WORKDIR /app
|
| 6 |
-
|
| 7 |
-
# Install system dependencies (needed for AI/ML libraries)
|
| 8 |
-
# libgomp1 is required for XGBoost and LightGBM
|
| 9 |
-
RUN apt-get update && apt-get install -y \
|
| 10 |
-
build-essential \
|
| 11 |
-
curl \
|
| 12 |
-
cmake \
|
| 13 |
-
libgomp1 \
|
| 14 |
-
&& rm -rf /var/lib/apt/lists/*
|
| 15 |
-
|
| 16 |
-
# Copy requirements and install them
|
| 17 |
-
COPY requirements.txt .
|
| 18 |
-
RUN pip install --no-cache-dir --upgrade pip && \
|
| 19 |
-
pip install --no-cache-dir -r requirements.txt
|
| 20 |
-
|
| 21 |
-
# Copy the rest of the backend code
|
| 22 |
-
COPY . .
|
| 23 |
-
|
| 24 |
-
# Expose the port FastAPI runs on
|
| 25 |
-
EXPOSE 7860
|
| 26 |
-
|
| 27 |
-
# Command to run the app (Hugging Face uses port 7860)
|
| 28 |
-
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
|
|
|
|
| 1 |
+
# Use an official Python runtime as a parent image
|
| 2 |
+
FROM python:3.10-slim
|
| 3 |
+
|
| 4 |
+
# Set the working directory
|
| 5 |
+
WORKDIR /app
|
| 6 |
+
|
| 7 |
+
# Install system dependencies (needed for AI/ML libraries)
|
| 8 |
+
# libgomp1 is required for XGBoost and LightGBM
|
| 9 |
+
RUN apt-get update && apt-get install -y \
|
| 10 |
+
build-essential \
|
| 11 |
+
curl \
|
| 12 |
+
cmake \
|
| 13 |
+
libgomp1 \
|
| 14 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 15 |
+
|
| 16 |
+
# Copy requirements and install them
|
| 17 |
+
COPY requirements.txt .
|
| 18 |
+
RUN pip install --no-cache-dir --upgrade pip && \
|
| 19 |
+
pip install --no-cache-dir -r requirements.txt
|
| 20 |
+
|
| 21 |
+
# Copy the rest of the backend code
|
| 22 |
+
COPY . .
|
| 23 |
+
|
| 24 |
+
# Expose the port FastAPI runs on
|
| 25 |
+
EXPOSE 7860
|
| 26 |
+
|
| 27 |
+
# Command to run the app (Hugging Face uses port 7860)
|
| 28 |
+
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
|
data/aqi_history.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"location": "Chennai, India", "period_start": "2025-03-19", "period_end": "2026-03-19", "total_days": 366, "daily": [{"date": "2025-03-19", "avg_pm25": 10.3, "avg_pm10": 13.8, "avg_aqi": 20.2, "avg_no2": 5.5, "avg_o3": 49.1}, {"date": "2025-03-20", "avg_pm25": 10.1, "avg_pm10": 13.3, "avg_aqi": 24.0, "avg_no2": 5.4, "avg_o3": 56.2}, {"date": "2025-03-21", "avg_pm25": 11.8, "avg_pm10": 15.6, "avg_aqi": 29.2, "avg_no2": 4.5, "avg_o3": 73.1}, {"date": "2025-03-22", "avg_pm25": 16.5, "avg_pm10": 20.9, "avg_aqi": 30.7, "avg_no2": 5.4, "avg_o3": 74.2}, {"date": "2025-03-23", "avg_pm25": 15.7, "avg_pm10": 19.8, "avg_aqi": 35.0, "avg_no2": 4.7, "avg_o3": 86.1}, {"date": "2025-03-24", "avg_pm25": 21.7, "avg_pm10": 28.3, "avg_aqi": 40.6, "avg_no2": 6.2, "avg_o3": 80.7}, {"date": "2025-03-25", "avg_pm25": 25.1, "avg_pm10": 32.2, "avg_aqi": 52.0, "avg_no2": 7.5, "avg_o3": 81.5}, {"date": "2025-03-26", "avg_pm25": 29.8, "avg_pm10": 35.0, "avg_aqi": 61.5, "avg_no2": 8.0, "avg_o3": 90.5}, {"date": "2025-03-27", "avg_pm25": 32.5, "avg_pm10": 37.7, "avg_aqi": 65.6, "avg_no2": 7.8, "avg_o3": 104.2}, {"date": "2025-03-28", "avg_pm25": 31.2, "avg_pm10": 36.7, "avg_aqi": 65.5, "avg_no2": 7.2, "avg_o3": 119.7}, {"date": "2025-03-29", "avg_pm25": 27.4, "avg_pm10": 34.8, "avg_aqi": 63.8, "avg_no2": 7.5, "avg_o3": 110.5}, {"date": "2025-03-30", "avg_pm25": 27.6, "avg_pm10": 37.5, "avg_aqi": 62.0, "avg_no2": 6.2, "avg_o3": 93.6}, {"date": "2025-03-31", "avg_pm25": 36.3, "avg_pm10": 49.2, "avg_aqi": 65.3, "avg_no2": 5.5, "avg_o3": 97.0}, {"date": "2025-04-01", "avg_pm25": 30.6, "avg_pm10": 39.2, "avg_aqi": 67.3, "avg_no2": 5.8, "avg_o3": 91.0}, {"date": "2025-04-02", "avg_pm25": 21.9, "avg_pm10": 30.7, "avg_aqi": 60.9, "avg_no2": 4.7, "avg_o3": 80.6}, {"date": "2025-04-03", "avg_pm25": 11.7, "avg_pm10": 16.1, "avg_aqi": 33.2, "avg_no2": 7.0, "avg_o3": 59.7}, {"date": "2025-04-04", "avg_pm25": 12.5, "avg_pm10": 15.6, "avg_aqi": 27.2, "avg_no2": 11.4, "avg_o3": 54.7}, {"date": "2025-04-05", "avg_pm25": 13.9, "avg_pm10": 17.2, "avg_aqi": 29.0, "avg_no2": 8.2, "avg_o3": 56.9}, {"date": "2025-04-06", "avg_pm25": 11.5, "avg_pm10": 14.1, "avg_aqi": 27.8, "avg_no2": 8.4, "avg_o3": 54.2}, {"date": "2025-04-07", "avg_pm25": 9.1, "avg_pm10": 11.8, "avg_aqi": 23.1, "avg_no2": 6.2, "avg_o3": 52.4}, {"date": "2025-04-08", "avg_pm25": 8.1, "avg_pm10": 11.7, "avg_aqi": 23.1, "avg_no2": 5.0, "avg_o3": 56.4}, {"date": "2025-04-09", "avg_pm25": 7.0, "avg_pm10": 10.4, "avg_aqi": 21.0, "avg_no2": 4.3, "avg_o3": 52.6}, {"date": "2025-04-10", "avg_pm25": 21.6, "avg_pm10": 26.3, "avg_aqi": 41.8, "avg_no2": 9.9, "avg_o3": 96.8}, {"date": "2025-04-11", "avg_pm25": 31.1, "avg_pm10": 37.9, "avg_aqi": 63.8, "avg_no2": 6.1, "avg_o3": 149.0}, {"date": "2025-04-12", "avg_pm25": 34.5, "avg_pm10": 41.2, "avg_aqi": 70.5, "avg_no2": 7.8, "avg_o3": 162.4}, {"date": "2025-04-13", "avg_pm25": 18.7, "avg_pm10": 23.7, "avg_aqi": 56.7, "avg_no2": 7.7, "avg_o3": 110.7}, {"date": "2025-04-14", "avg_pm25": 17.9, "avg_pm10": 24.5, "avg_aqi": 41.2, "avg_no2": 6.2, "avg_o3": 90.7}, {"date": "2025-04-15", "avg_pm25": 19.4, "avg_pm10": 31.6, "avg_aqi": 40.4, "avg_no2": 4.9, "avg_o3": 85.5}, {"date": "2025-04-16", "avg_pm25": 19.1, "avg_pm10": 35.4, "avg_aqi": 37.8, "avg_no2": 4.2, "avg_o3": 77.0}, {"date": "2025-04-17", "avg_pm25": 21.0, "avg_pm10": 36.7, "avg_aqi": 42.5, "avg_no2": 4.5, "avg_o3": 75.2}, {"date": "2025-04-18", "avg_pm25": 19.7, "avg_pm10": 29.5, "avg_aqi": 45.7, "avg_no2": 4.7, "avg_o3": 92.3}, {"date": "2025-04-19", "avg_pm25": 25.6, "avg_pm10": 35.3, "avg_aqi": 52.5, "avg_no2": 6.1, "avg_o3": 104.7}, {"date": "2025-04-20", "avg_pm25": 25.1, "avg_pm10": 34.8, "avg_aqi": 61.4, "avg_no2": 5.3, "avg_o3": 106.0}, {"date": "2025-04-21", "avg_pm25": 21.6, "avg_pm10": 32.0, "avg_aqi": 55.0, "avg_no2": 4.6, "avg_o3": 95.4}, {"date": "2025-04-22", "avg_pm25": 17.6, "avg_pm10": 25.9, "avg_aqi": 43.8, "avg_no2": 5.2, "avg_o3": 92.2}, {"date": "2025-04-23", "avg_pm25": 13.2, "avg_pm10": 18.0, "avg_aqi": 41.7, "avg_no2": 5.4, "avg_o3": 98.0}, {"date": "2025-04-24", "avg_pm25": 15.2, "avg_pm10": 20.8, "avg_aqi": 38.2, "avg_no2": 4.8, "avg_o3": 91.4}, {"date": "2025-04-25", "avg_pm25": 16.2, "avg_pm10": 22.6, "avg_aqi": 36.7, "avg_no2": 4.1, "avg_o3": 88.8}, {"date": "2025-04-26", "avg_pm25": 13.5, "avg_pm10": 18.2, "avg_aqi": 38.5, "avg_no2": 4.2, "avg_o3": 94.7}, {"date": "2025-04-27", "avg_pm25": 10.2, "avg_pm10": 14.0, "avg_aqi": 30.2, "avg_no2": 4.4, "avg_o3": 75.4}, {"date": "2025-04-28", "avg_pm25": 7.8, "avg_pm10": 10.9, "avg_aqi": 25.6, "avg_no2": 5.1, "avg_o3": 64.2}, {"date": "2025-04-29", "avg_pm25": 7.1, "avg_pm10": 9.8, "avg_aqi": 27.1, "avg_no2": 4.3, "avg_o3": 68.0}, {"date": "2025-04-30", "avg_pm25": 13.0, "avg_pm10": 16.8, "avg_aqi": 38.8, "avg_no2": 4.9, "avg_o3": 92.0}, {"date": "2025-05-01", "avg_pm25": 15.3, "avg_pm10": 20.9, "avg_aqi": 37.9, "avg_no2": 6.6, "avg_o3": 83.2}, {"date": "2025-05-02", "avg_pm25": 13.8, "avg_pm10": 20.9, "avg_aqi": 33.5, "avg_no2": 4.7, "avg_o3": 66.9}, {"date": "2025-05-03", "avg_pm25": 13.4, "avg_pm10": 20.2, "avg_aqi": 37.6, "avg_no2": 6.2, "avg_o3": 83.0}, {"date": "2025-05-04", "avg_pm25": 12.0, "avg_pm10": 17.9, "avg_aqi": 37.6, "avg_no2": 5.0, "avg_o3": 87.4}, {"date": "2025-05-05", "avg_pm25": 23.5, "avg_pm10": 29.8, "avg_aqi": 52.6, "avg_no2": 6.5, "avg_o3": 129.8}, {"date": "2025-05-06", "avg_pm25": 18.7, "avg_pm10": 24.2, "avg_aqi": 56.8, "avg_no2": 5.6, "avg_o3": 122.2}, {"date": "2025-05-07", "avg_pm25": 23.0, "avg_pm10": 28.8, "avg_aqi": 50.8, "avg_no2": 6.1, "avg_o3": 112.7}, {"date": "2025-05-08", "avg_pm25": 25.6, "avg_pm10": 32.0, "avg_aqi": 60.8, "avg_no2": 7.9, "avg_o3": 137.2}, {"date": "2025-05-09", "avg_pm25": 21.9, "avg_pm10": 29.1, "avg_aqi": 62.2, "avg_no2": 8.1, "avg_o3": 136.8}, {"date": "2025-05-10", "avg_pm25": 25.6, "avg_pm10": 31.1, "avg_aqi": 57.6, "avg_no2": 6.3, "avg_o3": 128.2}, {"date": "2025-05-11", "avg_pm25": 29.0, "avg_pm10": 37.0, "avg_aqi": 63.7, "avg_no2": 6.6, "avg_o3": 126.1}, {"date": "2025-05-12", "avg_pm25": 29.5, "avg_pm10": 36.9, "avg_aqi": 66.8, "avg_no2": 8.1, "avg_o3": 136.0}, {"date": "2025-05-13", "avg_pm25": 33.1, "avg_pm10": 41.0, "avg_aqi": 67.2, "avg_no2": 8.2, "avg_o3": 138.2}, {"date": "2025-05-14", "avg_pm25": 22.3, "avg_pm10": 28.0, "avg_aqi": 62.1, "avg_no2": 6.4, "avg_o3": 118.1}, {"date": "2025-05-15", "avg_pm25": 27.5, "avg_pm10": 32.1, "avg_aqi": 59.2, "avg_no2": 7.0, "avg_o3": 123.8}, {"date": "2025-05-16", "avg_pm25": 28.8, "avg_pm10": 31.9, "avg_aqi": 64.8, "avg_no2": 6.2, "avg_o3": 136.6}, {"date": "2025-05-17", "avg_pm25": 36.8, "avg_pm10": 38.4, "avg_aqi": 65.5, "avg_no2": 10.4, "avg_o3": 133.4}, {"date": "2025-05-18", "avg_pm25": 26.3, "avg_pm10": 28.2, "avg_aqi": 68.5, "avg_no2": 10.2, "avg_o3": 104.3}, {"date": "2025-05-19", "avg_pm25": 7.2, "avg_pm10": 8.1, "avg_aqi": 31.6, "avg_no2": 11.3, "avg_o3": 53.8}, {"date": "2025-05-20", "avg_pm25": 20.6, "avg_pm10": 21.1, "avg_aqi": 46.2, "avg_no2": 14.2, "avg_o3": 116.5}, {"date": "2025-05-21", "avg_pm25": 18.2, "avg_pm10": 19.4, "avg_aqi": 52.0, "avg_no2": 14.6, "avg_o3": 104.0}, {"date": "2025-05-22", "avg_pm25": 21.7, "avg_pm10": 37.0, "avg_aqi": 47.1, "avg_no2": 13.7, "avg_o3": 100.2}, {"date": "2025-05-23", "avg_pm25": 25.1, "avg_pm10": 46.2, "avg_aqi": 58.5, "avg_no2": 9.4, "avg_o3": 111.8}, {"date": "2025-05-24", "avg_pm25": 14.5, "avg_pm10": 18.3, "avg_aqi": 46.0, "avg_no2": 14.4, "avg_o3": 75.7}, {"date": "2025-05-25", "avg_pm25": 11.3, "avg_pm10": 13.1, "avg_aqi": 31.4, "avg_no2": 14.1, "avg_o3": 60.8}, {"date": "2025-05-26", "avg_pm25": 10.4, "avg_pm10": 11.3, "avg_aqi": 28.6, "avg_no2": 13.0, "avg_o3": 63.5}, {"date": "2025-05-27", "avg_pm25": 8.8, "avg_pm10": 9.9, "avg_aqi": 28.3, "avg_no2": 12.1, "avg_o3": 67.2}, {"date": "2025-05-28", "avg_pm25": 8.6, "avg_pm10": 10.2, "avg_aqi": 25.9, "avg_no2": 13.7, "avg_o3": 61.5}, {"date": "2025-05-29", "avg_pm25": 9.2, "avg_pm10": 10.2, "avg_aqi": 28.8, "avg_no2": 10.8, "avg_o3": 69.6}, {"date": "2025-05-30", "avg_pm25": 15.5, "avg_pm10": 22.1, "avg_aqi": 32.5, "avg_no2": 15.6, "avg_o3": 67.2}, {"date": "2025-05-31", "avg_pm25": 21.7, "avg_pm10": 38.6, "avg_aqi": 42.6, "avg_no2": 16.2, "avg_o3": 80.4}, {"date": "2025-06-01", "avg_pm25": 23.2, "avg_pm10": 38.5, "avg_aqi": 58.9, "avg_no2": 14.2, "avg_o3": 95.9}, {"date": "2025-06-02", "avg_pm25": 22.1, "avg_pm10": 32.7, "avg_aqi": 52.6, "avg_no2": 11.4, "avg_o3": 96.5}, {"date": "2025-06-03", "avg_pm25": 17.3, "avg_pm10": 24.0, "avg_aqi": 49.7, "avg_no2": 10.9, "avg_o3": 93.6}, {"date": "2025-06-04", "avg_pm25": 17.5, "avg_pm10": 26.3, "avg_aqi": 45.7, "avg_no2": 9.4, "avg_o3": 102.8}, {"date": "2025-06-05", "avg_pm25": 21.5, "avg_pm10": 45.5, "avg_aqi": 43.8, "avg_no2": 8.1, "avg_o3": 92.7}, {"date": "2025-06-06", "avg_pm25": 27.1, "avg_pm10": 52.2, "avg_aqi": 61.0, "avg_no2": 7.0, "avg_o3": 110.0}, {"date": "2025-06-07", "avg_pm25": 31.9, "avg_pm10": 58.3, "avg_aqi": 64.3, "avg_no2": 11.8, "avg_o3": 112.2}, {"date": "2025-06-08", "avg_pm25": 27.5, "avg_pm10": 39.4, "avg_aqi": 66.0, "avg_no2": 12.3, "avg_o3": 119.3}, {"date": "2025-06-09", "avg_pm25": 21.8, "avg_pm10": 28.8, "avg_aqi": 59.5, "avg_no2": 13.2, "avg_o3": 107.0}, {"date": "2025-06-10", "avg_pm25": 23.7, "avg_pm10": 33.6, "avg_aqi": 51.8, "avg_no2": 13.7, "avg_o3": 102.0}, {"date": "2025-06-11", "avg_pm25": 33.1, "avg_pm10": 53.2, "avg_aqi": 62.1, "avg_no2": 16.1, "avg_o3": 100.6}, {"date": "2025-06-12", "avg_pm25": 24.3, "avg_pm10": 33.8, "avg_aqi": 65.0, "avg_no2": 11.5, "avg_o3": 108.7}, {"date": "2025-06-13", "avg_pm25": 18.6, "avg_pm10": 22.4, "avg_aqi": 53.9, "avg_no2": 10.6, "avg_o3": 99.2}, {"date": "2025-06-14", "avg_pm25": 13.3, "avg_pm10": 14.9, "avg_aqi": 39.4, "avg_no2": 11.7, "avg_o3": 80.2}, {"date": "2025-06-15", "avg_pm25": 11.2, "avg_pm10": 12.6, "avg_aqi": 33.0, "avg_no2": 10.9, "avg_o3": 70.3}, {"date": "2025-06-16", "avg_pm25": 11.6, "avg_pm10": 13.7, "avg_aqi": 29.9, "avg_no2": 13.2, "avg_o3": 66.5}, {"date": "2025-06-17", "avg_pm25": 12.0, "avg_pm10": 13.9, "avg_aqi": 34.5, "avg_no2": 14.2, "avg_o3": 73.4}, {"date": "2025-06-18", "avg_pm25": 12.6, "avg_pm10": 16.7, "avg_aqi": 33.9, "avg_no2": 10.7, "avg_o3": 76.1}, {"date": "2025-06-19", "avg_pm25": 12.9, "avg_pm10": 17.3, "avg_aqi": 36.1, "avg_no2": 10.5, "avg_o3": 77.8}, {"date": "2025-06-20", "avg_pm25": 15.2, "avg_pm10": 22.9, "avg_aqi": 39.0, "avg_no2": 10.1, "avg_o3": 86.1}, {"date": "2025-06-21", "avg_pm25": 17.9, "avg_pm10": 28.4, "avg_aqi": 40.0, "avg_no2": 12.6, "avg_o3": 82.5}, {"date": "2025-06-22", "avg_pm25": 13.4, "avg_pm10": 19.3, "avg_aqi": 34.9, "avg_no2": 13.8, "avg_o3": 63.6}, {"date": "2025-06-23", "avg_pm25": 9.3, "avg_pm10": 12.0, "avg_aqi": 25.7, "avg_no2": 13.8, "avg_o3": 53.8}, {"date": "2025-06-24", "avg_pm25": 12.7, "avg_pm10": 18.2, "avg_aqi": 26.1, "avg_no2": 15.3, "avg_o3": 53.3}, {"date": "2025-06-25", "avg_pm25": 12.1, "avg_pm10": 18.7, "avg_aqi": 27.2, "avg_no2": 13.1, "avg_o3": 52.8}, {"date": "2025-06-26", "avg_pm25": 15.0, "avg_pm10": 22.0, "avg_aqi": 33.5, "avg_no2": 12.0, "avg_o3": 67.1}, {"date": "2025-06-27", "avg_pm25": 13.9, "avg_pm10": 22.6, "avg_aqi": 35.8, "avg_no2": 9.8, "avg_o3": 72.3}, {"date": "2025-06-28", "avg_pm25": 14.5, "avg_pm10": 23.1, "avg_aqi": 37.7, "avg_no2": 10.0, "avg_o3": 77.9}, {"date": "2025-06-29", "avg_pm25": 14.3, "avg_pm10": 24.8, "avg_aqi": 36.2, "avg_no2": 9.0, "avg_o3": 77.2}, {"date": "2025-06-30", "avg_pm25": 16.9, "avg_pm10": 33.3, "avg_aqi": 35.6, "avg_no2": 14.3, "avg_o3": 64.4}, {"date": "2025-07-01", "avg_pm25": 18.4, "avg_pm10": 34.1, "avg_aqi": 38.0, "avg_no2": 16.1, "avg_o3": 61.8}, {"date": "2025-07-02", "avg_pm25": 13.3, "avg_pm10": 20.1, "avg_aqi": 34.9, "avg_no2": 13.5, "avg_o3": 63.8}, {"date": "2025-07-03", "avg_pm25": 12.8, "avg_pm10": 17.1, "avg_aqi": 26.8, "avg_no2": 16.8, "avg_o3": 52.0}, {"date": "2025-07-04", "avg_pm25": 15.7, "avg_pm10": 23.9, "avg_aqi": 34.4, "avg_no2": 14.3, "avg_o3": 65.1}, {"date": "2025-07-05", "avg_pm25": 12.1, "avg_pm10": 17.8, "avg_aqi": 33.7, "avg_no2": 14.1, "avg_o3": 61.3}, {"date": "2025-07-06", "avg_pm25": 9.6, "avg_pm10": 16.4, "avg_aqi": 29.1, "avg_no2": 12.2, "avg_o3": 61.6}, {"date": "2025-07-07", "avg_pm25": 13.6, "avg_pm10": 27.4, "avg_aqi": 28.7, "avg_no2": 12.8, "avg_o3": 62.8}, {"date": "2025-07-08", "avg_pm25": 16.2, "avg_pm10": 31.8, "avg_aqi": 36.5, "avg_no2": 10.9, "avg_o3": 72.1}, {"date": "2025-07-09", "avg_pm25": 25.2, "avg_pm10": 51.6, "avg_aqi": 53.9, "avg_no2": 14.4, "avg_o3": 72.7}, {"date": "2025-07-10", "avg_pm25": 15.7, "avg_pm10": 30.0, "avg_aqi": 44.8, "avg_no2": 10.2, "avg_o3": 70.3}, {"date": "2025-07-11", "avg_pm25": 15.8, "avg_pm10": 28.1, "avg_aqi": 38.2, "avg_no2": 8.3, "avg_o3": 80.9}, {"date": "2025-07-12", "avg_pm25": 12.4, "avg_pm10": 19.0, "avg_aqi": 37.9, "avg_no2": 12.2, "avg_o3": 72.4}, {"date": "2025-07-13", "avg_pm25": 16.0, "avg_pm10": 25.5, "avg_aqi": 36.6, "avg_no2": 11.7, "avg_o3": 76.1}, {"date": "2025-07-14", "avg_pm25": 16.1, "avg_pm10": 27.9, "avg_aqi": 38.0, "avg_no2": 12.0, "avg_o3": 73.0}, {"date": "2025-07-15", "avg_pm25": 12.4, "avg_pm10": 17.7, "avg_aqi": 33.5, "avg_no2": 12.2, "avg_o3": 64.2}, {"date": "2025-07-16", "avg_pm25": 13.5, "avg_pm10": 19.0, "avg_aqi": 34.5, "avg_no2": 11.6, "avg_o3": 74.0}, {"date": "2025-07-17", "avg_pm25": 12.7, "avg_pm10": 16.7, "avg_aqi": 35.7, "avg_no2": 10.5, "avg_o3": 76.7}, {"date": "2025-07-18", "avg_pm25": 13.6, "avg_pm10": 16.7, "avg_aqi": 37.2, "avg_no2": 12.2, "avg_o3": 80.2}, {"date": "2025-07-19", "avg_pm25": 13.8, "avg_pm10": 16.5, "avg_aqi": 34.1, "avg_no2": 14.6, "avg_o3": 66.5}, {"date": "2025-07-20", "avg_pm25": 10.3, "avg_pm10": 13.9, "avg_aqi": 27.7, "avg_no2": 15.7, "avg_o3": 54.0}, {"date": "2025-07-21", "avg_pm25": 10.1, "avg_pm10": 12.7, "avg_aqi": 23.3, "avg_no2": 16.5, "avg_o3": 48.7}, {"date": "2025-07-22", "avg_pm25": 9.5, "avg_pm10": 12.6, "avg_aqi": 28.6, "avg_no2": 12.2, "avg_o3": 65.5}, {"date": "2025-07-23", "avg_pm25": 9.7, "avg_pm10": 10.8, "avg_aqi": 24.4, "avg_no2": 13.7, "avg_o3": 58.5}, {"date": "2025-07-24", "avg_pm25": 10.0, "avg_pm10": 11.2, "avg_aqi": 24.6, "avg_no2": 16.1, "avg_o3": 53.4}, {"date": "2025-07-25", "avg_pm25": 10.9, "avg_pm10": 14.1, "avg_aqi": 25.5, "avg_no2": 13.6, "avg_o3": 54.5}, {"date": "2025-07-26", "avg_pm25": 12.1, "avg_pm10": 19.8, "avg_aqi": 26.1, "avg_no2": 11.2, "avg_o3": 56.1}, {"date": "2025-07-27", "avg_pm25": 11.0, "avg_pm10": 16.3, "avg_aqi": 27.5, "avg_no2": 14.6, "avg_o3": 54.1}, {"date": "2025-07-28", "avg_pm25": 14.0, "avg_pm10": 23.1, "avg_aqi": 30.6, "avg_no2": 12.8, "avg_o3": 59.4}, {"date": "2025-07-29", "avg_pm25": 11.2, "avg_pm10": 20.6, "avg_aqi": 27.8, "avg_no2": 12.5, "avg_o3": 51.8}, {"date": "2025-07-30", "avg_pm25": 13.8, "avg_pm10": 24.4, "avg_aqi": 31.5, "avg_no2": 10.7, "avg_o3": 69.6}, {"date": "2025-07-31", "avg_pm25": 23.4, "avg_pm10": 46.9, "avg_aqi": 43.1, "avg_no2": 12.7, "avg_o3": 76.5}, {"date": "2025-08-01", "avg_pm25": 26.7, "avg_pm10": 48.4, "avg_aqi": 59.8, "avg_no2": 9.0, "avg_o3": 105.5}, {"date": "2025-08-02", "avg_pm25": 27.2, "avg_pm10": 52.3, "avg_aqi": 62.3, "avg_no2": 7.6, "avg_o3": 103.3}, {"date": "2025-08-03", "avg_pm25": 25.6, "avg_pm10": 39.3, "avg_aqi": 60.6, "avg_no2": 9.5, "avg_o3": 107.0}, {"date": "2025-08-04", "avg_pm25": 23.4, "avg_pm10": 31.9, "avg_aqi": 59.3, "avg_no2": 11.9, "avg_o3": 90.5}, {"date": "2025-08-05", "avg_pm25": 24.6, "avg_pm10": 31.0, "avg_aqi": 59.7, "avg_no2": 10.6, "avg_o3": 110.0}, {"date": "2025-08-06", "avg_pm25": 21.7, "avg_pm10": 25.1, "avg_aqi": 57.8, "avg_no2": 11.1, "avg_o3": 116.2}, {"date": "2025-08-07", "avg_pm25": 16.9, "avg_pm10": 18.7, "avg_aqi": 48.5, "avg_no2": 10.4, "avg_o3": 109.3}, {"date": "2025-08-08", "avg_pm25": 15.3, "avg_pm10": 16.0, "avg_aqi": 46.0, "avg_no2": 10.6, "avg_o3": 104.9}, {"date": "2025-08-09", "avg_pm25": 20.3, "avg_pm10": 21.1, "avg_aqi": 44.5, "avg_no2": 14.5, "avg_o3": 101.4}, {"date": "2025-08-10", "avg_pm25": 21.0, "avg_pm10": 23.4, "avg_aqi": 51.2, "avg_no2": 13.6, "avg_o3": 92.0}, {"date": "2025-08-11", "avg_pm25": 14.9, "avg_pm10": 19.2, "avg_aqi": 36.7, "avg_no2": 16.0, "avg_o3": 60.1}, {"date": "2025-08-12", "avg_pm25": 13.0, "avg_pm10": 17.3, "avg_aqi": 30.4, "avg_no2": 16.4, "avg_o3": 46.0}, {"date": "2025-08-13", "avg_pm25": 11.0, "avg_pm10": 13.0, "avg_aqi": 23.7, "avg_no2": 16.8, "avg_o3": 37.4}, {"date": "2025-08-14", "avg_pm25": 15.8, "avg_pm10": 17.5, "avg_aqi": 35.7, "avg_no2": 15.6, "avg_o3": 73.1}, {"date": "2025-08-15", "avg_pm25": 16.3, "avg_pm10": 18.7, "avg_aqi": 38.7, "avg_no2": 14.0, "avg_o3": 72.6}, {"date": "2025-08-16", "avg_pm25": 12.6, "avg_pm10": 16.7, "avg_aqi": 29.8, "avg_no2": 15.8, "avg_o3": 48.5}, {"date": "2025-08-17", "avg_pm25": 13.0, "avg_pm10": 15.9, "avg_aqi": 27.6, "avg_no2": 20.1, "avg_o3": 41.3}, {"date": "2025-08-18", "avg_pm25": 10.0, "avg_pm10": 11.3, "avg_aqi": 26.2, "avg_no2": 15.5, "avg_o3": 50.8}, {"date": "2025-08-19", "avg_pm25": 13.4, "avg_pm10": 17.2, "avg_aqi": 28.0, "avg_no2": 15.5, "avg_o3": 55.1}, {"date": "2025-08-20", "avg_pm25": 16.0, "avg_pm10": 20.6, "avg_aqi": 37.8, "avg_no2": 14.2, "avg_o3": 76.6}, {"date": "2025-08-21", "avg_pm25": 19.6, "avg_pm10": 28.0, "avg_aqi": 42.8, "avg_no2": 13.3, "avg_o3": 83.2}, {"date": "2025-08-22", "avg_pm25": 20.4, "avg_pm10": 27.1, "avg_aqi": 45.9, "avg_no2": 10.2, "avg_o3": 97.2}, {"date": "2025-08-23", "avg_pm25": 16.7, "avg_pm10": 24.1, "avg_aqi": 41.7, "avg_no2": 13.2, "avg_o3": 78.8}, {"date": "2025-08-24", "avg_pm25": 20.4, "avg_pm10": 26.2, "avg_aqi": 50.8, "avg_no2": 11.4, "avg_o3": 110.0}, {"date": "2025-08-25", "avg_pm25": 19.1, "avg_pm10": 23.1, "avg_aqi": 44.8, "avg_no2": 11.7, "avg_o3": 100.6}, {"date": "2025-08-26", "avg_pm25": 24.6, "avg_pm10": 28.5, "avg_aqi": 49.5, "avg_no2": 19.4, "avg_o3": 100.9}, {"date": "2025-08-27", "avg_pm25": 12.0, "avg_pm10": 13.2, "avg_aqi": 45.5, "avg_no2": 20.1, "avg_o3": 44.5}, {"date": "2025-08-28", "avg_pm25": 12.9, "avg_pm10": 14.4, "avg_aqi": 27.5, "avg_no2": 12.3, "avg_o3": 65.8}, {"date": "2025-08-29", "avg_pm25": 12.6, "avg_pm10": 14.5, "avg_aqi": 34.7, "avg_no2": 11.6, "avg_o3": 73.4}, {"date": "2025-08-30", "avg_pm25": 15.2, "avg_pm10": 18.6, "avg_aqi": 39.5, "avg_no2": 13.8, "avg_o3": 87.7}, {"date": "2025-08-31", "avg_pm25": 18.6, "avg_pm10": 26.2, "avg_aqi": 36.3, "avg_no2": 15.8, "avg_o3": 65.0}, {"date": "2025-09-01", "avg_pm25": 14.9, "avg_pm10": 21.8, "avg_aqi": 33.2, "avg_no2": 18.8, "avg_o3": 48.2}, {"date": "2025-09-02", "avg_pm25": 14.7, "avg_pm10": 23.4, "avg_aqi": 31.9, "avg_no2": 15.9, "avg_o3": 53.0}, {"date": "2025-09-03", "avg_pm25": 11.9, "avg_pm10": 16.7, "avg_aqi": 32.6, "avg_no2": 12.4, "avg_o3": 64.0}, {"date": "2025-09-04", "avg_pm25": 16.6, "avg_pm10": 22.1, "avg_aqi": 34.7, "avg_no2": 13.4, "avg_o3": 77.8}, {"date": "2025-09-05", "avg_pm25": 19.0, "avg_pm10": 27.0, "avg_aqi": 47.6, "avg_no2": 11.6, "avg_o3": 97.1}, {"date": "2025-09-06", "avg_pm25": 24.3, "avg_pm10": 34.1, "avg_aqi": 52.0, "avg_no2": 8.6, "avg_o3": 118.7}, {"date": "2025-09-07", "avg_pm25": 22.1, "avg_pm10": 28.4, "avg_aqi": 59.8, "avg_no2": 8.6, "avg_o3": 116.5}, {"date": "2025-09-08", "avg_pm25": 20.4, "avg_pm10": 25.9, "avg_aqi": 53.0, "avg_no2": 9.9, "avg_o3": 102.0}, {"date": "2025-09-09", "avg_pm25": 22.6, "avg_pm10": 26.8, "avg_aqi": 50.4, "avg_no2": 8.6, "avg_o3": 111.0}, {"date": "2025-09-10", "avg_pm25": 18.5, "avg_pm10": 20.8, "avg_aqi": 52.0, "avg_no2": 8.9, "avg_o3": 111.0}, {"date": "2025-09-11", "avg_pm25": 17.2, "avg_pm10": 18.3, "avg_aqi": 43.9, "avg_no2": 14.0, "avg_o3": 99.2}, {"date": "2025-09-12", "avg_pm25": 24.1, "avg_pm10": 26.2, "avg_aqi": 47.7, "avg_no2": 17.6, "avg_o3": 89.7}, {"date": "2025-09-13", "avg_pm25": 28.4, "avg_pm10": 32.2, "avg_aqi": 61.5, "avg_no2": 19.6, "avg_o3": 98.0}, {"date": "2025-09-14", "avg_pm25": 26.5, "avg_pm10": 33.3, "avg_aqi": 62.6, "avg_no2": 8.9, "avg_o3": 113.7}, {"date": "2025-09-15", "avg_pm25": 24.7, "avg_pm10": 30.2, "avg_aqi": 63.5, "avg_no2": 8.3, "avg_o3": 132.7}, {"date": "2025-09-16", "avg_pm25": 18.6, "avg_pm10": 22.2, "avg_aqi": 52.9, "avg_no2": 11.0, "avg_o3": 102.6}, {"date": "2025-09-17", "avg_pm25": 15.3, "avg_pm10": 17.5, "avg_aqi": 42.9, "avg_no2": 9.7, "avg_o3": 94.5}, {"date": "2025-09-18", "avg_pm25": 19.6, "avg_pm10": 20.4, "avg_aqi": 47.2, "avg_no2": 11.3, "avg_o3": 109.0}, {"date": "2025-09-19", "avg_pm25": 15.5, "avg_pm10": 16.8, "avg_aqi": 42.5, "avg_no2": 12.7, "avg_o3": 83.4}, {"date": "2025-09-20", "avg_pm25": 13.7, "avg_pm10": 17.4, "avg_aqi": 34.7, "avg_no2": 16.3, "avg_o3": 67.6}, {"date": "2025-09-21", "avg_pm25": 16.0, "avg_pm10": 21.0, "avg_aqi": 37.7, "avg_no2": 15.7, "avg_o3": 77.8}, {"date": "2025-09-22", "avg_pm25": 14.4, "avg_pm10": 17.9, "avg_aqi": 38.4, "avg_no2": 13.1, "avg_o3": 83.5}, {"date": "2025-09-23", "avg_pm25": 12.0, "avg_pm10": 14.1, "avg_aqi": 30.6, "avg_no2": 11.9, "avg_o3": 61.8}, {"date": "2025-09-24", "avg_pm25": 12.1, "avg_pm10": 14.6, "avg_aqi": 27.4, "avg_no2": 14.3, "avg_o3": 52.5}, {"date": "2025-09-25", "avg_pm25": 14.2, "avg_pm10": 16.7, "avg_aqi": 35.1, "avg_no2": 13.4, "avg_o3": 70.0}, {"date": "2025-09-26", "avg_pm25": 11.2, "avg_pm10": 12.6, "avg_aqi": 29.2, "avg_no2": 15.4, "avg_o3": 54.6}, {"date": "2025-09-27", "avg_pm25": 12.4, "avg_pm10": 13.7, "avg_aqi": 32.1, "avg_no2": 14.0, "avg_o3": 59.2}, {"date": "2025-09-28", "avg_pm25": 15.2, "avg_pm10": 17.9, "avg_aqi": 35.7, "avg_no2": 13.5, "avg_o3": 71.2}, {"date": "2025-09-29", "avg_pm25": 15.3, "avg_pm10": 19.9, "avg_aqi": 34.2, "avg_no2": 16.5, "avg_o3": 64.2}, {"date": "2025-09-30", "avg_pm25": 21.8, "avg_pm10": 33.4, "avg_aqi": 38.5, "avg_no2": 22.4, "avg_o3": 54.4}, {"date": "2025-10-01", "avg_pm25": 17.6, "avg_pm10": 22.8, "avg_aqi": 45.2, "avg_no2": 25.2, "avg_o3": 38.5}, {"date": "2025-10-02", "avg_pm25": 18.1, "avg_pm10": 21.8, "avg_aqi": 41.8, "avg_no2": 17.6, "avg_o3": 84.5}, {"date": "2025-10-03", "avg_pm25": 17.6, "avg_pm10": 21.8, "avg_aqi": 41.4, "avg_no2": 13.6, "avg_o3": 81.4}, {"date": "2025-10-04", "avg_pm25": 15.4, "avg_pm10": 17.5, "avg_aqi": 44.1, "avg_no2": 12.4, "avg_o3": 98.8}, {"date": "2025-10-05", "avg_pm25": 19.9, "avg_pm10": 22.8, "avg_aqi": 45.3, "avg_no2": 15.9, "avg_o3": 98.6}, {"date": "2025-10-06", "avg_pm25": 19.5, "avg_pm10": 21.3, "avg_aqi": 52.9, "avg_no2": 12.1, "avg_o3": 113.3}, {"date": "2025-10-07", "avg_pm25": 19.7, "avg_pm10": 22.9, "avg_aqi": 49.6, "avg_no2": 12.0, "avg_o3": 119.7}, {"date": "2025-10-08", "avg_pm25": 22.3, "avg_pm10": 25.6, "avg_aqi": 53.8, "avg_no2": 10.8, "avg_o3": 112.0}, {"date": "2025-10-09", "avg_pm25": 22.8, "avg_pm10": 25.4, "avg_aqi": 52.9, "avg_no2": 10.6, "avg_o3": 113.4}, {"date": "2025-10-10", "avg_pm25": 21.9, "avg_pm10": 26.0, "avg_aqi": 54.3, "avg_no2": 11.7, "avg_o3": 94.6}, {"date": "2025-10-11", "avg_pm25": 28.6, "avg_pm10": 31.5, "avg_aqi": 60.1, "avg_no2": 11.8, "avg_o3": 119.2}, {"date": "2025-10-12", "avg_pm25": 18.8, "avg_pm10": 20.2, "avg_aqi": 51.2, "avg_no2": 12.3, "avg_o3": 93.3}, {"date": "2025-10-13", "avg_pm25": 13.8, "avg_pm10": 14.8, "avg_aqi": 42.0, "avg_no2": 9.6, "avg_o3": 95.6}, {"date": "2025-10-14", "avg_pm25": 9.5, "avg_pm10": 12.1, "avg_aqi": 23.7, "avg_no2": 5.5, "avg_o3": 53.7}, {"date": "2025-10-15", "avg_pm25": 4.7, "avg_pm10": 6.1, "avg_aqi": 17.2, "avg_no2": 4.9, "avg_o3": 41.5}, {"date": "2025-10-16", "avg_pm25": 5.0, "avg_pm10": 6.7, "avg_aqi": 16.9, "avg_no2": 4.7, "avg_o3": 42.1}, {"date": "2025-10-17", "avg_pm25": 4.3, "avg_pm10": 5.6, "avg_aqi": 11.3, "avg_no2": 5.2, "avg_o3": 28.5}, {"date": "2025-10-18", "avg_pm25": 6.1, "avg_pm10": 7.8, "avg_aqi": 12.7, "avg_no2": 6.0, "avg_o3": 31.9}, {"date": "2025-10-19", "avg_pm25": 6.7, "avg_pm10": 8.2, "avg_aqi": 16.1, "avg_no2": 7.2, "avg_o3": 39.6}, {"date": "2025-10-20", "avg_pm25": 5.5, "avg_pm10": 7.4, "avg_aqi": 17.0, "avg_no2": 5.2, "avg_o3": 42.5}, {"date": "2025-10-21", "avg_pm25": 4.7, "avg_pm10": 6.7, "avg_aqi": 22.9, "avg_no2": 3.9, "avg_o3": 57.4}, {"date": "2025-10-22", "avg_pm25": 5.8, "avg_pm10": 8.0, "avg_aqi": 21.7, "avg_no2": 6.0, "avg_o3": 54.5}, {"date": "2025-10-23", "avg_pm25": 18.7, "avg_pm10": 19.9, "avg_aqi": 31.4, "avg_no2": 15.1, "avg_o3": 76.6}, {"date": "2025-10-24", "avg_pm25": 20.4, "avg_pm10": 20.6, "avg_aqi": 48.2, "avg_no2": 21.3, "avg_o3": 61.7}, {"date": "2025-10-25", "avg_pm25": 12.1, "avg_pm10": 12.8, "avg_aqi": 36.0, "avg_no2": 16.7, "avg_o3": 61.9}, {"date": "2025-10-26", "avg_pm25": 7.8, "avg_pm10": 9.7, "avg_aqi": 25.2, "avg_no2": 8.2, "avg_o3": 63.3}, {"date": "2025-10-27", "avg_pm25": 8.0, "avg_pm10": 8.7, "avg_aqi": 26.3, "avg_no2": 10.6, "avg_o3": 65.7}, {"date": "2025-10-28", "avg_pm25": 10.8, "avg_pm10": 11.0, "avg_aqi": 19.0, "avg_no2": 14.4, "avg_o3": 45.2}, {"date": "2025-10-29", "avg_pm25": 15.7, "avg_pm10": 17.6, "avg_aqi": 40.0, "avg_no2": 11.0, "avg_o3": 86.3}, {"date": "2025-10-30", "avg_pm25": 17.6, "avg_pm10": 20.4, "avg_aqi": 41.9, "avg_no2": 9.7, "avg_o3": 93.4}, {"date": "2025-10-31", "avg_pm25": 20.5, "avg_pm10": 24.5, "avg_aqi": 49.7, "avg_no2": 11.8, "avg_o3": 108.2}, {"date": "2025-11-01", "avg_pm25": 23.6, "avg_pm10": 27.6, "avg_aqi": 55.1, "avg_no2": 11.1, "avg_o3": 115.0}, {"date": "2025-11-02", "avg_pm25": 27.7, "avg_pm10": 30.3, "avg_aqi": 58.9, "avg_no2": 13.5, "avg_o3": 125.7}, {"date": "2025-11-03", "avg_pm25": 36.8, "avg_pm10": 38.5, "avg_aqi": 67.5, "avg_no2": 19.7, "avg_o3": 119.1}, {"date": "2025-11-04", "avg_pm25": 23.8, "avg_pm10": 24.5, "avg_aqi": 63.8, "avg_no2": 15.5, "avg_o3": 98.2}, {"date": "2025-11-05", "avg_pm25": 20.8, "avg_pm10": 21.0, "avg_aqi": 53.3, "avg_no2": 10.3, "avg_o3": 98.5}, {"date": "2025-11-06", "avg_pm25": 13.8, "avg_pm10": 14.1, "avg_aqi": 42.5, "avg_no2": 10.4, "avg_o3": 95.4}, {"date": "2025-11-07", "avg_pm25": 26.9, "avg_pm10": 27.9, "avg_aqi": 47.2, "avg_no2": 13.4, "avg_o3": 101.5}, {"date": "2025-11-08", "avg_pm25": 37.3, "avg_pm10": 39.5, "avg_aqi": 66.5, "avg_no2": 9.5, "avg_o3": 117.8}, {"date": "2025-11-09", "avg_pm25": 45.6, "avg_pm10": 48.9, "avg_aqi": 74.4, "avg_no2": 5.6, "avg_o3": 127.8}, {"date": "2025-11-10", "avg_pm25": 42.1, "avg_pm10": 45.3, "avg_aqi": 72.2, "avg_no2": 5.6, "avg_o3": 132.0}, {"date": "2025-11-11", "avg_pm25": 44.8, "avg_pm10": 49.4, "avg_aqi": 76.1, "avg_no2": 4.7, "avg_o3": 119.7}, {"date": "2025-11-12", "avg_pm25": 39.8, "avg_pm10": 45.0, "avg_aqi": 75.3, "avg_no2": 4.8, "avg_o3": 117.4}, {"date": "2025-11-13", "avg_pm25": 40.3, "avg_pm10": 45.4, "avg_aqi": 71.0, "avg_no2": 4.9, "avg_o3": 126.5}, {"date": "2025-11-14", "avg_pm25": 38.9, "avg_pm10": 47.1, "avg_aqi": 71.3, "avg_no2": 3.8, "avg_o3": 127.8}, {"date": "2025-11-15", "avg_pm25": 44.4, "avg_pm10": 53.5, "avg_aqi": 72.9, "avg_no2": 4.4, "avg_o3": 117.9}, {"date": "2025-11-16", "avg_pm25": 42.5, "avg_pm10": 50.3, "avg_aqi": 75.4, "avg_no2": 3.1, "avg_o3": 124.8}, {"date": "2025-11-17", "avg_pm25": 28.6, "avg_pm10": 33.1, "avg_aqi": 70.7, "avg_no2": 4.1, "avg_o3": 117.8}, {"date": "2025-11-18", "avg_pm25": 12.4, "avg_pm10": 15.9, "avg_aqi": 41.0, "avg_no2": 4.1, "avg_o3": 89.5}, {"date": "2025-11-19", "avg_pm25": 22.3, "avg_pm10": 26.6, "avg_aqi": 48.6, "avg_no2": 3.6, "avg_o3": 111.5}, {"date": "2025-11-20", "avg_pm25": 15.5, "avg_pm10": 19.4, "avg_aqi": 45.6, "avg_no2": 3.8, "avg_o3": 102.7}, {"date": "2025-11-21", "avg_pm25": 5.5, "avg_pm10": 8.0, "avg_aqi": 26.5, "avg_no2": 3.8, "avg_o3": 65.8}, {"date": "2025-11-22", "avg_pm25": 7.0, "avg_pm10": 10.2, "avg_aqi": 28.7, "avg_no2": 3.8, "avg_o3": 71.5}, {"date": "2025-11-23", "avg_pm25": 7.9, "avg_pm10": 11.4, "avg_aqi": 29.0, "avg_no2": 3.8, "avg_o3": 72.6}, {"date": "2025-11-24", "avg_pm25": 24.0, "avg_pm10": 29.7, "avg_aqi": 40.6, "avg_no2": 4.4, "avg_o3": 97.4}, {"date": "2025-11-25", "avg_pm25": 36.1, "avg_pm10": 42.5, "avg_aqi": 65.9, "avg_no2": 3.2, "avg_o3": 123.8}, {"date": "2025-11-26", "avg_pm25": 42.5, "avg_pm10": 49.9, "avg_aqi": 71.5, "avg_no2": 3.4, "avg_o3": 119.3}, {"date": "2025-11-27", "avg_pm25": 43.9, "avg_pm10": 49.8, "avg_aqi": 74.5, "avg_no2": 2.8, "avg_o3": 133.1}, {"date": "2025-11-28", "avg_pm25": 30.2, "avg_pm10": 35.4, "avg_aqi": 70.8, "avg_no2": 2.9, "avg_o3": 123.0}, {"date": "2025-11-29", "avg_pm25": 8.6, "avg_pm10": 12.5, "avg_aqi": 46.3, "avg_no2": 2.8, "avg_o3": 92.8}, {"date": "2025-11-30", "avg_pm25": 6.8, "avg_pm10": 9.5, "avg_aqi": 36.8, "avg_no2": 2.6, "avg_o3": 91.7}, {"date": "2025-12-01", "avg_pm25": 8.1, "avg_pm10": 10.0, "avg_aqi": 37.6, "avg_no2": 2.9, "avg_o3": 94.0}, {"date": "2025-12-02", "avg_pm25": 9.2, "avg_pm10": 12.1, "avg_aqi": 37.4, "avg_no2": 3.1, "avg_o3": 93.4}, {"date": "2025-12-03", "avg_pm25": 10.9, "avg_pm10": 13.0, "avg_aqi": 35.0, "avg_no2": 6.2, "avg_o3": 87.4}, {"date": "2025-12-04", "avg_pm25": 10.8, "avg_pm10": 13.5, "avg_aqi": 29.0, "avg_no2": 5.0, "avg_o3": 72.1}, {"date": "2025-12-05", "avg_pm25": 44.3, "avg_pm10": 49.2, "avg_aqi": 57.6, "avg_no2": 3.0, "avg_o3": 120.1}, {"date": "2025-12-06", "avg_pm25": 45.9, "avg_pm10": 50.6, "avg_aqi": 79.4, "avg_no2": 3.4, "avg_o3": 113.8}, {"date": "2025-12-07", "avg_pm25": 40.2, "avg_pm10": 45.3, "avg_aqi": 73.7, "avg_no2": 3.5, "avg_o3": 116.2}, {"date": "2025-12-08", "avg_pm25": 34.4, "avg_pm10": 39.6, "avg_aqi": 68.4, "avg_no2": 3.2, "avg_o3": 124.7}, {"date": "2025-12-09", "avg_pm25": 36.8, "avg_pm10": 42.4, "avg_aqi": 69.0, "avg_no2": 3.1, "avg_o3": 136.9}, {"date": "2025-12-10", "avg_pm25": 54.4, "avg_pm10": 61.8, "avg_aqi": 74.8, "avg_no2": 3.4, "avg_o3": 136.6}, {"date": "2025-12-11", "avg_pm25": 59.4, "avg_pm10": 66.4, "avg_aqi": 89.0, "avg_no2": 3.4, "avg_o3": 141.2}, {"date": "2025-12-12", "avg_pm25": 41.8, "avg_pm10": 48.1, "avg_aqi": 79.5, "avg_no2": 3.9, "avg_o3": 136.5}, {"date": "2025-12-13", "avg_pm25": 30.2, "avg_pm10": 36.5, "avg_aqi": 69.0, "avg_no2": 4.6, "avg_o3": 123.6}, {"date": "2025-12-14", "avg_pm25": 34.0, "avg_pm10": 40.2, "avg_aqi": 64.2, "avg_no2": 4.8, "avg_o3": 123.7}, {"date": "2025-12-15", "avg_pm25": 47.3, "avg_pm10": 54.5, "avg_aqi": 72.0, "avg_no2": 4.2, "avg_o3": 127.4}, {"date": "2025-12-16", "avg_pm25": 19.1, "avg_pm10": 24.4, "avg_aqi": 70.4, "avg_no2": 3.2, "avg_o3": 89.4}, {"date": "2025-12-17", "avg_pm25": 18.8, "avg_pm10": 23.6, "avg_aqi": 41.7, "avg_no2": 2.9, "avg_o3": 97.9}, {"date": "2025-12-18", "avg_pm25": 48.1, "avg_pm10": 54.2, "avg_aqi": 67.5, "avg_no2": 4.3, "avg_o3": 126.8}, {"date": "2025-12-19", "avg_pm25": 56.7, "avg_pm10": 61.8, "avg_aqi": 83.0, "avg_no2": 6.5, "avg_o3": 124.7}, {"date": "2025-12-20", "avg_pm25": 73.5, "avg_pm10": 80.6, "avg_aqi": 90.5, "avg_no2": 8.4, "avg_o3": 117.5}, {"date": "2025-12-21", "avg_pm25": 53.0, "avg_pm10": 61.4, "avg_aqi": 96.6, "avg_no2": 6.1, "avg_o3": 110.4}, {"date": "2025-12-22", "avg_pm25": 27.0, "avg_pm10": 33.3, "avg_aqi": 67.1, "avg_no2": 5.5, "avg_o3": 89.5}, {"date": "2025-12-23", "avg_pm25": 38.1, "avg_pm10": 42.6, "avg_aqi": 65.9, "avg_no2": 5.0, "avg_o3": 106.0}, {"date": "2025-12-24", "avg_pm25": 34.8, "avg_pm10": 39.5, "avg_aqi": 71.2, "avg_no2": 5.4, "avg_o3": 99.9}, {"date": "2025-12-25", "avg_pm25": 31.4, "avg_pm10": 36.1, "avg_aqi": 66.2, "avg_no2": 4.9, "avg_o3": 103.6}, {"date": "2025-12-26", "avg_pm25": 37.1, "avg_pm10": 41.9, "avg_aqi": 66.0, "avg_no2": 4.3, "avg_o3": 115.8}, {"date": "2025-12-27", "avg_pm25": 33.0, "avg_pm10": 37.4, "avg_aqi": 69.4, "avg_no2": 4.7, "avg_o3": 111.5}, {"date": "2025-12-28", "avg_pm25": 42.6, "avg_pm10": 46.0, "avg_aqi": 68.0, "avg_no2": 5.1, "avg_o3": 113.0}, {"date": "2025-12-29", "avg_pm25": 50.5, "avg_pm10": 54.3, "avg_aqi": 79.0, "avg_no2": 4.6, "avg_o3": 116.4}, {"date": "2025-12-30", "avg_pm25": 54.5, "avg_pm10": 58.2, "avg_aqi": 80.5, "avg_no2": 5.2, "avg_o3": 109.8}, {"date": "2025-12-31", "avg_pm25": 36.4, "avg_pm10": 39.8, "avg_aqi": 78.6, "avg_no2": 4.9, "avg_o3": 101.0}, {"date": "2026-01-01", "avg_pm25": 41.0, "avg_pm10": 45.7, "avg_aqi": 68.2, "avg_no2": 6.3, "avg_o3": 105.0}, {"date": "2026-01-02", "avg_pm25": 51.1, "avg_pm10": 55.5, "avg_aqi": 77.7, "avg_no2": 4.9, "avg_o3": 123.1}, {"date": "2026-01-03", "avg_pm25": 41.2, "avg_pm10": 46.2, "avg_aqi": 79.0, "avg_no2": 4.3, "avg_o3": 135.8}, {"date": "2026-01-04", "avg_pm25": 34.6, "avg_pm10": 40.0, "avg_aqi": 69.0, "avg_no2": 4.8, "avg_o3": 115.0}, {"date": "2026-01-05", "avg_pm25": 43.7, "avg_pm10": 49.1, "avg_aqi": 69.3, "avg_no2": 3.9, "avg_o3": 111.9}, {"date": "2026-01-06", "avg_pm25": 49.5, "avg_pm10": 53.6, "avg_aqi": 79.2, "avg_no2": 3.3, "avg_o3": 119.6}, {"date": "2026-01-07", "avg_pm25": 51.1, "avg_pm10": 59.0, "avg_aqi": 81.2, "avg_no2": 3.1, "avg_o3": 120.2}, {"date": "2026-01-08", "avg_pm25": 29.1, "avg_pm10": 35.1, "avg_aqi": 72.3, "avg_no2": 2.8, "avg_o3": 112.0}, {"date": "2026-01-09", "avg_pm25": 24.9, "avg_pm10": 31.4, "avg_aqi": 60.5, "avg_no2": 2.9, "avg_o3": 117.4}, {"date": "2026-01-10", "avg_pm25": 24.0, "avg_pm10": 28.7, "avg_aqi": 59.7, "avg_no2": 2.8, "avg_o3": 130.7}, {"date": "2026-01-11", "avg_pm25": 18.3, "avg_pm10": 22.7, "avg_aqi": 52.6, "avg_no2": 3.6, "avg_o3": 118.2}, {"date": "2026-01-12", "avg_pm25": 25.5, "avg_pm10": 31.3, "avg_aqi": 56.8, "avg_no2": 3.6, "avg_o3": 117.8}, {"date": "2026-01-13", "avg_pm25": 24.8, "avg_pm10": 29.9, "avg_aqi": 61.1, "avg_no2": 4.3, "avg_o3": 118.4}, {"date": "2026-01-14", "avg_pm25": 26.1, "avg_pm10": 30.4, "avg_aqi": 55.5, "avg_no2": 7.5, "avg_o3": 110.5}, {"date": "2026-01-15", "avg_pm25": 37.9, "avg_pm10": 41.0, "avg_aqi": 66.3, "avg_no2": 10.0, "avg_o3": 113.5}, {"date": "2026-01-16", "avg_pm25": 41.8, "avg_pm10": 44.9, "avg_aqi": 71.0, "avg_no2": 8.0, "avg_o3": 116.8}, {"date": "2026-01-17", "avg_pm25": 54.1, "avg_pm10": 57.6, "avg_aqi": 79.9, "avg_no2": 8.0, "avg_o3": 117.4}, {"date": "2026-01-18", "avg_pm25": 47.7, "avg_pm10": 50.8, "avg_aqi": 81.5, "avg_no2": 10.2, "avg_o3": 115.8}, {"date": "2026-01-19", "avg_pm25": 41.2, "avg_pm10": 44.4, "avg_aqi": 74.3, "avg_no2": 10.6, "avg_o3": 118.5}, {"date": "2026-01-20", "avg_pm25": 45.2, "avg_pm10": 48.5, "avg_aqi": 74.0, "avg_no2": 8.4, "avg_o3": 123.4}, {"date": "2026-01-21", "avg_pm25": 26.7, "avg_pm10": 32.1, "avg_aqi": 71.0, "avg_no2": 5.3, "avg_o3": 98.8}, {"date": "2026-01-22", "avg_pm25": 27.7, "avg_pm10": 33.1, "avg_aqi": 54.8, "avg_no2": 5.0, "avg_o3": 101.8}, {"date": "2026-01-23", "avg_pm25": 38.6, "avg_pm10": 43.8, "avg_aqi": 66.3, "avg_no2": 4.2, "avg_o3": 124.4}, {"date": "2026-01-24", "avg_pm25": 34.6, "avg_pm10": 39.5, "avg_aqi": 71.6, "avg_no2": 3.7, "avg_o3": 109.9}, {"date": "2026-01-25", "avg_pm25": 26.1, "avg_pm10": 30.7, "avg_aqi": 62.8, "avg_no2": 6.4, "avg_o3": 99.2}, {"date": "2026-01-26", "avg_pm25": 19.6, "avg_pm10": 24.6, "avg_aqi": 52.4, "avg_no2": 5.0, "avg_o3": 95.9}, {"date": "2026-01-27", "avg_pm25": 47.8, "avg_pm10": 54.9, "avg_aqi": 63.7, "avg_no2": 5.9, "avg_o3": 118.4}, {"date": "2026-01-28", "avg_pm25": 51.5, "avg_pm10": 57.2, "avg_aqi": 82.7, "avg_no2": 7.2, "avg_o3": 115.9}, {"date": "2026-01-29", "avg_pm25": 51.8, "avg_pm10": 59.0, "avg_aqi": 79.4, "avg_no2": 5.8, "avg_o3": 110.8}, {"date": "2026-01-30", "avg_pm25": 33.6, "avg_pm10": 42.0, "avg_aqi": 76.5, "avg_no2": 4.9, "avg_o3": 99.3}, {"date": "2026-01-31", "avg_pm25": 16.0, "avg_pm10": 22.2, "avg_aqi": 48.5, "avg_no2": 4.7, "avg_o3": 87.3}, {"date": "2026-02-01", "avg_pm25": 42.0, "avg_pm10": 47.8, "avg_aqi": 60.6, "avg_no2": 4.2, "avg_o3": 112.4}, {"date": "2026-02-02", "avg_pm25": 56.1, "avg_pm10": 61.4, "avg_aqi": 79.3, "avg_no2": 4.7, "avg_o3": 126.8}, {"date": "2026-02-03", "avg_pm25": 25.9, "avg_pm10": 31.2, "avg_aqi": 76.8, "avg_no2": 4.8, "avg_o3": 104.5}, {"date": "2026-02-04", "avg_pm25": 15.5, "avg_pm10": 19.5, "avg_aqi": 39.9, "avg_no2": 4.3, "avg_o3": 91.0}, {"date": "2026-02-05", "avg_pm25": 15.4, "avg_pm10": 19.1, "avg_aqi": 35.5, "avg_no2": 4.6, "avg_o3": 88.7}, {"date": "2026-02-06", "avg_pm25": 23.0, "avg_pm10": 27.3, "avg_aqi": 40.7, "avg_no2": 5.3, "avg_o3": 92.9}, {"date": "2026-02-07", "avg_pm25": 34.3, "avg_pm10": 38.6, "avg_aqi": 62.1, "avg_no2": 6.9, "avg_o3": 89.9}, {"date": "2026-02-08", "avg_pm25": 44.6, "avg_pm10": 47.6, "avg_aqi": 72.9, "avg_no2": 10.7, "avg_o3": 101.6}, {"date": "2026-02-09", "avg_pm25": 37.0, "avg_pm10": 39.9, "avg_aqi": 72.2, "avg_no2": 6.9, "avg_o3": 118.2}, {"date": "2026-02-10", "avg_pm25": 30.2, "avg_pm10": 37.1, "avg_aqi": 67.6, "avg_no2": 5.8, "avg_o3": 127.0}, {"date": "2026-02-11", "avg_pm25": 29.7, "avg_pm10": 39.7, "avg_aqi": 64.0, "avg_no2": 5.4, "avg_o3": 113.8}, {"date": "2026-02-12", "avg_pm25": 24.1, "avg_pm10": 29.8, "avg_aqi": 61.1, "avg_no2": 4.5, "avg_o3": 107.1}, {"date": "2026-02-13", "avg_pm25": 23.8, "avg_pm10": 28.4, "avg_aqi": 53.3, "avg_no2": 4.1, "avg_o3": 99.5}, {"date": "2026-02-14", "avg_pm25": 34.2, "avg_pm10": 39.7, "avg_aqi": 61.4, "avg_no2": 6.4, "avg_o3": 118.0}, {"date": "2026-02-15", "avg_pm25": 52.1, "avg_pm10": 56.8, "avg_aqi": 75.6, "avg_no2": 8.8, "avg_o3": 124.0}, {"date": "2026-02-16", "avg_pm25": 54.5, "avg_pm10": 59.1, "avg_aqi": 83.1, "avg_no2": 8.2, "avg_o3": 128.0}, {"date": "2026-02-17", "avg_pm25": 36.5, "avg_pm10": 40.4, "avg_aqi": 77.2, "avg_no2": 6.1, "avg_o3": 122.8}, {"date": "2026-02-18", "avg_pm25": 32.3, "avg_pm10": 38.3, "avg_aqi": 66.6, "avg_no2": 6.2, "avg_o3": 115.0}, {"date": "2026-02-19", "avg_pm25": 24.3, "avg_pm10": 30.4, "avg_aqi": 63.7, "avg_no2": 5.1, "avg_o3": 112.8}, {"date": "2026-02-20", "avg_pm25": 29.5, "avg_pm10": 35.2, "avg_aqi": 56.6, "avg_no2": 3.9, "avg_o3": 111.1}, {"date": "2026-02-21", "avg_pm25": 24.5, "avg_pm10": 29.2, "avg_aqi": 63.1, "avg_no2": 3.7, "avg_o3": 103.5}, {"date": "2026-02-22", "avg_pm25": 14.5, "avg_pm10": 17.9, "avg_aqi": 41.6, "avg_no2": 3.8, "avg_o3": 69.3}, {"date": "2026-02-23", "avg_pm25": 7.4, "avg_pm10": 9.8, "avg_aqi": 23.8, "avg_no2": 4.9, "avg_o3": 55.7}, {"date": "2026-02-24", "avg_pm25": 11.0, "avg_pm10": 14.0, "avg_aqi": 26.3, "avg_no2": 4.5, "avg_o3": 65.8}, {"date": "2026-02-25", "avg_pm25": 17.0, "avg_pm10": 20.0, "avg_aqi": 28.9, "avg_no2": 6.8, "avg_o3": 68.7}, {"date": "2026-02-26", "avg_pm25": 31.6, "avg_pm10": 33.9, "avg_aqi": 53.2, "avg_no2": 12.3, "avg_o3": 90.4}, {"date": "2026-02-27", "avg_pm25": 39.2, "avg_pm10": 42.1, "avg_aqi": 68.9, "avg_no2": 9.6, "avg_o3": 98.9}, {"date": "2026-02-28", "avg_pm25": 53.6, "avg_pm10": 57.7, "avg_aqi": 75.5, "avg_no2": 8.2, "avg_o3": 98.2}, {"date": "2026-03-01", "avg_pm25": 50.3, "avg_pm10": 54.5, "avg_aqi": 83.2, "avg_no2": 7.8, "avg_o3": 98.8}, {"date": "2026-03-02", "avg_pm25": 45.1, "avg_pm10": 49.5, "avg_aqi": 78.6, "avg_no2": 9.7, "avg_o3": 105.5}, {"date": "2026-03-03", "avg_pm25": 41.6, "avg_pm10": 46.4, "avg_aqi": 74.0, "avg_no2": 11.6, "avg_o3": 110.0}, {"date": "2026-03-04", "avg_pm25": 36.2, "avg_pm10": 40.8, "avg_aqi": 71.8, "avg_no2": 11.7, "avg_o3": 89.6}, {"date": "2026-03-05", "avg_pm25": 30.6, "avg_pm10": 34.5, "avg_aqi": 67.5, "avg_no2": 11.9, "avg_o3": 81.7}, {"date": "2026-03-06", "avg_pm25": 26.9, "avg_pm10": 30.7, "avg_aqi": 60.1, "avg_no2": 9.8, "avg_o3": 89.1}, {"date": "2026-03-07", "avg_pm25": 29.7, "avg_pm10": 37.0, "avg_aqi": 64.7, "avg_no2": 6.6, "avg_o3": 84.3}, {"date": "2026-03-08", "avg_pm25": 23.2, "avg_pm10": 33.1, "avg_aqi": 59.4, "avg_no2": 5.8, "avg_o3": 72.0}, {"date": "2026-03-09", "avg_pm25": 33.1, "avg_pm10": 45.5, "avg_aqi": 59.8, "avg_no2": 6.6, "avg_o3": 84.5}, {"date": "2026-03-10", "avg_pm25": 23.9, "avg_pm10": 30.9, "avg_aqi": 64.9, "avg_no2": 7.1, "avg_o3": 70.7}, {"date": "2026-03-11", "avg_pm25": 20.7, "avg_pm10": 25.4, "avg_aqi": 44.1, "avg_no2": 8.1, "avg_o3": 69.2}, {"date": "2026-03-12", "avg_pm25": 24.4, "avg_pm10": 28.7, "avg_aqi": 52.5, "avg_no2": 8.7, "avg_o3": 70.8}, {"date": "2026-03-13", "avg_pm25": 16.8, "avg_pm10": 21.2, "avg_aqi": 43.4, "avg_no2": 7.6, "avg_o3": 62.9}, {"date": "2026-03-14", "avg_pm25": 12.7, "avg_pm10": 16.2, "avg_aqi": 30.9, "avg_no2": 6.5, "avg_o3": 64.9}, {"date": "2026-03-15", "avg_pm25": 10.0, "avg_pm10": 13.1, "avg_aqi": 26.4, "avg_no2": 6.3, "avg_o3": 63.5}, {"date": "2026-03-16", "avg_pm25": 8.5, "avg_pm10": 11.3, "avg_aqi": 27.3, "avg_no2": 6.1, "avg_o3": 67.8}, {"date": "2026-03-17", "avg_pm25": 8.5, "avg_pm10": 11.7, "avg_aqi": 27.4, "avg_no2": 5.3, "avg_o3": 68.3}, {"date": "2026-03-18", "avg_pm25": 8.5, "avg_pm10": 11.8, "avg_aqi": 22.1, "avg_no2": 6.3, "avg_o3": 55.5}, {"date": "2026-03-19", "avg_pm25": 8.2, "avg_pm10": 10.6, "avg_aqi": 29.5, "avg_no2": 7.2, "avg_o3": 73.6}]}
|
data/dataset_meta.json
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"built_at": "2026-03-21T19:41:52.965783",
|
| 3 |
+
"location": "Chennai, India (13.08N, 80.27E)",
|
| 4 |
+
"data_sources": [
|
| 5 |
+
"Open-Meteo Archive",
|
| 6 |
+
"USGS Earthquake API",
|
| 7 |
+
"Open-Meteo AQI"
|
| 8 |
+
],
|
| 9 |
+
"weather": {
|
| 10 |
+
"period": "2021-03-15 to 2026-03-14",
|
| 11 |
+
"total_days": 1826,
|
| 12 |
+
"avg_temp_max_c": 31.9,
|
| 13 |
+
"max_temp_ever_c": 41.0,
|
| 14 |
+
"min_temp_ever_c": 24.0,
|
| 15 |
+
"avg_daily_precip_mm": 4.44,
|
| 16 |
+
"max_single_day_rain": 255.8,
|
| 17 |
+
"avg_wind_kmh": 18.1,
|
| 18 |
+
"max_wind_kmh": 53.1,
|
| 19 |
+
"monthly_total_precip_mm": {
|
| 20 |
+
"1": 230.4,
|
| 21 |
+
"2": 19.2,
|
| 22 |
+
"3": 71.4,
|
| 23 |
+
"4": 73.8,
|
| 24 |
+
"5": 520.2,
|
| 25 |
+
"6": 343.6,
|
| 26 |
+
"7": 620.1,
|
| 27 |
+
"8": 866.0,
|
| 28 |
+
"9": 745.7,
|
| 29 |
+
"10": 1257.4,
|
| 30 |
+
"11": 2133.6,
|
| 31 |
+
"12": 1231.7
|
| 32 |
+
},
|
| 33 |
+
"yearly_summary": {
|
| 34 |
+
"2021": {
|
| 35 |
+
"avg_temp_max": 32.0,
|
| 36 |
+
"total_precip_mm": 1626.3
|
| 37 |
+
},
|
| 38 |
+
"2022": {
|
| 39 |
+
"avg_temp_max": 31.3,
|
| 40 |
+
"total_precip_mm": 1441.4
|
| 41 |
+
},
|
| 42 |
+
"2023": {
|
| 43 |
+
"avg_temp_max": 32.0,
|
| 44 |
+
"total_precip_mm": 1625.2
|
| 45 |
+
},
|
| 46 |
+
"2024": {
|
| 47 |
+
"avg_temp_max": 32.2,
|
| 48 |
+
"total_precip_mm": 1610.5
|
| 49 |
+
},
|
| 50 |
+
"2025": {
|
| 51 |
+
"avg_temp_max": 32.4,
|
| 52 |
+
"total_precip_mm": 1699.8
|
| 53 |
+
},
|
| 54 |
+
"2026": {
|
| 55 |
+
"avg_temp_max": 29.2,
|
| 56 |
+
"total_precip_mm": 109.9
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"peak_monsoon_months": "June-November (Northeast monsoon dominant Oct-Dec)",
|
| 60 |
+
"heatwave_season": "March-June (temps frequently exceed 38C)",
|
| 61 |
+
"cyclone_peak_season": "October-December (Bay of Bengal cyclogenesis)"
|
| 62 |
+
},
|
| 63 |
+
"earthquakes": {
|
| 64 |
+
"total_events_5yr": 23,
|
| 65 |
+
"avg_magnitude": 4.58,
|
| 66 |
+
"max_magnitude": 5.1,
|
| 67 |
+
"region": "Bay of Bengal / South India (~1000km radius from Chennai)",
|
| 68 |
+
"risk_note": "Chennai on stable Deccan shield. Major risk from Bay of Bengal subduction zone."
|
| 69 |
+
},
|
| 70 |
+
"aqi": {
|
| 71 |
+
"total_days": 0,
|
| 72 |
+
"avg_aqi": null,
|
| 73 |
+
"max_aqi": null,
|
| 74 |
+
"context": "Typically moderate (50-100). Winter spikes (Nov-Jan) from crop burning and low wind."
|
| 75 |
+
},
|
| 76 |
+
"notable_events": [
|
| 77 |
+
{
|
| 78 |
+
"event": "Cyclone Michaung",
|
| 79 |
+
"date": "December 2023",
|
| 80 |
+
"impact": "Category 1 landfall, severe Chennai flooding, 2500mm rain in 48hr"
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"event": "2015 Chennai Floods",
|
| 84 |
+
"date": "November-December 2015",
|
| 85 |
+
"impact": "Worst flooding in 100 years, 500+ deaths, $3B damage"
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"event": "2004 Indian Ocean Tsunami",
|
| 89 |
+
"date": "December 26 2004",
|
| 90 |
+
"impact": "Mag 9.1 Sumatra earthquake, Chennai coastline devastated"
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"event": "Cyclone Vardah",
|
| 94 |
+
"date": "December 2016",
|
| 95 |
+
"impact": "Direct hit Chennai, 100+ km/h winds, widespread damage"
|
| 96 |
+
},
|
| 97 |
+
{
|
| 98 |
+
"event": "Cyclone Nivar",
|
| 99 |
+
"date": "November 2020",
|
| 100 |
+
"impact": "Very severe cyclone, landfall near Puducherry, heavy Chennai rain"
|
| 101 |
+
}
|
| 102 |
+
],
|
| 103 |
+
"climate_patterns": {
|
| 104 |
+
"type": "Tropical wet and dry (Koppen Aw)",
|
| 105 |
+
"annual_rainfall_mm": "~1400mm avg, 60% from Northeast monsoon Oct-Dec",
|
| 106 |
+
"sea_surface_temp": "Bay of Bengal 28-30C peak Jun-Oct (cyclone fuel)",
|
| 107 |
+
"urban_heat_island": "UHI adds +1.5 to 2.5C vs rural",
|
| 108 |
+
"warming_trend": "Max temps rising ~0.3C per decade since 1980",
|
| 109 |
+
"flood_risk_zones": "Adyar, Cooum, Buckingham Canal flood plains highest risk"
|
| 110 |
+
}
|
| 111 |
+
}
|
data/earthquake_history.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"region": "Bay of Bengal / South India", "period_start": "2021-03-22", "period_end": "2026-03-21", "total_events": 23, "events": [{"id": "us7000s0pc", "time": "2026-02-27T07:52:25Z", "magnitude": 5, "place": "23 km SSE of S\u0101tkhira, Bangladesh", "longitude": 89.1853, "latitude": 22.5236, "depth_km": 10}, {"id": "us6000pv8n", "time": "2025-02-25T00:40:20Z", "magnitude": 5.1, "place": "224 km ESE of Par\u0101d\u012bp Garh, India", "longitude": 88.4613, "latitude": 19.2977, "depth_km": 10}, {"id": "us7000nvs3", "time": "2024-12-04T01:56:58Z", "magnitude": 5, "place": "49 km NE of Mulugu, India", "longitude": 80.3296, "latitude": 18.4471, "depth_km": 10}, {"id": "us7000nvp4", "time": "2024-11-17T18:39:54Z", "magnitude": 4.5, "place": "North Indian Ocean", "longitude": 88.6924, "latitude": 3.2614, "depth_km": 10}, {"id": "us7000ns0n", "time": "2024-10-29T03:52:27Z", "magnitude": 4.3, "place": "Bay of Bengal", "longitude": 88.4428, "latitude": 11.1211, "depth_km": 10}, {"id": "us7000nmel", "time": "2024-09-30T08:06:58Z", "magnitude": 4.4, "place": "22 km NNW of Anjangaon, India", "longitude": 77.2016, "latitude": 21.343, "depth_km": 10}, {"id": "us7000nguk", "time": "2024-09-23T19:03:59Z", "magnitude": 4.2, "place": "173 km SSE of Gos\u0101ba, India", "longitude": 89.4934, "latitude": 20.7407, "depth_km": 10}, {"id": "us7000my69", "time": "2024-07-10T01:44:52Z", "magnitude": 4.4, "place": "18 km NE of Basmat, India", "longitude": 77.2915, "latitude": 19.4402, "depth_km": 10}, {"id": "us7000mq2i", "time": "2024-05-27T15:26:45Z", "magnitude": 4.6, "place": "293 km W of Kulhudhuffushi, Maldives", "longitude": 70.4316, "latitude": 6.3587, "depth_km": 10}, {"id": "us7000mcym", "time": "2024-04-10T18:45:49Z", "magnitude": 4.6, "place": "66 km SSE of Kavaratti, India", "longitude": 72.9404, "latitude": 10.0467, "depth_km": 10}, {"id": "us6000mk51", "time": "2024-03-21T00:38:31Z", "magnitude": 4.6, "place": "20 km NNE of Basmat, India", "longitude": 77.2545, "latitude": 19.4899, "depth_km": 10}, {"id": "us7000l76c", "time": "2023-10-28T11:09:16Z", "magnitude": 4.7, "place": "Bay of Bengal", "longitude": 88.2129, "latitude": 6.5874, "depth_km": 10.014}, {"id": "us6000lbpm", "time": "2023-09-25T04:07:55Z", "magnitude": 4.4, "place": "Bay of Bengal", "longitude": 88.5466, "latitude": 7.6226, "depth_km": 10}, {"id": "us6000j86n", "time": "2022-12-06T19:54:42Z", "magnitude": 4.5, "place": "North Indian Ocean", "longitude": 89.8244, "latitude": 5.5405, "depth_km": 10}, {"id": "us6000j6yh", "time": "2022-12-05T03:02:58Z", "magnitude": 4.9, "place": "Bay of Bengal", "longitude": 89.8755, "latitude": 19.1042, "depth_km": 45.293}, {"id": "us6000i21t", "time": "2022-07-13T07:48:10Z", "magnitude": 4.8, "place": "Bay of Bengal", "longitude": 85.9923, "latitude": 7.0288, "depth_km": 10}, {"id": "us6000i13p", "time": "2022-07-09T00:52:02Z", "magnitude": 4.5, "place": "Karnataka, India", "longitude": 75.7188, "latitude": 16.9254, "depth_km": 10}, {"id": "us7000gfxf", "time": "2022-01-22T08:46:23Z", "magnitude": 4.2, "place": "132 km SE of Narasannapeta, India", "longitude": 84.9267, "latitude": 17.562, "depth_km": 10}, {"id": "us6000fuwm", "time": "2021-10-11T16:24:38Z", "magnitude": 4.3, "place": "7 km ENE of Sh?h?b?d, India", "longitude": 77.0051, "latitude": 17.1543, "depth_km": 10}, {"id": "us7000ff7l", "time": "2021-09-23T19:48:30Z", "magnitude": 4.5, "place": "Laccadive Sea", "longitude": 78.943, "latitude": 5.5906, "depth_km": 10}, {"id": "us7000f2x8", "time": "2021-08-24T07:05:53Z", "magnitude": 5.1, "place": "257 km SSE of R?zole, India", "longitude": 83.0456, "latitude": 14.4654, "depth_km": 10}, {"id": "us7000ef8p", "time": "2021-06-17T11:14:32Z", "magnitude": 4.6, "place": "Bay of Bengal", "longitude": 85.0001, "latitude": 6.592, "depth_km": 10}, {"id": "us7000e51v", "time": "2021-05-16T22:07:22Z", "magnitude": 4.1, "place": "41 km S of R?jula, India", "longitude": 71.4793, "latitude": 20.6607, "depth_km": 10}]}
|
data/flood_baseline.json
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"location": "Chennai",
|
| 3 |
+
"baselines": {}
|
| 4 |
+
}
|
data/llm_context.json
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"built_at": "2026-03-21T19:42:53.519462",
|
| 3 |
+
"location": "Chennai, India (13.08N, 80.27E)",
|
| 4 |
+
"data_sources": [
|
| 5 |
+
"Open-Meteo Archive",
|
| 6 |
+
"USGS Earthquake API",
|
| 7 |
+
"Open-Meteo AQI"
|
| 8 |
+
],
|
| 9 |
+
"weather": {
|
| 10 |
+
"period": "2021-03-15 to 2026-03-14",
|
| 11 |
+
"total_days": 1826,
|
| 12 |
+
"avg_temp_max_c": 31.9,
|
| 13 |
+
"max_temp_ever_c": 41.0,
|
| 14 |
+
"min_temp_ever_c": 24.0,
|
| 15 |
+
"avg_daily_precip_mm": 4.44,
|
| 16 |
+
"max_single_day_rain": 255.8,
|
| 17 |
+
"avg_wind_kmh": 18.1,
|
| 18 |
+
"max_wind_kmh": 53.1,
|
| 19 |
+
"monthly_total_precip_mm": {
|
| 20 |
+
"1": 230.4,
|
| 21 |
+
"2": 19.2,
|
| 22 |
+
"3": 71.4,
|
| 23 |
+
"4": 73.8,
|
| 24 |
+
"5": 520.2,
|
| 25 |
+
"6": 343.6,
|
| 26 |
+
"7": 620.1,
|
| 27 |
+
"8": 866.0,
|
| 28 |
+
"9": 745.7,
|
| 29 |
+
"10": 1257.4,
|
| 30 |
+
"11": 2133.6,
|
| 31 |
+
"12": 1231.7
|
| 32 |
+
},
|
| 33 |
+
"yearly_summary": {
|
| 34 |
+
"2021": {
|
| 35 |
+
"avg_temp_max": 32.0,
|
| 36 |
+
"total_precip_mm": 1626.3
|
| 37 |
+
},
|
| 38 |
+
"2022": {
|
| 39 |
+
"avg_temp_max": 31.3,
|
| 40 |
+
"total_precip_mm": 1441.4
|
| 41 |
+
},
|
| 42 |
+
"2023": {
|
| 43 |
+
"avg_temp_max": 32.0,
|
| 44 |
+
"total_precip_mm": 1625.2
|
| 45 |
+
},
|
| 46 |
+
"2024": {
|
| 47 |
+
"avg_temp_max": 32.2,
|
| 48 |
+
"total_precip_mm": 1610.5
|
| 49 |
+
},
|
| 50 |
+
"2025": {
|
| 51 |
+
"avg_temp_max": 32.4,
|
| 52 |
+
"total_precip_mm": 1699.8
|
| 53 |
+
},
|
| 54 |
+
"2026": {
|
| 55 |
+
"avg_temp_max": 29.2,
|
| 56 |
+
"total_precip_mm": 109.9
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
"peak_monsoon_months": "June-November (Northeast monsoon dominant Oct-Dec)",
|
| 60 |
+
"heatwave_season": "March-June (temps frequently exceed 38C)",
|
| 61 |
+
"cyclone_peak_season": "October-December (Bay of Bengal cyclogenesis)"
|
| 62 |
+
},
|
| 63 |
+
"earthquakes": {
|
| 64 |
+
"total_events_5yr": 23,
|
| 65 |
+
"avg_magnitude": 4.58,
|
| 66 |
+
"max_magnitude": 5.1,
|
| 67 |
+
"region": "Bay of Bengal / South India (~1000km radius from Chennai)",
|
| 68 |
+
"risk_note": "Chennai on stable Deccan shield. Major risk from Bay of Bengal subduction zone."
|
| 69 |
+
},
|
| 70 |
+
"aqi": {
|
| 71 |
+
"total_days": 366,
|
| 72 |
+
"avg_aqi": 49.2,
|
| 73 |
+
"max_aqi": 96.6,
|
| 74 |
+
"context": "Typically moderate (50-100). Winter spikes (Nov-Jan) from crop burning and low wind."
|
| 75 |
+
},
|
| 76 |
+
"notable_events": [
|
| 77 |
+
{
|
| 78 |
+
"event": "Cyclone Michaung",
|
| 79 |
+
"date": "December 2023",
|
| 80 |
+
"impact": "Category 1 landfall, severe Chennai flooding, 2500mm rain in 48hr"
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"event": "2015 Chennai Floods",
|
| 84 |
+
"date": "November-December 2015",
|
| 85 |
+
"impact": "Worst flooding in 100 years, 500+ deaths, $3B damage"
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"event": "2004 Indian Ocean Tsunami",
|
| 89 |
+
"date": "December 26 2004",
|
| 90 |
+
"impact": "Mag 9.1 Sumatra earthquake, Chennai coastline devastated"
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"event": "Cyclone Vardah",
|
| 94 |
+
"date": "December 2016",
|
| 95 |
+
"impact": "Direct hit Chennai, 100+ km/h winds, widespread damage"
|
| 96 |
+
},
|
| 97 |
+
{
|
| 98 |
+
"event": "Cyclone Nivar",
|
| 99 |
+
"date": "November 2020",
|
| 100 |
+
"impact": "Very severe cyclone, landfall near Puducherry, heavy Chennai rain"
|
| 101 |
+
}
|
| 102 |
+
],
|
| 103 |
+
"climate_patterns": {
|
| 104 |
+
"type": "Tropical wet and dry (Koppen Aw)",
|
| 105 |
+
"annual_rainfall_mm": "~1400mm avg, 60% from Northeast monsoon Oct-Dec",
|
| 106 |
+
"sea_surface_temp": "Bay of Bengal 28-30C peak Jun-Oct (cyclone fuel)",
|
| 107 |
+
"urban_heat_island": "UHI adds +1.5 to 2.5C vs rural",
|
| 108 |
+
"warming_trend": "Max temps rising ~0.3C per decade since 1980",
|
| 109 |
+
"flood_risk_zones": "Adyar, Cooum, Buckingham Canal flood plains highest risk"
|
| 110 |
+
}
|
| 111 |
+
}
|
data/weather_history.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
groq_llm.py
CHANGED
|
@@ -40,7 +40,7 @@ def _load_llm_context() -> dict:
|
|
| 40 |
if age_hours < _CONTEXT_TTL_HOURS:
|
| 41 |
return _context_cache
|
| 42 |
|
| 43 |
-
context_path = "
|
| 44 |
if os.path.exists(context_path):
|
| 45 |
try:
|
| 46 |
with open(context_path) as f:
|
|
|
|
| 40 |
if age_hours < _CONTEXT_TTL_HOURS:
|
| 41 |
return _context_cache
|
| 42 |
|
| 43 |
+
context_path = "llm_context.json"
|
| 44 |
if os.path.exists(context_path):
|
| 45 |
try:
|
| 46 |
with open(context_path) as f:
|
main.py
CHANGED
|
@@ -41,6 +41,20 @@ app.add_middleware(
|
|
| 41 |
expose_headers=["*"],
|
| 42 |
)
|
| 43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
@app.get("/ping")
|
| 45 |
def ping():
|
| 46 |
return {"status": "ok", "time": datetime.now().isoformat(), "version": "3.5-pro"}
|
|
@@ -249,7 +263,7 @@ def fetch_training_data(days: int = 90):
|
|
| 249 |
"""
|
| 250 |
import os as _os
|
| 251 |
import json as _json
|
| 252 |
-
dataset_path = "
|
| 253 |
|
| 254 |
# ββ Try loading from saved dataset first ββββββββββββββββββββββ
|
| 255 |
if _os.path.exists(dataset_path):
|
|
@@ -2123,7 +2137,7 @@ def refresh_dataset():
|
|
| 2123 |
return {
|
| 2124 |
"status": "started",
|
| 2125 |
"message": "Dataset rebuild started in background. Check data/ folder in ~2 minutes.",
|
| 2126 |
-
"files_to_update": ["
|
| 2127 |
}
|
| 2128 |
except Exception as e:
|
| 2129 |
return {"status": "error", "message": str(e)}
|
|
@@ -2134,11 +2148,11 @@ def dataset_status():
|
|
| 2134 |
"""Check which dataset files exist and when they were last updated."""
|
| 2135 |
import os as _os, json as _json
|
| 2136 |
files = {
|
| 2137 |
-
"weather_history": "
|
| 2138 |
-
"earthquake_history": "
|
| 2139 |
-
"aqi_history": "
|
| 2140 |
-
"flood_baseline": "
|
| 2141 |
-
"llm_context": "
|
| 2142 |
}
|
| 2143 |
result = {}
|
| 2144 |
for key, path in files.items():
|
|
|
|
| 41 |
expose_headers=["*"],
|
| 42 |
)
|
| 43 |
|
| 44 |
+
|
| 45 |
+
@app.get("/debug-paths")
|
| 46 |
+
def debug_paths():
|
| 47 |
+
import os as _os
|
| 48 |
+
cwd = _os.getcwd()
|
| 49 |
+
files_in_cwd = _os.listdir(cwd)
|
| 50 |
+
return {
|
| 51 |
+
"cwd": cwd,
|
| 52 |
+
"files_in_cwd": files_in_cwd,
|
| 53 |
+
"weather_history_exists": _os.path.exists("weather_history.json"),
|
| 54 |
+
"data_folder_exists": _os.path.exists("data"),
|
| 55 |
+
"data_files": _os.listdir("data") if _os.path.exists("data") else [],
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
@app.get("/ping")
|
| 59 |
def ping():
|
| 60 |
return {"status": "ok", "time": datetime.now().isoformat(), "version": "3.5-pro"}
|
|
|
|
| 263 |
"""
|
| 264 |
import os as _os
|
| 265 |
import json as _json
|
| 266 |
+
dataset_path = "weather_history.json"
|
| 267 |
|
| 268 |
# ββ Try loading from saved dataset first ββββββββββββββββββββββ
|
| 269 |
if _os.path.exists(dataset_path):
|
|
|
|
| 2137 |
return {
|
| 2138 |
"status": "started",
|
| 2139 |
"message": "Dataset rebuild started in background. Check data/ folder in ~2 minutes.",
|
| 2140 |
+
"files_to_update": ["weather_history.json","earthquake_history.json","aqi_history.json","flood_baseline.json","llm_context.json"],
|
| 2141 |
}
|
| 2142 |
except Exception as e:
|
| 2143 |
return {"status": "error", "message": str(e)}
|
|
|
|
| 2148 |
"""Check which dataset files exist and when they were last updated."""
|
| 2149 |
import os as _os, json as _json
|
| 2150 |
files = {
|
| 2151 |
+
"weather_history": "weather_history.json",
|
| 2152 |
+
"earthquake_history": "earthquake_history.json",
|
| 2153 |
+
"aqi_history": "aqi_history.json",
|
| 2154 |
+
"flood_baseline": "flood_baseline.json",
|
| 2155 |
+
"llm_context": "llm_context.json",
|
| 2156 |
}
|
| 2157 |
result = {}
|
| 2158 |
for key, path in files.items():
|
pyrightconfig.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"pythonVersion": "3.14",
|
| 3 |
+
"pythonPlatform": "Windows",
|
| 4 |
+
"reportMissingModuleSource": false,
|
| 5 |
+
"reportMissingImports": false,
|
| 6 |
+
"reportGeneralTypeIssues": false,
|
| 7 |
+
"reportOptionalMemberAccess": false,
|
| 8 |
+
"reportIndexIssue": false,
|
| 9 |
+
"typeCheckingMode": "off",
|
| 10 |
+
"executionEnvironments": [
|
| 11 |
+
{
|
| 12 |
+
"root": ".",
|
| 13 |
+
"extraPaths": [
|
| 14 |
+
"."
|
| 15 |
+
],
|
| 16 |
+
"pythonPath": "C:\\Users\\acer\\AppData\\Local\\Programs\\Python\\Python314\\python.exe"
|
| 17 |
+
}
|
| 18 |
+
]
|
| 19 |
+
}
|
requirements.txt
CHANGED
|
@@ -1,13 +1,13 @@
|
|
| 1 |
-
fastapi
|
| 2 |
-
uvicorn
|
| 3 |
-
requests
|
| 4 |
-
numpy
|
| 5 |
-
scikit-learn
|
| 6 |
-
xgboost
|
| 7 |
-
lightgbm
|
| 8 |
-
python-dotenv
|
| 9 |
-
google-generativeai
|
| 10 |
-
groq
|
| 11 |
-
typing-extensions
|
| 12 |
-
python-multipart
|
| 13 |
-
dateparser
|
|
|
|
| 1 |
+
fastapi
|
| 2 |
+
uvicorn
|
| 3 |
+
requests
|
| 4 |
+
numpy
|
| 5 |
+
scikit-learn
|
| 6 |
+
xgboost
|
| 7 |
+
lightgbm
|
| 8 |
+
python-dotenv
|
| 9 |
+
google-generativeai
|
| 10 |
+
groq
|
| 11 |
+
typing-extensions
|
| 12 |
+
python-multipart
|
| 13 |
+
dateparser
|
test_output.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"query": "compare weather in 2025 and 2024",
|
| 4 |
+
"intents": [
|
| 5 |
+
"weather_comparison",
|
| 6 |
+
"weather_history"
|
| 7 |
+
],
|
| 8 |
+
"analysis": "To compare the weather in 2025 and 2024, let's look at the historical data for March 14th of both years.\n\nIn 2024, on March 14th, the maximum temperature was 33.5\u00b0C and the minimum temperature was 24.8\u00b0C, with a maximum wind speed of 22.0 km/h.\n\nIn 2025, on March 14th, the maximum temperature was 33.4\u00b0C and the minimum temperature was 24.7\u00b0C, with a maximum wind speed of 16.2 km/h.\n\nThe difference between the two years is:\n- Maximum temperature: 2024 (33.5\u00b0C) was 0.1\u00b0C higher than 2025 (33.4\u00b0C)\n- Minimum temperature: 2024 (24.8\u00b0C) was 0.1\u00b0C higher than 2025 (24.7\u00b0C)\n- Maximum wind speed: 2024 (22.0 km/h) was 5.8 km/h higher than 2025 (16.2 km/h)\n\nNote that the data is only available for March 14th of both years, so this comparison is limited to that specific date."
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"query": "what is the trend from 2022 to 2026",
|
| 12 |
+
"intents": [
|
| 13 |
+
"weather_comparison"
|
| 14 |
+
],
|
| 15 |
+
"analysis": "The trend from 2022 to 2026 in Chennai, India, shows variations in temperature and precipitation. \nOn March 14th of each year, the maximum temperatures were: 32.5\u00b0C in 2022, 31.2\u00b0C in 2023, 33.5\u00b0C in 2024, 33.4\u00b0C in 2025, and a forecasted 33.4\u00b0C in 2026.\nThe highest maximum temperature was 33.5\u00b0C in 2024, and the lowest was 31.2\u00b0C in 2023.\nThe minimum temperatures on the same dates were: 22.1\u00b0C in 2022, 23.4\u00b0C in 2023, 24.8\u00b0C in 2024, 24.7\u00b0C in 2025, and a forecasted 24.1\u00b0C in 2026.\nThere was no precipitation on March 14th in the years 2022, 2023, 2024, and 2025, but the forecast for 2026 shows no precipitation on the 14th as well."
|
| 16 |
+
}
|
| 17 |
+
]
|