বিভিন্ন রাস্টার ডেটা ফর্ম্যাটগুলির গতি


25

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

বিশেষত, আমি আগ্রহী যদি কোনও রাস্টারকে (উদাহরণস্বরূপ, একটি জিওটিআইএফএফ ফাইল) আলাদা ফর্ম্যাটে রূপান্তরিত করা হয় (যেমন, নেটডিসিডিএফ) পড়া / লেখার এবং অন্যান্য ক্রিয়াকলাপগুলির গতি বাড়ানোর লক্ষ্যে সর্বদা সার্থক।


2
এই প্রশ্নটি জিআইএস-এর সাথে প্রাসঙ্গিক, তবে আমি সন্দেহ করি যে আপনি এসওতে উত্তর পেতে পারেন, যার পক্ষে আর বিশেষজ্ঞদের একটি শক্তিশালী উপ-সম্প্রদায় রয়েছে। যদি আপনি দ্রুত উত্তর না পান তবে দয়া করে কেবল এই প্রশ্নটিকে ফ্ল্যাগ করুন এবং একজন মডারেটর এটি আপনার জন্য স্থানান্তরিত করবে।
শুক্রবার

উত্তর:


9

এখানে আমার একটি পুরানো ব্লগ নিবন্ধ ফাইলের আকার এবং ফর্ম্যাটগুলির অ্যাক্সেসের সময়টি দেখছে। আমি লেখার গতি তদন্ত করিনি, কেবল অ্যাক্সেসের সময়। আমি বলব যে তারা সম্ভবত সরাসরি সম্পর্কিত হবে, তবে এটির জন্য কোনও প্রমাণ দিতে সক্ষম হবে না।

নিবন্ধের সংক্ষিপ্তসার: মনে হচ্ছে প্যাকেটগুলি আপনাকে অ্যাক্সেসের সেরা সময় দেয় (ডিস্কের জায়গার ব্যয়ে), তবে ডিফল্ট আপনাকে মধ্যবর্তী / ছোট ফাইলগুলির জন্য মধ্যবর্তী / ধীর অ্যাক্সেসের সময় দেয়। এছাড়াও, আপনি বিভিন্ন আকারের থাম্বনেইল তৈরি করতে এবং কত সময় নেয় তার সময় নির্ধারণের মাধ্যমে অ্যাক্সেসের বার আরও পরীক্ষামূলকভাবে পরীক্ষা করতে পারেন। উদাহরণ কমান্ড:time gdal_translate -outsize <thumbnail dimensions> -of GTiff <compressed image file> <thumbnail file>

ধরে নেওয়া যে এক্ষেত্রে আর এর সাথে একমাত্র প্রাসঙ্গিক বিষয় হ'ল এটি ফাইল থেকে ডেটা কত দ্রুত পড়তে পারে, ঠিক তেমন অন্য কোনও প্রক্রিয়া যেমন করে, তখন এটি আপনাকে একটি ভাল ইঙ্গিত দেয়।


লিঙ্কযুক্ত নিবন্ধের জন্য +1, তবে গুরুত্বপূর্ণ তথ্যটি অফসাইট এবং পৃষ্ঠাটি যদি কখনও নামতে বা সরে যায় তবে তা আমাদের কাছে হারিয়ে যাবে। আমি নিবন্ধটির একটি সংক্ষিপ্ত উপসংহার দেওয়ার পরামর্শ দিচ্ছি যাতে ইভেন্টটি পৃষ্ঠাটি উপলব্ধ না হয়, এমনকি ক্ষণিকের জন্য, পাঠকদের ভবিষ্যতের গবেষণা এবং চিন্তাভাবনার সাথে কাজ করার কিছু রয়েছে। ধন্যবাদ!
ম্যাট উইলকি

যথেষ্ট ফর্সা! দেখে মনে হচ্ছে প্যাকব্যাটগুলি আপনাকে সর্বোত্তম অ্যাক্সেসের সময় দেয় (ডিস্কের জায়গার ব্যয়ে), যেখানে ডিফলেট আপনাকে মধ্যবর্তী / ছোট ফাইলগুলির জন্য মধ্যবর্তী / ধীর অ্যাক্সেসের সময় দেয়। এছাড়াও, আপনি বিভিন্ন আকারের থাম্বনেইল তৈরি করতে এবং কত সময় নেয় তার সময় নির্ধারণের মাধ্যমে অ্যাক্সেসের বার আরও পরীক্ষামূলকভাবে পরীক্ষা করতে পারেন। উদাহরণ কমান্ড: "সময় gdal_translate -outsize <থাম্বনেইল মাত্রা> -র জিটিফ <সংকুচিত চিত্র ফাইল> <থাম্বনেল ফাইল>"
আর থিয়েডে

1
ধন্যবাদ! আমি উত্তরে নিজেই সারাংশটি ভাঁজ করেছি, সুতরাং এটি আরও স্বযুক্ত রয়েছে (প্রতিটি উত্তর / প্রশ্নের নীচে বামদিকে সম্পাদনা লিঙ্কটি দেখুন)।
ম্যাট উইলকি

