پرش به محتویات

تحلیل مطلوبیت

تحلیل مطلوبیت (Suitability Analysis) یکی از کاربردهای اصلی GIS است که به منظور ارزیابی و شناسایی بهترین مکان‌ها یا گزینه‌ها بر اساس معیارهای مختلف انجام می‌شود. ( هر تصمیم فضایی که ما می‌گیریم)

به زبان ساده، این تحلیل به ما می‌گوید: «کجا برای انجام یک فعالیت خاص مناسب‌تر است؟»

برای مثال:

  • بهترین مکان برای ساخت یک مدرسه
  • مناسب‌ترین نواحی برای توسعه کشاورزی
  • بهترین مسیر برای احداث جاده یا خط لوله
  • نواحی مستعد برای حفاظت محیط زیست

مراحل اصلی تحلیل مطلوبیت در GIS 1. تعریف هدف تصمیم‌گیری: مشخص کردن اینکه دنبال چه هستیم (مثلاً مکان مناسب برای احداث نیروگاه خورشیدی). 2. شناسایی معیارها: معیارها شامل عوامل محیطی، اجتماعی، اقتصادی یا فنی هستند. مثال: فاصله از جاده، میزان شیب زمین، دسترسی به شبکه برق، کاربری اراضی، و غیره. 3. جمع‌آوری داده‌ها: این داده‌ها معمولاً به‌صورت لایه‌های مکانی( Raster یا Vector) وارد GIS می‌شوند. 4. استانداردسازی داده‌ها: چون هر معیار مقیاس متفاوتی دارد (مثلاً دما در درجه سانتی‌گراد، شیب در درصد، فاصله در متر)، باید آن‌ها را به مقیاس مشترک (مثلاً 0 تا 1 یا 1 تا 10) تبدیل کرد. 5. وزن‌دهی معیارها: هر معیار اهمیت متفاوتی دارد. مثلاً دسترسی به جاده ممکن است مهم‌تر از فاصله تا رودخانه باشد. 6. روش‌های معمول برای وزن‌دهی: روش AHP(تحلیل سلسله‌مراتبی) روش Entropy
روش Weighted Overlay در GIS 7. ترکیب لایه‌ها (Overlay): با ترکیب لایه‌ها و اعمال وزن‌ها، نقشه‌ای تولید می‌شود که نشان می‌دهد هر منطقه چقدر برای هدف مورد نظر مناسب است. 8. تفسیر نتایج: نواحی با مقدار مطلوبیت بالاتر (مثلاً نمره 0.8 تا 1) مناسب‌تر تلقی می‌شوند.

در ابتدا لازم است که ما داده‌های خود را جمع‌ آوری کنیم؛ یکی از مهم‌ترین داده‌هایی که به آن نیاز داریم داده‌ی نقاط بیمارستان‌های موجود است: برای اینکار ابتدا به سایت open street map می‌رویم و محدوده تهران را انتخاب می‌کنیم در بخش exporte به دلیل اینکه حجم داده‌های دانلودی زیاد است از یکی از درگاه‌هایی که در سمت چپ تصویر زیر می‌بینیم می‌توانیم استفاده کنیم:

توضیح تصویر

پس از دانلود شدن فایل مورد نظر، لایه نقاط آن را در QGIS اد می‌کنیم؛ از آنجایی که داده‌های زیادی به عنوان نقطه در نظر گرفته شده‌اند، حجم آنها زیاد است.

از آنجایی که براساس که با راست کلیک روی نقشه open street map و بررسی Query features می‌بینیم که کاربری هر نقطه در بخشamenity کاربری آن آورده شده است.

در خروجی که از این نقشه به دست آمده است، بخش amenity را می‌توانیم در attribute table در ستون other- tag مشاهده‌ کنیم؛

حال برای آنکه نقاط بیمارستان را پیدا کنیم باید به بخش toolbar کیو‌جی‌ای‌اس مراجعه کنیم و در بخش select feature by value در ردیف other tag، بنویسیم hospital و منتظر شویم که نقاط بیمارستان برایمان انتخاب شوند: پس از انتخاب می‌توانیم آنها را در یک شیپ فایل جدا خروجی بگیریم.

