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

سرویس جمعیت: تعداد جمعیت، تراکم و هرم سنی هر نقطه، شعاع و محدوده

۱۴۰۵/۷/۱۱
تیم ژئوتاژک
سرویس جمعیت: تعداد جمعیت، تراکم و هرم سنی هر نقطه، شعاع و محدوده

«اطراف این نقطه چند نفر زندگی می‌کنند؟» سوال اول خیلی از تصمیم‌هاست: جایابی فروشگاه، شعبه بانک، داروخانه و مدرسه، برآورد بازار، تعیین حوزه نفوذ، برنامه‌ریزی شهری، و در مدیریت بحران برآورد تعداد افراد در معرض زلزله یا سیلاب. سرویس جمعیت ژئوتاژک این سوال را در ابعاد مختلف جواب می‌دهد: شعاع دور یک نقطه، حلقه‌های فاصله، مرز شهر و استان، چندضلعی دلخواه، شبکه تراکم و ساختار سنی و جنسی.

سرویسآدرسجواب می‌دهد
جمعیت اطراف یک نقطهGET /api/geo/population/pointجمعیت، تراکم، تعداد خانوار و نوع بافت در شعاع ۱۰ متر تا ۵۰ کیلومتر
جمعیت در حلقه‌های فاصلهGET /api/geo/population/ringsجمعیت چند شعاع هم‌مرکز (حوزه نفوذ)
ساختار سنی و جنسیGET /api/geo/population/demographicsهرم سنی، زن و مرد، سهم کودکان و سالمندان، میانه سنی
جمعیت شهر یا محدودهGET /api/geo/population/areaجمعیت داخل مرز شهر، شهرستان، استان یا یک کادر جغرافیایی
جمعیت داخل چندضلعیPOST /api/geo/population/polygonجمعیت محدوده‌ای که خودتان رسم می‌کنید
نقشه تراکم جمعیتGET /api/geo/population/gridشبکه جمعیت به‌صورت GeoJSON برای نقشه حرارتی

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

۱. جمعیت اطراف یک نقطه

curl -G "https://cloud.geotajak.ir/api/geo/population/point" \
  --data-urlencode "lat=35.6997" --data-urlencode "lon=51.3380" \
  --data-urlencode "radius_m=1000" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "summary": "میدان آزادی: حدود 55,781 نفر در شعاع 1,000 متری (تراکم 17,756 نفر در کیلومتر مربع، حدود 17,994 خانوار)؛ بافت محل: شهری متراکم.",
  "radius_m": 1000,
  "population": 55780.97,
  "area_km2": 3.141593,
  "density_per_km2": 17755.6,
  "households_estimate": 17993.9,
  "household_size": 3.1,
  "settlement_type": "شهری متراکم",
  "year": 2020
}

radius_m از ۱۰ تا ۵۰٬۰۰۰ متر پذیرفته می‌شود (پیش‌فرض ۱۰۰۰).

درباره شعاع‌های خیلی کوچک: دقت داده حدود ۱۰۰ متر است. برای شعاع‌های کوچک‌تر از یک سلول (مثل ۱۰ متر) عدد از تراکم همان سلول ضرب در مساحت دایره به دست می‌آید؛ یعنی یک برآورد آماری است (و می‌تواند کسری باشد)، نه شمارش ساکنان یک ساختمان مشخص. در میدان‌ها، پارک‌ها و محل‌های غیرمسکونی جواب صفر است.

۲. جمعیت در حلقه‌های فاصله

برای تحلیل حوزه نفوذ: تا ۱، ۵ و ۱۰ کیلومتری یک نقطه چند نفر هستند؟

curl -G "https://cloud.geotajak.ir/api/geo/population/rings" \
  --data-urlencode "lat=35.6997" --data-urlencode "lon=51.3380" \
  --data-urlencode "radii=1000,5000,10000" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "summary": "میدان آزادی: تا 1 کیلومتر 55,781 نفر، تا 5 کیلومتر 1,416,910 نفر، تا 10 کیلومتر 4,778,798 نفر.",
  "rings": [
    {"from_m": 0, "to_m": 1000, "population": 55781, "cumulative": 55781, "ring_density_per_km2": 17755.6},
    {"from_m": 1000, "to_m": 5000, "population": 1361129, "cumulative": 1416910, "ring_density_per_km2": 18052.5},
    {"from_m": 5000, "to_m": 10000, "population": 3361889, "cumulative": 4778798, "ring_density_per_km2": 14268.3}
  ]
}

radii فهرست شعاع‌ها به متر است (حداکثر ۸ شعاع، هر کدام بین ۵۰ و ۵۰٬۰۰۰ متر). population جمعیت همان حلقه و cumulative جمعیت از مرکز تا لبه بیرونی حلقه است.

