একটি বড় রাস্টার ইসিডব্লু ফাইল ক্লিপ করার সেরা উপায়?


9

আমি একটি বৃহত ইসিডাব্লু ক্লিপ দেওয়ার চেষ্টা করছি (নীচে বিশদ বিবরণ) তবে রাস্টার ফাইলটি সম্পূর্ণ প্রক্রিয়া করার জন্য খুব বড়।

নীচে ইসিডাব্লু এর কিছু বিশদ

ড্রাইভার: ইসিডাব্লু / ইআরডিএএস সংকোচিত ওয়েভলেটস (এসডিকে 5.0)

ফাইলের আকার: 50 জিবি সাইজ 450000, 565081 পিক্সেল আকার: 0.15 0.15 কালারস্পেস = আরজিবি কমপ্রেসন_র্যাটফলারজিট = 9 সংস্করণ = 2 ব্যান্ডের সংখ্যা: 4

আমি যে অঞ্চলটি ক্লিপ করতে চাই তা মূল ফাইলের প্রায় 1/5।

সাফল্য ছাড়াই আমি চেষ্টা করেছি এমন পদ্ধতিগুলি:

  1. টিউচ / অন্যান্য ফর্ম্যাটগুলিতে ইচইউ সংরক্ষণ করার জন্য আর্কগিস ব্যবহৃত হয়েছিল ... (আমি দ্রুত ছেড়ে দিয়েছি)

  2. ব্যবহৃত কিগিস এবং এর ক্লিপার সরঞ্জাম ... ফাইল তৈরি প্রায় 40% আটকে রয়েছে।

  3. কিউগিস ব্যতীত অন্যান্য বিকল্পের সাথে ওএসজিও 4 ডাব্লু বাইরে gdal_translate ব্যবহৃত হয়েছে। (এই ভেবে চেষ্টা করেছিলেন যে কুইগিস ব্যবহার না করে কিছু স্মৃতি মুক্ত করতে পারে)

  4. Gdal_retile ব্যবহার করে ভাবছিলাম যে আমি ছবিটি টুকরো টুকরো করে কেটে দেব এবং যা চাইছিলাম তা দখল করব। "Gdal_retile -ps 10000 10000-ecw -tileIndex tile.shp -targetDir ইনপুট.সিইউ কমান্ডটি এটি আরও দ্রুত বিধ্বস্ত হয়েছে"

কারো কি কোন ধারণা আছে?

তথ্যের জন্য আমি 16 গিগাবাইট র‌্যামের সাথে i5-3470 3.2Ghz এ উইন্ডোজ 7 64 বাইটগুলি চালিত করি।

উত্তর:


5

অন্যান্য ধারণা আপনি চেষ্টা করতে পারেন:

  1. gdal_translate -srcwin স্যুইচ সহ
  2. gdalwarp-cutline এবং -crop_to_cutline এবং -wm স্যুইচ সহ। শেষটি ক্যাশিংয়ের জন্য মেমরি নির্দিষ্ট করে এবং কিউজিআইএসে ক্লিপার ব্যবহার করে এমন সমস্যাগুলি আপনাকে পেতে পারে (এটি মূলত একই ফাংশন হিসাবে)
  3. কিউজিআইএস রাস্টার ক্যালকুলেটর আপনি যে অংশটি চান তা সীমা নির্ধারণ করছে (ক্লিপারের চেয়ে সহজ)।
  4. সাগা-> বহুভুজ সহ ক্লিপ গ্রিড - কে জানে, এটি আরও মেমরির দক্ষ হতে পারে।
  5. পাইস্টন এবং নম্পি / সায়পি ব্যবহার করে একটি সমাধান কোড করুন যাতে মেমরিতে রাস্টারটির কেবলমাত্র একটি উপসেট পড়ে এবং সেভ করে।

আমি সন্দেহ করি যে খুব সাধারণ ফসল কিছুটা হলেও (রাস্টার ক্যালকুলেটর বা gdal_translate -srcwin স্যুইচ দিয়ে) কোনও বহুভুজের সাথে ক্রপিংয়ের চেয়ে ক্ষুধার্ত কম হবে কারণ আপনার কোনও জ্যামিতির চেক এবং রূপান্তর নেই। অপশন 5 এর ন্যূনতম মেমরিটি ব্যবহার করা উচিত কারণ আপনি কেবল যা প্রয়োজন তা পড়ছেন। আপনার যদি 'কীভাবে' (ব্লক দ্বারা পড়া এবং লেখার ক্ষেত্রে বিটটি মানিয়ে নিতে) প্রয়োজন হয় তবে এই টিউটোরিয়ালটি একবার দেখুন ।


উত্তরের জন্য ধন্যবাদ! আমি সাগা চেষ্টা করব এবং যদি এটি কাজ না করে তবে আমি নম্পির সাথে যাব।
নীল

5

আপনি যদি আপনার আগ্রহের ক্ষেত্রের স্থানাঙ্কগুলি জানেন তবে এর জিওরিফারেন্সিং যদি আপনি gdal এর সরঞ্জাম দিয়ে gdal_translate এ সরাসরি কাটাতে পারেন:

gdal_translate -projwin [ulx uly lrx lry] infile outfile  

-srswinপতাকাটি যদি এভাবে ব্যবহার না করে :

gdal_translate -srcwin [xoff yoff xsize ysize] infile outfile।