توضیح تصویر

تحلیل همپوشانی وزنی

از این تحلیل برای مکانیابی بیمارستان جدید بر اساس فاصله از بیمارستان‌های وضع موجود، مراکز مدیریت بحران و کاربری‌های صنعتی موجود استفاده‌شد. کاربری‌های صنعتی در میانه تحلیل به لایه‌ها اضافه‌شد. تصویر 1 لایه‌های محدوده تهران، بیمارستان‌های وضع موجود و مراکز مدیریت بحران


تبدیل لایه‌های وکتور به رستر

تصویر2 تبدیل لایه وکتوری بیمارستان‌های وضع موجود به لایه‌ی رستری بیمارستان‌های وضع موجود تصویر3 تبدیل لایه وکتوری مراکز مدیریت بحران به لایه رستری مراکز مدیریت بحران


تحلیل فاصله‌ای کل محدوده تهران بر اساس لایه‌های وکتوری

پس از این مرحله ما باید فاصله تا بیمارستان‌های موجود را بررسی کنیم، در انیجا منظور ما از فاصله دسترسی است نه نزدیکی به بیمارستان‌های موجود، فرق این دو در این است که دسترسی از راه‌ها رد می‌شود ولی نزدیکی از روی هوا رد می‌شود و راه‌ها برای آن مهم نیست و معمولا موقع تعیین حرائم از آن استفاده می‌کنیم.

به دلیل اینکه هنوز سراغ تحلیل‌ فاصله‌ای نرفته‌ایم، تحلیل نزدیکی انجام می‌دهیم؛ ساده‌ترین راه انجام تحلیل نزدیکی بافر است، اما در تحلیل مطلوبیت، بافر پاسخگوی نیاز ما نیست.

ما به داده‌های رستری نیاز داریم که با ترنزپرنت کم روی نقشه اصلی ما بنشینند: اما بافر این‌گونه نیست از طرفی دیگر ما نیاز به یک طیف خاکستری نیاز داریم که براساس نزدیکی از پر‌رنگ به کم‌رنگ رفته باشد در حالی که بافر حالت صفر و یکی دارد و به صورت طیف نشان داده نمی‌شود.

برای همین برای درست کردن این داده‌های رستری که معادل همان بافر است اما به جای اینکه عارضه را در نظر بگیرد و فاصله از آن را رسم کند، فاصله تک تک سلول‌های نقشه را از آن عارضه رسم می‌کند و به آن سلول رنگ می‌دهد.

ابزاری که برای این‌کار به آن نیاز داریم و processing toolbox هست به نام GDAL که با باز کردن زیربخش‌های آن باید Raster Analysis را انتخاب کنیم و در زیر مجموعه‌های آن هم به دنبال نزدیکی یا همانproximity باشیم و در نهایت proximity (raster distance) را انتخاب می‌کنیم.

قبل از آنکه ادامه دهیم باید بدانیم همانطور که از نام این ابزار پیداست، ما در حال تحلیل داده‌ی رستری هستیم اما نقاطی که داریم داده‌های وکتوری هستند؛ پس باید ابتدا آنها را به رستر تبدیل کنیم. به همین منظور در همان بخش GDAL در بخش vector conversion، rasterize(vectore to raster) را انتخاب می‌کنیم.

زمانی که جدول آن باز می‌شود، ابتدا داده‌ای را که می‌خواهیم به رستر تبدیل کنیم را انتخاب می‌کنیم، سپس A Fixed value to burn را هر عددی جز صفر انتخاب می‌کنیم چون صرفا بیمارستان بودن یا نبودن برایمان مهم است و ارزش دیگری برای آن تعیین نکرده‌ایم. Out put raster size را هم georeferenced unit می‌گذاریم. رزولوشن عمودی و افقی را روی 50 قرار می‌دهیم. Out put extent هم محدوده نقشه حال حاضر (use canvas extent) را انتخاب می‌کنیم و در قسمت advanced، out put data type را روی Intl16 قرار می‌دهیم تا اعداد اعشاری تولید نشود.

