এই সমস্যাটি মোকাবেলার জন্য আমার পক্ষে সহজতম উপায় হ'ল জিডিএল ভার্চুয়াল ফর্ম্যাটটি ব্যবহার করা । এই ফর্ম্যাটটি আমাকে চিত্রের পুরো সেটটিকে একটি একক চিত্রের অবজেক্ট হিসাবে বিবেচনা করতে এবং অপেক্ষাকৃত সহজ ধাপে তিনটি রূপান্তর করতে দেয়।
ভার্চুয়াল ডেটাসেট তৈরি করা হচ্ছে
জিডিএএলএল ( তমাস সিসেকেরেসের জিআইএসআইএনটার্নালস উইন্ডোজ বাইনারি এবং ওএসজিও 4 ডাব্লু এর সাম্প্রতিক সংস্করণ সহ) গডালবিল্ডভ্র্ট নামে একটি ইউটিলিটি রয়েছে যা প্রাথমিক ভার্চুয়াল ডেটাসেট তৈরি করতে ব্যবহার করা যেতে পারে।
এটি ব্যবহারের একটি সহজ উপায় হ'ল আপনার সমস্ত চিত্র কোনও পাঠ্য ফাইলে যুক্ত করা এবং তারপরে সেই পাঠ্য ফাইলটি gdalbuildvrt এ ইনপুট হিসাবে ব্যবহার করুন। এখানে একটি উদাহরণ রয়েছে (আপনাকে দ্বিতীয় কমান্ডটি একটি লাইনে ফিরিয়ে দিতে হবে):
dir /b *.tif > my_images.txt
gdalbuildvrt
-hidenodata
-vrtnodata "255 255 255"
-resolution highest
-input_file_list my_images.txt
my_image.vrt
এটি আপনাকে একটি এক্সএমএল ফাইল ছেড়ে দেবে যা আপনি সমস্ত জিডিএল অপারেশনের জন্য একক চিত্র হিসাবে বিবেচনা করতে পারবেন। এটি অভ্যন্তরীণভাবে নোডাটাকে সাদা হিসাবে উপস্থাপন করে তবে সেখান থেকে পড়া পঠন থেকে নোডাটা সংজ্ঞাটি আড়াল করে।
পুনরায় মডেল করা ওভারভিউ তৈরি করা হচ্ছে
এরপরে, আপনি ওভারভিউ চিত্রটির পুনরায় মডেলিং এবং আউটপুট সম্পাদন করবেন। আপনি gdal_translate বা gdalwarp এর মাধ্যমে এটি করতে পারেন । এর যে কোনওটির জন্য মনে রাখবেন যে ফলাফলের আকারটি হবে width * height * 3
(8 বিট ব্যান্ডের সংখ্যা) বাইট। এটি যদি 4 গিগাবাইটের চেয়ে বড় হয়, আপনি বিগটিআইএফএফকে আপনার আউটপুট হিসাবে উল্লেখ করার জন্য সিনট্যাক্সের জন্য জিওটিআইএফএফ বিকল্পগুলি দেখতে চান ("বিগটিআইএফ = ইয়েস")।
Gdal_translate এর জন্য আপনাকে হ্যান্ডি gdalinfo কমান্ডটি ব্যবহার করে ভার্চুয়াল চিত্রটির মাত্রা নির্ধারণ করতে হবে । এই মাত্রাগুলি নিন এবং পিক্সেলগুলিতে আপনার ফাইলের আউটপুট প্রস্থ এবং উচ্চতা নির্ধারণ করতে কিছু ধারাবাহিক উপাদান দ্বারা প্রতিটি ভাগ করুন divide
কমান্ডটি দেখতে কিছুটা (এক লাইনে) দেখাবে:
gdal_translate
-outsize 53120 14000
-co "TILED=YES"
-co "PROFILE=GEOTIFF"
-co "BLOCKXSIZE=256"
-co "BLOCKYSIZE=256"
my_image.vrt
my_image.tif
জিডালওয়ার্পের জন্য, আপনাকে ফলস্বরূপ পিক্সেলসাইজটি জানতে হবে; এই ক্ষেত্রে আমি .5 মিটার ব্যবহার করছি। আপনি পুনরায় মডেলিং পদ্ধতিতে কল করতে চাইবেন। আমি অরথোফোটো ওভারভিউয়ের জন্য কিউবিকস্প্লাইন পছন্দ করি। এটি নরম, তবে আপনি এটিকে পুরো রেজোলিউশনে ব্যবহার করছেন না এবং আপনি যদি জেপিইজি বা ইসিডব্লিউ জাতীয় কিছু ব্যবহার করেন তবে আমার অভিজ্ঞতায় এটি আরও সংকোচনের চিত্র তৈরি করে।
gdalwarp
-r cubicspline
-of GTiff
-dstnodata "255 255 255"
-tr 0.5 0.5
-co "PROFILE=GEOTIFF"
-co "BIGTIFF=YES"
-co "TILED=YES"
-co "BLOCKXSIZE=256"
-co "BLOCKYSIZE=256"
my_image.vrt
my_image.tif
আপনি এই পুনরায় মডেল জিওটিআইএফএফ সংক্ষিপ্তসারগুলির জন্য জেপিইজি সংক্ষেপণ বিকল্পগুলি ব্যবহার করে বিবেচনা করতে পারেন; এটি আউটপুট ফাইলকে যথেষ্ট পরিমাণে সঙ্কুচিত করে ( ফ্রাঙ্ক অনুসারে ) কেবলমাত্র একটি প্রান্তিক পারফরম্যান্স পেনাল্টি দিয়ে।
-co "COMPRESS=JPEG"
-co "JPEG_QUALITY=80"
-co "PHOTOMETRIC=YCBCR"
সার্বিক অবস্থা
আপনি অভ্যন্তরীণ "পিরামিডস" তৈরির জন্য ফলাফলযুক্ত চিত্রের উপরে হ্যান্ডি জিডালাদ্ডো কমান্ডটি চালাতে চান , যাতে সম্পূর্ণ চিত্রের মাত্রাগুলির চেয়ে কম রেজোলিউশনের জন্য অনুরোধগুলি ডেটার একটি উপসেটের সাথে পূরণ করা যায় met কর্মক্ষমতা বৃদ্ধি বেশিরভাগ ক্ষেত্রে ডিস্কের জায়গার চেয়ে বেশি। আপনি এখানে যে স্তরগুলি ব্যবহার করেন সেগুলি নিয়ে আপনি খেলতে চাইবেন; খুব বড় ছবিগুলির জন্য আপনি কিছু ড্রপ করতে সক্ষম হতে পারেন। Gdaladdo কমান্ডটি এরকম কিছু দেখায়:
gdaladdo
-r average
my_image.tif
2 4 8 16 32 64 128 256
আমি সর্বোত্তম পারফরম্যান্সের জন্য এই স্তরের সাথে পরীক্ষার পরামর্শ দেব। আপনি দেখতে পাচ্ছেন যে আপনার আবেদনের জন্য একটি ভিন্ন পুনর্নির্মাণের ব্যবধানটি আরও ভাল বা আপনার চিত্রের আকারের উপর ভিত্তি করে, আপনি কিছু উচ্চতর নম্বর ফেলে দিতে পারেন (বা আরও বেশি প্রয়োজন)
এছাড়াও, আপনি যদি কোনও বাহ্যিক ওভারভিউ উত্পন্ন করে থাকেন (-ro বিকল্পটি ব্যবহার করে) JPEG সংক্ষেপণ কনফিগারেশন লাইন যুক্ত করার বিষয়টি বিবেচনা করুন:
--config COMPRESS_OVERVIEW JPEG
--config PHOTOMETRIC_OVERVIEW YCBCR
--config INTERLEAVE_OVERVIEW BAND
(আমি বিশ্বাস করি যে এগুলি এম্বেড করা ওভারভিউয়ের জন্য পিতামাত্তর জিওটিআইএফএফ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত)
মন্তব্য
যখন এই সমস্যার মুখোমুখি হয়েছি তখন আমি #gdal চ্যানেলে freenode.irc.net- এ জিজ্ঞাসা করেছি। এটি একটি আশ্চর্যজনক সম্পদ, এবং আমাকে এটির জন্য সাহায্য করার জন্য আমি হাওয়ার্ড বাটলার, ফ্র্যাঙ্ক ওয়ারমারডাম এবং এমনকি রাউল্টের প্রতি পুরোপুরি indeণী।