[জিওগ্রাফিক ইনফরমেশন সিস্টেম (GIS) – লেকচার ১০]
[জিওগ্রাফিক ইনফরমেশন সিস্টেম (GIS) – লেকচার ১২]
Image to Image Georeferencing
গত লেকচারে কিভাবে একটি ‘Image’-কে একটি নির্দিষ্ট ‘Coordinate System’-এর সাপেক্ষে ‘Georeference’ করা যায়, তা দেখানো হয়েছিল। এবারের লেকচারে একটি ‘Spatial-Referenced Image’ থেকে কিভাবে আরেকটি ‘Non-Spatial Referenced Image’-কে ‘Georeference’ করা সম্ভব তা দেখানো হবে।
আজকে আমাদের কাছে দুইটি ‘Raster Image’ আছে। এর একটির নাম হল – ‘Gulshan_Landsat’। ইহা একটি ‘Landsat 4–5 Thematic Mapper (TM) Satellite Image’। যাহার Row = ৪৪, Path = ১৩৭, Image Acquire তারিখ = ১১ নভেম্বর ২০০৯; Spatial Reference = WGS_1984_UTM_zone_46N এবং Datum = WGS_1984।
দ্বিতীয় ‘Image’-টির নাম হল – ‘Gulshan_JPEG’। ইহা ‘Asiatic Society of Bangladesh’-এর ‘Banglapedia’ থেকে সংগৃহীত বাংলাদেশের রাজধানী ঢাকার গুলশান থানার একটি ‘JPEG’ (Joint Photographic Experts Group) মানচিত্র। ইহা ‘Non-Projected’ একটি ম্যাপ; অর্থাৎ ইহার Spatial Reference = Undefined।
এখন আমরা ‘Georeferencing’-এর মাধ্যমে ‘Gulshan_Landsat’-এর ‘Spatial Reference’-কে ‘Gulshan_JPEG’-এ স্থানান্তরিত করব। নিম্নের ভিডিওটিতে (Mouse-এর ‘Cursor’ খেয়াল করবেন) সমগ্র প্রক্রিয়াটি দেখানো হল; আর বিস্তারিত ধাপসমূহ বর্ণনা করা হলঃ
[১] আজকের লেকচারের জন্য ‘ArcMap 10.2.1’ ব্যবহার করা হয়েছে। প্রথমে গুলশানের ‘Image’ দুইটি ডেস্কটপের ‘GIS_11’ নামক একটি ফোল্ডারে রাখা হয়েছে। এখন ‘ArcMap’ open করলে নিচের ডান দিকের কোনায় দেখা যাবে লেখা আছে – Unknown Units; অর্থাৎ কোন ‘Spatial Projection System’ নাই।
[২] ‘Add Data’ ক্লিক করে ‘GIS_11’ ফোল্ডারটি ‘Connect’ করি। তারপর ‘Gulshan_Landsat’ সিলেক্ট করে ‘Add’।
[৩] ‘ArcMap’-এ প্রথমবার কোন ‘Raster Image’কে ‘Add’ করতে গেলে ‘Pyramid Build’ করতে হয়। অনেক সময় ‘ArcGIS’ সফটওয়্যারে বড় সাইজের ‘Raster Image’ নিয়ে কাজ করা দুরহ হয়ে যায়। কোন ‘Raster Image’-এ ১০২৪ টির বেশি পিক্সেল (Pixel) থাকলে অনেক সময় ‘Viewing and Data Processing’ করা সময় সাপেক্ষ হয়ে যায়। তাই ‘display performance’-এর উন্নয়নের জন্য ‘Pyramid Build’ করতে হয়। এক্ষেত্রে আমরা ‘default settings’ যা আছে (Nearest Neighbor); সেটাই সিলেক্ট করব, তাই ‘Yes’ ক্লিক করি।
[৪] এরপর আমরা ‘Gulshan_Landsat’-এর Properties > Source-এ গিয়ে দেখা যাবে; Spatial Reference = WGS_1984_UTM_zone_46N, Linear Unit = Meter এবং Datum = WGS_1984। আবার ডানদিকের নিচের কোনায় দেখা যাবে যে ‘Unknown Units’-এর জায়গায় লেখা আছে ‘Meter’। অর্থাৎ ‘Gulshan_Landsat’ একটি UTM Projected Image। এরপর ‘Image’-টিকে ‘Zoom In/Out/Pan/Select Elements’ দিয়ে গুলশান লেকের অবস্থান জেনে নিতে হবে।
[৫] এখন আবারও ‘GIS_11’ ফোল্ডারে গিয়ে ‘Gulshan_JPEG’ Image-টি ‘Add’ করি। Pyramid Build করতে হবে। এরপর দেখা যাবে – missing spatial reference; অর্থাৎ ‘Gulshan_JPEG’ Image-টি Projected নয়। ‘OK’ ক্লিক করলে Image-টি ‘Add’ হবে, কিন্তু দেখা যাবে না। ‘Full Extent’ দিলে দেখবেন যে এই দুইটি ‘Image’ অনেক দূরে দূরে অবস্থান করছে এবং ‘Gulshan_JPEG’ Image-টিকে দেখাই যাচ্ছে না। ‘Gulshan_JPEG’-কে ‘Right Click’ করে ‘Zoom to Layer’ দিলে এবার দেখা যাবে।
[৬] ‘Gulshan_JPEG’-কে ‘Pan’ করে ভালভাবে দেখে নেই। এবার ‘Properties > Source’–এ গিয়ে ‘Spatial Reference’ দেখি, দেখা যাবে যে ‘Undefined’ লেখা। অর্থাৎ ‘Gulshan_JPEG’ Projected নয়।
[৭] ‘Customize > Toolbars > Georeferencing’; এরপর ‘Choose Georeferencing Layer’-এ গিয়ে ‘Gulshan_JPEG’ সিলেক্ট করি। এবারে ভিডিওটিতে দেখানো পদ্ধতিতে (Zoom In, Zoom Out, Pan etc.) একে একে ১০টি Control Points (CP) ‘Add’ করি। একটি ‘Image’ থেকে আরেকটি ‘Image’-এ ‘Control Points’ যতটা নিখুঁতভাবে সম্ভব ঠিক ঠিক একই বিন্দুতে মিলাতে হবে। তা না হলে; ‘Accuracy Errors’ বেশি হবে। আমি এক্ষেত্রে অনুমানের উপর ভিত্তি করে মিলাতে চেষ্টা করেছি; কিন্তু বাস্তবে আরও সময় দিয়ে আরও সঠিকভাবে মিলানোর চেষ্টা করতে হবে। দরকার হলে ‘GPS Value’-এর সাহায্য নিয়ে কাজটি শেষ করতে হবে।
[৮] এবার ‘View Link Table’-এ গিয়ে দেখি। এখানে ‘Total RMS (root-mean-square) Error’ এবং ‘Residual’ হল – ভুলের পরিমাপক। সহজ কথায়; এই দুইটির ‘value’ যত বেশি হবে, বুঝতে হবে যে আমাদের ‘Control Points’ নেয়ায় তত বেশি ভুল হয়েছে। বিভিন্ন ধরণের ‘Transformation’-এর (1st, 2nd, বা 3rd order) জন্য এই মানগুলো (‘Total RMS Error’ এবং ‘Residual’) ভিন্ন ভিন্ন হয়ে থাকে। তাই আমাদের উচ্চ মানসম্পন্ন (higher valued) Residual-এর Control Points-গুলাকে বাদ দিতে হবে। এর ফলে ‘Total RMS Error’–এর মান কমে যাচ্ছে। এভাবে অপ্রয়োজনীয় এবং অধিক উচ্চ ‘Residual’ মানসম্পন্ন ‘Control Points’ বাদ দিতে হবে এবং দরকার হলে নতুন করে ‘Control Points’ নিতে হবে। ‘Total RMS Error’-এর মান কত হতে হবে, কয়টি ‘Control Points’ নিতে হবে বা কোন ‘Transformation’ ব্যবহার করতে হবে; তা নির্ভর করে ‘GIS Analyst’-এর উপর! সচরাচর যেই ‘Combination’-এ ‘Total RMS Error’-এর মান কম আসবে; সেটাকেই ব্যবহার করতে হবে। তবে এ নিয়ে বিস্তারিত আরও জানতে হবে।
[৯] এক্ষেত্রে আমরা সাতটি ‘Control Points’ (তিনটি বাদ দিয়েছি উচ্চমান থাকায়) এবং ‘2nd Order Polynomial Transformation’ ব্যবহার করেছি। খেয়াল করলে দেখা যাবে যে, ‘Total RMS Error’-এর মান ২০.৭১৪২ থেকে কমে এখন ০.৯৯৪৩০২ হয়ে গেছে; যাহার মান (value) অনেকাংশে গ্রহণযোগ্য। এরপর ‘Link’ টেবিলটি ‘Close’ করি এবং ‘Georeferencing > Update Georeferencing’ দেই।
[১০] এখানেই মূল কাজ শেষ হল। এখন ‘Gulshan_JPEG’ Image-টির Properties > Source-এ গেলে দেখা যাবে যে Projection হয়ে গেছে = ‘WGS_1984_UTM_zone_46N’। এভাবে আমরা ‘Undefined Spatial Projection’-এর ‘Gulshan_JPEG’ Image-টিকে; ‘Gulshan_Landsat’-এর ‘WGS_1984_UTM_zone_46N’ Projection-এ ‘Georeference’ করলাম! সর্বোপরি, ‘Gulshan_JPEG’ Image-এর Properties > Display > Transparency-তে গিয়ে ৬০% দিয়ে দেখতে পারি যে ম্যাপ দুইটি পরস্পরের সাথে মিলে গিয়েছে কিনা। ইহা একটি ‘Trial & Error’ প্রক্রিয়া। তাই দরকার হলে বার বার এই সমগ্র পদ্ধতিটি পুনরাবৃত্তি করতে হবে এবং ভুলের পরিমাণ সর্বনিম্ন রাখার চেষ্টা করতে হবে।
** ‘GIS-based Image Transformations’ নিয়ে (অন্তর্নিহিত গাণিতিক প্রক্রিয়া) আরও জানতে হলে অতীতে এই নিয়ে আমার করা কাজগুলো (Image Transformations) দেখতে পারেন। আজকের মত এখানেই শেষ করছি, ধন্যবাদ!