বিশাল এক্সওয়াইজেড সিএসভিকে জিওটিআইএফএফ এ রূপান্তর করুন


11

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

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

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

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


আপনারা কেন ভাবেন যে জিডিএল পদ্ধতি এসরি পদ্ধতির চেয়ে বেশি দক্ষ হবে?
আর্টওয়ার্ক 21


প্রশ্নটি আসলে কী? এখনই উত্তরটি "হ্যাঁ, আপনি রূপান্তর করতে জিডিএল ব্যবহার করতে পারেন"। :}
বাগম্যানট 123

প্রশ্নটি রূপান্তরটি কীভাবে প্রয়োগ করতে হয়। ম্যাট এর মন্তব্য সমাধান প্রদান মনে হচ্ছে - আমি এটি চেষ্টা করব।
আর্নি

ঠিক আছে! আপনি কি ডেটা ন্যূনতম উদাহরণ ক্ষেত্রে প্রদান করতে পারেন? আপনি কি জিডিএল-তে একটি উত্তর চান বা অন্যান্য ফ্রি সরঞ্জামগুলি (যেমন জিএমটি )ও ঠিক আছে?
বাগম্যানট 123

উত্তর:


16

আপনি জিডিএল ব্যবহার করে এটি করতে পারেন, এটি সরাসরি এক্সওয়াইজেড ফর্ম্যাটটিকে সমর্থন করে । আপনার স্থানাঙ্কগুলি ইউটিএম হয় কিনা তা বিবেচ্য নয়, gdal_translate একই স্থানাঙ্ক সিস্টেমে আউটপুট আসবে।

সুতরাং জিওটিআইএফএফ-তে রূপান্তর করা এতটা সহজ:

gdal_translate test.xyz test.tif

GeoTIFF আউটপুট অপশন (যেমন কম্প্রেশন হিসাবে) এবং জন্য ডক gdal_translate আরো ব্যবহার তথ্যের জন্য ডক। বিশেষত, আপনার -a_srsপ্যারামিটারের সাথে সমন্বয় ব্যবস্থাটি নির্দিষ্ট করা উচিত ।

-a_srs srs_def:

আউটপুট ফাইলের জন্য অভিক্ষেপ ওভাররাইড করুন। Srs_def সাধারণ GDAL / OGR ফর্মগুলির কোনও, সম্পূর্ণ WKT, PROJ.4, EPSG: n বা ডাব্লুকেটি সমন্বিত একটি ফাইল হতে পারে।

gdal_translate -a_srs EPSG:12345 test.xyz test.tif

শিরোনাম সারি সহ এবং ছাড়াই কমা / স্থান পৃথক এবং স্থির কলাম প্রস্থগুলি সমর্থিত।

সমর্থিত কলাম বিভাজকগুলি হ'ল স্থান, কমা, সেমিকোলন এবং ট্যাবুলেশন।

$ head -n 2 test_space.xyz 
x y z
146.360047076550984 -39.0631214488636616 0.627969205379486084

$ gdalinfo test_space.xyz
Driver: XYZ/ASCII Gridded XYZ
Files: test_space.xyz
Size is 84, 66
Coordinate System is `'
Origin = (146.359922066953317,-39.062997159090934)
Pixel Size = (0.000250019195332,-0.000248579545455)
Corner Coordinates:
Upper Left  ( 146.3599221, -39.0629972) 
Lower Left  ( 146.3599221, -39.0794034) 
Upper Right ( 146.3809237, -39.0629972) 
Lower Right ( 146.3809237, -39.0794034) 
Center      ( 146.3704229, -39.0712003) 
Band 1 Block=84x1 Type=Float32, ColorInterp=Undefined
  Min=0.336 Max=0.721 

$ head -n 2 test_commas.xyz 
x, y, z
146.360047076550984, -39.0631214488636616, 0.627969205379486084

$ gdalinfo test_commas.xyz
Driver: XYZ/ASCII Gridded XYZ
etc...

$ head -n 2 test_formatted.xyz
x                       y                       z
146.3600471            -39.06312145             0.627969205

$ gdalinfo test_formatted.xyz
Driver: XYZ/ASCII Gridded XYZ
etc...

আমি সচেতন একমাত্র গোচা হ'ল :

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

    একই Y স্থানাঙ্কযুক্ত ঘরগুলি অবশ্যই একটানা লাইনে স্থাপন করা উচিত। একই Y স্থানাঙ্কের মানের জন্য, ডেটাসেটে থাকা রেখাগুলি অবশ্যই X মান বৃদ্ধি করে সংগঠিত করতে হবে। Y স্থানাঙ্কের মান তবে বাড়তে বা হ্রাস করতে পারে।

    $ head -n 5 test.csv
    x,y,z
    146.3707979,-39.07778764,0.491866767
    146.3787985,-39.07157315,0.614820838
    146.3637974,-39.07132457,0.555555582
    146.3630473,-39.07579901,0.481217861
    
    $ gdalinfo test.csv
    ERROR 1: Ungridded dataset: At line 3, too many stepY values
    gdalinfo failed - unable to open 'test.csv'.
    
    $ tail -n +2 test.csv| sort -n -t ',' -k2 -k1 > test_sorted.xyz
    
    $ head -n 5 test_sorted.xyz 
    146.3600471,-39.07927912,0.606096148
    146.3602971,-39.07927912,0.603663027
    146.3605471,-39.07927912,0.603663027
    146.3607971,-39.07927912,0.589507282
    146.3610472,-39.07927912,0.581049323
    
    $ gdalinfo test_sorted.xyz
    Driver: XYZ/ASCII Gridded XYZ
    etc...

2
স্থানাঙ্কগুলি কী তা পরিষ্কার করার জন্য আউটপুটে একটি সিআরএস নিয়োগের জন্য আমি উচ্চ পরামর্শ দিচ্ছি:-a_srs EPSG:12345
বাগম্যানট 123

1
ভাল পয়েন্ট @ বুগম্যানট
ব্যবহারকারী 2856

1

জার্মানির ডেটা ওপেন ডিজিএম 200: https://gdz.bkg.bund.de/index.php/default/open-data/digitales-gelandemodell-gitterweite-200-m-dgm200.html

Xyz ফাইলটি ডাউনলোড করুন: https://daten.gdz.bkg.bund.de/produkte/dgm/dgm200/aktuell/dgm200.utm32s.xyzascii.zip

Xyz কে জিওটিআইএফএফ ফাইলে রূপান্তর করুন:

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