সেপ্টেম্বর 2009
উদ্দেশ্য
এই টিউটোরিয়ালটি আপনাকে ওজিআর ওপেন সোর্স লাইব্রেরি ব্যবহার করে GIS ভেক্টর ডেটা কেএমএল-এ রূপান্তর করার মূল বিষয়গুলি নিয়ে চলে। যদিও এই লাইব্রেরিগুলি বেশিরভাগ GIS ফাইলের সাথে ব্যবহার করা যেতে পারে, এই টিউটোরিয়ালটি ESRI শেফফাইলের সাথে কাজ করার উপর ফোকাস করবে।
ভূমিকা
ভৌগলিক ডেটা ওয়েবে বিভিন্ন আকারে পাওয়া যায়। KML হল সবচেয়ে প্রচলিত ফাইল ফরম্যাটগুলির মধ্যে একটি, তবে অন্যান্য অনেক ধরনের ফাইলও ব্যবহার করা হয়। বড় কোম্পানি, সরকার এবং এনজিও তাদের মানচিত্র তৈরি করতে ভৌগলিক তথ্য সিস্টেম ব্যবহার করে, বিশেষ ফাইল ফর্ম্যাটের সাথে। এই অ্যাপ্লিকেশানগুলির জন্য প্রায়শই বিশেষ প্রশিক্ষণের প্রয়োজন হয়, বা শেখার জন্য কমপক্ষে উল্লেখযোগ্য পরিমাণ সময় লাগে। মালিকানাগুলি বেশ ব্যয়বহুল হতে পারে। অন্যদিকে, তারা খুব শক্তিশালী এবং পেশাদার ম্যাপারের জন্য ম্যাপিং সরঞ্জামগুলির একটি সমৃদ্ধ সেট সরবরাহ করে।
অনেক সরকারী সংস্থা তাদের জিআইএস ডেটার কিছু অংশ জনসাধারণের ব্যবহারের জন্য প্রকাশ করে। Data.gov , ম্যাসাচুসেটস জিওগ্রাফিক ইনফরমেশন সিস্টেম এবং DataSF এর মতো পোর্টালগুলি তাদের সম্প্রদায়ের জন্য ডেটা খুঁজে পাওয়া সহজ করে তোলে৷ এই নিবন্ধটি বর্ণনা করে যে কীভাবে ভেক্টর ডেটা রূপান্তর করা যায়—অর্থাৎ ডেটা হল সাধারণ জ্যামিতি যেমন বিন্দু, রেখা এবং বহুভুজ—কেএমএলে। এটি আপনাকে বিভিন্ন ধরণের ডেটাতে অ্যাক্সেস দেবে, যার মধ্যে রয়েছে:
- পার্সেল ডেটা পার্সেল নির্মাণের সীমানা প্রতিনিধিত্ব করে
- ঘটনার তথ্য, যেমন অপরাধ প্রতিবেদন
- পৌরসভা, রাজ্য, কাউন্টি, প্রদেশ ইত্যাদির সীমানা সংক্রান্ত তথ্য।
- রাস্তার ডেটা, পরিকল্পিত রাস্তা এবং বিদ্যমানগুলি সহ
- নির্মাণের অনুমতি, যেখানে অনুমতি দেওয়া হয়েছে তা নির্দেশ করে
- স্বাস্থ্য সংক্রান্ত তথ্য, যেমন ফ্লু প্রাদুর্ভাবের ঘটনা কোথায় রয়েছে তা বর্ণনা করা
ডেটা রূপান্তর করার জন্য অনেকগুলি দুর্দান্ত অ্যাপ্লিকেশন রয়েছে, যেমন Google Earth Pro , shp2kml , KML2KML , Arc2Earth , এবং আরও অনেকগুলি৷ এই নিবন্ধটি কমান্ড লাইন থেকে ওপেন সোর্স জিওস্পেশিয়াল ডেটা অ্যাবস্ট্রাকশন লাইব্রেরি (GDAL) ইউটিলিটিগুলি ব্যবহার করে Google Earth বা Google Maps-এ ব্যবহারের জন্য ভেক্টর ডেটা কেএমএল-এ রূপান্তর করার উপর ফোকাস করবে এবং সম্ভবত সেই লাইব্রেরিগুলিকে আপনার নিজের অ্যাপ্লিকেশনগুলিতে অন্তর্ভুক্ত করতে আপনাকে অনুপ্রাণিত করবে।
ফাইল প্রকারের উপর একটি নোট
যদিও এই নিবন্ধটি আপনাকে ESRI শেফফাইলগুলিকে KML-এ রূপান্তরিত করার পদক্ষেপগুলির মধ্য দিয়ে নিয়ে যায়, GDAL ইউটিলিটিগুলি, বিশেষ করে OGR , CSV , PostGRES/PostGIS ডাটাবেস এবং অন্যান্য বিভিন্ন ফর্ম্যাট সহ বিভিন্ন ধরণের ফাইল থেকে রূপান্তর করতে ব্যবহার করা যেতে পারে। . আপনি সম্মুখীন হবেন অধিকাংশ প্রধান তথ্য বিন্যাস সমর্থিত. আপনি যদি এমন একটি ফর্ম্যাট খুঁজে পান যা সমর্থিত নয়, আপনি OGR-এর জন্য একটি ড্রাইভার লিখতে পারেন, যেহেতু এটি একটি ওপেন সোর্স লাইব্রেরি।
শেপফাইলস
ESRI-এর জনপ্রিয় শেফফাইল ফর্ম্যাট হল সবচেয়ে সাধারণ GIS ডেটা ফর্ম্যাটগুলির মধ্যে একটি৷ যদিও প্রযুক্তিগতভাবে শেপফাইলটি একটি .shp এক্সটেনশন সহ একটি একক ফাইল, একটি .shp নিজে থেকে খোলা যায় না। এটির জন্য কমপক্ষে একটি .dbf, এবং .shx ফাইল প্রয়োজন, এবং বিভিন্ন উদ্দেশ্যে বিভিন্ন ধরনের অন্যান্য ফাইলও প্রয়োজন। সুতরাং আপনি যখন একটি শেফফাইলের একটি রেফারেন্স দেখতে পান, তখন এটি প্রায় সবসময়ই ফাইলগুলির একটি সংগ্রহ বোঝায়, সাধারণত এটিকে একত্রে রাখার জন্য একটি জিপ করা সংরক্ষণাগারে, এবং এভাবেই আমরা এই নিবন্ধের বাকি অংশের জন্য শেফফাইল শব্দটি ব্যবহার করব।
শেপফাইলগুলিতে তারা বর্ণনা করা ভৌগলিক সম্পর্কে প্রচুর পরিমাণে তথ্য ধারণ করে। তারা প্রকৃত জ্যামিতি, জ্যামিতি সম্পর্কে মেটাডেটা এবং ব্যবহৃত স্থানিক রেফারেন্স সিস্টেম সম্পর্কে তথ্য, সেইসাথে ডেটার অন্যান্য অনেক দিক বর্ণনা করে। এই নিবন্ধটির উদ্দেশ্যে, আমরা জ্যামিতি, মেটাডেটা এবং স্থানিক রেফারেন্স সিস্টেম সম্পর্কে সবচেয়ে বেশি যত্ন নেব।
জ্যামিতি এবং মেটাডেটা সহজ ধারণা। জ্যামিতি হল বিন্দু, রেখা এবং বহুভুজ, এবং সহজেই KML-এ প্রকাশ করা যায়। মেটাডেটা হল ডেটা সম্পর্কিত ডেটা, প্রায়শই ফিল্টারিং বা অনুসন্ধানের উদ্দেশ্যে ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি রাস্তা বর্ণনাকারী একটি লাইনে রাস্তার ধরন (পৌরসভার রাস্তা, জাতীয় সড়ক, টার্নপাইক, ইত্যাদি), গতির সীমা, কে এটিকে অর্থায়ন করে, এর আকার ইত্যাদি সম্পর্কে মেটাডেটা থাকতে পারে।
স্থানিক রেফারেন্স সিস্টেম (এসআরএস) ভেক্টর ডেটা তৈরি করতে ব্যবহৃত সমন্বয় সিস্টেম এবং অনুমান সনাক্ত করতে ব্যবহৃত হয়। KML-এ একটি WGS84 সমন্বয় ব্যবস্থায় অক্ষাংশ এবং দ্রাঘিমাংশ ব্যবহার করে। কিন্তু মানচিত্রে স্থানাঙ্ক সনাক্ত করার অন্যান্য উপায় রয়েছে। জনপ্রিয়গুলির মধ্যে রয়েছে: ইউনিভার্সাল ট্রান্সভার্স মার্কেটর , ব্রিটিশ ন্যাশনাল গ্রিড এবং স্টেট প্লেন সিস্টেম। ডেটাকে KML-এ রূপান্তর করতে, আপনার সেই তথ্য শনাক্ত করা প্রয়োজন হতে পারে। KML শুধুমাত্র WGS84 সমর্থন করে। সাধারণত, শেপফাইলগুলি সেই তথ্যগুলি তাদের সাথে বহন করবে, প্রায়শই একটি .prj ফাইলে, এবং OGR সেখান থেকে এটি সনাক্ত করতে পারে। তবে মাঝে মাঝে এসআরএস সনাক্ত করা প্রয়োজন। কখনও কখনও এটি ডেটা উত্স দ্বারা কোনও আকারে প্রদান করা হয়, হয় আপনি যে পৃষ্ঠা থেকে এটি ডাউনলোড করেছেন বা ডাউনলোড সহ একটি রিডমি নথিতে, বা অন্য কোনও বিন্যাসে। সাধারণত, এই যথেষ্ট। স্থানিক রেফারেন্স সাইটটিতে SRS সম্পর্কে আরও তথ্য রয়েছে এবং একটি রেফারেন্স রয়েছে যা আপনাকে পৃথক রেফারেন্স সিস্টেমগুলি সন্ধান করতে দেয়।
ogr2ogr
GDAL ভেক্টর ডেটা নিয়ে কাজ করার জন্য একটি শক্তিশালী লাইব্রেরি সরবরাহ করে। বিশেষ করে, ogr2ogr
ডেটা রূপান্তরের জন্য একটি শক্তিশালী ইউটিলিটি। উপরে উল্লিখিত কিছু সহ অনেক অ্যাপ্লিকেশন GDAL/OGR অন্তর্ভুক্ত করে।
শুরু করতে, GDAL ডাউনলোড এবং ইনস্টল করুন । তারপর আপনি একটি শেফফাইল প্রয়োজন হবে. এই টিউটোরিয়ালের উদ্দেশ্যে, DataSF থেকে একটি ব্যবহার করার চেষ্টা করুন। নীচের উদাহরণটি realtor_neighborhoods
ব্যবহার করে, যা তাদের লাইসেন্সে সম্মত হওয়ার পরে, এখানে পাওয়া যেতে পারে। একবার আপনি ফাইলটি ডাউনলোড করার পরে, এটিকে একটি ডিরেক্টরিতে আনজিপ করুন যা আপনি মনে রাখবেন। একটি কমান্ড লাইন খুলুন এবং আপনি যে ডিরেক্টরিতে ডেটা রেখেছেন সেখানে নেভিগেট করুন। এখন মজার অংশের জন্য।
ogr2ogr
কমান্ড লাইন থেকে খুব সহজেই ব্যবহার করা যায়। এখানে আপনি কিভাবে realtor_neighborhoods কে realtor_neighborhoods
থেকে KML এ রূপান্তর করতে পারেন:
ogr2ogr -f "KML" -where "NBRHOOD='Telegraph Hill'" realtor_neighborhoods.kml realtor_neighborhoods.shp
সেই কমান্ডটি কী করে তার একটি ব্রেকডাউন এখানে রয়েছে:
-
ogr2ogr
: এটি মূল কমান্ড। -
-f "KML
: এটি KML এ আউটপুট বিন্যাস সেট করে। -
-where "NBRHOOD='Telegraph Hill'"
: এটি একটি ঐচ্ছিকwhere
ধারা, যেমন SQL-তে। মূলত, এটি আপনাকে মেটাডেটার উপর ভিত্তি করে ডেটা অনুসন্ধান করতে দেয়। এটি শেফফাইল এবং অন্যান্য ফাইল প্রকারের সাথে কাজ করে যা অনুসন্ধান সমর্থন করে। এই ক্ষেত্রে, এটি NBRHOOD ক্ষেত্রের জন্য অনুসন্ধান করছে এবং শুধুমাত্র টেলিগ্রাফ হিলের একটি NBRHOOD আছে এমন বৈশিষ্ট্যগুলি নির্বাচন করছে৷ আপনি যদি সেই প্যারামিটারটি বন্ধ রেখে যান,ogr2ogr
আপনাকে প্রতিটি আশেপাশের বহুভুজ দেয়। -
realtor_neighborhoods.kml
: এটি আউটপুট ফাইলের নাম। আউটপুট ফাইলের নাম প্রথমে আসে। -
realtor_neighborhoods.shp
: এটি ইনপুট ফাইলের নাম। .shp ফাইলটি পুরো শেপফাইলের প্রতিনিধিত্ব করে।
এটা, এটা খুব সহজ. এই কমান্ডটি একটি KML ফাইল লিখে যা দেখতে এইরকম:
<?xml version="1.0" encoding="utf-8" ?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document><Folder><name>realtor_neighborhoods</name> <Schema name="realtor_neighborhoods" id="realtor_neighborhoods"> <SimpleField name="Name" type="string"></SimpleField> <SimpleField name="Description" type="string"></SimpleField> <SimpleField name="OBJECTID" type="float"></SimpleField> <SimpleField name="NBRHOOD" type="string"></SimpleField> <SimpleField name="SFAR_DISTR" type="string"></SimpleField> </Schema> <Placemark> <ExtendedData><SchemaData schemaUrl="#realtor_neighborhoods"> <SimpleData name="OBJECTID">81</SimpleData> <SimpleData name="NBRHOOD">Telegraph Hill</SimpleData> <SimpleData name="SFAR_DISTR">District 8 - Northeast</SimpleData> </SchemaData></ExtendedData> <Polygon><outerBoundaryIs><LinearRing><coordinates>-122.41041847319012,37.805924016582715,0 -122.407203813674,37.806324902060979,0 -122.40667792852096,37.803710121958744,0 -122.40348255423899,37.804117462290641,0 -122.40237202127015,37.798540648764529,0 -122.40876046662795,37.797723222540775,0 -122.41041847319012,37.805924016582715,0</coordinates></LinearRing></outerBoundaryIs></Polygon> <Style><LineStyle><color>ff0000ff</color></LineStyle> <PolyStyle><fill>0</fill></PolyStyle></Style> </Placemark> </Folder></Document></kml>
আপনি দেখতে পারেন যে শেপফাইল থেকে মেটাডেটা সংরক্ষিত ছিল, Schema
এবং SimpleData
উপাদানগুলিতে। এক্সটেন্ডেডডেটা ব্যবহার এবং কাস্টম ডেটা সংরক্ষণের বিষয়ে আরও তথ্যের জন্য, কাস্টম ডেটা যোগ করার উপর KML বিকাশকারীর নির্দেশিকা বিভাগটি দেখুন।
এরপর কি?
GDAL/OGR আপনাকে প্রচুর শক্তি দেয়। সহজতম বাস্তবায়নে, আপনি এখন Google Earth, Maps, বা অন্য কোন KML-সমর্থক জিও ব্রাউজারে ব্যবহারের জন্য আপনার সমস্ত ডেটা কেএমএল-এ রূপান্তর করতে পারেন। আরও ভাল, আপনি আপনার অ্যাপ্লিকেশনগুলিতে GDAL/OGR লাইব্রেরিগুলিকে অন্তর্ভুক্ত করতে পারেন, আপনাকে KML-এ GIS ডেটার রূপান্তর স্বয়ংক্রিয় করার ক্ষমতা দেয় এবং সেই রূপান্তরের আউটপুট নিয়ন্ত্রণ করতে পারে। আপনার KML প্রজন্মের উপর আরও বেশি প্রোগ্রাম্যাটিক নিয়ন্ত্রণের জন্য libkml-এর সাথে এটি একত্রিত করার চেষ্টা করুন।