আরজিবি জিওটিফ থেকে কাঁচা সেন্টিনেল 2 জেপি 2


11

আমি সেন্টিনেল 2 জেপি 2 ব্যান্ড ফাইলগুলি (বি0 2 , বি03, বি04 ) মার্জ করার এবং আরজিবি রঙগুলি ঠিক করার উপায় খুঁজছি । সমস্ত বাশ বা পাইথন স্ক্রিপ্ট দিয়ে করা উচিত। আমার উদাহরণের জন্য আমি এই চিত্রগুলিতে কাজ করি । আদর্শভাবে সমাধানটি এই টিউটোরিয়ালটির খুব কাছাকাছি থাকবে ।

আমি এই কমান্ডের সাথে ব্যান্ডগুলি মার্জ করতে সক্ষম

gdal_merge.py -separate -co PHOTOMETRIC=RGB -o merged.tif B04.jp2 B03.jp2 B02.jp2

তবে কোনও কারণে আমি ইমেজম্যাগিক কমান্ড দিয়ে আরজিবি রঙগুলি ঠিক করতে পারি না। আউটপুটটি ~ 700MB কালো চিত্র।

convert -channel B -gamma 1.05 -channel RGB -sigmoidal-contrast 20,20% -modulate 100,150 merged.tif merged-cc.tif

শেষ পর্যন্ত আমি জিওটিফ ফাইলটি ম্যাপবক্সে আপলোড করতে চাই। একজনকে কীভাবে convertপরামিতিগুলি বেছে নেওয়া উচিত তা ব্যাখ্যা স্বাগত।

আমি একটি অ্যাপ্লিকেশন বিকাশ করছি যা অনুমান করা উচিত উপগ্রহের চিত্রের কোন অংশটি কৃষিজমি। একটি দৃশ্যের চিত্র ছোট প্যাচগুলিতে কাটা হবে (সম্ভবত x৪x64৪) এবং সিএনএন ( ক্রপ বা অ-ক্রপ ) দ্বারা শ্রেণিবদ্ধ করা হবে । ইনসেপশন-ভি 3 মডেলটি প্রশিক্ষণের জন্য আমি এই ডেটাসেটটি ব্যবহার করি । ডেটাসেটটিতে 10 মি এবং স্থানিক রেজোলিউশন সহ 64x64 আরজিবি চিত্র রয়েছে।


মার্জড.টিফ সম্পর্কে আরও তথ্য

Band 1 Block=10980x1 Type=UInt16, ColorInterp=Red
  Metadata:
    STATISTICS_MAXIMUM=4818
    STATISTICS_MEAN=320.61101402206
    STATISTICS_MINIMUM=0
    STATISTICS_STDDEV=536.76609312554
Band 2 Block=10980x1 Type=UInt16, ColorInterp=Green
  Metadata:
    STATISTICS_MAXIMUM=4206
    STATISTICS_MEAN=350.98505344194
    STATISTICS_MINIMUM=0
    STATISTICS_STDDEV=534.43264268631
Band 3 Block=10980x1 Type=UInt16, ColorInterp=Blue
  Metadata:
    STATISTICS_MAXIMUM=3801
    STATISTICS_MEAN=364.44611471973
    STATISTICS_MINIMUM=0
    STATISTICS_STDDEV=544.55509661709

@ বেনের সমাধান প্রয়োগের আগে এবং পরে এটি মার্জ করা হয়েছে tif আগে পরে


1
হিস্টোগ্রামে মার্জ হওয়া.টিফ এবং মিনিট, গড় এবং সর্বাধিকের গভীরতা কত? ব্যবহারকারীর সাথে চেক করুনgdalinfo -hist merged.tif
ব্যবহারকারী 30184

@ ব্যবহারকারী 30184 আমি আমার প্রশ্নের জন্য অনুরোধ করা তথ্য যুক্ত করেছি
gkiko

আমি জেপি 2 কে জিওটিফে রূপান্তর করার চেষ্টা করেছি এবং তারপরে রঙ সংশোধন প্রয়োগ করেছি তবে আমি এখনও একটি কালো চিত্র
পেয়েছি

আপনি কেবল TCI.jp2 চিত্রটি ব্যবহার করেন না যা মূলত একই -scale 0 4096 0 255?
pLumo

1
শস্য / নন ফসলের জন্য, আপনি স্ক্র্যাচ থেকে আপনার নিজের অ্যাপ্লিকেশন তৈরির পরিবর্তে এই esa-sen2agri.org/resources/software ব্যবহার করতে পারেন
রডউক্সজু

উত্তর:


8

সমস্যার 2 টি অংশ রয়েছে। প্রথমটি হল আপনি 16 বিট থেকে 8 বিটে রূপান্তর করতে চান, এবং gdal_translate এর-স্কেল বিকল্পটি এটি করে, পূর্ববর্তী উত্তরে উল্লিখিত হিসাবে।

 -scale minOriginal maxOriginal minOutput maxOutput  

