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

سرویس آب و هوا: وضعیت کنونی، تاریخچه و اقلیم هر منطقه

۱۴۰۵/۷/۹
تیم ژئوتاژک
سرویس آب و هوا: وضعیت کنونی، تاریخچه و اقلیم هر منطقه

می‌خواهید به یزد سفر کنید و نمی‌دانید چه ماهی هوا بهتر است؟ برای پروژه کشاورزی، گردشگری یا عمرانی به آمار بارش و دمای سال‌های گذشته یک منطقه نیاز دارید؟ یا فقط می‌خواهید وضعیت هوای امروز و چند روز آینده را در اپلیکیشن خود نشان دهید؟ سرویس آب و هوای ژئوتاژک هر سه را با یک توکن API در اختیار شما می‌گذارد.

سرویسآدرسکاربرد
آب و هوای کنونی و پیش‌بینیGET /api/geo/weather/currentوضعیت همین لحظه و پیش‌بینی روزانه تا ۹ روز
تاریخچه آب و هواGET /api/geo/weather/historyداده هر روز از دی ۱۳۵۹ (۱۹۸۱) تا چند روز پیش
اقلیم و میانگین آب و هواGET /api/geo/weather/climateمیانگین ۳۰ ساله به تفکیک ماه و فصل شمسی، نوع اقلیم و بهترین زمان سفر

دریافت توکن

  1. وارد داشبورد ژئوتاژک کلود شوید و با خرید بسته ژئوکوین کیف پول خود را شارژ کنید (با تایید شماره موبایل، ۲۰۰ هزار ژئوکوین هدیه می‌گیرید).
  2. در بخش توکن‌های API یک توکن بسازید و دسترسی سرویس‌های آب و هوا را به آن بدهید.
  3. کلید توکن را در هدر Authorization: Bearer YOUR_TOKEN بفرستید.

هزینه هر درخواست در صفحه سرویس‌ها درج شده و از اعتبار توکن کم می‌شود. درخواست‌هایی که به دلیل ورودی نادرست رد شوند (کد 400) هزینه‌ای ندارند.

مشخص کردن مکان

در هر سه سرویس مکان را به یکی از این دو روش بفرستید:

پارامترمثالتوضیح
placeیزد، شهرستان رامسر، Isfahanنام شهر، شهرستان، استان یا هر مکان
lat و lonlat=31.89&lon=54.36مختصات دقیق (برای هر نقطه از جهان)

۱. آب و هوای کنونی و پیش‌بینی

curl "https://cloud.geotajak.ir/api/geo/weather/current?place=یزد&days=7" \
  -H "Authorization: Bearer YOUR_TOKEN"
پارامترپیش‌فرضتوضیح
days7تعداد روزهای پیش‌بینی (۱ تا ۹)

نمونه پاسخ (خلاصه‌شده):

{
  "location": {"name": "یزد", "lat": 31.85, "lon": 54.49, "elevation_m": 1242, "utc_offset_hours": 3.5},
  "current": {
    "time_jalali": "9 مهر 1405 17:30",
    "condition": "عمدتا صاف",
    "temperature": 29.9, "feels_like": 29.9, "humidity": 14,
    "wind_speed_kmh": 9.8, "wind_from": "شمال", "precipitation_mm_next_hour": 0.0
  },
  "daily": [
    {"date_jalali": "1405-07-10", "weekday": "جمعه", "condition": "عمدتا صاف",
     "temp_max": 34.5, "temp_min": 19.4, "uv_index_max": 7.7, "precipitation_mm": 0.0,
     "sunrise": "05:45", "sunset": "17:38"}
  ]
}

۲. تاریخچه آب و هوا

curl "https://cloud.geotajak.ir/api/geo/weather/history?place=یزد&start=1403-01-01&end=1403-12-30&aggregate=monthly" \
  -H "Authorization: Bearer YOUR_TOKEN"
پارامترپیش‌فرضتوضیح
start، end۳۰ روز اخیرتاریخ شمسی (1403-01-01) یا میلادی (2024-03-20)
aggregatedailydaily هر روز (حداکثر ۳۶۶ روز) یا monthly جمع‌بندی هر ماه شمسی (حداکثر ۳۰ سال)

پاسخ شامل summary (میانگین دما، بیشترین و کمترین دما با تاریخ، مجموع بارش، روزهای بارانی و برفی) و فهرست daily یا monthly است. در حالت روزانه برای هر روز: بیشینه، کمینه و میانگین دما، بارش، برف، رطوبت، بیشینه سرعت باد و تابش خورشید.

۳. اقلیم و میانگین آب و هوا

