বিভিন্ন টাইলস .fif ইমেজ বিভক্ত? [বন্ধ]


13

আমার প্রস্থ এবং উচ্চতা 94000x71680 এর সাথে আকারের 1GB (.টিফিট) এর একটি চিত্র রয়েছে। আমি এই চিত্রটি 20000X20000 টাইলস হিসাবে কাটাতে চাই যাতে আমি তাদের প্রক্রিয়া করতে পারি।

কিভাবে আমি এটি করতে পারব?


অনুপ, github.com/mapbox/rasterio আপনাকে আপনার ইনপুট ডেটার বিশিষ্ট অ্যারে (গুলি) দেবে। আপনি বিভক্ত করতে পারেন যে নাম্পি ও স্কিপি পদ্ধতিগুলি ব্যবহার করে প্রতিটি অংশ সহজেই একটি নতুন ফাইলে সংরক্ষণ করতে পারেন। এই ধরনের সমাধান কি যোগ্যতা অর্জন করবে? যদি তা হয় তবে আপনাকে বলতে হবে যে কীভাবে "অসম বিটস" (20000 দ্বারা 71580 পরিষ্কারভাবে বিভাজ্য নয়) চিকিত্সা করা উচিত।
বাগম্যানট 123

উত্তর:


23

আমি দুটি সমাধান প্রস্তাব করছি: প্রথমটি কিউজিআইএস ব্যবহার করে, দ্বিতীয়টি পাইথন (জিডিএল) ব্যবহার করে।


কিউজিআইএস ব্যবহার করে সমাধান করুন

কিউজিসে আপনি একটি ভিআরটি মোজাইক তৈরি করতে পারেন।

দয়া করে এই পদ্ধতিটি অনুসরণ করুন (নীচের চিত্রটি দেখুন):

  1. স্তর প্যানেলে রাস্টার লোড করুন ;
  2. এটিতে ডান ক্লিক করুন এবং চয়ন করুন Save As...;
  3. Create VRTবিকল্পটি পরীক্ষা করুন ;
  4. আপনার আউটপুটগুলি সংরক্ষণ করা হবে যেখানে ফোল্ডার চয়ন করুন;
  5. সীমা নির্ধারণ করুন (আপনি যদি পুরো রাস্টারটিতে কাজ করতে চান তবে কোনও কিছু সংশোধন করবেন না);
  6. বর্তমান রেজোলিউশনটি ব্যবহার করে চয়ন করুন (আমি এটি ডিফল্ট হিসাবে ছেড়ে দেওয়ার পরামর্শ দিই);
  7. সর্বাধিক সংখ্যক কলাম এবং সারি সেট করুন (আপনার ক্ষেত্রে এটি 20000 কলাম এবং 2000 সারি হওয়া উচিত);
  8. টিপুন OKবোতাম।

এখানে চিত্র বর্ণনা লিখুন

উদাহরণস্বরূপ, এই নমুনা রাস্টার উপরের কথোপকথনের পরামিতিগুলি ব্যবহার করে (আমি যে প্যারামিটারগুলি সেট করেছি তা এলোমেলোভাবে বেছে নেওয়া হয়):

এখানে চিত্র বর্ণনা লিখুন

চার ধাপে নির্দিষ্ট করা পথে 100 টি টাইল উত্পন্ন করবে:

এখানে চিত্র বর্ণনা লিখুন

এগুলি কিউজিআইএস-এ লোড করা হচ্ছে, তারা এ জাতীয় দেখাচ্ছে:

এখানে চিত্র বর্ণনা লিখুন

@ বাগম্যানোট 123 মন্তব্যগুলিতে সঠিকভাবে বলেছে, ফলাফলটি কেবল অদ্ভুত দেখাচ্ছে কারণ প্রতিটি চিত্রের শৈলী চিত্র প্রতি মানগুলির বন্টনের সাথে নিজেকে ফিট করে (তবে ডেটা পুরোপুরি ঠিক আছে)।


পাইথন (জিডিএল) ব্যবহার করে সমাধান

একই ফলাফলটি পাওয়ার আরেকটি উপায় হ'ল জিডিএল ( জিডিএল_ট্রান্সলেট ) ব্যবহার ।

উপরে বর্ণিত একই উদাহরণের রেফারেন্স সহ আপনি এই স্ক্রিপ্টটি ব্যবহার করতে পারেন:

