আমি 14 টি জিওটিফকে এভাবে মার্জ করার চেষ্টা করি:
প্রতিটি জিওটিফ প্রায় 50 এমবি। আউটপুটে আমার একটি জিওটিফ দরকার
আমার কর্মপ্রবাহ:
gdalbuildvrt -input_file_list list.txt test.vrt
(যেখানে আমার তালিকায় টিফসের নাম রয়েছে)
তারপরে:
gdal_translate -of Gtiff test.vrt test.tif
Input file size is 79841, 59955
এটি কাজ করে, তবে ফলাফলটি 13,3 গিগাবাইটের একটি জিওটিফ! 14 টি ফাইলের জন্য, প্রতিটি 50 এমবি, আমি 13 জিবি নয়, 700 এমবি-র জিওটিফ চেষ্টা করেছি।
আমি জানি যে gdal ডিফল্টরূপে সংকোচিত হয় না, তাই আমি এই আদেশটি চেষ্টা করেছি:
gdal_translate -of Gtiff -co COMPRESS=JPEG test.vrt test_compressed.tif
তবে ফাইলটির "মার্জ" JPEG সংক্ষেপণের জন্য খুব বড়:
Input file size is 79841, 59955
0ERROR 1: JPEGPreEncode:Strip/tile too large for JPEG
ERROR 1: WriteEncodedTile/Strip() failed.
ERROR 1: JPEGPreEncode:Strip/tile too large for JPEG
ERROR 1: WriteEncodedTile/Strip() failed.
ERROR 1: An error occured while writing a dirty block
...
সুতরাং আমি আর একটি ওয়ার্কফ্লো চেষ্টা করেছি, এবং আমার সমস্ত টিফসকে জেপেইজে রূপান্তর করেছি (প্রতিটি 14 এমবি), একটি ভিআরটি ফাইল তৈরি করে এটি এলজেডব্লিউ সংকোচনের সাথে অনুবাদ করেছি। তবে আউটপুট জিওটিফ প্রায় 5 জিবি।
আপনি কি আমাকে বলতে পারেন যে কাজটি করার সর্বোত্তম অনুশীলনটি কী, এবং যদি 14 * 50Mb এর একটি জিওটিফ পাওয়া সম্ভব হয়?
আমি চেষ্টা করে দেখিনি, তবে আমি এই টিফগুলি ফটোশপের সাথে একীভূত করার বিষয়ে ভেবেছিলাম, তারপরে উপরের বাম / নীচের ডান স্থানাঙ্কগুলির সাথে পুনরায় জিওরিফারেন্স করব। এই কর্মপ্রবাহের সাথে আমার মনে হয় আমার 14 * 50 এমবি হবে তবে আমি নিশ্চিত নই। এবং আমি gdal সেরা অনুশীলন শিখতে চাই তাই আমি মুহুর্তের জন্য এটি চেষ্টা করিনি
কামড়ায় আসছেন: যদি 8 বিট দিয়ে ইনপুট টিফ হয় এবং ডিফল্ট হিসাবে রফতানি 32 বিট হয় তবে আপনি গুরুতর সমস্যায় পড়বেন। সুতরাং আপনার বাইট সংজ্ঞাটি যেমন রয়েছে তেমন নিশ্চিত হন। এবং মনে রাখবেন: পুরো টিফটি প্রোব হবে। একটি টিফ সবসময় আয়তক্ষেত্রাকার হিসাবে 20x 50mb থাকে
যদি আমি বুঝতে পারি, এই স্ক্রিনশটটিতে আমি যে নম্বরটি সবুজ করে দেখিয়েছি তা বাম এবং ডানদিকে একই হতে হবে?
আপনার ইনপুট চিত্রগুলির যোগফলের তুলনায় আপনার আউটপুট চিত্রটিতে আরও বেশি পিক্সেল থাকবে তবে এটি বড় পার্থক্য ব্যাখ্যা করে না। আমি আপনাকে পরামর্শ দিচ্ছি যে gdalinfo এর উপর ভিত্তি করে আপনার চিত্রগুলির বৈশিষ্ট্যগুলি লক্ষ্য করুন যাতে কোন কম্প্রেশন ব্যবহার করা হয় তা দেখতে এবং এক্সটেন্টগুলি সঠিক কিনা তা পরীক্ষা করে দেখুন।
50 এমবি এর 14 টিফসটি মূলত 700 এমবি এর 14 টিফস ছিল যা আমি gdal_translate -co COMPPress = JPEG দিয়ে প্রক্রিয়া করেছি। আমি এমবি সংখ্যা হ্রাস করার জন্য রাস্টারটিকে সংকুচিত করেছিলাম, তবে এটি কি ভাল ধারণা ছিল না?
এই স্ক্রিনশটটি একই জিওটিফের (০১. ফাটিফ) 2 জিডিএল তথ্য উপস্থাপন করে, স্ক্রিনশটের বাম দিকে 700 এমবি-এর সংকোচিত জিটিফের জিডালিনফো, ডানদিকে একই গতিফকে COMPPress = JPEG দিয়ে শেষ করুন, সুতরাং 50 এমবি, সবুজ বিভিন্ন সঙ্গে:
আমার মতে, এক্সটেন্টগুলি সঠিক কারণ Qgis এ এটি অন্যান্য উত্সের ডেটা এবং উপগ্রহের চিত্রের সাথে মেলে।
* ধরে নিচ্ছেন আপনার ইনপুট চিত্রগুলির একই আকার রয়েছে, এটি প্রতি ইনপুট চিত্রগুলিতে 20000 * 12000 পিক্সেল করে, যা 50 এমবি চিত্রের জন্য বড়, সম্ভবত আপনি যখন মোজাইক তৈরি করবেন তখন আপনি আপনার স্থানাঙ্ক ব্যবস্থার সীমা অতিক্রম করছেন *
"সীমা অতিক্রম করে" আপনি কী বোঝাতে চেয়েছেন তা নিশ্চিত আমি নিশ্চিত নই। তবে আমি কিউজিআইএসে আমার 5 জিবি এলজেডব্লুটি খোলার চেষ্টা করেছি, এবং ব্যাপ্তিটি ভাল, কারণ এটি অন্যান্য উত্সের উত্সের সাথে মেলে।
আপনার উত্তরটি আমাকে অনুধাবন করে তোলে যে গটিফের একই আকার নেই, আপনি কি মনে করেন যে মার্জ হওয়ার পরে এটি আকার বাড়ার কারণ হতে পারে? কারণ gdal একই আকারের ফাইল পছন্দ করে। আমি প্রতিটি Gtiff এর আকার পেতে একটি gdalinfo তৈরি করেছি, Gtiffs এর আকারের মধ্যে খুব ছোট পার্থক্য রয়েছে:
02.tif Size is 19956, 11981
03.tif Size is 19959, 11993
04.tif Size is 19961, 11992
05.tif Size is 19958, 11993
06.tif Size is 19958, 11990
07.tif Size is 19956, 11984
08.tif Size is 19956, 11993
09.tif Size is 19958, 11993
10.tif Size is 19958, 11989
11.tif Size is 19958, 11985
12.tif Size is 19958, 11993
13.tif Size is 19959, 11993
14.tif Size is 19960, 11994
তারপরে আপনার চিত্রগুলির পিক্সেল গভীরতার দিকে নজর দেওয়া উচিত: আপনার ইনপুটটি বাইটে থাকলে>> আপনার বাইটগুলি রাখা উচিত। gdal_translate-Gtiff -ot Byte -co COMPPress = LZW test.vrt test.tif
আমি এই আদেশটি চেষ্টা করেছি কিন্তু জিডাল আমাকে জানিয়েছিল যে টিফের আকারটি অতিক্রম করেছে।
Input file size is 79841, 59955
0...10...20...30...40...50..ERROR 1: TIFFAppendToStrip:Maximum TIFF file size exceeded. Use BIGTIFF=YES creation option.
ERROR 1: WriteEncodedTile/Strip() failed.
তবে যদি আমাকে একটি বড় টিফ তৈরি করতে হয় তবে এটি আমার সমস্যার সমাধান করে না কারণ এটি 4 গিগাবাইটের বেশি। পিক্সেল গভীরতা কি আমার ক্ষেত্রে গুরুত্বপূর্ণ? (মানচিত্রের এইচডি ফটো, তারপরে জিওরিফারেন্সড, ডিএম নয়)
মন্তব্য 1: একটি ভিআরটি নির্মাণের আগে আপনার চিত্রগুলি জেপিগে রূপান্তর করা কোনও উপকারে আসে না এবং আপনি ডেটা আলগা করতে পারেন।
আমি যদি কিছুটা তথ্য আলগা করি তবে এটি গুরুতর নয়। আমি অবশ্যই এটি looseিলে না পছন্দ করি, তবে আমার যদি এটি হয় তবে এটি কোনও সমস্যা নয়। আমি নিশ্চিত ছিলাম যে আমি জেপিগের সাথে কাজ করলে আউটপুটটি আরও হালকা হবে, তবে উপসংহার হিসাবে, আউটপুটটি জিটিএফ হলে এটি সত্য নয়। সুতরাং এটি কোনও ভাল সমাধান নয়। আমি এই সমাধান ছেড়ে।
> মন্তব্য 2: একটি ভিআরটি ব্যবহার করা সহায়ক: আপনি কি নিশ্চিত যে আপনার জিটিফ দরকার?
হ্যাঁ, আমার একটি গিটিফ দরকার, কারণ আমাকে এটি এমন একটি মোবাইল অ্যাপ্লিকেশনে আমদানি করতে হবে যা কাজ করার জন্য জিওটিফ ইনপুট প্রয়োজন (আমি মনে করি অ্যাপটি জিওপ্যাটিয়াল পিডিএফ ইনপুটও নিতে পারে, তবে আমি এটির সাথে কখনই কাজ করতে পারি না এবং আমি আমার সমস্যাটি বুঝতে চাই) gdal, কারণ এটি আমার প্রথমবার নেই)।
আমি -co টাইলড = হ্যাঁ-কো বিগটিফ = হ্যাঁ--কম সংক্ষেপে = জেপিগ-কো ফোটোমেট্রিক = ycbcr এবং আমি চেষ্টা করেছিলাম - টাইলড = হ্যাঁ-কো ব্লকএক্সআইএস = 512-কো ব্লকসিআইজি = 512
এই 2 টি কমান্ড ভাল কাজ করে, আমার আকার ~ 700 এমবি M আমি প্রত্যাশা করেছিলাম ঠিক তেমনটাই।
এখন আমার আর একটি সমস্যা আছে: কিউজিআইএস এটি দ্রুত খুলতে পারে না। আমাকে 15 মিনিট অপেক্ষা করতে হবে (তবে কিউজিআইএস সফলভাবে টিফটি খোলার আগেই আমি ছেড়ে দিয়েছি)। কেন জানি না। এবং আমার অ্যান্ড্রয়েড অ্যাপে এটি কাজ করে না (সম্ভবত "টাইল্ড = হ্যাঁ" এর কারণ)। আমাকে নিজেই কিছু ডক পড়তে হবে।