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

میخواهید به یزد سفر کنید و نمیدانید چه ماهی هوا بهتر است؟ برای پروژه کشاورزی، گردشگری یا عمرانی به آمار بارش و دمای سالهای گذشته یک منطقه نیاز دارید؟ یا فقط میخواهید وضعیت هوای امروز و چند روز آینده را در اپلیکیشن خود نشان دهید؟ سرویس آب و هوای ژئوتاژک هر سه را با یک توکن API در اختیار شما میگذارد.
| سرویس | آدرس | کاربرد |
|---|---|---|
| آب و هوای کنونی و پیشبینی | GET /api/geo/weather/current | وضعیت همین لحظه و پیشبینی روزانه تا ۹ روز |
| تاریخچه آب و هوا | GET /api/geo/weather/history | داده هر روز از دی ۱۳۵۹ (۱۹۸۱) تا چند روز پیش |
| اقلیم و میانگین آب و هوا | GET /api/geo/weather/climate | میانگین ۳۰ ساله به تفکیک ماه و فصل شمسی، نوع اقلیم و بهترین زمان سفر |
دریافت توکن
- وارد داشبورد ژئوتاژک کلود شوید و با خرید بسته ژئوکوین کیف پول خود را شارژ کنید (با تایید شماره موبایل، ۲۰۰ هزار ژئوکوین هدیه میگیرید).
- در بخش توکنهای API یک توکن بسازید و دسترسی سرویسهای آب و هوا را به آن بدهید.
- کلید توکن را در هدر
Authorization: Bearer YOUR_TOKENبفرستید.
هزینه هر درخواست در صفحه سرویسها درج شده و از اعتبار توکن کم میشود. درخواستهایی که به دلیل ورودی نادرست رد شوند (کد 400) هزینهای ندارند.
مشخص کردن مکان
در هر سه سرویس مکان را به یکی از این دو روش بفرستید:
| پارامتر | مثال | توضیح |
|---|---|---|
place | یزد، شهرستان رامسر، Isfahan | نام شهر، شهرستان، استان یا هر مکان |
lat و lon | lat=31.89&lon=54.36 | مختصات دقیق (برای هر نقطه از جهان) |
۱. آب و هوای کنونی و پیشبینی
curl "https://cloud.geotajak.ir/api/geo/weather/current?place=یزد&days=7" \
-H "Authorization: Bearer YOUR_TOKEN"
| پارامتر | پیشفرض | توضیح |
|---|---|---|
days | 7 | تعداد روزهای پیشبینی (۱ تا ۹) |
نمونه پاسخ (خلاصهشده):
{
"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) |
aggregate | daily | daily هر روز (حداکثر ۳۶۶ روز) یا monthly جمعبندی هر ماه شمسی (حداکثر ۳۰ سال) |
پاسخ شامل summary (میانگین دما، بیشترین و کمترین دما با تاریخ، مجموع بارش، روزهای بارانی و برفی) و فهرست daily یا monthly است. در حالت روزانه برای هر روز: بیشینه، کمینه و میانگین دما، بارش، برف، رطوبت، بیشینه سرعت باد و تابش خورشید.
۳. اقلیم و میانگین آب و هوا
مناسب برای برنامهریزی سفر، گردشگری، کشاورزی و مطالعات منطقهای: «هوای یزد معمولا چطور است و کی برویم؟»
curl "https://cloud.geotajak.ir/api/geo/weather/climate?place=یزد" \
-H "Authorization: Bearer YOUR_TOKEN"
| پارامتر | پیشفرض | توضیح |
|---|---|---|
years | 30 | تعداد سالهای اخیر برای میانگینگیری (۵ تا ۴۰) |
پاسخ شامل:
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 | — | مکان پیدا نشد یا برای این بازه دادهای نیست | بله |
| 401 | missing_token / invalid_token | توکن ارسال نشده یا نامعتبر است | خیر |
| 402 | insufficient_credit | اعتبار توکن تمام شده است | خیر |
| 403 | service_not_allowed | این توکن به سرویس آب و هوا دسترسی ندارد | خیر |
| 429 | rate_limited | سقف درخواست ساعتی توکن پر شده است | خیر |
| 502 | upstream_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 | منبع داده موقتا در دسترس نیست | خیر |
سوالی دارید؟ از بخش تیکتها در داشبورد با ما در ارتباط باشید.
