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

سرویس‌های تصمیم‌یار: برآورد اثر حادثه، گزارش اولیه با هوش مصنوعی، مکان‌یابی، پیشنهاد اعزام و شناسنامه شهرستان

۱۴۰۵/۷/۱۷
تیم ژئوتاژک
سرویس‌های تصمیم‌یار: برآورد اثر حادثه، گزارش اولیه با هوش مصنوعی، مکان‌یابی، پیشنهاد اعزام و شناسنامه شهرستان

هشدار معمولی می‌گوید «کجا چه مخاطره‌ای هست». هشدار اثرمحور یک قدم جلوتر می‌رود: «چه جمعیتی، کدام سکونتگاه‌ها و کدام زیرساخت‌ها در معرض‌اند و کدام ظرفیت‌های ما نزدیک است». این سرویس‌ها سرویس‌های خام (جمعیت، سکونتگاه، زیرساخت، شبکه راه، ارتفاع) را ترکیب می‌کنند و جوابی می‌دهند که مدیر می‌تواند بر اساس آن اقدام کند. سرویس‌های AI علاوه بر اعداد، متن آماده هم می‌نویسند.

سرویسآدرسجواب می‌دهد
برآورد اثر در یک محدودهPOST /api/geo/impact/areaجمعیت، کودکان و سالمندان، سکونتگاه‌ها، زیرساخت‌ها و مراکز شما در محدوده
گزارش اولیه اثر احتمالی (AI)POST /api/geo/impact/reportگزارش متنی آماده برای مرکز عملیات
مکان‌یابی و امتیازدهی سایت (AI)POST /api/geo/site/suitabilityرتبه‌بندی گزینه‌های مکانی برای یک کاربری
پیشنهاد اعزام (AI)POST /api/geo/dispatch/adviceکدام مراکز زودتر می‌رسند، مسیر، و وضعیت اطراف حادثه
شناسنامه شهرستان و شهر (AI)GET /api/geo/profile/placeجمعیت، سکونتگاه‌ها، سرانه خدمات، عوارض زمین، پوشش موبایل

برای دریافت توکن، با خرید بسته ژئوکوین کیف پول را شارژ کنید و در توکن‌های API توکن بسازید. هزینه هر درخواست موفق از اعتبار همان توکن کم می‌شود (قیمت هر سرویس در صفحه سرویس‌ها).

سرویس‌هایی که با مراکز خود شما کار می‌کنند (شعبه، انبار، نمایندگی) فهرست نقاط را در facilities می‌گیرند: [{"lat": …, "lon": …, "name": …}, …].

۱. برآورد اثر در یک محدوده

محدوده را به یکی از این چهار شکل بدهید: polygon (محدوده هشدار یا آب‌گرفتگی)، lat و lon و radius_km (شعاع حادثه)، bbox، یا place (نام شهرستان).

curl -X POST "https://cloud.geotajak.ir/api/geo/impact/area" \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" \
  -d '{"lat": 31.13, "lon": 53.28, "radius_km": 8, "facilities": [{"lat": 31.13, "lon": 53.28, "name": "شعبه ۱"}, {"lat": 31.02, "lon": 53.36, "name": "شعبه ۲"}]}'
{
  "summary": "شعاع 8 کیلومتری: حدود 32,623 نفر (10,524 خانوار) در 201 کیلومتر مربع؛ 1 شهر و 12 روستا؛ 7,849 کودک و 2,789 سالمند؛ زیرساخت: بیمارستان 2، درمانگاه و مرکز بهداشت 3، مدرسه (اسکان موقت) 3، پست برق 1، پل 5؛ 1 مرکز شما داخل محدوده.",
  "population": 32623, "households_estimate": 10524,
  "vulnerable": {"children_0_14": 7849, "elderly_65_plus": 2789},
  "settlements": {"count": 13, "by_type": {"city": 0, "town": 1, "village": 12}, "items": []},
  "infrastructure": {"hospital": {"label": "بیمارستان", "count": 2, "items": []}},
  "facilities": {"inside_count": 1, "inside": [], "nearest_outside": []}
}