@ আরডিথের একটি বৈধ উদ্বেগ ছিল: এটি এখন সত্যিই মনে হচ্ছে যে ব্লগের লিঙ্কটি আর বৈধ নয়?
মতিফু

@ আরটিআইডি আপনার লিঙ্কটি মারা গেছে আপনি কি নতুন একটি সরবরাহ করতে পারবেন?
মজিদ হোজাতি

6

জন্য পড়া / লেখা অপারেশন, আপনি system.time ব্যবহার করছেন তাদের অপারেশন গতি পরীক্ষা করতে পারেন ()। আর (রাস্টার প্যাকেজ) এ একটি ডিইএম ফাইল লোড করে কিছু ফর্ম্যাট (এএসসিআইআই, আইএমজি এবং টিআইএফ ছাড়াই সংক্ষিপ্তকরণ এবং ডিফল্ট নয়) অনুবাদ করা হয়েছে। উদাহরণস্বরূপ, একটি M 26MB রাস্টারটিতে:

> system.time(dem <- raster("~/workspace/TEMP/kideporegion.img"))
 user  system elapsed 
 0.154   0.002   0.157 

'অতিবাহিত' অপারেশনের জন্য নেওয়া মোট সময় (সেকেন্ড) দেয়। প্রতিটি 10 ​​বার অপারেশন পরিচালনা করা এবং সময় অতিবাহিত সময়ের দিকে তাকানো:

              mean   diff
ASC         0.2237 0.3317
IMG         0.1544 0.0318
tif-Deflate 0.1510 0.0099
tif-none    0.1495 0.0000
tif-pack    0.1513 0.0118

কোনও সংকোচনের সাথে টিআইএফএফ দ্রুততম ... ডিফ্লেট (0.1% ধীর) এবং টিআইএফএফ-প্যাকব্যাটস (1.8% ধীর) পরে আইএমজি (3.2% ধীর) এবং এএসসি (33% ধীর) অনুসরণ করে। (এটি কোনও এসএসডি সহ একটি ম্যাকবুক প্রো ২.৪ গিগাহার্টজ, সুতরাং দ্রুত ডিস্ক অপারেশন)

এটি কেবল ফাইলগুলি লোড করার জন্য, এগুলি হেরফের নয়।


4

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

যে কোনও উপায়ে, আপনি যদি আর-তে রাস্টার নিয়ে কাজ করতে যাচ্ছেন তবে আপনি সম্ভবত আর রাস্টার প্যাকেজটিতে কী রয়েছে তা পরিপূরক করতে rgdal এবং R ncdf প্যাকেজ ব্যবহার করবেন । Gdalwarp আদেশের উপর প্রধান নির্ভরতা সহ । আপনার রাস্টার পছন্দ করতে ফর্ম্যাট নির্ভরতা কাজ করতে হবে। আপনি এসও এবং বিভিন্ন ওএসজিইও এবং আর ফোরাম / ব্লগ / উইকিতে মোটামুটি কভারেজ পাবেন।

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


আর-তে নেটসিডিএফএফ ডেটা (রাস্টার উত্স বা অন্যথায়) পরিচালনা করার জন্য, এখানে দুটি আর সিআরএন হোস্ট করা নেটসিডিএফএফ প্যাকেজ, এনসিডিএফ 4 - cran.r-project.org/web/packages/ncdf4/index.html এবং আরনেটসিডিএফ - ক্র্যানের লিঙ্ক রয়েছে। r-project.org/web/packages/RNetCDF/index.html
ভি স্টুয়ার্ট ফুটে

4

একটি বড় প্রশ্ন হ'ল আপনি প্রক্রিয়া করার আগে ফাইল থেকে পুরো রাস্টারটি মেমোরিতে পড়তে যাচ্ছেন, অথবা ফাইলটি এত বড় যে আপনি এটি ক্রমান্বয়ে প্রক্রিয়া করবেন, বা সামগ্রিক ফাইলের কিছু উপসেট প্রক্রিয়া করবেন whether

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

যদি আপনাকে খুব বড় ফাইলের একটি উপসেট প্রক্রিয়া করতে হয়, তবে আপনি যে উপসেটটি একসাথে ঘনিষ্ঠ করতে চান তা ভাগ করে এমন একটি ফর্ম্যাট দ্রুততর হতে পারে - উদাহরণস্বরূপ: টাইলস বা একটি ফর্ম্যাট যা অফসেটগুলি গণনা করতে পারে। কখনও কখনও সঙ্কুচিত পদ্ধতিগুলি এখানে লাভ অর্জন করে কারণ চিত্রের কোনও প্রদত্ত অংশটি ফাইলের মধ্যেই থাকে এমনটি গণনা করা তুচ্ছ হতে পারে, বিশেষত যদি আপনার খুব বড় সারির কেবলমাত্র একটি অংশের প্রয়োজন হয় তবে সংক্ষেপণ একটি দানাদার ফ্যাশনে করা যেতে পারে যা কিছু ক্ষেত্রে ভাল কাজ করে some অ্যাক্সেস নিদর্শন।

