Background
بازگشت به بلاگ

سرویس کیفیت هوا: شاخص آلودگی (AQI) هر نقطه، شهر و منطقه با پیش‌بینی

۱۴۰۵/۷/۱۱
تیم ژئوتاژک
سرویس کیفیت هوا: شاخص آلودگی (AQI) هر نقطه، شهر و منطقه با پیش‌بینی

آلودگی هوا روی سلامت، تعطیلی مدارس، برنامه‌ریزی فعالیت‌های فضای باز، حمل‌ونقل و مدیریت بحران اثر مستقیم دارد. سرویس کیفیت هوای ژئوتاژک برای هر نقطه از ایران (نه فقط شهرهایی که ایستگاه سنجش دارند) شاخص کیفیت هوا، غلظت آلاینده‌ها و پیش‌بینی چند روز آینده را می‌دهد، و برای یک منطقه (شهر، شهرستان، استان یا محدوده دلخواه) میانگین آلودگی، نقاط آلوده‌تر و تعداد افرادی را که در هوای ناسالم هستند حساب می‌کند.

سرویسآدرسجواب می‌دهد
کیفیت هوای کنونیGET /api/geo/air/currentشاخص AQI، وضعیت، آلاینده شاخص، شش آلاینده و توصیه بهداشتی
پیش‌بینی کیفیت هواGET /api/geo/air/forecastشاخص روزانه و ساعتی تا ۵ روز
آلودگی هوای یک منطقهGET /api/geo/air/areaمیانگین و بیشینه شاخص، نقاط آلوده‌تر، جمعیت در معرض
نقشه آلودگی هواGET /api/geo/air/mapشبکه GeoJSON برای نمایش روی نقشه
رتبه‌بندی شهرهاGET /api/geo/air/citiesمراکز استان‌ها به ترتیب آلودگی

برای دریافت توکن کیف پول را شارژ کنید و در توکن‌های API توکن بسازید. در سرویس‌های نقطه‌ای می‌توانید نام مکان (place) یا مختصات (lat و lon) بدهید.

شاخص کیفیت هوا (AQI)

شاخصوضعیتcategory
۰ تا ۵۰پاکgood
۵۱ تا ۱۰۰قابل قبولmoderate
۱۰۱ تا ۱۵۰ناسالم برای گروه‌های حساسunhealthy_sensitive
۱۵۱ تا ۲۰۰ناسالمunhealthy
۲۰۱ تا ۳۰۰بسیار ناسالمvery_unhealthy
بالای ۳۰۰خطرناکhazardous

شاخص برای هر آلاینده جدا حساب می‌شود و بزرگ‌ترین آن‌ها شاخص کل است (آلاینده شاخص در dominant_pollutant). آلاینده‌ها: ذرات معلق pm25 و pm10، ازن o3، دی‌اکسید نیتروژن no2، دی‌اکسید گوگرد so2 و مونوکسید کربن co.

۱. کیفیت هوای کنونی

curl -G "https://cloud.geotajak.ir/api/geo/air/current" \
  --data-urlencode "place=تهران" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "summary": "تهران: شاخص کیفیت هوا 91 (قابل قبول)؛ آلاینده شاخص ذرات معلق PM2.5 (PM2.5 حدود 31 میکروگرم بر متر مکعب). در ۲۴ ساعت آینده تقریبا ثابت، بیشترین مقدار 96 حدود ساعت 08:00.",
  "time": "2026-10-03T20:00",
  "aqi": 91,
  "category": "moderate",
  "category_label": "قابل قبول",
  "color": "#ffff00",
  "advice": "کیفیت هوا قابل قبول است؛ افراد بسیار حساس فعالیت سنگین و طولانی در فضای باز را کمتر کنند.",
  "dominant_pollutant": "pm25",
  "pollutants": {
    "pm25": {"name": "ذرات معلق PM2.5", "value": 22.99, "unit": "µg/m³", "mean_for_index": 30.52, "mean_hours": 24, "aqi": 91},
    "pm10": {"name": "ذرات معلق PM10", "value": 30.24, "unit": "µg/m³", "mean_for_index": 47.45, "mean_hours": 24, "aqi": 44},
    "no2": {"name": "دی‌اکسید نیتروژن", "value": 37.02, "unit": "ppb", "ug_m3": 69.7, "mean_hours": 1, "aqi": 35}
  },
  "next_24h": {
    "trend": "تقریبا ثابت",
    "peak": {"aqi": 96, "time": "2026-10-04T08:00", "category_label": "قابل قبول"}
  }
}

