একাধিক রাস্টার একীভূত হওয়ার ফলাফল এত বড় কেন? [বন্ধ]


10

আমি 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 এমবি, সবুজ বিভিন্ন সঙ্গে:

01. ফিফ ফাইলের gdalinfo- বিহীন এবং সংকোচনের

আমার মতে, এক্সটেন্টগুলি সঠিক কারণ 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 মিনিট অপেক্ষা করতে হবে (তবে কিউজিআইএস সফলভাবে টিফটি খোলার আগেই আমি ছেড়ে দিয়েছি)। কেন জানি না। এবং আমার অ্যান্ড্রয়েড অ্যাপে এটি কাজ করে না (সম্ভবত "টাইল্ড = হ্যাঁ" এর কারণ)। আমাকে নিজেই কিছু ডক পড়তে হবে।


-কো টাইল্ড ব্যবহার করুন = হ্যাঁ-কো বিগটিফ = হ্যাঁ-কো কমপ্রেস = জেপিগ
কো

উত্তর:


2

আপনার ইনপুট চিত্রগুলির যোগফলের তুলনায় আপনার আউটপুট চিত্রটিতে আরও বেশি পিক্সেল থাকবে তবে এটি বড় পার্থক্য ব্যাখ্যা করে না। আমি আপনাকে পরামর্শ দিচ্ছি যে gdalinfo এর উপর ভিত্তি করে আপনার চিত্রগুলির বৈশিষ্ট্যগুলি লক্ষ্য করুন যাতে কোন কম্প্রেশন ব্যবহার করা হয় তা দেখতে এবং এক্সটেন্টগুলি সঠিক কিনা তা পরীক্ষা করে দেখুন। (আপনার ইনপুট চিত্রগুলির আকার একই আকার ধারণ করে, এটি প্রতি ইনপুট চিত্রগুলিতে 20000 * 12000 পিক্সেল করে, যা 50 এমবি চিত্রের জন্য বড়, সম্ভবত আপনি মোজাইক তৈরি করার সময় আপনার স্থানাঙ্ক ব্যবস্থার সীমা অতিক্রম করছেন।) তারপরে আপনার উচিত আপনার চিত্রগুলির পিক্সেল গভীরতার দিকে তাকান: যদি আপনার ইনপুটটি বাইটে থাকে তবে আপনার বাইটগুলি রাখা উচিত।

gdal_translate -of Gtiff -ot Byte -co COMPRESS=LZW test.vrt test.tif 

মন্তব্য 1: আপনার চিত্রগুলি ভিআরটি তৈরির আগে জেপিগে রূপান্তর করা কোনও লাভ করে না (এটি পরবর্তী ধাপের আগে সঙ্কুচিত হবে) এবং আপনি ডেটা আলগা করতে পারেন।

মন্তব্য 2: একটি ভিআরটি ব্যবহার করা সহায়ক: আপনি কি নিশ্চিত যে আপনার জিটিফ দরকার?

সম্পাদনা করুন: আপনার চিত্রগুলির আকারের সাথে কোনও অলৌকিক চিহ্ন নেই, তবে আপনার আউটপুট হিসাবে একটি টাইল্ড টিফ ব্যবহার করা উচিত যাতে আপনি আপনার বৃহত ডেটার সাথে জেপিগ সংক্ষেপণটি ব্যবহার করতে পারেন (-কো টিলেড = হ্যাঁ-কো ব্লকএক্সিজি = 512 -কো ব্লকআইএসআইজি = 512 )। যদি এটি খুব বড় থেকে যায় তবে একমাত্র সমাধান হ'ল কম রেজোলিউশনে পুনরায় নমুনার জন্য gdalwarp ব্যবহার করা।


কামড়ায় আসছেন: যদি 8 বিট দিয়ে ইনপুট টিফ হয় এবং ডিফল্ট হিসাবে রফতানি 32 বিট হয় তবে আপনি গুরুতর সমস্যায় পড়বেন। সুতরাং আপনার বাইট সংজ্ঞাটি যেমন রয়েছে তেমন নিশ্চিত হন। এবং মনে রাখবেন: পুরো টিফটি প্রোব হবে। একটি টিফ সবসময় আয়তক্ষেত্রাকার হিসাবে 20x 50mb থাকে।
রিকার্ডো

আপনি কোথা থেকে 20000 x 12000 পেয়েছেন? প্রশ্নটিতে প্রদর্শিত আউটপুটটি ইনপুট চিত্রটি প্রস্তাব করবে 79841 x 59955.
এভিল জিনিয়াস

79841, 59955 হ'ল ইনপুট ভিআরটি এর আকার। তবে এখানে 5 টি সারি এবং 4 টি কলাম রয়েছে, তাই আমি 80000 ডলারটিকে 4 দ্বারা এবং by 60000 5 দিয়ে বিভক্ত করেছি I আমি যেমন বলেছি, এটি ধরে নিয়েছে যে চিত্রগুলি একই আকারের এবং চিত্রের মতো অবস্থিত।
Radouxju

আমি আমার আসল প্রশ্নটি সম্পাদনা করে উত্তর দিয়েছি, আমি আশা করি এটির মতোই আমাকে এগিয়ে যেতে হবে।
grimdaemon
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.