آموزش و پژوهش

نصب کتابخانه GDAL بر روی سیستم عامل ویندوز

1- مقدمه

با توجه به تنوع و تعدد فرمت های تصویری و برداری و از طرف دیگر نیاز به منابع متن باز برای پردازش و مدیریت داده ها و خصوصا تصاویر در محیط های برنامه نویسی مختلف، وجود یک کتابخانه ی متن باز برای کار با انواع داده ها می تواند نقشی کلیدی داشته باشد. کتابخانه ی GDAL یکی از منابع متن باز است که برای دستیابی به انواع فرمت های رستری و برداری، پردازش آنها و انجام تبدیلات بین آن ها بر پایه ی مجوز X/MIT طراحی شده است.

این کتابخانه در ابتدا توسطFrank Warmerdam به زبان C++ نوشته شده و در بسیاری از نرم افزارهای متن باز و تجاری مانند GRASS، UMN MapServer، QGIS،ILWIS استفاده شده است [1]. بسیاری از فرمت های رستری و برداری موجود، توسط این کتابخانه پشتیبانی می شوند. در پیوندهای زیر امکان مشاهده ی فرمت های تحت پشتیبانی این کتابخانه قابل مشاهده است.

لیست فرمت های رستری پشتیبانی شده توسط کتابخانه ی GDAL

لیست فرمت های برداری پشتیبانی شده توسط کتابخانه ی GDAL

با توجه به تنوع نسخه های ارائه شده از GDAL، محیط های برنامه نویسی مختلف و همچنین سیستم عامل های مختلفی که از این کتابخانه پشتیبانی می کنند، با حالت های متنوعی از نصب نرم افزار مواجه خواهیم بود. یکی از پرطرفدارترین این حالت ها، استفاده از کتابخانه ی GDAL بر روی پایتون (Python) در سیستم عامل ویندوز است.

پایتون یک زبان برنامه نویسی متن باز و تا حدودی سطح بالا است که با توجه به پشتیبانی از کتابخانه های متعدد و سادگی برنامه نویسی با آن، طرفداران زیادی بین توسعه دهندگان دارد. بزرگترین مانع برای تولید نرم افزار با استفاده از این زبان، عدم پشتیبانی از رابط کاربری مناسب و همچنین سرعت بعضا پایین آن در اجرای برخی دستورات می باشد. این زبان از برنامه نویسی شیء گرا پشتیبانی کرده و امکان تعریف ساختارهایی همانند کلاس در آن وجود دارد.

در این مقاله نحوه ی نصب کتابخانه ی GDAL نسخه ی 3/2/2 (GDAL 2.2.3) بر روی پایتون نسخه ی 4/3 (Python 3.4) و بر روی سیستم عامل ویندوز توضیح داده شده است که تا زمان نگارش این سطور، آخرین نسخه ی قابل نصب از GDAL بوده است.

2- نصب پایتون و کنترل نسخه نصبی آن

اولین قدم در نصب کتابخانه ی GDAL نصب پایتون بر روی سیستم عامل ویندوز می باشد. بدیهی است در صورتی که نسخه ی مناسب پایتون بر روی سیستم عامل نصب شده باشد، نیازی به نصب مجدد آن نیست. برای آگاهی از نصب بودن پایتون بر روی سیستم کافی است همانند شکل 1 کلمه ی کلیدی IDLE را در برنامه های نصب شده ی ویندوز جستجو کنیم. چنانچه چنین برنامه ای وجود داشت، به معنی نصب بودن پایتون بر روی سیستم است. در این حالت کافیست نسخه ی نصبی پایتون کنترل شود.

شکل 1: جستجوی کلمه کلیدی IDLE در سیستم عامل ویندوز 10

ممکن است خود شما بصورت مستقیم هیچ اقدامی برای نصب پایتون انجام نداده باشید امام این برنامه بواسطه ی نصب سایر نرم افزارها (از جمله نرم افزار ArcGIS)، بر روی سیستم موجود باشد. یکی از راه های کنترل نصب بودن پایتون بر روی سیستم این است که این برنامه پس از نصب معمولا بر روی شاخه ی اصلی درایو ویندوز (معمولا درایو C) قرار می گیرد. بنابراین با کنترل این درایو نیز می توان مشابه شکل 2 نسخه های مختلف پایتون را (در صورت وجود) مشاهده نمود.

شکل 2: نسخه های نصبی مختلف پایتون در درایو C چنانچه پایتون بر روی سیستم نصب نباشد، برای نصب آن می توان نسخه ی مورد نیاز را از وب سایت رسمی پایتون، دانلود و نصب کرد. توجه شود که برای استفاده ی توأمان از پایتون و GDAL می بایست یکی از دو نسخه ی 3.4 یا 2.7 پایتون بر روی سیستم نصب شود. پس از نصب نسخه ی مدنظر از پایتون می توان با اجرای IDLE طبق روند توضیح داده شده در شکل 1، پنجره ی اصلی برنامه را ملاحظه نمود. (شکل 3)

شکل 3: کنترل نسخه نصبی پایتون در ویندوز