برای هر آلاینده value غلظت همین ساعت است و mean_for_index میانگینی که شاخص از آن حساب می‌شود (۲۴ ساعته برای ذرات معلق، ۸ ساعته برای ازن و مونوکسید کربن، ساعتی برای NO2 و SO2). زمان‌ها به وقت ایران هستند و color رنگ استاندارد همان وضعیت است.

۲. پیش‌بینی کیفیت هوا

curl -G "https://cloud.geotajak.ir/api/geo/air/forecast" \
  --data-urlencode "place=تهران" --data-urlencode "days=4" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "summary": "تهران: آلوده‌ترین روز سه‌شنبه 14 مهر 1405 با شاخص 99 (قابل قبول) و پاک‌ترین روز شنبه با شاخص 91 (قابل قبول).",
  "days": [
    {"date": "2026-10-04", "jalali": "12 مهر 1405", "weekday": "یکشنبه", "aqi_max": 96, "aqi_mean": 89, "aqi_min": 80,
     "category_label": "قابل قبول", "dominant_pollutant": "pm25", "worst_hour": "08:00", "best_hour": "21:00",
     "pm25_mean": 25.5, "pm10_mean": 38.1}
  ]
}

days از ۱ تا ۵ است (پیش‌فرض ۴؛ پیش‌بینی حدود چهار روز جلو را پوشش می‌دهد، پس روز آخر ممکن است کامل نباشد و hours تعداد ساعت‌های موجود آن روز را می‌گوید). با hourly=true سری ساعتی شاخص و غلظت همه آلاینده‌ها هم برمی‌گردد.

۳. آلودگی هوای یک منطقه

منطقه را به یکی از سه شکل مشخص کنید:

# نام شهر، شهرستان یا استان (مرز رسمی)
curl -G "https://cloud.geotajak.ir/api/geo/air/area" \
  --data-urlencode "place=استان خوزستان" \
  -H "Authorization: Bearer YOUR_TOKEN"

# شعاع دور یک نقطه
curl -G "https://cloud.geotajak.ir/api/geo/air/area" \
  --data-urlencode "lat=35.6892" --data-urlencode "lon=51.3890" --data-urlencode "radius_km=30" \
  -H "Authorization: Bearer YOUR_TOKEN"

# کادر جغرافیایی west,south,east,north
curl -G "https://cloud.geotajak.ir/api/geo/air/area" \
  --data-urlencode "bbox=47.6,29.9,50.6,33.0" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "summary": "محدوده انتخابی: میانگین شاخص کیفیت هوا 98 (قابل قبول)، بیشترین 144 (ناسالم برای گروه‌های حساس)؛ آلاینده غالب ذرات معلق PM2.5. از حدود 5,200,990 نفر ساکن، 1,197,560 نفر در هوای ناسالم (شاخص بالای ۱۰۰) هستند.",
  "aqi_mean": 98, "aqi_max": 144, "aqi_min": 76,
  "category_label": "قابل قبول",
  "dominant_pollutant": "pm25",
  "pollutant_means": {"pm25": 33.94, "pm10": 86.29, "o3": 57.24, "no2": 1.59, "so2": 6.6, "co": 0.12},
  "category_shares": [
    {"category": "moderate", "category_label": "قابل قبول", "area_share_pct": 67.9},
    {"category": "unhealthy_sensitive", "category_label": "ناسالم برای گروه‌های حساس", "area_share_pct": 32.1}
  ],
  "hotspots": [
    {"lat": 30.0, "lon": 47.75, "aqi": 144, "category_label": "ناسالم برای گروه‌های حساس", "dominant_pollutant": "pm25"}
  ],
  "next_24h_peak": {"aqi_mean": 105, "time": "2026-10-04T19:00"},
  "exposure": {
    "population": 5200990,
    "population_weighted_aqi": 99,
    "population_above_100": 1197560,
    "by_category": [
      {"category": "moderate", "category_label": "قابل قبول", "population": 4003430, "share_pct": 77.0},
      {"category": "unhealthy_sensitive", "category_label": "ناسالم برای گروه‌های حساس", "population": 1197560, "share_pct": 23.0}
    ]
  }
}
  • category_shares می‌گوید چند درصد مساحت منطقه در هر وضعیت است و hotspots پنج نقطه آلوده‌تر را می‌دهد.
  • exposure بر اساس سرویس جمعیت می‌گوید چند نفر در هر وضعیت زندگی می‌کنند. population_weighted_aqi شاخصی است که یک ساکن معمولی منطقه تجربه می‌کند و برای مقایسه شهرها از میانگین ساده مناسب‌تر است. برای محدوده‌های بزرگ‌تر از حدود یک استان بزرگ این بخش null است.
  • radius_km از ۱ تا ۳۰۰ کیلومتر است (پیش‌فرض ۲۵).