تصویر 4 ساخت لایه رستری فاصله از بیمارستان در شهر تهران تصویر 5 برای اینکه نتیجه این نقشه را بهتر ببینیم در بخش layers، open the layers styling panels را انتخاب می‌کنیم و سپس در قسمت layer rendering، blending mode را روی multiply قرار می‌دهیم. تا موقیت نزدیکی سلول‌ها به عوارض و میزان نزدیکی آنها بر حسب طیف خاکستری بهتر نمایش داده شود. لایه رستری فاصله از بیمارستان در شهر تهران

تصویر 6 ساخت لایه رستری فاصله از مراکز مدیریت بحران در شهر تهران تصویر 7 لایه رستری فاصله از مراکز مدیریت بحران در شهر تهران


کلاس‌بندی مجدد برای لایه‌های رستری تولید شده در مرحله قبل

برای هم‌ارزش کردن شاخص‌های مختلف، آنها کلاس‌بندی مجدد انجام می‌دهیم.

تصویر 8

کلاس های جدید برای لایه رستری فاصله از بیمارستان

برای ساخت بیمارستان هرچقدر فاصله بیشتر باشد مطلوب تر است. تصویر 9

لایه فاصله از بیمارستان ایجاد شده از کلاس‌بندی مجدد

تصویر 10

کلاس های جدید برای لایه رستری فاصله از مراکز مدیریت بحران

برای ساخت بیمارستان هرچقدر فاصله کمتر باشد مطلوب تر است. تصویر 11

لایه فاصله از مراکز مدیریت بحران ایجاد شده از کلاس‌بندی مجدد


افزودن مولفه کاربری صنعتی به تحلیل

انتخاب کاربری صنعتی از باقی کاربری‌ها

تصویر 12 #### در این مرحله فقط کاربری‌هایی که صنعتی هستند را انتخاب می‌کنیم. تصویر 13

کاربری‌های صنعتی بصورت پولیگون سپس با استفاده از دستور centroid این پولیگون‌ها را تبدیل به نقطه می‌کنیم.

تصویر 14

سپس اقداماتی که برای لایه بیمارستان و مراکز مدیریت بحران انجام دادیم، تکرار می‌کنیم.

تصویر 16 تصویر 17 برای ساخت بیمارستان هرچقدر فاصله بیشتر باشد مطلوب تر است.


جمع اثر شاخص‌ها بر مکانیابی

تصویر 18 جمع وزن شاخص‌ها برابر با یک می‌شود که در این پروژه برای بیمارستان 40%، مراکز مدیریت بحران 20% و برای کاربری‌های صنعتی مقدار 40% لخاظ شده است.

خروجی نهایی

تصویر 19 با توجه به دوری از مراکز صنعتی مقدار های 4 به بالا می‌تواند برای مکانیابی بیمارستان جدید انتخاب شوند.

تحلیل فضایی

یکی از روش­ های قابل استفاده برای تحلیل فضایی، روش تحلیل مطلوبیت است. برای مثال، می خواهیم ایستگاه متروی جدیدی در تهران احداث کنیم، معیارها می تواند گزینه­ های زیر باشد: ایستگاه­ های متروی موجود
کاربری­ های اطراف تراکم جمعیت
تعداد شاغلین و مراکز تجاری برای نمونه می خواهیم فاصله تا ایستگاه های متروی موجود را بدست آوریم. 2 نوع ارزیابی وجود دارد: نزدیکی دسترسی