3- دانلود و نصب کتابخانه GDAL بر روی سیستم عامل ویندوز

منبع اصلی دانلود کتابخانه ی GDAL، وب سایت GisInternals است. با توجه به وجود نسخه های مختلف از GDAL بر روی این وب سایت، در انتخاب نسخه ی مناسب این کتابخانه برای دانلود و کامپایلر آن باید به این نکته توجه داشت که نسخه ی کامپایلر آن بر اساس نسخه ی پایتون و معماری آن باشد. در شکل 3 ملاحظه می گردد که شماره ی نسخه و معماری پایتون نصب شده به ترتیب 1600 و 64 بیتی می باشند که البته معماری پایتون متفاوت از معماری ویندوز می باشد. با این توضیح و مطابق شکل 4 نسخه ی release-1600 و 64 بیتی از کامپایلر انتخاب شده است.


<="text-align: justify;">شکل 4: انتخاب نسخه کتابخانه GDAL بر اساس نسخه پایتون موجود بر روی سیستم عامل ویندوز پس از انتخاب نسخه ی مورد نظر، در صفحه ی جدید (شکل 5) نسخه ی نهایی از کتابخانه ی GDAL که حالت نصب عمومی (msi) داشته و در نام آن عبارت core ملاحظه می گردد، انتخاب و دانلود می شود. پس از اتمام دانلود، با کلیک بر روی فایل دانلودشده، مراحل نصب آن آغاز می گردد و بعد از مدت کوتاهی به پایان می رسد.

شکل 5: انتخاب نسخه نهایی از کتابخانه ی GDAL که حالت نصب عمومی دارد.

4- دانلود و نصب پیوند پایتون برای کتابخانه GDAL

در دانش رایانه و برنامه نویسی، یک پیوند از یک زبان به یک کتابخانه یا سرویس سیستم عامل، یک رابط برنامه نویسی نرم افزار است که امکان استفاده از آن کتابخانه یا سرویس سیستم عامل را در آن زبان فراهم می کند. برای مثال برای استفاده از کتابخانه ای که به زبان C یا C++ نوشته شده است، در زبانی دیگر مانند پایتون، باید یک پیوند پایتون به آن کتابخانه نوشت، به این ترتیب دیگر لازم نیست آن کتابخانه را به زبان پایتون بازنویسی کرد. برای دانلود پیوند پایتون برای کتابخانه ی GDAL مطابق شکل 6، نسخه ای از پیوند پایتون را انتخاب می کنیم نسخه ی پایتون متناظر آن در ویندوز نصب شده باشد. بدلیل آن که در این گزارش از نسخه ی 3.4.4 پایتون استفاده شده است، نسخه ی پیوند پایتون 3.4 انتخاب، دانلود و نصب می شود.

شکل 6: انتخاب نسخه مناسب پیوند پایتون برای کتابخانه ی GDAL براساس نسخه ی پایتون نصبی بر روی سیستم عامل چنانچه کار با فرمت های ecw، gdb و mrsid نیز مهم و دارای اهمیت باشد، می توان فایل های نصبی مرتبط با این فایل ها را دانلود و نصب کرد.

5- تعریف متغیرهای سیستمی

بعد از نصب کتابخانه ی GDAL و پیوند پایتون برای کتابخانه ی GDAL، لازم است مسیر فایل های نصبی GDAL به سیستم عامل ویندوز معرفی شوند؛ بدین منظور مسیر این فایل ها به عنوان متغیر به سیستم عامل معرفی می گردد که به آن ها متغیرهای سیستمی گفته می شود. برای تعریف متغیرهای سیستمی، با راست کلیک بر روی My Computer و انتخاب Properties پنجره ای باز می شود که در سمت چپ و پایین آن، گزینه ی Advanced System Setting مشاهده می شود. با انتخاب این گزینه، پنجره ی دیگری با نام System Properties شکل 7) باز می گردد. در سربرگ سوم این پنجره (که Advanced نام دارد)، دکمه ای با نام Environment Variables وجود دارد که با انتخاب آن پنجره ی دیگری (شکل 8) باز می گردد.

شکل 7: پنجره خصوصیات سیستم عامل (System Properties)

شکل 8: پنجره ی متغیرهای سیستمی (Environment Variables) سپس مطابق شکل 8، از قسمت System Variables متغیر Path، انتخاب شده و دکمه ی Edit کلیک می شود تا در پنجره ی جدید، مسیر نصب فایل های کتابخانه ای GDAL که در اینجا C:\Program Files\GDAL می باشد، به انتهای آن اضافه می شود. توصیه می شود در این قسمت پوشه ی پایتون (بعنوان مثال C:\Python34) و پوشه ی اسکریپ های آن (C:\Python34\Scripts) نیز به ابتدای این لیست اضافه شوند. در اینجا توجه به دو نکته ضروری می باشد: Path-;GDALNewGDAL شکل 9: ایجاد یک فیلد آدرس جدید متغیرهای سیستمی در ویندوز 10

  • نکته ی دوم: مسیر نصب فایل های کتابخانه ای GDAL ممکن است با مسیر معرفی شده در این مقاله متفاوت باشد؛ به عنوان مثال اگر نسخه ی 32 بیتی فایل های کتابخانه ای GDAL با آدرس پیش فرض در سیستم عامل نصب گردد در آن صورت مسیر نصب فایل های کتابخانه ای GDAL به صورت C:\Program Files(x86)\GDAL خواهد بود. بدیهی است که باید مسیر صحیح نصب فایل ها در این قسمت به سیستم عامل معرفی شود.

