একটি E57 ফাইল কি?
.e57 এক্সটেনশন সহ একটি ফাইল হল একটি কমপ্যাক্ট, বিক্রেতা-নিরপেক্ষ ফাইল ফর্ম্যাট যা ত্রিমাত্রিক (3D) ইমেজিং ডেটা যেমন পয়েন্ট ক্লাউড, ছবি এবং মেটাডেটা সংরক্ষণ এবং বিনিময়ের জন্য ব্যবহৃত হয়। এই ধরনের ডেটা প্রায়ই লেজার স্ক্যানারগুলির মতো সিস্টেমের সাথে তৈরি করা হয়। এটি 3D ইমেজিং সিস্টেমের উপর ATSM E57 কমিটির ডেটা ইন্টারঅপারেবিলিটি সাব-কমিটি দ্বারা তৈরি করা হয়েছিল। E57 হল ওপেন সোর্স এবং 3D পয়েন্ট ডেটা, এর বৈশিষ্ট্য (যেমন রঙ এবং তীব্রতা) এবং 3D ইমেজিং সিস্টেম দ্বারা ধারণ করা 2D চিত্র সংরক্ষণ করে।
E57 ফাইল ফরম্যাট
E57 ফাইল ফরম্যাটের স্পেসিফিকেশন ATSM ওয়েবসাইটে পাওয়া যায় এবং ডেভেলপারের রেফারেন্সের জন্য উল্লেখ করা যেতে পারে। কনসেপ্ট পেপার এবং E57 ফাইল ফরম্যাটের প্রযুক্তিগত বিবরণ Daniel Huber এর রেফারেন্স উপাদান হিসেবে পাওয়া যায়। একটি E57 ফাইলের ডেটা একটি XML ভিত্তিক শ্রেণিবদ্ধ গাছের কাঠামোতে সংরক্ষিত হয়েছে যেমনটি নিম্নলিখিত ছবিতে দেখানো হয়েছে। নিম্ন স্তরে, ফাইলের আকার কমপ্যাক্ট করতে E57 ফাইলগুলি সংকুচিত বাইনারি ফাইল হিসাবে সংরক্ষণ করা হয়।
E57 ফাইল স্ট্রাকচার
একটি E57 ফাইলের গঠন নিচের টেবিলে দেখানো হয়েছে।
ফাইল স্ট্রাকচার |
---|
শিরোনাম |
বাইনারী বিভাগ (পয়েন্ট) |
বাইনারী বিভাগ (পয়েন্ট) |
… |
… |
বাইনারী বিভাগ (ছবি) |
XML বিভাগ |
E57 হেডার
E57 হেডার হল একটি ছোট, 48-বাইট বাইনারি স্ট্রাকচার যাতে গুরুত্বপূর্ণ ফাইল-স্তরের তথ্য থাকে, যেমন সংস্করণ নম্বর এবং XML বিভাগের অবস্থান। এটা progamatically অনুসরণ হিসাবে প্রতিনিধিত্ব করা যেতে পারে.
struct E57FileHeader {
char fileSignature[8];
uint32_t majorVersion;
uint32_t minorVersion;
uint64_t filePhysicalLength;
uint64_t xmlPhysicalOffset;
uint64_t xmlLogicalLength;
uint64_t pageSize;
}
XML হায়ারার্কি
একটি E57 ফাইলের XML বিভাগটি স্ট্যান্ডার্ড XML-এর একটি উপসেট ব্যবহার করে গাছের শ্রেণিবিন্যাস বর্ণনা করে। এটি আটটি E57 উপাদান প্রকারের উপর ভিত্তি করে যেখানে প্রতিটি উপাদান মূল বিল্ডিং ব্লকের একটি সেট ব্যবহার করে তৈরি করা হয়। এই E57 উপাদানগুলির মধ্যে পাঁচটি টার্মিনাল প্রকার এবং এর মধ্যে তিনটি অ-টার্মিনাল।
টার্মিনাল প্রকার
পূর্ণসংখ্যা
- সাইন করা পূর্ণসংখ্যা 63 বিট পর্যন্ত
ফ্লোট
- IEEE 754-1985 ফরম্যাটে একটি একক বা দ্বিগুণ নির্ভুল ফ্লোটিং পয়েন্ট নম্বর সঞ্চয় করে
ScaledInteger
- স্কেল এবং অফসেটের সাথে একটি পূর্ণসংখ্যা হিসাবে ভগ্নাংশের অংশ সহ একটি সংখ্যা সংরক্ষণ করে
স্ট্রিং
- UTF-8 এনকোডেড হিসাবে পাঠ্য ডেটা সংরক্ষণ করে এবং আন্তর্জাতিক অক্ষর সমর্থন করে
ব্লব
- বাইনারি ডেটার একটি অস্বচ্ছ ব্লক সঞ্চয় করে যা পাঠক প্রসঙ্গের উপর নির্ভর করে ব্যাখ্যা করে।
নন-টার্মিনাল প্রকার
গঠন
- যে কোনো ধরনের E57 উপাদানের একটি ক্রমবিহীন সেট রয়েছে। একটি E57 কাঠামো সি প্রোগ্রামিং ভাষার একটি কাঠামোর অনুরূপ।
ভেক্টর
- উল্লেখযোগ্যভাবে অভিন্নভাবে টাইপ করা আইটেমগুলির একটি অর্ডারকৃত তালিকা রয়েছে৷ উপাদানের একটি পতাকা ইচ্ছা হলে আইটেমগুলিকে ঠিক অভিন্নভাবে টাইপ করার জন্য সীমাবদ্ধ করার অনুমতি দেয়।
কম্প্রেসডভেক্টর
- একইভাবে টাইপ করা আইটেমগুলির একটি অর্ডারকৃত তালিকা রয়েছে, যা বাইনারি ফর্ম্যাটে সংকুচিত হয়৷ ব্লব ডেটা টাইপের মতো, একটি কম্প্রেসডভেক্টরের উপস্থাপনা একটি XML অংশ এবং একটি বাইনারি অংশে বিভক্ত৷