سپتامبر 2009
هدف، واقعگرایانه
این آموزش شما را با اصول اولیه ایجاد یک ابرپوشش ، مجموعهای از همپوشانیهای زمینی که از NetworkLinks مبتنی بر منطقه استفاده میکنند، با استفاده از ابزارهای منبع باز Geospatial Data Abstraction Library راهنمایی میکند.
معرفی
مرورگرهای جغرافیایی مانند Google Earth و Google Maps تصاویر ماهواره ای و کاشی های نقشه را در اختیار شما قرار می دهند. با این حال، گاهی اوقات ممکن است بخواهید از خود استفاده کنید. داده های تصویری یا شطرنجی به اشکال مختلف وجود دارد و کاربردهای زیادی دارد.
- قرار دادن تصاویر ماهواره ای یا هوایی خود در یک geobrowser
- قرار دادن نقشه های تاریخی در بالای تصاویر موجود، مانند لایه نقشه های رامزی در Google Earth
- وارد کردن داده های GIS به صورت شطرنجی
- قرار دادن تصاویر LIDAR یا مادون قرمز در geobrowser
یکی از مشکلات دادههای شطرنجی با وضوح بالا، این است که برای نمایش آنها به حافظه زیادی نیاز است. و اگر آن را از طریق شبکه بیرون می آورید، نگرانی های پهنای باند نیز دارید. برای رفع این مشکل، باید کاشی ایجاد کنید.
کاشی کاری فایل تصویر شما را به بسیاری از تصاویر مختلف تبدیل می کند که با مشاهده بارگیری می شوند. شما یک تصویر با وضوح پایین برای نمایش ایجاد می کنید در حالی که کاربر به سمت بیرون زوم شده است. در همان منطقه، چهار تصویر با وضوح بالاتر برای مشاهده نزدیکتر ایجاد می کنید. برای هر ناحیه ای که با یک تصویر پوشانده شده است، چهار تصویر با وضوح بالاتر برای بزرگنمایی نزدیکتر و غیره ایجاد می کنید. این روش به روش چهار درختی معروف است و نحوه کاشی شدن تصاویر برای Google Earth و Google Maps است. این فرآیند با جزئیات بیشتری در مقاله راهنمای توسعهدهنده KML در مورد مناطق توضیح داده شده است.
انجام این کار به صورت دستی با یک برنامه ویرایش گرافیکی مانند Adobe's PhotoShop یا GIMP امکان پذیر است، اما این می تواند پیچیده، خسته کننده و مستعد خطا باشد. همچنین تعدادی برنامه خوب در دسترس هستند، عمدتاً برای ویندوز، مانند SuperOverlay ، Arc2Earth ، و MapCruncher همراه با CrunchUp2KML .
اگر میخواهید فرآیند را خودکار کنید یا عملکردی را به برنامه خود اضافه کنید، GDAL مجموعهای غنی از ابزارها را برای کار با دادههای شطرنجی و برداری در اختیار شما قرار میدهد. این مقاله گزینه های خط فرمان را پوشش می دهد. با این حال، کتابخانه ها را نیز می توان به راحتی در برنامه های کاربردی خود گنجاند. برای این آموزش، میخواهید از gdalinfo
، gdal_translate
، gdalwarp
و gdal2tiles
استفاده کنید. خروجی نهایی یک پوشش فوق العاده است.
مراحل خط فرمان
شش مرحله برای استفاده از GDAL در خط فرمان وجود دارد.
- GDAL را دانلود و نصب کنید
- یک تصویر دانلود کنید
- از
gdalinfo
برای تعیین اطلاعات مربوط به تصویر استفاده کنید - از
gdal_translate
برای ارجاع جغرافیایی تصویر استفاده کنید - از
gdalwarp
برای تغییر طرح تصویر استفاده کنید - از
gdal2tiles
برای شکستن تصویر به کاشی و ایجاد کد KML مرتبط استفاده کنید
مرحله 1: دانلود و نصب GDAL
با دانلود و نصب GDAL همانطور که در اینجا توضیح داده شده است شروع کنید.
مرحله 2: یک تصویر را دانلود کنید
می توانید از هر تصویری استفاده کنید. تعدادی از منابع داده های جغرافیایی در وب وجود دارد. شما می توانید از هر یک از آنها استفاده کنید، اما باید مرزهای تصویر را بدانید - طول و عرض جغرافیایی هر یک از گوشه های تصویر. این آموزش از تصویر مرمر آبی ناسا استفاده می کند که برای دانلود از وب سایت ناسا در دسترس است. این تصاویر در سال 2004 گرفته شده اند و تصویر زیبایی از زمین را از فضا ارائه می دهند. یکی از فایل های سمت راست پایین نوار ناوبری سمت راست را انتخاب کنید.
اگر از تصویر خود استفاده میکنید و میدانید که از قبل georectified شده است، میتوانید به مرحله 5 بروید. در غیر این صورت، مرحله 3 را ادامه دهید.
مرحله 3: اطلاعات مربوط به تصویر را دریافت کنید
هنگامی که کتابخانه های GDAL را نصب کردید و تصویر را انتخاب کردید، باید اطلاعاتی در مورد تصویر به دست آورید تا بتوانید آن را ارجاع دهید. به طور خاص، شما به موقعیت پیکسل و خط هر گوشه از تصویر نیاز دارید. اگر تصویر را به عنوان یک جدول، با ستون ها و ردیف ها تصور کنید، پیکسل ها ستون ها و خطوط ردیف هستند.
GDAL یک ابزار مفید به نام gdalinfo
را برای گرفتن این اطلاعات فراهم می کند. در خط فرمان، به سادگی gdalinfo filename
filename
کنید و نام فایل را با مسیر فایل جایگزین کنید. شما باید خروجی به شکل زیر دریافت کنید:
Driver: JPEG/JPEG JFIF Files: world_200401.jpg Size is 21600, 10800 Coordinate System is `' Image Structure Metadata: SOURCE_COLOR_SPACE=YCbCr INTERLEAVE=PIXEL COMPRESSION=JPEG Corner Coordinates: Upper Left ( 0.0, 0.0) Lower Left ( 0.0,10800.0) Upper Right (21600.0, 0.0) Lower Right (21600.0,10800.0) Center (10800.0, 5400.0) Band 1 Block=21600x1 Type=Byte, ColorInterp=Red Image Structure Metadata: COMPRESSION=JPEG Band 2 Block=21600x1 Type=Byte, ColorInterp=Green Image Structure Metadata: COMPRESSION=JPEG Band 3 Block=21600x1 Type=Byte, ColorInterp=Blue Image Structure Metadata: COMPRESSION=JPEG
اطلاعات مهم برای این آموزش خطوط Upper Left، Lower Left، Upper Right، Lower Right است. اینها مقادیر پیکسل و خط هر گوشه را به شما می گویند. سمت چپ بالا، در این مورد، در 0.0، و پایین سمت راست در 21600،10800 است.
مرحله 4: ارجاع جغرافیایی تصویر
ارجاع جغرافیایی در این مورد به معنای ایجاد ابرداده است که موقعیت جغرافیایی هر یک از گوشه های تصویر را توصیف می کند. با استفاده از اطلاعات به دست آمده در مرحله 3 و gdal_translate
، می توانید اطلاعات georeference را به فایل اختصاص دهید. این یک فایل VRT از تصویر world_200401.jpg
، bluemarble1.vrt
می کند. فایلهای VRT فایلهای XML هستند که حاوی اطلاعات مربوط به یک تبدیل خاص هستند، در این مورد مرحله gdal_translate
. در مرحله بعد دوباره از آن برای ایجاد مجموعه نهایی کاشی های خود استفاده خواهید کرد. gdal_translate
به شما امکان می دهد چندین نوع خروجی فایل از جمله فرمت های اصلی فایل تصویر را انجام دهید. استفاده از خروجی های VRT به شما این امکان را می دهد که اساسا ساخت فایل های خروجی را تا آخرین مرحله به تعویق بیندازید. اگر خط فرمان را انجام میدهید، این کارایی را افزایش میدهد و زمان انتظار شما را برای تک تک مراحل کاهش میدهد. این دستوری است که باید اجرا کنید:
gdal_translate -of VRT -a_srs EPSG:4326 -gcp 0 0 -180 90 -gcp 21600 0 180 90 -gcp 21600 10800 180 -90 world_200401.jpg bluemarble1.vrt
اطلاعات زیادی در مورد آن خط وجود دارد، بنابراین در اینجا شکسته شده است:
-
-of
فرمت خروجی است، در این مورد VRT. -
-a_srs
یک سیستم مرجع فضایی را به فایل اختصاص می دهد. این به هر برنامه ای که آن را مصرف می کند می گوید که از چه سیستم مختصاتی استفاده می شود. در این مورد، از EPSG:4326 استفاده می کند که همان WGS84، سیستم مختصات مورد استفاده گوگل ارث است. -
-gcp
یا نقطه کنترل زمین، مختصات را به موقعیت های فایل اختصاص می دهد. در این مورد، شما در واقع فقط به سه نقطه نیاز دارید، زیرا تصویر یک مستطیل است و بنابراین نقطه چهارم به راحتی قابل شناسایی است. برای-gcp
، gcp را با تنظیم پیکسل و سپس شماره خط، و سپس طول و عرض جغرافیایی تعریف کنید. هر یک از آنها با یک فضای جدا شده است. - دو پارامتر آخر فایل مبدا و فایل هدف هستند.
مرحله 5: تصویر را تار کنید
تصویر اصلی برای یک کره گرد ایجاد نشده است، بلکه به گونه ای ساخته شده است که صاف به نظر برسد. در اصطلاح GIS، طرح ریزی می شود، به این معنی که نمایشی دو بعدی از یک شی سه بعدی است. فرافکنی مستلزم تحریف تصویر است تا به نظر برسد که انتظار دارید یک تصویر صاف از زمین چگونه به نظر برسد.
برای اینکه آن را درست به نظر برسانید، باید تصویر را طوری تغییر دهید که با کره زمین مطابقت داشته باشد. خوشبختانه GDAL یک ابزار عالی برای آن نیز فراهم می کند. به سادگی gdalwarp -of VRT -t_srs EPSG:4326 bluemarble1.vrt bluemarble2.vrt
کنید. با این کار یک فایل جدید به نام bluemarble2.vrt ایجاد می شود که متادیتا را در مورد رویه تاب برداشتن ارائه می دهد.
مرحله 6: کاشی ها را ایجاد کنید
شما تقریباً تمام شدهاید، اما این بخش طولانیترین زمان را خواهد برد. برای ایجاد کاشیها، gdal2tiles.py -p geodetic -k bluemarble2.vrt
کنید. -k
یک خروجی KML را مجبور می کند. این یک ساختار دایرکتوری با یک پوشش فوق العاده ایجاد می کند. از آنجایی که هر یک از آن فایل های تصویری باید به طور جداگانه ایجاد شوند، مدتی طول می کشد تا اجرا شوند. برای تصاویر بزرگ، اکنون می توانید بروید، یک فنجان قهوه بخورید، چرت بزنید، شاید یک وعده غذایی سبک بخورید. وقتی کارتان تمام شد، doc.kml
را باز کنید و نتایج را مشاهده کنید!
نتیجه
این آموزش فقط سطح کاری را که GDAL می تواند انجام دهد خراش می دهد، اما مکانیسم مناسبی برای تولید کاشی ها ارائه می دهد. کتابخانههای اصلی GDAL به زبان C++ نوشته شدهاند، اما اتصالهایی را برای Perl، Python، VB6، R، Ruby، Java و C#/.NET ارائه میکنند، به این معنی که میتوانید به راحتی GDAL را در برنامههای خود قرار دهید. همچنین، بسیاری از ابزارها، از جمله gdal2tiles
، به زبان پایتون نوشته شدهاند و به راحتی میتوان آنها را در برنامههای پایتون گنجاند. gdal2tiles
همچنین توانایی تولید صفحات Google Maps API و OpenLayers را دارد.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2022-12-20 بهوقت ساعت هماهنگ جهانی.