ارزش هر پیکسل در یک رستر میتواند مثبت یا منفی، عدد صحیح یا اعشاری باشد. پیکسلها هم میتوانند ارزش NoData داشته باشند که نشاندهنده فضای فاقد اطلاعات آنها میباشد.
برخی اوقات در یک Raster مناطقی همگن وجود دارند که شما نمیخواهید آنها را نمایش دهید. اینها میتوانند حدکار شما بوده و یا اینکه پسزمینه(Background) فایل شما را تشکیل میدهند. برخی مواقع نیز بهدلیل استفاده از ابزارهای برش دادههای رستری این مناطق بوجود میآیند.
درحقیقت این مناطق نیز دارای ارزش هستند. چهبسا در پروژههای دیگری که با آنها سروکار دارید بخواهید این مناطق را نیز مورد مطالعه قرار دهید. اما درحالحاضر نیازی به بررسی ارزش آنها ندارید.
چرا از فضای فاقد اطلاعات در یک داده رستری استفاده میکنیم؟
استفادهکردن از NoData مزیتهای بسیاری دارد و از جنبههای مختلف میتوان مزایایی را برای آن برشمرد. البته این بدان معنا نیست که تنها راهحل شما استفادهکردن از این موضوع است و شما در برخی موارد میتوانید با استفاده از راهحلهای ابتکاری فضای فاقد اطلاعات فایل رستر خود را مدیریت کنید. اما بهتر است با برخی کاربردهای آن روبرو شده و با دلایلی که کارشناسان برای استفاده از آن دارند، آشنا شوید.
کاربرد NoData در کارتوگرافی لایههای رستری
از نگاه کارتوگرافی میبایست فضایی که حاوی اطلاعات خاصی در نقشه نیست، به رنگ پسزمینه، که عمدتاً سفید است، دیده شود. اگر بدون استفاده از NoData بخواهیم، در نرمافزارهای مختلف کارتوگرافی، نقشه تولید کنیم، درخصوص فضای فاقد اطلاعات نقشه میبایست دقتنظر خاصی را اعمال کنیم.
در بسیاری از نرمافزارها، برای نمایش لایههای رستری که حاوی ارزش عددی بالاتر از 255 هستند، مانند DEM که حاوی پیکسلهایی با مقادیر چهار رقمی است، از گزینهای تحت عنوان Streaching استفاده میشود. این کار برای بهبود کنتراست تصاویر و ایجاد قابلیت نمایش آنها در صفحه نمایش رایانه انجام میشود.
در اینحالت به فضای فاقد اطلاعات فایل رستر ما نیز یک ارزش بین صفر تا 255 نسبت داده میشود. اگر مقداری بهجز 255 برای آنها درنظر گرفته شود، فضای فاقد اطلاعات فایل رستر را بصورت رنگی خواهیم دید که در بدترین حالت نیز سیاه دیده میشود.
برای دوری از این حالت میتوانیم به NoData پناه ببریم. اگر شما رستری تولید کنید که حاوی NoData باشد میتوانید مطمئن باشید که در اغلب نرمافزارها، فضای فاقد اطلاعات شما با رنگ سفید دیده خواهد شد.
استفاده از NoData هنگام پردازش اطلاعات
هنگام انجام پردازشهای مکانی بر روی دادههای رستری درصورتیکه NoData را تعریف کرده باشیم تنها بخشهایی پردازش خواهند شد که NoData نیستند. اگر در نرمافزار ArcGIS پردازش رستری انجام دهید، هنگام همپوشانی یا Overlay دادهها، حتی اگر یکی از لایهها حاوی NoData باشد فضایی که در آن بخش قرار میگیرد پردازش نخواهد شد و در خروجی نیز همان بخش را بصورت فضای فاقد اطلاعات یا NoData خواهید دید.
این موضوع کمک میکند تا نرمافزار متوجه گردد که ما نیازی به پردازش فضای NoData نداریم و تلاش خود را معطوف به فضاهای حاوی اطلاعات کند. همین امر سرعت کار با دادههای رستری را بالا خواهد برد.
ماهیت NoData چیست و چگونه میتوان آن را ذخیره کرد؟
فضای فاقد اطلاعات درحقیقت حاوی ارزش عددی است. اما تفاوت آن این است که ما به نرمافزار میگوییم ارزش عددی آن را بهعنوان NoData در نظر بگیرد.
اگر با ساختار یک رستر آگاهی داشته باشید، میدانید که هر فایل رستری یک محدوده مستطیل شکل را شامل میشود و تعداد سطر و ستون آن مشخص است. مثلاً یک رستر حاوی 2000 ستون و 1000 سطر و بصورت یک شبکه منظم تعریف میشود. اطلاعات مربوط به تعداد سطر و ستون آن در سربرگ(Header) فایل رستر تعریف میشود. سپس ارزشهای عددی کل فایل بهترتیب و پشتسرهم قرار میگیرد. حتی بین آخرین پیکسل سطر اول و اولین پیکسل سطر دوم فاصلهای وجود ندارد و بههمیندلیل صرفاً با دانستن تعداد سطرها و ستونها میتوانیم موقعیت پیکسل را تعیین کنیم.
پس منطقی نیست که برای بخشهای خالی فایل رستری پیکسلی نداشته و ارزشی نیز ثبت نکنیم. راهحل این است که یکی از ارزشهایی را که میتوانیم به پیکسهایمان نسبت دهیم را بهعنوان NoData تعریف کنیم. کاری که در عمل پیاده سازی میشود هم همین است و معمولاً این موارد در فایل AUX که کنار فایل اصلی رستر ما قرار میگیرد، نوشته میشود.
چگونه میتوان بخشی از داده رستری را به NoData تبدیل کرد؟
اگر یک تصویر ارتو شده را درنظر بگیریم، سه یا چهار باند 8bit خواهیم داشت. میدانیم که در یک متغیر 8 بیتی میتوانیم 256 حالت متفاوت را ثبت کنیم. (اعداد 0 تا 255)
در حالتی که فضای فاقد اطلاعات نداریم میتوانیم از تمامی این 256 حالت برای نمایش ارزش عددی پیکسلها استفاده کنیم. اما اگر بخواهیم NoData تعریف کنیم میبایست بین اعداد صفر تا 255 یک عدد را انتخاب کرده و آن را بهعنوان NoData درنظر بگیریم. با این کار برای نمایش ارزش عددی پیکسلها 255 حالت باقی میماند. معمولاً در اینحالت عدد 255 را برای این موضوع انتخاب میکنند، چون در اکثر نرمافزارها رنگ پیشفرضی که به عدد 255 نسبت داده میشود سفید است .
اما راهکار دیگری هم وجود دارد و آن این است که تصویر را به 16 یا 32 بیت ارتقاء دهیم تا بیش از 256 حالت در اختیار داشته باشیم. در اینحالت میتوانیم خارج از محدودهای که ارزش دادههای ما قرار دارند، یک عدد (مثلاً عدد منفی 1000-) را بهعنوان NoData تعریف کنیم. معمولاً برای نمایش فضای فاقد اطلاعات در مدل رقومی ارتفاع(DEM) این کار را انجام میدهند.
نحوه تعریف و ویرایش NoData در ArcCatalog
اگر بخواهید برای داده رستری خود ارزشی را بهعنوان NoData تعریف کنید، راحت ترین راه این است که مراحل زیر را دنبال کنید:
1- ابتدا بر روی فایل رستری خود در ArcCatalog راستکلیک کرده و گزینه Properties را انتخاب کنید.
2- حال در سربرگ General و در بخش Raster Information گزینه NoData Value را بیابید. مقابل این گزینه دکمه Edit قرار دارد. آن را کلیک کنید تا وارد پنجره NoData Editor شوید.
3- در ستون اول تمامی باندهای موجود را میبینید. شما میتوانید روبروی هر باند، عددی را که میخواهید بهعنوان NoData تعریف شود وارد کنید.
4- درنهایت گزینه OK را کلیک کنید و از تمامی پنجرهها خارج شوید.
نحوه ایجاد NoData با استفاده از مجموعه ابزار ArcToolbox
شاید بخواهید بخشهایی از داده رستری خود را به NoData تبدیل کنید. برای این کار میتوانید از ابزار Set Null استفاده کنید. این ابزار در ArcToolbox و در بخش Spatial Analyst Tools > Conditional وجود دارد.
یافتن بخشهایی که NoData هستند با استفاده از مجموعهابزار ArcToolbox
پیدا کردن بخشهای فاقد اطلاعات در یک رستر کاری بسیار ساده است. کافی است ابزار IsNull که در ArcToolbox و در بخش Spatial Analyst Tools > Math > Logical قرار دارد فراخوانی کنیم. این ابزار داده رستری شما را بهعنوان ورودی دریافت میکند و رستری را بصورت صفر و یک ایجاد میکند. در مناطق فاقد اطلاعات ارزش پیکسلهای این رستر برابر یک و در سایر مناطق برابر صفر است.
نحوه تبدیل NoData به یک ارزش عددی دیگر
برای ازبین بردن فضاهای فاقد اطلاعات در داده رستری دو راهکار پیش روی شما قرار خواهد داشت.
اولین راهکار این است که مطابق روشی که برای تعریف و ویرایش NoData گفته شد عمل کنید و فقط هنگام تعریف مقادیری که بهعنوان NoData تعریف میشوند، اعدادی که از قبل تعریف شدهاند را پاک کنید.
راهکار دوم هم استفاده کردن از ابزاری با نام Con است. این ابزار هم در ArcToolbox و در بخش Spatial Analyst Tools > Conditional وجود دارد. کار این ابزار این است که برای هر پیکسل که با شرط خاصی پیدا شده مقدار عددی که تعریف میشود قرار دهد. پس کافیاست با استفاده از دستور IsNull ابتدا مناطقی را که فاقد اطلاعات هستند یافته و سپس با استفاده از ابزار Con مقدار ارزش عددی آن را مانند شکل زیر تغییر دهیم.