مناسب برای برنامه‌ریزی سفر، گردشگری، کشاورزی و مطالعات منطقه‌ای: «هوای یزد معمولا چطور است و کی برویم؟»

curl "https://cloud.geotajak.ir/api/geo/weather/climate?place=یزد" \
  -H "Authorization: Bearer YOUR_TOKEN"
پارامترپیش‌فرضتوضیح
years30تعداد سال‌های اخیر برای میانگین‌گیری (۵ تا ۴۰)

پاسخ شامل:

  • summary: یک پاراگراف فارسی آماده نمایش؛ مثلا «یزد اقلیم خشک (بیابانی) گرم دارد. میانگین دمای سالانه حدود ۲۰ درجه است؛ گرم‌ترین ماه تیر ... بهترین زمان برای سفر و فعالیت در فضای باز: فروردین، آبان.»
  • climate_type: نوع اقلیم بر اساس روش دومارتن (خشک، نیمه‌خشک، مدیترانه‌ای، نیمه‌مرطوب، مرطوب، بسیار مرطوب) همراه با سرد/معتدل/گرم
  • annual: میانگین دمای سالانه، بارش سالانه، روزهای بارانی و برفی، گرم‌ترین، سردترین و پربارش‌ترین ماه و رکورد بیشترین و کمترین دما با تاریخ
  • months: برای هر ماه شمسی میانگین بیشینه و کمینه دما، بارش، روزهای بارانی و برفی، رطوبت، باد، تابش خورشید و وضعیت آسایش (عالی، مناسب، گرم، سرد ...)
  • seasons: همان آمار برای بهار، تابستان، پاییز و زمستان
  • best_months: بهترین ماه‌ها برای سفر و فعالیت در فضای باز

Python

import requests

resp = requests.get(
    "https://cloud.geotajak.ir/api/geo/weather/climate",
    params={"place": "یزد"},
    headers={"Authorization": "Bearer YOUR_TOKEN"},
    timeout=60,
)
data = resp.json()
print(data["summary"])
for m in data["months"]:
    print(m["name"], m["temp_max_avg"], m["temp_min_avg"], m["precipitation_mm"], m["comfort"])

منبع داده

  • وضعیت کنونی و پیش‌بینی: مؤسسه هواشناسی نروژ (MET Norway) بر پایه مدل جهانی ECMWF، با مجوز CC BY 4.0.
  • تاریخچه و اقلیم: پروژه NASA POWER ناسا (بازتحلیل MERRA-2)، داده روزانه یکنواخت برای هر نقطه از جهان از سال ۱۹۸۱.

داده تاریخی برای هر سلول حدود ۵۰ کیلومتری محاسبه می‌شود و ارتفاع میانگین آن سلول را دارد؛ بنابراین در مناطق کوهستانی یا ساحلی ممکن است با ایستگاه هواشناسی داخل شهر چند درجه تفاوت داشته باشد و برای مقایسه کلی مناطق و فصل‌ها مناسب است. ماه‌ها و فصل‌ها شمسی هستند.

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

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

خطاها

کدخطاتوضیحهزینه کسر می‌شود؟
400—ورودی نادرست: مکان مشخص نشده، تاریخ نامعتبر یا بازه طولانیخیر
404—مکان پیدا نشد یا برای این بازه داده‌ای نیستبله
401missing_token / invalid_tokenتوکن ارسال نشده یا نامعتبر استخیر
402insufficient_creditاعتبار توکن تمام شده استخیر
403service_not_allowedاین توکن به سرویس آب و هوا دسترسی نداردخیر
429rate_limitedسقف درخواست ساعتی توکن پر شده استخیر
502upstream_unavailable / —منبع داده موقتا در دسترس نیستخیر

خطاهای ورودی به این شکل برمی‌گردند:

{"detail": "مکان را با place (نام شهر/منطقه) یا lat و lon مشخص کنید"}

---|---|---|---| | 400 | bad_request | مکان پیدا نشد، تاریخ نامعتبر یا بازه طولانی است | خیر | | 401 | missing_token / invalid_token | توکن ارسال نشده یا نامعتبر است | خیر | | 402 | insufficient_credit | اعتبار توکن تمام شده است | خیر | | 403 | service_not_allowed | این توکن به سرویس آب و هوا دسترسی ندارد | خیر | | 429 | rate_limited | سقف درخواست ساعتی توکن پر شده است | خیر | | 502 | upstream_unavailable | منبع داده موقتا در دسترس نیست | خیر |


سوالی دارید؟ از بخش تیکت‌ها در داشبورد با ما در ارتباط باشید.

APIآب و هوااقلیمسرویس‌های مکانی