import os, gdal

in_path = 'C:/Users/Marco/Desktop/'
input_filename = 'dtm_5.tif'

out_path = 'C:/Users/Marco/Desktop/output_folder/'
output_filename = 'tile_'

tile_size_x = 50
tile_size_y = 70

ds = gdal.Open(in_path + input_filename)
band = ds.GetRasterBand(1)
xsize = band.XSize
ysize = band.YSize

for i in range(0, xsize, tile_size_x):
    for j in range(0, ysize, tile_size_y):
        com_string = "gdal_translate -of GTIFF -srcwin " + str(i)+ ", " + str(j) + ", " + str(tile_size_x) + ", " + str(tile_size_y) + " " + str(in_path) + str(input_filename) + " " + str(out_path) + str(output_filename) + str(i) + "_" + str(j) + ".tif"
        os.system(com_string)

স্পষ্টতই আপনার নির্দিষ্ট ক্ষেত্রে মানগুলি মানিয়ে নেওয়া দরকার।


2
কেবলমাত্র একটি তাত্পর্যপূর্ণ মন্তব্য যা কিউজিআইএস তাদের কীভাবে রেন্ডার করে তার উদাহরণটি কেবল অদ্ভুত দেখাচ্ছে কারণ শৈলী প্রতি চিত্র প্রতি মানগুলির বিতরণে নিজেকে ফিট করে । ডেটা পুরোপুরি ঠিক আছে :)
বাগম্যানট 123

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

@ বাগম্যানট 123 ধন্যবাদ, আমি আপনার দরকারী মন্তব্য দিয়ে উত্তরটি সম্পাদনা করছি।
এমগ্রি

@ আনোপা পানওয়ার, আমি পাইকিজিআইএস-এর সাথে যদি কোনও সমাধান খুঁজে পাই, তবে আমি আমার উত্তরটি সম্পাদনা করব! =)
এমগ্রি

@ হাওটোআইকিউজিআইএস ধন্যবাদ, অন্যথায় আপনি যদি অজগরটিতে এমন কোনও উপায় চান যা এটিও সহায়তা করবে :)
অনুপ পানওয়ার

5

বিভক্ত হবে না

আপনি gdalbuildvrt , আপনি ভার্চুয়াল টাইলস তৈরি করতে পারেন যা কেবলমাত্র আপনার ডিস্কে কয়েকটি বাইট ব্যবহার করবে। তারপরে আপনি বেশিরভাগ সফ্টওয়্যার ব্যবহার করতে পারেন যা আপনার প্রসেসিং সম্পাদন করতে আপনার ভিআরটি'কে ইনপুট হিসাবে গ্রহণ করবে।

বিকল্পভাবে, আমি বরং এমন একটি সরঞ্জামের সন্ধান করব যা বিভক্তির চেয়ে 1 জিবি চিত্রের সাথে কাজ করতে পারে এবং একটি চিত্রকে মার্জ করে। উদাহরণস্বরূপ, ওটিবির বড় চিত্র সহ স্ট্যান্ডার্ড (এবং কখনও কখনও উন্নত) চিত্র প্রসেসিংয়ের সর্বাধিক ক্ষমতা রয়েছে। আপনি পাইথনের জন্য ওটিবি মোড়ানো বা কিউজিআইএস বা কমান্ড লাইন থেকে চালাতে পারেন run


2

বিভক্ত রাস্টার সরঞ্জামটি ব্যবহার করে , আপনি প্রতিটি টাইলের আকার বা টাইলের সংখ্যা সহ বিভাগের কয়েকটি পদ্ধতির ভিত্তিতে একটি রাস্টারকে টাইলগুলিতে বিভক্ত করতে পারেন ।

আরো দেখুন ArcGIS মধ্যে বিভাজন রাস্টার


2

জিডিএল ব্যবহার করে অন্য একটি সমাধান হ'ল জিডিএল_টাইল.পি সরঞ্জাম:

mkdir image_tiles
gdal_retile.py -v -r bilinear -levels 1 -ps 20000 20000 -co "TILED=YES" -co "COMPRESS=JPEG" -targetDir image_tiles big_input_image.tif

আরও তথ্যের জন্য দেখুন: http://www.gdal.org/gdal_retile.html

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