দ্বিতীয় সমস্যা একটি বৈসাদৃশ্য বর্ধিতকরণ সমস্যা। কোন "ম্যাজিক" বিপরীতে, কারণ হল: যখন আপনি rescale, আপনি পিক্সেল যে আপনার সতর্কতামূলক আগ্রহী জন্য একটি উচ্চ বৈসাদৃশ্য করতে চান যখন আপনি rescale, সাধারণত আপনি কিছু তথ্য আলগা : এটি ডেটা ভিজ্যুয়ালাইজেশনের উন্নতির জন্য করা হয় এবং পেশাদার পেশাদার সফ্টওয়্যারগুলি কোনও নতুন ফাইল না লিখে উড়ে যায়। আপনি যদি আরও ডেটা প্রক্রিয়া করতে চান তবে আপনার "কালো" জিওটিফ আপনার jp2 এর মতোই তথ্য ধারণ করে এবং প্রক্রিয়া করার জন্য প্রস্তুত। যদি আপনি গণনা করেন, যেমন, উদ্ভিদ সূত্রে, এটি "আসল" প্রতিবিম্ব মানগুলির সাথে করা উচিত, উদ্ধারকৃতদের নয়। বলা হচ্ছে, এখানে দৃশ্যত বর্ধিত 8 বিট চিত্র তৈরির কয়েকটি পদক্ষেপ রয়েছে।

@ বেন আপনাকে 0-1 থেকে এই পণ্যটির প্রতিফলন পুনরুদ্ধার করার জন্য একটি জেনেরিক পদ্ধতি দিয়েছেন (এই পণ্যটির সাথে 10000 দ্বারা গুণিত) 0-255 এ পরিণত হয়েছে। এটি নিরাপদ (কোনও বর্জন নেই) তবে কেবল মেঘ এবং কিছু খালি মাটির সত্যই উচ্চ প্রতিফলন রয়েছে, তাই আপনি জমিতে (খালি মাটি বাদে) তেমন কিছুই দেখতে পান না এবং জলে কিছুই দেখেন না। সুতরাং, চিত্রগুলিতে সাধারণত প্রয়োগ করা বিপরীতে বর্ধনগুলি সম্পূর্ণ পরিসরের কেবল একটি উপসেট গ্রহণ করে in নিরাপদ দিকে, আপনি এই জ্ঞানটি ব্যবহার করতে পারেন যে সাধারণ পৃথিবী পৃষ্ঠের সামগ্রীর সর্বাধিক প্রতিবিম্বটি সাধারণত 0.5 / 0.6 এর নীচে থাকে ( এখানে দেখুনকিছু উদাহরণের জন্য)। অবশ্যই, এটি ধরে নেয় যে আপনার চিত্রটি বায়ুমণ্ডলীয়ভাবে সংশোধন করা হয়েছে (L2A চিত্র)। তবে প্রতিটি বর্ণালী ব্যান্ডে প্রতিবিম্বের পরিধি আলাদা হয় এবং আপনার আগ্রহের ক্ষেত্রে আপনার কাছে সর্বদা উজ্জ্বল পৃথিবী পৃষ্ঠ থাকে না। এখানে "নিরাপদ" পদ্ধতিটি কেমন দেখাচ্ছে (সর্বোচ্চ পরিমাণে 0.4 এর প্রতিবিম্ব সহ, @ রোভো প্রস্তাবিত 4096 এর মতো)

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

অন্যদিকে, বিপরীতে প্রতিটি ব্যান্ডের জন্য অনুকূলিত করা যেতে পারে। আপনি এই ব্যাপ্তিকে ম্যানুয়ালি সংজ্ঞায়িত করতে পারেন (যেমন আপনি পানির রঙে আগ্রহী এবং আপনি পানির সর্বাধিক প্রত্যাশিত প্রতিফলন মান জানেন) বা চিত্রের পরিসংখ্যানের ভিত্তিতে। একটি সাধারণভাবে ব্যবহৃত পদ্ধতিতে প্রায় 95% মান রেখে এবং "বাতিল" (খুব গা dark় -> 0 বা খুব উজ্জ্বল -> 255) বাকী থাকে, যা গড় মান +/- 1.96 * এর উপর ভিত্তি করে পরিসীমা নির্ধারণের অনুরূপ consists আদর্শ চ্যুতি. অবশ্যই এটি কেবল একটি আনুমানিকই কারণ এটি একটি সাধারণ বিতরণ অনুমান করে তবে এটি অনুশীলনে বেশ ভাল কাজ করে (আপনার যখন খুব বেশি মেঘ থাকে তখন বা স্ট্যাটাস কিছু নোডাটা মান ব্যবহার করে তবে)।