۳. ساختار سنی و جنسی

curl -G "https://cloud.geotajak.ir/api/geo/population/demographics" \
  --data-urlencode "lat=35.6997" --data-urlencode "lon=51.3380" \
  --data-urlencode "radius_m=5000" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "summary": "میدان آزادی (شعاع 5 کیلومتر): حدود 1,416,910 نفر؛ 17٪ زیر ۱۵ سال، 75٪ در سن کار (۱۵ تا ۶۴) و 8٪ بالای ۶۵ سال؛ 98 مرد به ازای ۱۰۰ زن؛ میانه سنی حدود 36 سال.",
  "population": 1416910, "male": 702875, "female": 714034,
  "sex_ratio_m_per_100f": 98.4,
  "age_groups": {"children_0_14_pct": 17.1, "working_15_64_pct": 74.9, "elderly_65_plus_pct": 8.1},
  "dependency_ratio": 33.5,
  "median_age": 36.1,
  "pyramid": [
    {"age": "۰-۴", "male": 35291, "female": 35402},
    {"age": "۵-۹", "male": 42654, "female": 40291}
  ]
}

pyramid گروه‌های سنی پنج‌ساله را برای رسم هرم سنی می‌دهد. شعاع از ۱۰۰ تا ۵۰٬۰۰۰ متر است. ساختار سنی از داده یک کیلومتری گرفته می‌شود، پس برای شعاع‌های چندصدمتری نماینده محله است، نه یک بلوک.

۴. جمعیت شهر، شهرستان یا محدوده

نام یک شهر، شهرستان یا استان را بدهید تا جمعیت داخل مرز رسمی آن حساب شود، یا یک کادر جغرافیایی بدهید:

curl -G "https://cloud.geotajak.ir/api/geo/population/area" \
  --data-urlencode "place=کرج" \
  -H "Authorization: Bearer YOUR_TOKEN"

curl -G "https://cloud.geotajak.ir/api/geo/population/area" \
  --data-urlencode "bbox=51.09,35.56,51.61,35.84" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "population": 9258908,
  "area_km2": 1455.37,
  "settlement_share_pct": {"شهری متراکم": 98.1, "شهری / حومه": 1.7, "روستایی": 0.2}
}

bbox به ترتیب west,south,east,north است. settlement_share_pct می‌گوید چند درصد جمعیت در بافت شهری متراکم، حومه یا روستایی زندگی می‌کنند. بزرگ‌ترین محدوده مجاز حدود یک استان بزرگ است.

۵. جمعیت داخل چندضلعی

curl -X POST "https://cloud.geotajak.ir/api/geo/population/polygon" \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" \
  -d '{"polygon": [[35.74, 51.38], [35.74, 51.44], [35.78, 51.44], [35.78, 51.38]]}'
{
  "summary": "داخل چندضلعی: حدود 332,693 نفر در 23.97 کیلومتر مربع (تراکم 13,879 نفر در کیلومتر مربع).",
  "population": 332693,
  "area_km2": 23.97,
  "density_per_km2": 13878.7,
  "households_estimate": 107320,
  "settlement_share_pct": {"شهری متراکم": 100.0, "شهری / حومه": 0.0, "روستایی": 0.0}
}

راس‌ها به‌صورت [lat, lon] هستند (حداقل سه راس).

۶. نقشه تراکم جمعیت

curl -G "https://cloud.geotajak.ir/api/geo/population/grid" \
  --data-urlencode "bbox=51.30,35.65,51.50,35.80" --data-urlencode "cell_m=1000" \
  -H "Authorization: Bearer YOUR_TOKEN"

خروجی یک FeatureCollection است که هر خانه آن population و density_per_km2 دارد و مستقیم در Leaflet، MapLibre یا QGIS قابل نمایش است. cell_m اندازه خانه شبکه است: ۲۵۰، ۵۰۰، ۱۰۰۰، ۲۰۰۰ یا ۵۰۰۰ متر. اگر تعداد خانه‌ها زیاد شود، کادر را کوچک‌تر یا خانه را بزرگ‌تر کنید.

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

  • منبع: WorldPop 2020 با دقت مکانی حدود ۱۰۰ متر (مجوز CC BY 4.0)؛ جمعیت فقط در محل‌های دارای ساختمان توزیع شده است.
  • عددها برآورد مدل‌شده سال ۲۰۲۰ هستند، نه نتیجه سرشماری رسمی؛ برای شهرها و محدوده‌های بزرگ دقیق‌ترند و برای چند ساختمان تقریبی.
  • تعداد خانوار از تقسیم جمعیت بر بعد متوسط خانوار (household_size) به دست می‌آید.

هزینه

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

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

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

APIجمعیتتراکم جمعیتهرم سنیحوزه نفوذ