برای شروع، نزدیکی را انتخاب می کنیم: 1. ابتدا باید لایه وکتوری را تبدیل به رستر کنیم. برای اینکار در قسمت vector conversion گزینه Rasterize (vector to raster) را انتخاب می کنیم. در پنجره باز شده، در قسمت Input layer، لایه وکتوری مورد نظر را انتخاب می کنیم. سپس در قسمت A Fixed value to burn ، عدد 1 را تایپ می کنیم. بخش Output Raster را روی گزینه Georeferensed می گذاریم. در قسمت Width و Height ، عدد 10 را تایپ می کنیم. تصویر 1 در قسمت Output Extent، می توانیم گزینه select extent on canvas را انتخاب کنیم و سپس محدوده مورد نظر را سلکت کنیم. در بخش Advanced Parameters، و در قسمت Output data type، گزینه Int 16 را انتخاب می کنیم و سپس Run می کنیم. تصویر 2 2. حالا باید نزدیکی را بسنجیم. از قسمت ، Proximity ،Processing Toolbox را انتخاب میکنیم. در قسمت Input layer ، لایه رستری شده را وارد می کنیم. بعد قسمت Distance units ، گزینه Georeferenced Coordinates را انتخاب می کنیم. یک مسیر ذخیره برای لایه انتخاب می کنیم و run می کنیم. تصویر 3 3. مرحله بعد، طبقه بندی کردن فاصله هاست. هرچه فاصله از ایستگاه موجود بیشتر باشد، برای احداث ایستگاه جدید مطلوب تر است. از قسمت Reclassify by table ،Processing Toolbox را انتخاب می کنیم. در قسمت Raster layer ، همان لایه Proximity را انتخاب می کنیم. از قسمت Reclassification table علامت 3 نقطه را انتخاب میکنیم و Add row را زده و فاصله ها را طبقه بندی می کنیم: تصویر 4 بعد قسمت output type را در حالت Int 16 می گذاریم: تصویر 5 در آخر به چنین نقشه ای میرسیم: https://www.dropbox.com/scl/fi/2qrjd3x6d1updb5tr8qhd/Screenshot-2025-10-17-123602.png?rlkey=6xkqovp9e3rihg9l3d08b7hyb&st=u45cfac0&dl=0

تحلیل شیب

برای انجام تحلیل شیب یکی از سایت‌هایی که می‌تواند داده‌های ارتفاعی را در اختیار ما قرار دهد سایت https://opentopography.org/ است. که با مراجعه به این سایت و انتخاب محدوده مورد نظر با دانلود strm-gl1 می‌توانیم داده‌های مربوط به ارتفاع را به صورت رستری داشته باشیم.

رستر ارتفاع تهران توضیح تصویر

بعد از اضافه کردن فایل اولین کاری که باید انجام بدهیم چون سایز سلول‌های ما بزرگ است و کیفیت آن پایین است، باید کیفیت آن را ارتقا دهیم، برای اینکار اول لایه dem رو به نقطه تبدیل می‌کنیم و بعد از تحلیل idw استفاده می‌کنیم که ارزش بخش‌هایی که بین نقاط قرار گرفتند را برای ما مشخص می‌کند.

تبدیل رستر به نقطه با ابزار raster pixels to points توضیح تصویر تحلیل idw توضیح تصویر

فارغ از این‌ها از آنجایی که ما داده‌ی ارتفاعی را داریم می‌توانیم تحلیل‌های سطح از جمله شیب، جهت شیب را انجام دهیم. تحلیل شیب/ slope توضیح تصویر در اینجا از ما z factore را می‌پرسد که معادل فاصله از دریاست. زمانی که واحد اندازه‌گیری طول و عرض و ارتفاع ما یکی باشد این مقدار را یک انتخاب می کنیم در غیر این صورت با استفاده از جدول محاسبه z factore آن را مشخص می‌کنیم.

مفهوم درصد و درجه در اندازه‌گیری شیب:

وقتی به درجه شیب را محاسبه می‌کنیم، مانند محور‌های مختصات شیب صفر درجه در سمت راست محور افقی و ۱۸۰ درجه در سمت چپ، ۹۰ درجه و ۲۷۰ درجه هم در بالا و پایین محور عمودی قرار می‌گیرند. اما وقتی به درصد محاسبه می‌کنیم چون فرمول شیب از tan به دست می‌آید ۹۰ درجه دارای شیب بی‌نهایت و ۴۵ درجه دارای شیب 100 درصد است.

وقتی شیب محاسبه شده بین ۰ تا ۹۰ بود برحسب درجه محاسبه شده است. برای محاسبه شیب از ابزارهای slope دیگری در زیر مجموعهgdal و grass هم می‌توانیم استفاده کنیم که خروجی آن نقشه بهتری نسبت به ابزار قبلی به ما می‌دهد و شیب محدوده را بهتر می‌توان مشاهده کرد. برای انجام تحلیل‌های سطح تحلیل شیب مهم و لازم است اما کافی نیست و به تحلیل جهت شیب نیز نیاز داریم.