উদাহরণস্বরূপ আপনার প্রথম ব্যান্ডটি নিতে দেয়:

গড় = 320

স্টাডি = 536

95% আত্মবিশ্বাসের ব্যবধান = [-731: 1372]

তবে অবশ্যই প্রতিফলনটি সর্বদা শূন্যের চেয়ে বড়, সুতরাং আপনাকে সর্বনিম্ন 0তে সেট করতে হবে।

gdal_translate -scale 0 1372 0 255 -ot Byte  B01.jp2 B01-scaled.tif  

এবং আপনার যদি জিডিএল এর সাম্প্রতিক সংস্করণ থাকে তবে আপনি -scale_ {ব্যান্ড # use ব্যবহার করতে পারেন (0 255 ডিফল্ট আউটপুট, সুতরাং আমি এটির পুনরাবৃত্তি করব না) যাতে আপনার একক ব্যান্ডগুলি বিভক্ত করার প্রয়োজন হয় না। এছাড়াও আমি মধ্যবর্তী ফাইল হিসাবে টিফের পরিবর্তে ভিআরটি ব্যবহার করেছি (একটি সম্পূর্ণ চিত্র লেখার দরকার নেই: একটি ভার্চুয়াল যথেষ্ট)

gdalbuildvrt -separate stack.vrt B04.jp2 B03.jp2 B02.jp2
gdal_translate -scale_1 0 1372 -scale_2 0 1397 -scale_3 0 1430 -ot Byte  stack.vrt im_rescaled.tif

নোট করুন যে আপনার পরিসংখ্যানগুলি মেঘ এবং নোডাটার মতো "শিল্পকর্মগুলি" দ্বারা দৃ strongly়ভাবে প্রভাবিত হয়েছে। একদিকে যখন আপনার চূড়ান্ত মান থাকে তখন তারতম্যটি অতিমাত্রায় বিবেচিত হয়। অন্যদিকে, যখন আপনার প্রচুর পরিমাণে "শূন্য" মানের মান থাকে (উদাহরণের মতো স্বয়ংক্রিয়ভাবে বিপরীত চিত্রটি খুব উজ্জ্বল করে তোলে) এবং মেঘের সংখ্যাগরিষ্ঠতা থাকলে এটি অপসারণ করা হবে (যা তৈরি করবে চিত্রটি খুব গা dark়)। এই পর্যায়ে, ফলস্বরূপ ফলাফলগুলি আপনার পক্ষে সবচেয়ে ভাল হবে না।

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

একটি স্বয়ংক্রিয় সমাধান "nodata" এ সেট পটভূমি এবং মেঘ মান হতে হবে এবং NoData ছাড়া আপনার পরিসংখ্যান গনা (দেখতে হবে এই পোস্টে NoData ছাড়া কম্পিউটিং পরিসংখ্যানের রেকর্ড বিস্তারিত জানার জন্য, এবং এই এক সেট মান একটি উদাহরণ 4000 চেয়ে বড় NoData করার জন্য পাশাপাশি )। একটি একক চিত্রের জন্য, আমি সাধারণত বৃহত্তম সম্ভাব্য মেঘমুক্ত সাবসেটের পরিসংখ্যানগুলি গণনা করি। কোনও সাবসেটের পরিসংখ্যান সহ যেখানে "নোডাটা" (আপনার চিত্রের উপরের বাম) নেই, এটি চূড়ান্ত ফলাফল দেয়। আপনি দেখতে পাচ্ছেন যে পরিসীমাটি "নিরাপদ" ব্যাপ্তির প্রায় অর্ধেক, যার অর্থ আপনার দ্বিগুণ বিপরীতে রয়েছে:

gdal_translate -scale_1 38 2225 -scale_2 553 1858 -scale_3 714 1745 -ot Byte  stack.vrt im_rescaled.tif

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

শেষ মন্তব্য হিসাবে, gdal_constrast_stretch দেখতে ভাল লাগছে তবে আমি পরীক্ষা করিনি


এটির সাথে সমস্যাটি হ'ল প্রতিটি গ্রানুলের আলাদা brightজ্জ্বল্য থাকবে। তিনি কী অর্জন করতে চান তার উপর নির্ভর করে একটি নির্দিষ্ট স্কেল ব্যবহার করা আরও ভাল। -scale 0 4096 0 255আমাদের যদি মেঘের টেক্সচারের প্রয়োজন না হয় তবে বেশ ভাল আউটপুট তৈরি করে ...
pLumo

@ রোভো আমি সম্মত হই যে এটির দ্বারা মূল্যবান মান পাওয়া যাবে এবং আপনি বালির মতো উজ্জ্বল পৃষ্ঠের তুলনায় এই বৈসাদৃশ্যকে কমিয়ে আনতে পারেন, তবে এটি অপের মাধ্যমে মার্জ হওয়া চিত্রের পরিসংখ্যানগুলির উপর ভিত্তি করে । গ্রানুলগুলিতে আপনার আলাদা বৈসাদৃশ্য থাকবে না। সাধারণত, লাল, সবুজ এবং নীল রঙের পরিসীমা এনআইআর-র রেঞ্জের তুলনায় অনেক কম থাকে, এ কারণেই প্রতিটি ব্যান্ডের জন্য আলাদা বৈপরীত্য ব্যবহার করা বোঝা যায়।
Radouxju

7

আপনি কেবল TCI.jp2ফাইলটি এতে অন্তর্ভুক্ত থাকা ফাইলটি ব্যবহার করতে পারেন SAFE.zip। নোট করুন যে এই ফাইলগুলি এস 2 ফাইলগুলিতে অক্টোবর 2016 এর আগে উপলভ্য নয়

বিকল্পভাবে আপনি জিডিএল ব্যবহার করে ব্যান্ডগুলি রূপান্তর করতে পারেন:

# Merge bands
gdalbuildvrt -separate TCI.vrt B04.jp2 B03.jp2 B02.jp2

# Convert to uncompressed GeoTiff
gdal_translate -ot Byte -co TILED=YES -scale 0 4096 0 255 TCI.vrt TCI.tif

# _OR_ Convert to JPEG - compressed GeoTiff
gdal_translate -ot Byte -co TILED=YES -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR -scale 0 4096 0 255 TCI.vrt TCI.tif

-scale 0 4096সেন্টিনেল -২ দৃশ্যের জন্য একটি যুক্তিসঙ্গত মান এবং টিসিআই.জেপি 2 চিত্রগুলির জন্য আফাইকও ব্যবহৃত হয়। আপনি যদি হালকা ফলাফল পেতে চান তবে 4096 কম করুন।


5

যদি আপনি প্রশ্নের সাথে যুক্ত হিসাবে সমাধানের সন্ধান করছেন তবে টিউটোরিয়ালে ডাউনলোডের জন্য সরবরাহ করা ল্যান্ডস্যাট 8 প্রসেসিং শেল স্ক্রিপটি অনুসরণ এবং সামঞ্জস্য করা উচিত ।

বিশেষত, সেখানে যেমন করা হয়েছে, আপনি প্রথমে একক ব্যান্ডগুলি পুনরুদ্ধার করতে চাইতে পারেন, উদাহরণস্বরূপ:

gdal_translate -ot Byte -scale 0 10000 0 255 B04.jp2 B04-scaled.tif 
gdal_translate -ot Byte -scale 0 10000 0 255 B03.jp2 B03-scaled.tif
gdal_translate -ot Byte -scale 0 10000 0 255 B02.jp2 B02-scaled.tif

মনে রাখবেন যে আপনার চিত্রগুলির হিস্টগ্রামটি আপনাকে ইমেজটিতে কেবল খুব গা dark় পৃষ্ঠের উপস্থিতি বলে প্রস্তাব দেয় (এটি কি এই ক্ষেত্রে?) তবে সাধারণত আপনার প্রেরণেল -2 চিত্রটি বায়ুমণ্ডল বা এট-পৃষ্ঠের প্রতিবিম্ব হবে যেখানে মানগুলি সাধারণত 0 এর মধ্যে থাকে এবং 10000 - যদি উচ্চতর মানগুলিও সম্ভব না হয় যেমন যদি আপনার ছবিতে মেঘ থাকে।

তারপরে আপনি ব্যান্ডগুলি মার্জ করতে পারেন এবং চিত্রের উপস্থিতিটি সূক্ষ্ম সুরতে পারেন:

gdal_merge.py -v -ot Byte -separate -of GTiff -co PHOTOMETRIC=RGB -o RGB-scaled.tif B04-scaled.tif B03-scaled.tif B02-scaled.tif
convert -channel B -gamma 1.05 -channel RGB -sigmoidal-contrast 20,40% -modulate 100,150 RGB-scaled.tif RGB-scaled-cc.tif

এটি করার সময় আমার চিত্রটির সাথে এটি ঘটে:

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


1
আমি আমার প্রশ্ন আপডেট। জিওটিআইএফএফ সংশোধন করার সময় কোন পরামিতি ব্যবহার করব তা আমি কীভাবে সিদ্ধান্ত নেব?
gkiko

ইনপুট থেকে আউটপুট চিত্রের মানগুলি স্কেল করার সময় সর্বদা ইনপুট চিত্রের সর্বাধিক এবং ন্যূনতম মানের দিকে নজর দিন। উদাহরণস্বরূপ, প্রথম ব্যান্ডের জন্য, স্কেল প্যারামিটারটি এই-স্কেল 0 4818 0 255 এর মতো হওয়া উচিত
মিলোস মাইলিটিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.