با categories می‌توانید زیرساخت‌ها را محدود کنید (مثل hospital,school,bridge). برای محدوده‌های خیلی بزرگ (بیش از حدود ۶۰ کیلومتر از مرکز) زیرساخت‌ها فهرست نمی‌شوند.

۲. گزارش اولیه اثر احتمالی (AI)

همان ورودی، به‌علاوه نوع و شدت مخاطره:

curl -X POST "https://cloud.geotajak.ir/api/geo/impact/report" \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" \
  -d '{"lat": 31.13, "lon": 53.28, "radius_km": 8, "hazard": "سیل", "severity": "نارنجی"}'

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

۳. مکان‌یابی و امتیازدهی سایت (AI)

curl -X POST "https://cloud.geotajak.ir/api/geo/site/suitability" \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" \
  -d '{"candidates": [{"lat": 31.13, "lon": 53.28, "name": "گزینه الف"}, {"lat": 31.25, "lon": 53.45, "name": "گزینه ب"}], "purpose": "relief_base", "explain": true}'

purpose: hospital، school، warehouse، solar_farm، landfill، greenhouse. تا ۸ گزینه.

هر گزینه امتیاز ۰ تا ۱۰۰ می‌گیرد و همه عوامل با مقدار خام، امتیاز و وزنشان برمی‌گردند تا نتیجه قابل بررسی باشد: جمعیت اطراف، فاصله تا جاده، شیب و موقعیت زمین، فاصله تا آبراهه، فاصله تا برق و فاصله تا نزدیک‌ترین مرکز مشابه. با explain=true یک تحلیل متنی هم اضافه می‌شود. این غربال اولیه است و جای مطالعات کاربری زمین، خاک و سیلاب را نمی‌گیرد.

۴. پیشنهاد اعزام (AI)

curl -X POST "https://cloud.geotajak.ir/api/geo/dispatch/advice" \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" \
  -d '{"lat": 31.16, "lon": 53.30, "hazard": "سیل", "facilities": [{"lat": 31.13, "lon": 53.28, "name": "شعبه ۱"}, {"lat": 31.02, "lon": 53.36, "name": "شعبه ۲"}], "explain": true}'
{
  "summary": "محل حادثه: سریع‌ترین اعزام از «شعبه ابرکوه» با 9 دقیقه (13.02 کیلومتر)؛ حدود 19,867 نفر در شعاع 5 کیلومتری.",
  "dispatch": [{"rank": 1, "name": "شعبه ابرکوه", "eta_min": 8.9, "road_km": 13.02}],
  "best_route": {"type": "LineString", "coordinates": []},
  "around": {"population": 19867, "infrastructure": {"hospital": {"label": "بیمارستان", "count": 2}}}
}

با closed_polygons محورهای بسته را بدهید تا زمان‌ها با دور زدن آن‌ها محاسبه شود.

۵. شناسنامه شهرستان و شهر (AI)

curl -G "https://cloud.geotajak.ir/api/geo/profile/place" \
  --data-urlencode "place=شهرستان ابرکوه" \
  --data-urlencode "explain=true" \
  -H "Authorization: Bearer YOUR_TOKEN"

جمعیت و تراکم، سهم کودکان و سالمندان، تعداد شهر و روستا، سرانه خدمات در هر صد هزار نفر (بیمارستان، درمانگاه، مدرسه، آتش‌نشانی …)، ارتفاع و عوارض زمین و پوشش موبایل. با explain=true متن شناسنامه هم نوشته می‌شود.

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

جمعیت از WorldPop 2020 (مدل‌شده، نه سرشماری رسمی) و سکونتگاه‌ها و زیرساخت‌ها از OpenStreetMap است؛ آنچه در نقشه ثبت نشده در پاسخ نیست. متن‌های هوش مصنوعی از همین داده‌ها ساخته می‌شوند و جایگزین ارزیابی میدانی نیستند.

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

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

APIمدیریت بحرانهشدار اثرمحورهوش مصنوعیمکان‌یابیتصمیم‌یار