অন্য বিকল্পটি হ'ল gdalbuildvrt সহ আপনার প্রাথমিক ডেটাসেটের একটি বিন্দু (কয়েকটি কিলোবাইটের) রাস্টার তৈরি করা

gdalbuildvrt -te [xmin ymin xmax ymax] infile outfile.vrt

দুর্ভাগ্যক্রমে gdalbuildvrt ব্যবহারের জন্য আপনার একটি জিওরফারেন্সযুক্ত ফাইলের প্রয়োজন হবে।

আপনি ক্লিপ করার পরে, সহজে দেখার জন্য পিরামিড তৈরি করতে ভুলবেন না। নিম্নলিখিত কমান্ডটি ডিফল্ট (লসলেস) অ্যালগরিদম দিয়ে সংকুচিত বাহ্যিক পিরামিডগুলি তৈরি করবে :

gdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE outfile 2 4 8 16

একটি চূড়ান্ত পদক্ষেপ হিসাবে আপনি নির্দিষ্ট বাণিজ্যিক প্রোগ্রামের সাথে কিছু বোকা সমস্যা এড়াতে পরিসংখ্যানগুলিও গণনা করতে পারেন:

gdalinfo -stats outfile

উত্তর nickves জন্য ধন্যবাদ। আমি একটি ভার্চুয়াল রাস্টার তৈরি করেছি এবং <code> gdaladdo -ro --config কমপ্রেস_অভিউরভিউ ডিফল্ট আউটফিল 2 4 8 16 </code> আমি খুব নিশ্চিত নই যে কেন আমি নীচের ত্রুটি বার্তা পেয়েছি 1 ত্রুটি: নিখোঁজের কারণে টিআইএফএফ ফাইল তৈরি করতে পারছি না ডিফল্ট জন্য কোডেক। ওভারভিউ বিল্ডিং ব্যর্থ হয়েছে।
নীল

বাগগুলি কিগিস-বাগ: 8782 এবং osge4w-বাগ: 382 দেখুন যদি তারা আপনার কেস বর্ণনা করে Check ইতিমধ্যে কোনও সংক্ষেপণ অ্যালগরিদম ছাড়াই ওভারভিউগুলি তৈরি করার চেষ্টা করুন বা অন্য একটি চয়ন করুন
nickves

দেখে মনে হচ্ছে এটি আমার 2 টি পদক্ষেপে কাজ করেছে: gdaladdo -ro input.vrt 2 4 8 16তারপর gdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE input.vrt 2 4 8 16। আমার লক্ষ্য একটি ইসিডাব্লু দিয়ে শেষ করা যাতে আমি চেষ্টা করেছি gdal_translate -of ECW input.vrt output.ecw এবং নিম্নলিখিত ত্রুটি পেয়েছি:0ERROR 6: GDALDriver::Create() ... no create method implemented for this format.
ব্লু

@ ব্লু ইসিডাব্লু একটি স্বত্বাধিকারী ফর্ম্যাট এবং এটির জন্য বিশেষ চিকিত্সা প্রয়োজন। Gdal ইসিডব্লু দিয়ে লিখতে পারে কিনা তা আগে দয়া করে পরীক্ষা করে দেখুন gdalinfo --formats। আপনি যদি তালিকায় ইসিডাব্লু না দেখেন তবে এই নির্দেশাবলীর চেষ্টা করুন: ফিউনালিয়া.পট
নোড

0

একটি সরাসরি 'ক্লিপ' ব্যবহার করে gdalwarpকাজ করা উচিত (আমি জানি এটি একটি হেলা পুরানো প্রশ্ন: 18 মাসের আইআরএল ইন্টারনেট বছরগুলিতে একটি ভূতাত্ত্বিক যুগের মতো)।

আমার কাছে একটি 70 জিবি এরিয়াল (ইসিডাব্লু, 94000x81000 পিক্সেল 10 সেমি / পিক্সেল) রয়েছে এবং জিডিএল ইচ্ছামত এটিকে একটি শেফফাইল দিয়ে ক্লিপ করতে পারে

gdalwarp -cutline [clipfile] -crop_to_cutline [infile] [outfile]

উইন্ডোজ কমান্ড লাইনে। (আমি বুঝতে পারি যে এই সমাধানটির জন্য আগ্রহের লক্ষ্যবস্তু অঞ্চলের জন্য একটি শেফফিল তৈরি করা দরকার, তবে এটি জিআইএসের কাছে জানা সবচেয়ে বড় চ্যালেঞ্জ নয়))।

অর্ধ-শহরতলির আকারের খণ্ডটি বের করতে takes 0.4 সেকেন্ড লাগে; কোয়ার্টারে ফাইল কেটে নিতে 4 সিসি লাগে। আমার মেশিনের চশমা নাটকীয়ভাবে পৃথক নয় (i7-4770 @ 3.4GHz, 16 জিবি র‌্যাম, Win7-64 আলটিমেট)।


gdalwarp ইতিমধ্যে উল্লেখ করা হয়েছিল। পারফরম্যান্স এবং নির্দিষ্ট উদাহরণের চিত্রের আকার সম্পর্কে তথ্য একটি স্বাগত সংযোজন, তবে সত্যিই এটি gis.stackexchange.com/a/74450/108 এর একটি মন্তব্য হওয়া উচিত (এবং কোড ফর্ম্যাটিং সহ কমান্ড লাইনের সাথে একটি প্রস্তাবিত সম্পাদনা করাও স্বাগত হবে ; এটি পড়া সহজ)
ম্যাট উইলকি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.