بعد از معرفی مسیر نصب فایل های کتابخانه ای GDAL به متغیر سیستمی Path، نیاز به ایجاد دو متغیر سیستمی جدید مطابق شکل 10 و شکل 11 می باشد. ایجاد متغیر های جدید، با استفاده از دکمه ی New در پنجره ی Environment Variables امکان پذیر خواهد بود. (شکل 8)

شکل 10: تعریف متغیر سیستمی جدید با نام GDAL_DATA

شکل 11: تعریف متغیر سیستمی جدید با نام GDAL_DRIVER_PATH

6- کنترل نصب صحیح کتابخانه GDAL بر روی سیستم عامل ویندوز

بعد از نصب کتابخانه GDAL بر روی سیستم عامل ویندوز، جهت اطمینان از نصب صحیح آن می توان پس از اجرای Command Prompt دستور gdalinfo –-version را تایپ و اجرا نمود. در صورتی که نسخه و تاریخ انتشار کتابخانه GDAL مطابق شکل 12 نمایش داده شود، کتابخانه ی GDAL بطور صحیح نصب شده است؛ در غیر این صورت، نیاز به نصب مجدد آن می باشد. لازم بذکر است که برای اجرای صحیح این دستور پیشنهاد می شود، برنامه ی Command Prompt در حالت Run as Administrator اجرا گردد.

شکل 12: کنترل نصب صحیح کتابخانه GDAL با Command Prompt برای کنترل مضاعف نیز می توان با اجرای IDLE از محیط ویندوز و اجرای دستورات زیر از نصب gdal و سایر کتابخانه های همراه آن اطمینان حاصل کرد: import gdal import ogr import osr import gdalconst لازم بذکر است دستورات بالا را بصورت زیر نیز می توان در پایتون به اجرا درآورد: from osgeo import gdal from osgeo import ogr from osgeo import osr from osgeo import gdalconst چنانچه مطابق شکل 13، پس از اجرای این دستورات هیچ پیغام خطایی نمایش داده نشود، به این معنی است که GDAL به درستی نصب شده و قابل استفاده می باشد. اما در صورت مواجهه با پیغام خطا مشکلی در مراحل نصب بوجود آمده است که می بایست برطرف شود.

شکل 13: import کردن کتابخانه ی GDAL و سایر کتابخانه های نصب شده بواسطه ی آن بدون هرگونه خطا

7- نصب کتابخانه ی numpy

بعد از انجام موفق مراحل بالا، انتظار می رود بتوان از کتابخانه ی gdalnumeric یا gdal_array که یکی از ابزارهای مهم و کاربردی کتابخانه ی GDAL بوده و در پردازش تصاویر بسیار مورد استفاده قرار می گیرد، بهره برد. اما در عمل چنین اتفاقی نیافتاده و تلاش برای واردکردن این کتابخانه به پایتون با خطای عدم شناسایی کتابخانه مواجه خواهد شد. (شکل 14) Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> import gdalnumeric File "C:\Python34\lib\site-packages\gdalnumeric.py", line 5, in <module> from osgeo.gdal_array import * File "C:\Python34\lib\site-packages\osgeo\gdal_array.py", line 26, in <module> _gdal_array = swig_import_helper() File "C:\Python34\lib\site-packages\osgeo\gdal_array.py", line 22, in swig_import_helper _mod = imp.load_module('_gdal_array', fp, pathname, description) File "C:\Python34\lib\imp.py", line 243, in load_module return load_dynamic(name, filename, file) ImportError: DLL load failed: %1 is not a valid Win32 application.

شکل 14: پیغام خطا در رمان واردکردن کتابخانه ی gdalnumeric برای حل این مشکل، باید علاوه بر GDAL کتابخانه numpy نیز نصب شود. برای نصب numpy بایستی در ابتدا از این لینک فایل نصب مناسب با سیستم عامل و نسخه ی پایتون و معماری آن، دانلود شود (شکل 15).

شکل 15: سایت مربوط به دانلود کتابخانه numpy از آنجایی که فایل دانلودشده به صورت فشرده و با فرمت whl می باشد، برای نصب آن از ماژول متدوال نصب کتابخانه های پایتون با نام pip استفاده می شود. چگونگی استفاده از pip بر روی پایتون و نحوه ی نصب فایل های whl با استفاده از pip، به زودی در همین بخش منتظر خواهد شد.

8- مراجع

[1]http://gdal.org; Last Available Date: 07/09/2017. [2]https://www.cairographics.org/manual/language-bindings.html; Last Available Date: 07/09/2017. [3]http://oldwww.acm.org/tsc/apis.html; Last Available Date: 07/09/2017.