محاسبه مساحت شطرنجی (QGIS3)
بسیاری از کاربردها نیازمند کمی سازی الگوهای کاربری زمین در یک منطقه هستند. مجموعه داده های پوشش زمین کاربری زمین (LULC) به صورت فایل های شطرنجی هستند که در آن به هر پیکسل یک مقدار کلاس اختصاص داده می شود. تحلیلگران GIS اغلب نیاز به تولید گزارش بر اساس این داده ها با محاسبه مساحت هر کلاس در یک منطقه خاص دارند. QGIS با بسیاری از ابزارهای داخلی برای محاسبه و خلاصه کردن ناحیه شطرنجی ارائه می شود.
توجه داشته باشید
از لحاظ تاریخی، رویکرد پیشنهادی برای محاسبه مساحت ها برای شطرنجی ها تبدیل شطرنجی به لایه برداری و استفاده از تکنیک های محاسبه مساحت برداری بود. این رویکرد کاملا محاسباتی فشرده و مستعد خطا است. رویکرد پیشنهادی استفاده از ابزار پردازشی گزارش مقادیر منحصربهفرد لایه Raster است که میتواند مستقیماً مناطق پیکسل را محاسبه کند. اگر لایه ای با چند ضلعی های زیادی دارید و برای هر یک از آنها به ناحیه نیاز دارید، می توانید از ابزار هیستوگرام Zonal برای دریافت تعداد پیکسل برای هر کلاس استفاده کنید و سپس آن را در مساحت هر پیکسل ضرب کنید.
نمای کلی کار
ما از یک لایه شطرنجی با ۱۱ طبقه پوشش زمین استفاده خواهیم کرد و مساحت هر طبقه را در یک پارک ملی محاسبه خواهیم کرد. ما همچنین نتایج را برای ایجاد صفحه گسترده با نام کلاس ها و مناطق پس از پردازش خواهیم کرد.
خواهید گرفت
- نحوه اعمال نمادشناسی روی یک لایه از یک فایل سبک با فرمت qml .
- نحوه نوشتن عبارات با شرایط if/else متعدد با استفاده از دستور CASE .
- چگونه یک جدول QGIS را به عنوان صفحه گسترده اکسل صادر کنیم.
دریافت داده ها
مجموعه داده های زیر را دانلود خواهیم کرد
- پایگاه داده جهانی مناطق حفاظت شده (WDPA): ما شکل فایل را برای مرز پارک ملی کازیرانگا در هند دانلود می کنیم.
- ESA WorldCover 2020: محصول WorldCover 10 m 2020 آژانس فضایی اروپا (ESA) یک نقشه جهانی پوشش زمین برای سال ۲۰۲۰ با وضوح ۱۰ متر ارائه می دهد. ما کاشی را که منطقه مورد علاقه خود را پوشش می دهد دانلود خواهیم کرد.
مرز پارک
- به وب سایت Protected Planet بروید و روی جعبه ابزار جستجو کلیک کنید. جستجو برای .
Kaziranga National Park
- مرز بردار محافظت شده به عنوان یک نتیجه جستجو نشان داده می شود. برای مشاهده صفحه پارک ملی کازیرانگا روی آن کلیک کنید .
- این صفحه حاوی اطلاعات اضافی مانند مساحت کل، سال ایجاد و غیره خواهد بود. روی Download کلیک کنید و روی SHP کلیک کنید تا داده ها با فرمت Shapefile دانلود شوند .
- دو گزینه برای دانلود از شما خواسته می شود. روی ادامه در زیر استفاده غیر تجاری کلیک کنید . اکنون یک فایل فشرده حاوی محدوده پارک ملی دانلود خواهد شد.
داده های پوشش زمین
- به وب سایت ESA WorldCover بروید و روی منوی DATA ACCESS کلیک کنید .
- به قسمت دانلود DATA DOWNLOAD بروید و روی پیوند کلیک کنید تا نمایشگر WorldCover باز شود.
- برای دانلود داده ها باید یک حساب کاربری رایگان ایجاد کنید. روی لینک ثبت نام در گوشه سمت راست بالا کلیک کنید. برای ایجاد یک حساب کاربری جدید، دستورالعمل داده شده را دنبال کنید.
- پس از ایجاد حساب کاربری، با استفاده از اطلاعات کاربری وارد شوید. منطقه مورد علاقه ما برای این آموزش، پارک ملی کازیرانگا است. به منطقه شمال شرقی هند بزرگنمایی کنید. هنگامی که به اندازه کافی بزرگنمایی کردید، کادر محدود کننده کاشی های تصویر پوشش زمین ظاهر می شود.
- منطقه کاشی را جستجو و پیدا کنید
N24E093
.
- کاشی را انتخاب کنید و روی NEXT کلیک کنید .
- برای دانلود فایل فشرده حاوی اطلاعات پوشش زمین در قالب شطرنجی بر روی دانلود کلیک کنید. اطمینان حاصل کنید که داده های WorldCover نسخه ۱ را برای دانلود انتخاب کنید.
- همچنین فایل نمادشناسی ارائه شده توسط ESA را دانلود خواهیم کرد. از صفحه دسترسی به داده های ESA WorldCover دیدن کنید ، به بخش نمادشناسی بروید . برای دانلود فایل ESAWorldCover_ColorLegend.qml روی QGIS کلیک کنید که می تواند برای استایل دادن به لایه شطرنجی با رنگ ها و برچسب های کلاس مناسب استفاده شود.
برای راحتی کار، میتوانید مستقیماً یک نسخه از مجموعه دادهها را از لینکهای زیر دانلود کنید:
- مرز پارک ملی کازیرنگا WDPA_WDOECM_Apr2022_Public_10744_shp_0.zip
- ESA WorldCover Tile N24E093 set terascope_download_20220422_114733.zip
- فایل ESA WorldCover QML Style ESAWorldCover_ColorLegend.qml
منبع داده [WDPA] [WorldCover]
- تمام فایل های دانلود شده را از حالت فشرده خارج کنید. در مرورگر ، پوشه حاوی فایل مرزی را پیدا کنید
WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons.shp
و آن را در بوم QGIS بکشید و رها کنید.
- اکنون کاشی شطرنجی Worldcover را پیدا کنید
ESA_WorldCover_10m_2020_v100_N24_E093_Map.tif
و آن را در بوم QGIS بیندازید.
- اکنون هر دو لایه شطرنجی بردار و پوشش زمین را در پانل لایه ها بارگذاری خواهید کرد . بیایید شطرنجی پوشش زمین را به مرز پارک ملی بریزیم. برای باز کردن جعبه ابزار پردازش، به بروید . جست و جو و مکان یابی کنید . برای راه اندازی آن دوبار کلیک کنید.
- در گفتگوی Clip Raster by Mask Layer ،
ESA_WorldCover_10m_2020_v100_N24_E093_Map
لایه را به عنوان لایه ورودی وWDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons
لایه را به عنوان لایه ماسک انتخاب کنید .-۹۹۹۹
در بخش Assign a nodata nodata specified to output bands وارد کنید .
- اکنون بخش Advanced Parameters را باز کرده و در Profile انتخاب کنید . اکنون در قسمت Clipped (mask) بر روی گزینه Save To File کلیک کرده و گزینه Save To File را انتخاب کنید . نام فایل را به صورت . روی Run کلیک کنید .
High Compression
...
worldcover_clipped.tif
- اکنون
worldcover_clipped
لایه در بوم QGIS بارگذاری می شود. روی لایه کلیک راست کردهESA_WorldCover_10m_2020_v100_N24_E093_Map
و Remove Layer را انتخاب کنید…
- هر دو لایه ما در CRS جغرافیایی آمده اند
EPSG:4326
. این CRS دارای واحد درجه است و برای محاسبه مساحت مناسب نیست. ابتدا باید لایهها را به یک CRS Projected دوباره طرح کنیم. برای تجزیه و تحلیل منطقه ای مانند این، UTM انتخاب خوبی برای یک CRS پیش بینی شده است. ما لایهها را برای منطقه UTM محلی به CRS بازپخش میکنیم. جعبه ابزار Processing را باز کنید و الگوریتم را جستجو کنید. برای راه اندازی آن دوبار کلیک کنید.
- در گفتگوی Reproject Layer ،
WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons
لایه را به عنوان لایه ورودی انتخاب کنید ، روی دکمه Select CRS در زیر Target CRS کلیک کنید .
- منطقه مورد علاقه ما در منطقه UTM 46N قرار دارد. ۴۶ N را جستجو کنید و CRS را انتخاب کنید.
WGS ۸۴ / UTM zone ۴۶N
توجه داشته باشید
برای اینکه بدانید کدام منطقه UTM برای منطقه شماست، به وب سایت What UTM Zone am I مراجعه کنید .
- در قسمت Reprojected کلیک کرده
...
و Save To File را انتخاب کنید . نام را به عنوان وارد کنیدnationalpark_reprojected.gpkg
. روی Run کلیک کنید .
- اکنون
nationalpark_reprojected
لایه در بوم بارگذاری می شود. روی لایه کلیک راست کردهWDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons
و Remove Layer… را انتخاب کنید تا حذف شود. اکنون لایه شطرنجی را دوباره طرح می کنیم. در جعبه ابزار پردازش ، جستجو و مکان یابی کنید.
- در گفتگوی Warp (Reproject)
worldcover_clipped
به عنوان لایه ورودی ، CRS را در Target CRS انتخاب کنید . پارامترهای پیشرفته را باز کنید و در نمایه انتخاب کنید .WGS ۸۴ / UTM zone ۴۶N
High Compression
- اکنون در قسمت Reprojected روی آن کلیک کرده
...
و Save To File را انتخاب کنید . نام را به عنوان وارد کنیدworldcover_reprojected.tif
. روی Run کلیک کنید .
- اکنون
worldcover_reprojected
لایه در بوم بارگذاری می شود،worldcover_clipped
لایه را بردارید. اجازه دهید لایه پروژه را روی ناحیه UTM تنظیم کنیم. روی هر لایه کلیک کنید و انتخاب کنید .
- اکنون پروژه CRS به روز می شود. بیایید نمادشناسی لایه شطرنجی را مطابق با نام کلاس ها و رنگ های مجموعه داده ESA WorldCover تنظیم کنیم. روی لایه کلیک راست کنید
worldcover_reprojected
و روی Properties کلیک کنید…
- در گفتگوی ویژگی های لایه ، نمادشناسی را انتخاب کنید . می توانید متوجه شوید که رنگ های لایه به رنگ سفید-سیاه تجسم می شوند. برای رفع این مشکل، روی کلیک کنید . فایل را مرور و انتخاب کنید
ESAWorldCover_ColorLegend.qml
.
- اکنون می توانید رنگ های نماد به روز شده و توضیحات کلاس را مشاهده کنید. روی OK کلیک کنید .
worldcover_reprojected
لایه را در پانل لایه ها باز کنید تا افسانه را با توضیحات کلاس درست ببینید.
- حالا بیایید مساحت هر کلاس را محاسبه کنیم. در جعبه ابزار پردازش، ابزار گزارش مقادیر منحصر به فرد لایه Raster را جستجو و مکان یابی کنید . برای باز کردن آن دوبار کلیک کنید.
- در گفتگوی گزارش مقادیر منحصر به فرد لایه Raster ، لایه ورودی را به عنوان انتخاب کنید
worldcover_reprojected
. در زیر جدول مقادیر منحصر به فرد، روی آن کلیک کرده...
و Save to File را انتخاب کنید . نام را به عنوان وارد کنیدclass_areas.gpkg
. روی Run کلیک کنید .
- حالا لایه به پنل لایه ها
class_areas
اضافه می شود . روی لایه کلیک راست کرده و Open Attribute Table را کلیک کنید . ستون شامل مساحت هر کلاس بر حسب متر مربع است.m2
- بیایید مساحت را به کیلومتر مربع تبدیل کنیم. در جعبه ابزار پردازش ، جستجو کرده و انتخاب کنید .
- در گفتگوی Field Calculator ،
class_areas
لایه را در لایه ورودی انتخاب کنید . نام فیلد را به صورت وارد کنیدarea_sqkm
. در قسمت Result نوع را انتخاب کنیدFloat
. در پنجره Expression عبارت زیر را وارد کنید. این کار متر مربع را به کیلومتر مربع تبدیل می کند و نتیجه را به ۲ رقم اعشار گرد می کند. در قسمت Calculated روی آن کلیک کنید...
و Save To File را انتخاب کنید . نام را به عنوان وارد کنیدclass_area_sqkm.gpkg
. روی Run کلیک کنید .
round("m2"/ 1e6, 2)
- اکنون
class_area_sqkm
لایه در بوم بارگذاری می شود. جدول Attribute را باز کنید و ستون area_sqkm جدید اضافه شده را بررسی کنید . متوجه خواهید شد که ستون Value شامل اعداد برای هر کلاس است. برای سهولت در تفسیر نتایج، بیایید توضیحاتی را برای هر کلاس اضافه کنیم. توضیحات کلاس در راهنمای کاربر محصول ESA موجود است .
- Field Calculator را باز کنید و
class_areas_sqkm
لایه را در Input Layer انتخاب کنید . نام فیلد را به صورت وارد کنیدlandcover
، در نوع فیلد نتیجه ، را انتخاب کنیدString
. در پنجره Expression عبارت زیر را وارد کنید. این عبارت از دستور CASE برای تخصیص یک مقدار بر اساس شرایط چندگانه استفاده می کند. در قسمت Calculated روی آن کلیک کنید...
و Save To File را انتخاب کنید . نام را به عنوان وارد کنیدclass_area_with_landcover.gpkg
. روی Run کلیک کنید .
CASE WHEN "value" = 10 THEN 'Tree cover' WHEN "value" = 20 THEN 'Shrubland' WHEN "value" = 30 THEN 'Grassland' WHEN "value" = 40 THEN 'Cropland' WHEN "value" = 50 THEN 'Built-up' WHEN "value" = 60 THEN 'Bare / sparse vegetation' WHEN "value" = 70 THEN 'Snow and Ice' WHEN "value" = 80 THEN 'Permanent water bodies' WHEN "value" = 90 THEN 'Herbaceous wetland' WHEN "value" = 95 THEN 'Moss and lichen' WHEN "value" = 100 THEN 'Mangroves' END
- اکنون
class_area_with_landcover
لایه در بوم بارگذاری می شود. جدول Attribute را باز کنید. ستون Landcover شامل نام Landcover در برابر هر مقدار Landcover خواهد بود.
- بیایید این نتیجه را به عنوان یک فایل اکسل صادر کنیم. قبل از صادرات، جدول را نیز سازماندهی می کنیم و فیلدهای ناخواسته را حذف می کنیم. در جعبه ابزار پردازش ، جستجو کرده و انتخاب کنید .
- در گفتگوی Refactor Fields ،
class_area_with_landcover
لایه را در لایه ورودی انتخاب کنید . همه ستون ها به جز area_sqkm و landcover را انتخاب کنید ، سپس روی حذف فیلد انتخاب شده کلیک کنید .
- همچنین میتوانید ترتیب فیلدهای جدول را با استفاده از دکمه Move Selected Fields تغییر دهید . پس از اتمام ویرایش، روی
...
دکمه کنار Refactored کلیک کنید و Save To File را انتخاب کنید . به عنوان قالب انتخاب کنید . نام فایل را به عنوان وارد کنید و روی ذخیره کلیک کنید . در گفتگوی Refactor Fields ، روی Run کلیک کنید تا تغییرات اعمال شود.XLSX Files (*.xlsx)
park_area_by_landcover.xlsx
- نتیجه یک صفحه گسترده با ستون های landcover و area_sqkm خواهد بود .
اگر می خواهید بازخورد بدهید یا تجربه خود را در مورد این آموزش به اشتراک بگذارید، لطفاً در زیر نظر دهید. (به حساب GitHub نیاز دارد)