آموزش تصویری محاسبه طول خطوط و آمارها در GIS
QGIS توابع درون ساخته ای برای محاسبه خصوصیات متفاوت بر پایه ژئومتری عارضه مانند طول، مساحت، محیط و غیره دارد. این آموزش نشان خواهد داد چطور می شود از Field Calculator برای افزودن یک ستون با یک مقدار که طول هر عارضه را نشان می دهد، استفاده کرد.
نمای کلی کار
ما از یک فایل شکلی (shapefile) خط راه آهن آمریکای شمالی استفاده خواهیم کرد و سعی داریم طول کلی راه آهن در ایالات متحده را مشخص کنیم.
سایر مهارتهایی که یاد خواهید گرفت:
- استفاده از عبارات برای انتخاب عارضه ها
- پراجکت دوباره یک لایه از سیستم مرجع مختصات جغرافیایی به سیستم تصویری (Projected)
- مشاهده آمار و ارقام برای مقادیر یک ویژگی در یک لایه
به دست آوردن اطلاعات
سایت Natural Earth دارای مجموعه داده های یک راه آهن همگانی است.
می توانید یک نسخه از این دیتا بیس را از لینک زیر دانلود کنید:
ne_10m_railroads_north_america..zip
منبع داده ها: [NATURALEARTH]
روش کار
۱-به Layer رفته و روی Add Vector Layer کلیک کنید.
۲-فایل ne_10m_railroads_north_america..zip را پیدا کرده و روی Ok کلیک کنید.
۳-در دیالوگ Select layers to add…، لایه ne_10m_railroads_north_america.shp را انتخاب کنید.
۴-وقتی لایه بارگذاری شد، خواهید دید که لایه شامل خطوطی است که راه آهن تمام آمریکای شمالی را نشان می دهد. از آنجا که می خواهیم طول خطوط را تنها برای راه آهن ایالات متحده اندازه گیری کنیم، باید خطوطی که در این ایالات قرار دارند را انتخاب کنیم. روی لایه راست کلیک کرده وOpen Attribute Table را انتخاب کنید.
۵-این لایه ویژگی به نام sov_a3 دارد. این کد ۳ حرفی برای کشوری است که یک عارضه خاص در آن قرار می گیرد. ما می توانیم از مقدار این ویژگی برای انتخاب عارضه هایی که در ایالات متحده هستند، استفاده کنیم.
۶-در پنچره Attribute Table، روی دکمه Select features using an expression کلیک کنید.
۷-دیالوگ جدید Select By Expression باز خواهد شد. ویژگی sov_a3 زیر Fields and Values در بخش فهرست توابع (Function list) را بیابید. روی آن دابل کلیک کرده تا به کادر متن Expression اضافه شود. عبارت را به صورت “sov_a3” =’USA’ کامل کنید. روی Select و سپس Close کلیک کنید.
۸-به پنجره اصلی QGIS برگردید، خواهید دید که تمام خطوطی که در USA قرار دارند، انتخاب شده و به رنگ زرد در آمده اند.
۹-حالا مجموعه انتخابیمان را در یک فایل شکلی جدید ذخیره می کنیم. روی لایه ne_10m_railroads_north_america راست کلیک کرده و Save selection AS… را انتخاب کنید.
۱۰-روی Browse کلیک کرده و فایل خروجی را usa_railroads.shp نامگذاری کنید. ما می خواهیم CRS لایه را هم تغییر دهیم. روی Browse کنار CRS کلیک کنید.
توجه
توابع درون ساخته ای که از ژئومتری یک عارضه برای محاسبه استفاده می کنند، واحدهای CRS لایه را به کار می گیرند. سامانه مرجع مختصاتی جغرافیایی (CRS) مثل EPSG:4326 از درجه به عنوان واحد اندازه گیری استفاده می کنند. بنابراین یکای طول عارضه، درجه و مساحت، درجه مربع است که بی معناست. شما باید از یک سامانه مرجع پراجکت شده با یکاهایی به متر یا فوت برای انجام چنین محاسباتی استفاده کنید.
۱۱-از آنجا که ما به دنبال محاسبه طول هستیم، باید یک نقشه تصویری هم فاصله را انتخاب کنیم. در کادر جستجوی Filter، عبارت north America equ را تایپ کنید. در کادر نتیجه زیر، North_America_Equidistant_conic EPSG:102010 را به عنوان CRS تایپ کرده و روی Ok کلیک کنید.
۱۲-در دیالوگ Save vector layer as…، مربع Add saved file to map را تیک زده و روی Ok کلیک کنید.
۱۳-پس از اتمام مراحل خروجی گرفتن، یک لایه usa_railroads را خواهید دید که در QGIS بارگذاری شده است. شما می توانید تیک کادر مربعی کنار لایه ne_10m_railroads_north_america را برداشته تا غیر فعال شود زیرا دیگر به آن نیازی نداریم.
۱۴-روی لایه usa_railroads راست کلیک کرده و Open Attribute Table را انتخاب کنید.
۱۵-حالا زمان آنست که یک ستون برای طول هر عارضه اضافه کنید. با کلیک روی دکمهToggle editing لایه را روی حالت ویرایش (Editing mode) قرار دهید. وقتی حالت ویرایش فعال شد، روی دکمه Open field calculator کلیک کنید.
۱۶-در Field Calculator، مربع کنار Create a new field را تیک بزنید. در کادر مقابل Output field name، عبارت length_km را وارد کنیدDecimal number (real). را برایOutput field type انتخاب کنید. Precision را به ۲ تغییر دهید. در پنل Function list، $length در زیر Geometry را پیدا کنید. روی آن دابل کلیک کرده تا به Expression اضافه شود. کادر expression را با $length / ۱۰۰۰ کامل کنید زیرا CRS لایه به متر است و ما می خواهیم خروجی به کیلومتر باشد.
۱۷-به Attribute Table بازگردید، خواهید دید که ستون جدید length_km ظاهر شده است. روی دکمه Toggle editing برای ذخیره تغییرات در attribute table کلیک کنید.
۱۸-حالا که طول هر خط منحصر به فرد را در لایه مان داریم، می توانیم به راحتی همه آنها را با هم جمع کرده و طول کل (Total length) را پیدا کنیم. به Vector، سپس Analysis Tools و بعدBasic Statistics بروید.
۱۹-Input Vector Layer را usa_railroads انتخاب کنید. length_km را برای Target field انتخاب کرده و روی Ok کلیک کنید. خواهید دید که آمار مختلفی ظاهر می شود. مقدار Sum نشان دهنده طول کل راه آهنهایی است که ما به دنبالشان بودیم.
توجه
اگر یک سیستم تصویری متفاوت انتخاب شود، پاسخ کمی متفاوت خواهد بود. در عمل، طول خطوط برای جاده ها و سایر عارضه های خطی روی زمین اندازه گیری شده است و به عنوان ویژگیها به مجموعه داده ارائه می شود. این متد در غیاب چنین ویژگی جواب می دهد و به عنوان تخمینی از طول واقعی خطوط در نظر گرفته می شود.