|
|
|||
|
|
فصل هفتم: مبحث همسايگي |
|
|
توابع همسايگي چندگانه:
در اين حالت توابع همسايگي با استفاده از ارتباطات چندگانه بصورت يك ماتريس تعريف مي شود. اين ارتباط امكان تعريف توابع خاصي را پديد مي آورد كه به شكل زير است:
Outmap = NbFunction(NbExpression)
Outmap = NbFunction[neighbour, neighbour, ...](NbExpression)
كه در آن:
|
Outmap |
نقشه رستري خروجي |
| NbFunction | يك تابع همشايگي چندگانه است كه يكي يا بيشتر از يكي از توابع NBMIN, NBMAX, NBAVG, NBSUM, NBPRD, NBSTD, NBMINP, NBMAXP, NBPRDP و NBCNT را در بر مي گيرد. |
| [neighbour, neighbour, ...] | |
|
|
كدهاي سلول همسايه مورد نظر (عددي بين 1 تا 9) |
| (NbExpression) | يك عبارت
همسايگي است كه در برگيرنده نام يا نامهاي نقشه ورودي خواهد بود كه بدنبال
آنها علامت # مي آيد. مثالهائي از عبارت همسايگي: |
|
#Map |
ماتريس همسايگي روي همه سلولهاي نقشه ورودي به نام Map مرور مي شود. و مقاديري چون حداقل، حداكثرو ... كه براي آن تعريف شده را بدست مي دهد. | |
|
Map# > 40 |
يك ماتريس همسايگي روي نقشه ورودي بنام Map اعمال مي شود و چك مي كند كه اگر ارزش سلول همسايه بيشتر از 40 باشد مقاديري چون حداقل، حداكثرو ... كه براي آن تعريف شده را بدست مي دهد. |
NbFunctionيكي از توابع زير است:
| NBMIN | حداقل ماتريس همسايگي را بر مي گرداند. |
| NBMAX | حداكثر ماتريس همسايگي را بر مي گرداند. |
| NBAVG | ميانگين ماتريس همسايگي را بر مي گرداند. |
| NBSUM | حاصلجمع ماتريس همسايگي را ارائه مي كند. اگر مقدار همسايه تعريف نشده باشد لحاظ نمي شود. اگر سلول مركزي تعريف نشده باشد مقدار 0 به جاي آن گذاشته مي شود. |
| NBPRD | فراوانترين عدد ماتريس همسايگي را بر مي گرداند. |
| NBSTD | انحراف استاندارد ماتريس همسايگي را بر مي گرداند. |
| NBCNT | تعداد پيكسلهائي را كه در ماتريس همسايگي تعريف شده و درست هستند را مي شمارد و در سلول مركزي قرار مي دهد. |
| NBMINP | كد سلولي كه حداقل ارزش را دارد را پيدا مي كند و در سلول مركزي قرار مي دهد. |
| NBMAXP | كد سلولي كه حداكثر ارزش را دارد را پيدا مي كند و در سلول مركزي قرار مي دهد. |
| NBPRDP | كد سلولي كه فراوانترين ارزش را دارد را پيدا مي كند و در سلول مركزي قرار مي دهد. |
| NBCNDP | كد سلولي كه ارزش درست يا تعريف شده را دارد را پيدا مي كند و در سلول مركزي قرار مي دهد. اگر چند گزينه شرط را ارضاع كند كد 5 رابر مي گرداند. اگر هيچ يك از سلولها داراي اين شرط نبود ؟ را بر مي گرداند. |
نامهاي مستعار ويژه براي مبحث همسايگي:
بجاي به كار بردن [neighbour, neighbour, ...] مي توان عبارتها را براي برخي تركيبها ساده تر كرد
|
عبارت |
حالت مستعار |
توضيح |
|
NbFunction[2,4,6,8] |
NbFunction4 | دراين حالت تابع روي سلولهاي داراي كدهاي 2, 4, 6, 8 اعمال مي شود. مثلاً NBAVG4 |
|
NbFunction[2,4,5,6,8] |
NbFunction5 | دراين حالت تابع روي سلولهاي داراي كدهاي 2, 4, 5, 6, 8 اعمال مي شود. مثلاً NBAVG5. |
|
NbFunction[1,2,3,4,6,7,8,9] |
NbFunction8 |
د راين حالت تابع روي همه سلولها، يعني سلولهاي داراي كدهاي 21, 2, 3, 4, 6, 7, 8, 9 اعمال مي شود. مثلاً NBAVG8. |
چند مثال:
|
OUTmap = NBMIN(Map1#) |
در نقشه Map1حداقل ارزش يكي از 9 پيكسل همسايه را در پنجره مرور به سلول مركزي OUTmap اختصاص مي دهد. |
|
OUTmap = NBAVG(Map1#) |
در نقشه Map1ميانگين ارزش 9 پيكسل همسايه را در پنجره مرور به سلول مركزي OUTmap اختصاص مي دهد. |
|
OUTmap = NBAVG[2,4,5,6,8](Map1#) |
|
|
|
در نقشه Map1ميانگين ارزش پيكسلهاي با كد 2, 4, 5, 6, 8 همسايه را در پنجره مرور به سلول مركزي OUTmap اختصاص مي دهد. |
|
OUTmap = NBAVG5(Map1#) |
مشابه قبلي. |
|
Aspect = NBMINP(Dem#) |
|
|
|
نقشه جهتي بنام Aspect ايجاد مي كند كه موقعيت يا كد سلول كمترين ارتفاع را در نقشه مدل رقومي ارتفاع برمي گرداند. |
|
Pit = NBMINP(Dem#)=5 |
|
|
|
نقشه اي بنام Pit ايجاد مي كند كه اگر حداقل ارزش ماتريس مرور را در نقشه مدل رقومي ارتفاع سلول مركزي باشد مقدار درست را بر مي گرداند. |
|
Flat = NBCNT(Dem#=Dem)=9 |
|
|
|
اگر تمامي سلولهاي پنجره مرور در نقشه Dem ارزش يكساني داشته باشند مقدار منطقي درست را بر مي گرداند. |
|
Flat = NBCNT8(Dem#=Dem)=8 |
|
|
|
اگر 8 سلول اطراف سلول مركزي در نقشه Dem ارزش يكساني داشته باشند مقدار صحيح بر مي گرداند. اين مورد شبيه مثال قبلي است. |
|
Streams = NBCNT(Dem#>Dem)>=5 |
|
|
|
نقشه جديدي بنام Streams ايجاد مي كند كه 5 تا يا بيشتر از سلول مركزي مرتفعتر باشند مقدار درست بر مي گرداند. |
|
Streams2 = iff(NBCNT(Dem#>Dem)>=5,NBMAXP(Dem#), ?) |
|
|
|
حالتي ديگر از مثال قبلي. |
استفاده از متغيرهاي از پيش تعيين شده
در اين بخش متغييرهائي (NBDIS, NBPOS و(NBFLT(fltname) كه در تركيب با عبارات همسايگي قابل استفاده هستند توضيح داده مي شوند:
| NBDIS | فاصله بين
سلول مركزي و يكي از سلولهاي اطراف را برمي گرداند. اگر فاصله با خود
سلول مركزي در نظر گرفته شود مقدار 0 برگردانده مي شود. فاصله با پيكسلهاي
داراي كد 2, 4, 6, 8 برابر 1 و فاصله با پيكسلهاي 1, 3, 7, 9 برابر
1.4 مي باشد. به جاي اين متغير مي توان از d% استفاده
كرد. توصيه مي شود اين دستور بطور تركيبي با دستورات ديگر استفاده شود تا مسافت واقعي بدست آيد: NBDIS *
PIXSIZE(rasmap) NBDIS * PIXSIZE(georef)
|
|||||||||||||||||||||||
| NBPOS | كد يا موقعيت سلولي كه داراي يك شرايط خاص است را برمي
گرداند. به جاي آن P% نيز مي توان استفاده كرد.
|
|||||||||||||||||||||||
|
NBFLT (fltname) |
يك fltnameفيلتر 3در3 روي پنجره مرور اعمال مي كند |
مثال:
OUTmap = NBSUM(Map1# * NBFLT(Edgesenh))
|
|
|
|