بایگانی

نوشته های برچسب زده شده ‘{چگونه}’

{چگونه} در ArcGIS یک پلیگون را تقسیم کنیم؟

11 مرداد 1394 بدون دیدگاه

می‌خواستم تصاویر ماهواره‌ای گوگل یا بینگ را برای محدوده وسیعی دانلود کنم، برای دانلود باید محدوده مورد نظر به نرم‌افزار معرفی شود. در مقیاس‌های کوچک به طور مثال زوم 14، یا 15 تصاویر ماهواره‌ای گوگل مشکل خاصی وجود ندارد، تعداد tile های تصویری کم است و تصاویر ماهواره‌ای محدوده مورد نظر به راحتی دانلود می‌شود.

با بزرگ‌تر شدن مقیاس تعداد tile های تصویر به شدت افزایش می‌یابد، به طوری که با هر درجه افزایش زوم تعداد تصاویری که باید دانلود شود، 4 برابر می‌شود. به صورتی که برای محدوده مورد نظر من تا 600 هزار tile تصویر نیز می‌رسد. علاوه بر این مشکل دیگری برای دانلود تصاویر گولل وجود دارد، بدین صورت که با افزایش درخواست‌هایی که به سرور گوگل فرستاده می‌شود، آی‌پی درخواست کننده بلوک می‌شود و فرآیند دانلود قطع می‌گردد.

برای کاهش این مشکلات تصمیم گرفتم پلیگون محدوده مورد نظر را به پلیگون‌های کوچکتر تقسیم کنم. چطور این کار را انجام بدهیم؟ راه اول این است که پلیگون را به پلیگون‌هایی با عرض مساوی تقسیم کنیم، راه دوم این است که پلیگون را به پلیگون‌های کوچتر با مساحت‌های مساوی تقسیم کنیم. در این نوشته می‌خواهم چگونگی انجام این کار را توضیح دهم.

پیش از توضیح روش کار باید بگویم که پلاگین‌هایی خاصی وجود دارد که این کار را انجام می‌دهند، ولی دسترسی به این پلاگین‌ها برای من امکان‌پذیر نیست.

1- تقسیم پلیگون به عرض‌های مساوی

مرحله اول: از مسیر ArcToolbox>Data Management Tools> Feature Class> Create Fishnet دستور ایجاد Fishnet را اجرا کنید. این دستور فضا را به سلول‌های مستطیلی تقسیم می‌کند، خروحی می‌توان پلی‌لاین یا پلیگون باشد. بعد از اجرای دستور پنجره‌ای به شکل زیر باز می‌شود:
در این پنجره در بخش Output Feature Class نام لایه خروجی را مشخص می‌کنیم. در بخش Template Extent بایستی محدوده انجام پردازش را مشخص کنیم، برای اینکه پلیگون مورد نظر به عرض‌های مساوی تقسیم شود، در این بخش Same as layer را انتخاب می‌کنیم. در بخش Cell Size Width/Height می‌توانید عرض و ارتفاع سلول‌ها را مشخص کنید، یا می‌توانید در بخش Number of Rows/Columns تعداد سطرها یا ستون‌های Fishnet را مشخص کنید. تیک بخش Create Label Points را بر دارید و Geometry Type را پلیگون انتخاب کنید. OK را بزنید و دستور را اجرا کنید.

مرحله دوم: لایه پلیگونی که می‌خواهید تقسیم‌اش کنید را با لایه Fishnet ای که در مرحله قبل ساختید، تقاطع بدهید.
از مسیر Geoprocessing> Intersection دستور Intersection را اجرا کنید. ابتدا لایه پلیگونی مورد نظر و سپس لایه Fishnet ساخته شده در مرحله قبل را انتخاب و دستور را اجرا کنید. با اجرای این دستور لایه پلیگونی مورد نظر به عرض‌های مساوی تقسیم می‌شود. می‌توانید هر کدام از این بخش‌ها را انتخاب کنید، سپس با راست کلیک بر روی نام لایه و از مسیر  Data> Export Data آن را به صورت Shapefile  ذخیره کنید.

ج) با افزایش تعداد سطرها و ستون‌ها تعداد خروجی‌هایی که می‌گیریم بسیار افزایش می‌یابد و این فرآیند تکراری و خسته کننده خواهد بود. برای رفع این مشکل می‌توان از Model Builder یا اسکریپت‌های پیتون استفاده کرد و فرآیند را به صورت خودکار انجام داد. من مدلی به شکل زیر برای خودکار سازی طراحی کردم.

 تقسیم پلیگون به مساحت‌های مساوی دشوارتر و پیچیده‌تر است. در نوشته بعدی یک روش ابتکاری را برای تقسیم پلیگون به مساحت‌های مساوی توضیح خواهم داد.