۴. نقشه آلودگی هوا

curl -G "https://cloud.geotajak.ir/api/geo/air/map" \
  --data-urlencode "bbox=50.5,35.0,52.5,36.5" --data-urlencode "pollutant=pm25" \
  -H "Authorization: Bearer YOUR_TOKEN"

خروجی یک FeatureCollection است؛ هر خانه aqi، category، color و (اگر آلاینده مشخص کرده باشید) value دارد و مستقیم در Leaflet، MapLibre یا QGIS رنگ‌آمیزی می‌شود. legend راهنمای رنگ‌ها را می‌دهد.

پارامترتوضیح
bboxاختیاری؛ بدون آن کل ایران برمی‌گردد (حدود ۴۸۰۰ خانه)
pollutantaqi (پیش‌فرض)، pm25، pm10، o3، no2، so2 یا co
hours_ahead۰ برای اکنون، تا ۹۶ برای ساعت‌های آینده (برای ساخت انیمیشن پیش‌بینی)

۵. رتبه‌بندی آلودگی شهرها

curl -G "https://cloud.geotajak.ir/api/geo/air/cities" \
  --data-urlencode "limit=5" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "summary": "آلوده‌ترین مرکز استان: اهواز با شاخص 99 (قابل قبول)؛ پاک‌ترین: اردبیل با شاخص 60. هیچ مرکز استانی در وضعیت ناسالم نیست.",
  "cities": [
    {"rank": 1, "city": "اهواز", "aqi": 99, "category_label": "قابل قبول", "dominant_pollutant": "pm25", "pm25": 34.6, "next_24h_peak_aqi": 110},
    {"rank": 2, "city": "اصفهان", "aqi": 93, "category_label": "قابل قبول", "dominant_pollutant": "pm25", "pm25": 26.5, "next_24h_peak_aqi": 93}
  ],
  "total_cities": 31
}

منبع و دقت داده

  • منبع: مدل جهانی پیش‌بینی ترکیب جو NASA GEOS-CF، هر ساعت یک مقدار، با دقت مکانی حدود ۲۵ کیلومتر. مدل روزانه اجرا می‌شود و سرویس هر چند ساعت آخرین نسخه را می‌گیرد (updated_at).
  • عددها خروجی مدل هستند، نه اندازه‌گیری ایستگاه سنجش. هر مقدار میانگین یک خانه حدود ۲۵ کیلومتری است؛ پس آلودگی کنار خیابان‌های پرترافیک یا در یک محله خاص می‌تواند از این عدد بیشتر باشد و ممکن است با عدد اعلام‌شده ایستگاه‌های شهری فرق کند.
  • مزیت مدل این است که همه جای کشور را پوشش می‌دهد (از جمله گردوغبار در مناطق بدون ایستگاه) و پیش‌بینی دارد.
  • شاخص بر اساس استاندارد AQI سازمان حفاظت محیط زیست آمریکا (EPA) حساب می‌شود.
  • این سرویس برای تصمیم‌گیری و اطلاع‌رسانی عمومی است؛ برای اعلام رسمی وضعیت اضطرار به داده ایستگاه‌های رسمی استناد کنید.

هزینه

هزینه هر درخواست از اعتبار توکن کم می‌شود و در هدر X-Request-Cost برمی‌گردد. درخواست ناموفق (ورودی اشتباه یا خطای سرور) هزینه ندارد. قیمت به‌روز هر سرویس در صفحه سرویس‌ها آمده است.

نمایش آماده در سایت (بدون کدنویسی)

اگر به آدرس همین سرویس ui=true اضافه کنید، به‌جای JSON یک صفحه آماده (نقشه، نمودار و جدول نتیجه) برمی‌گردد که در <iframe> سایت شما قرار می‌گیرد و با رنگ‌های توکن شما ساخته می‌شود. هزینه آن با درخواست معمولی یکی است. جزئیات در راهنمای شروع و نمونه زنده در «آزمایشگاه سرویس» صفحه هر سرویس.

APIکیفیت هواآلودگی هواAQIPM2.5