تحلیل جهت شیب/ aspect

زمانی که تحلیل شیب انجام می‌دهیم درجه‌ای که به ما می‌دهد، درجه جغرافیایی یا همان درجه‌های قطب نما است.

یعنی صفر درجه شمال- ۹۰ درجه شرق-180 درجه جنوب و ۲۷۰ درجه غرب است.

زمانی که ما در تهران کار می‌کنیم، جهت شیب بیشتر بین 90 تا 270 درجه از سمت جنوب است. این از سمت جنوب بودن هم به دلیل این است که ما در ایران در قسمت بالایی خط استوا قرار گرفته‌ایم.

نکته‌ای که در اینجا لازم است یادآور شوم این است که در تمامی تحلیل‌های سطح همواری داده لایه ورودی، لایه elevation است. توضیح تصویر نقشه جهت شیب تولید شده توضیح تصویر تحلیل Hill Shade

این تحلیل برای ما جنبه تحلیلی ندارد و بیشتر جنبه گرافیکی دارد و برای سه بعدی‌سازی نقشه‌های دوبعدی براساس سایه‌اندازی از آن استفاده می‌کنیم.

زمانی که پنجره ابزار hill shade را باز می‌کنیم، لازم است که دو مقدار azimuth و vertical angle را مشخص کنیم، حال این‌ها به چه معنا هستند؛

آزیموف Azimuth به معنای موقعیت قرار‌گیری خورشید در آسمان است که به توجه به اینکه خورشید از شرق طلوع و غرب، غروب می‌کند، همواره بین ۹۰ تا 270 درجه است.

ورتیکال انگل Vertical angle به معنای موقعیت خورشید نسبت به سال است که ما در کدام فصل قرار داریم، در تابستان نزدیک به ۹۰ درجه و در زمستان نزدیک صفر تا ۳۰ درجه است. توضیح تصویر نقشه به دست آمده توضیح تصویر تحلیل قابلیت دیدن

زمانی که ما تحلیل سطح انجام می‌دهیم، یکی از تحلیل‌های مهم تحلیل دیده‌ شدن است زیرا ما نیاز داریم بدانیم با توجه به توپوگرافی زمین وقتی در ارتفاع مشخصی از یک سطح قرار می‌گیریم چه سطوحی را می‌توانیم مشاهده کنیم.

برای انجام این تحلیل در qgis نیاز به ابزار view shed داریم که برای دسترسی به آن باید پلاگین visibility analysis را نصب کنیم.

برای این تحلیل به دو داده ارتفاع و نقطه‌ای که observer قرار دارد نیاز داریم.

برای نشان دادن موقعیت ببیننده می‌توانیم با ایجاد شیپ فایلی جدید موقعیت آن را مشخص کنیم.

در مرحله بعد باید coordinate reference هر دو لایه را یکی کنیم، از آنجایی که لایه‌هایی که از اینترنت دانلود می‌کنیم مانند لایه ارتفاع معمولا بر حسب درجه هستند باید آن را به متر تبدیل کنیم تا با مختصات لایه بیننده یکی شود.

برای اینکار از قسمت raster projection در ابزار gdal، wrap را انتخاب کرده و source را همان 4326 نگه داشته و target را 32629 انتخاب می‌کنیم. توضیح تصویر سپس باید view points را مشخص کنیم. با استفاده از ابزاری به همین نام اینکار را انجام می‌دهیم. توضیح تصویر حال برای انجام تحلیل view shed در پنجره آن موقعیت بیننده را همان نقطه viewpoint تولید شده انتخاب می‌کنیم و تحلیل را انجام می‌دهیم. در نقشه تولید شده توسط آن یکسری نقاط سیاه و سفید یا همان صفر و یکی را مشاهده می‌کنیم که شخص بیننده با توجه به ارتفاعی که در آن قرار دارد و توپوگرافی زمین می‌تواند مشاهده کند. توضیح تصویر تصویر 6