দুঃখিত, তবে আপনাকে সম্ভবত অ্যাক্সেস-ফিট-সবই না দিয়ে আপনার অ্যাক্সেস প্যাটার্নের উপর নির্ভর করে বেঞ্চমার্ক করতে হবে। এটি অবশ্যই কেবল ফাইল ফর্ম্যাট এবং উপরের কারণগুলির উপর নির্ভর করে না, তবে সেই ফর্ম্যাট এবং আপনার সফ্টওয়্যারটির ড্রাইভারদের উপর নির্ভর করে।


2

এই ধরণের সমস্যাগুলি সম্পর্কে আপনি যেভাবে ভাবেন সেটি আপনার অ্যাপ্লিকেশনটি কীভাবে আপনার ফাইলটিতে অ্যাক্সেস করে সেদিকে লক্ষ্য করে। ধারণাটি হ'ল যদি আপনি আপনার ডেটা ধারাবাহিকভাবে অ্যাক্সেস করতে পারেন তবে আপনি এলোমেলোভাবে এটি অ্যাক্সেস করলে তার চেয়ে অনেক বেশি কার্যকর হবে।

জিওটিআইএফএফ 2D "চিত্র" বা অ্যারের সংকলন। নেটসিডিএফ হ'ল বহুমাত্রিক অ্যারেগুলির জন্য একটি সাধারণ উদ্দেশ্য সঞ্চয়। তবে আপনি যদি জিআরটিআইএফএফ-এর মতো অ্যারেগুলি একইভাবে নেট সিসিডিএফ-তে সঞ্চয় করেন তবে আপনি কম পারফরম্যান্স পাবেন।

নেটডিসিএফ-এ ডেটাও পুনরায় সাজানো যায়, তাই নীতিগতভাবে আপনার পড়ার ধরণের জন্য অনুকূলিত করতে পারে। আমার অনুমান যে বেশিরভাগ জিআইএস অ্যাপ্লিকেশনটি জিওটিআইএফএফ 2 ডি লেআউটের জন্য অনুকূলিত হয়েছে, তাই পুনর্বিন্যাসের মাধ্যমে লাভ করার তেমন কিছুই নেই।

অবশেষে, আইডি বলছে এটি তখনই গুরুত্বপূর্ণ যখন আপনার কাছে খুব বড় ফাইল থাকে, কমপক্ষে দশক মেগাবাইট।


+1 পয়েন্টটির জন্য যে এলোমেলো অ্যাক্সেস, বা স্বেচ্ছাসেবক অবস্থানের পড়া, পুরো ফাইলটি পড়া না হওয়া পর্যন্ত একের পর এক ক্রমিকের থেকে খুব আলাদা। আমি বেস থেকে দূরে থাকতে পারি, তবে আমি মনে করি জিওটিফ টাইল্ড স্টোরেজ এবং স্বেচ্ছাসেবী অ্যাক্সেসকে সমর্থন করে, এটি কেবল স্ট্রিপ / সারি দ্বারা সর্বাধিক সাধারণ এবং বহুল সমর্থনযোগ্য। এছাড়াও আজকাল জিআইএসে "খুব বড় ফাইলগুলি" মাল্টি জিবি পরিসরে থাকে। ;-)
ম্যাট উইলকি

2

আমি বেশ কয়েক বছর আগে এ সম্পর্কে কয়েকটি পৃষ্ঠা পড়েছি এবং তখন থেকে প্যাকেটগুলি সংকোচনের সাথে টিফ ব্যবহার করেছি, জিওটিফ শিরোলেখ দ্বারা টাইলস পেয়েছি এবং খুশি হয়েছি।

আরকপ্যাড দল নিবন্ধ

উইকি

তবে নিম্নলিখিতটি পড়ার পরে, আমি পুনর্বিবেচনা করব এবং সম্ভবত ডিফল্ট বিভিন্ন ব্যবহার করব।

আরকপ্যাড সাইট


2

অনেকগুলি প্যাকেজ হুডের নীচে জিডিএল ব্যবহার করে, যেমন, আরজিডাল, কিউজিআইএস, গ্রাস ইত্যাদি etc. আমি যদি এই প্যাকেজগুলির মধ্যে একটি ব্যবহার করে থাকি তবে আমি আমার চিত্রগুলি ভিআরটিতে রূপান্তর করার কথা ভাবব। আমি প্রায়শই এটি প্রস্তাবিত দেখেছি যে যখন আপনার দুটি জিডিএল কমান্ড ব্যবহার করার দরকার পড়ে তখন মধ্যবর্তী ফাইলটি একটি ভিআরটি ফাইল হওয়া উচিত কারণ পঠিত ওভারহেডটি ন্যূনতম (যেমন, http://www.perrygeo.com/lazy-raster- প্রসেসিং ) -gdal-vrts.html সহ )। আপনার কর্মপ্রবাহটি দেখে মনে হচ্ছে: একবার রূপান্তর করুন এবং বহুবার পড়ুন। হয়তো ভিআরটি উপযুক্ত হবে।

[সম্পাদনা করুন: লিঙ্ক সামঞ্জস্য করা]

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