در اینجا یک نمونه از طبقه بندی نظارت نشده (خوشه بندی) بر تصاویر NDVI در سطح شمال استان فارس ارائه می گردد. ابتدا باندهای قرمز و مادون قرمز مادیس به محیط MATLAB فراخوانی شده و سپس باند مصنوعی NDVI از آن ها استخراج می گردد. سپس به راحتی با استفاده از یک روش خوشه بندی (در اینجا الگوریتم k-means) این تصویر به 2 تا 5 خوشه تقسیم می شود و هر بار در یک شکل مجزا نمایش داده می شود. لازم به ذکر است که به سادگی می توان سایر روش های خوشه بندی را نیز مورد استفاده قرار داد.
باید گفت که خوشهبندی k-mean یکی از روشهای بسیار مرسوم و موردتوجه بسیاری از محققان و کارشناسان است. این الگوریتم بین 10 الگوریتم برتر خوشهبندی قرار دارد. K در k-mean بیانگر تعداد خوشههایی است که کل دادهها در آن تقسیمبندی یا جزء بندی میشود. خوشهها بر مبنای مراکز آنها تعیین میشود، بر مبنای این ایده که هر نمونه باید حداقل فاصله را نسبت به مرکز خود نسبت به سایر مراکز داشته باشد. این کار تا آنجایی ادامه مییابد که حداقل فاصلهها از مراکز تعیین شوند. روش تعیین فاصلهها نقش اساسی در این خوشهبندیها ایفا مینماید. الگوریتم خوشهبندی k-mean را میتوان به صورت ذیل بیان نمود.
1- در ابتدا و به صورت تصادفی هر کدام از نمونهها به یکی از k تعداد خوشه اختصاص داده میشود.
2- مرکز هر کدام از خوشهها محاسبه میشود.
3- تا زمانی که خوشهها به وضعیت ثابت نرسیدهاند:
3-1- به تعداد نمونهها، فاصله بین هر نمونه و مراکز (به تعداد k مرکز) محاسبه میشود.
3-2- اگر نمونه به مرکز دیگری نزدیکتر باشد، برچسب آن نمونه به مرکز جدید تغییر داده میشود.
3-3- دوباره مراکز جدید تعیین میشوند.
3-4- این کار تا زمانی انجام میشود که تغییری دیگر در مراکز اتفاق نیفتد (تابع خطا حداقل شود).
4- در این صورت پایان خوشهبندی انجام خواهد پذیرفت.
از آنجاییکه ممکن است تعیین مراکز همیشه به صورت قطعی اتفاق نیفتد و در واقع حداقل شدن خطا به صورت محلی اتفاق بیفتد، معمولاً الگوریتم خوشه بندی k-mean چندین بار تکرار می شود و در نهایت مناسبترین آنها انتخاب میشود.
در ادامه کدهای مربوط به برنامه طبقه بندی نظارت نشده (خوشه بندی) بر تصاویر NDVI در سطح شمال استان فارس ارائه می گردد.
clc
clear
[Red_band, cmap, refmat,bbox] = ...
geotiffread('MOD13Q1_2013082063124_250m_16_days_red_reflectance.tif');
NIR_band =...
geotiffread('MOD13Q1_2013082063124_250m_16_days_NIR_reflectance.tif');
Red_band = double(Red_band);
NIR_band = double(NIR_band);
NDVI = (NIR_band - Red_band)./(Red_band + NIR_band);
for ii = 2:5
figure
Cls_Kmn = kmeans(NDVI(:),ii);
mapshow(reshape(Cls_Kmn,size(NDVI)),refmat,'DisplayType','surface')
colormap(parula(ii))
lcolorbar(cellstr([repmat('cluster ',ii,1),num2str((1:ii)')])')
title(['The NDVI clustering',' number of class = ',num2str(ii)])
end
خروجی های حاصل از اجرای مجموعه فرمان های فوق به صورت شکل های 1 تا 4 ظاهر می گردد.
شکل 1- طبقه بندی خوشه نظارت نشده باند NDVI در شمال استان فارس به 2 خوشه با استفاده از الگوریتم k-means در MATLAB
شکل 2- طبقه بندی خوشه نظارت نشده باند NDVI در شمال استان فارس به 3 خوشه با استفاده از الگوریتم k-means در MATLAB
شکل 3- طبقه بندی خوشه نظارت نشده باند NDVI در شمال استان فارس به 4 خوشه با استفاده از الگوریتم k-means در MATLAB
شکل 4- طبقه بندی خوشه نظارت نشده باند NDVI در شمال استان فارس به 4 خوشه با استفاده از الگوریتم k-means در MATLAB
برای دریافت فایل مربوط به تصاویر ماهواره ای مورد استفاده در تمرین فوق به صفحه مربوط به کتاب MATLAB در علوم محیطی (پردازش داده) مراجعه و فایل های مربوط به تمرین های کاربردی را دانلود نمایید.
zimascience.com/انتشارات/36-کتاب-matlab-در-علوم-محیطی-پردازش-داده