បន្ទាប់ពីបញ្ចប់មេរៀន និស្សិតអាច៖
មន្ទីររៀបចំដែនដីខេត្តមួយ ត្រូវការ រូបភាពមូលដ្ឋានពណ៌ពិតថ្មីបំផុត សម្រាប់ខេត្តទាំងមូល ដើម្បីធ្វើការបកស្រាយដោយភ្នែក។ ខេត្តនេះគ្របលើ tile Sentinel-2 បួន ហើយក្នុងរយៈពេល ៦ ខែចុងក្រោយ គ្មានថ្ងៃណាដែល tile ទាំងបួនស្អាតព្រមគ្នាទេ។ រូបភាពដែលស្អាតបំផុតនៃ tile នីមួយៗ មកពីខែផ្សេងៗគ្នា ហើយពណ៌ខុសគ្នា។
សំណួរដែលមេរៀននេះឆ្លើយ៖
តើយើងអាចបង្កើតរូបភាពស្អាតមួយពីរូបភាពមានពពករាប់សិបផ្ទាំងយ៉ាងដូចម្ដេច?
គិតម្នាក់ឯង ១ នាទី · ពិភាក្សាជាគូ ២ នាទី · ចែករំលែកជាមួយថ្នាក់។
រយៈពេលបង្រៀនដែលស្នើ៖ ៣ ម៉ោង · មេរៀនទី ៣ ក្នុងចំណោម ១៥
:material-presentation-play: ស្លាយបង្រៀនមេរៀននេះ
នៅកម្ពុជា រូបភាពផ្កាយរណបអុបទិកស្អាតទាំងស្រុងមួយផ្ទាំង គឺជារឿងកម្រ ជាពិសេសចាប់ពីខែឧសភាដល់ខែតុលា។ ក្នុងសៀវភៅទី៣ យើងដោះស្រាយបញ្ហានេះដោយស្វែងរកថ្ងៃមួយដែលពពកតិច។ ជាមួយ Earth Engine យើងមានជម្រើសប្រសើរជាង៖ ផ្គុំផ្នែកស្អាតពីរូបភាពរាប់សិបផ្ទាំង ទៅជារូបភាពថ្មីមួយ ដែលគ្មានពពក។ រូបភាពនេះហៅថា composite។
មេរៀននេះបង្រៀនជំហានទាំងបី ដែលស្ទើរតែគ្រប់ស្គ្រីប Earth Engine ចាប់ផ្ដើមជាមួយ៖ ត្រង ImageCollection លុបពពកតាមក្រឡា និងបង្កើត composite ដោយ reducer ដែលសមស្រប។
ImageCollection អាចគិតជាគូបបីវិមាត្រ៖ x និង y (ទីតាំង) និង t (ពេលវេលា)។
នៅក្រឡានីមួយៗ យើងមានស៊េរីតម្លៃមួយ៖ តម្លៃមួយក្នុងរូបភាពនីមួយៗដែលគ្របក្រឡានោះ។ ការយល់ឃើញនេះសំខាន់ ព្រោះ reducer តាមពេលវេលា (median min max) ធ្វើការ ក្រឡាទល់ក្រឡា និង ក្រុមរលកទល់ក្រុមរលក លើស៊េរីនោះ។
ពិពណ៌នា ImageCollection ជាគូបពេលវេលា ហើយពន្យល់ថា reducer ធ្វើការនៅកម្រិតណា។
ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។
ការត្រងមានបីប្រភេទ៖
```javascript var aoi = ee.FeatureCollection('FAO/GAUL/2015/level1') .filter(ee.Filter.eq('ADM1_NAME', 'Kampong Chhnang'));
var s2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED') .filterBounds(aoi) // ១. តាមទីតាំង .filterDate('2024-01-01', '2024-05-01') // ២. តាមកាលបរិច្ឆេទ …
filterBounds និង filterDate ធ្វើមុន ព្រោះវាកាត់បន្ថយចំនួនពីរាប់លានទៅរាប់រយយ៉ាងលឿន។
តម្រងពពកតាម metadata គួរតែ ធូរ (ឧ. < ៤០%) ព្រោះការលុបពពកតាមក្រឡានឹងធ្វើការងារលម្អិតបន្ទាប់។ តម្រងតឹងពេក (< ៥%) អាចទុករូបភាពតិចពេកសម្រាប់ composite។
ប្ដូរខែ រយៈពេល និងកម្រិតពពក ហើយមើលថារូបភាពប៉ុន្មាននៅសល់។ ប្រៀបធៀបរដូវប្រាំង និងរដូវវស្សា។
ផលិតផល Level-2 មានក្រុមរលកគុណភាព ដែលប្រាប់ថាក្រឡានីមួយៗជាពពក ស្រមោល ឬផ្ទៃស្អាត។
Sentinel-2 L2A មានក្រុមរលក SCL (Scene Classification Layer)៖
```javascript function maskS2(img) var …
Landsat Collection 2 ប្រើប៊ីតក្នុង QA_PIXEL៖ ប៊ីត ៣ = ពពក ប៊ីត ៤ = ស្រមោលពពក។
ត្រូវប្រើ bitwiseAnd() ដើម្បីអានប៊ីតនីមួយៗ៖
```javascript function maskL8(img) { var qa = img.select('QA_PIXEL'); var clear = qa.bitwiseAnd(1 << 3).eq(0) // មិនមែនពពក .and(qa.bitwiseAnd(1 << 4).eq(0)); // មិនមែនស្រមោល var sr = img.select('SR_B.').multiply(0.0000275).add(-0.2); // មាត្រដ្ឋាន C2 L2 return img.addBands(sr, null, …
updateMask() មិនលុបក្រឡាទេ៖ វាសម្គាល់វាថា «គ្មានទិន្នន័យ» ដូច្នេះ reducer ក្រោយមកមិនរាប់ក្រឡានោះ។
របាំងពពកទាំងនេះមិនល្អឥតខ្ចោះ៖ ពពកស្ដើង និងស្រមោលជាប់គែមពពក តែងរត់ចួល។ Sentinel-2 ក៏មាន Cloud Score+ (GOOGLE/CLOUD_SCORE_PLUS/V1/S2_HARMONIZED) ដែលត្រឹមត្រូវជាង SCL សម្រាប់តំបន់ត្រូពិច ហើយនឹងប្រើក្នុងលំហាត់។
ហេតុអ្វីត្រូវ filterBounds និង filterDate មុន filter តាម metadata?
ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។
នៅពេលមាន collection ដែលបានលុបពពករួច reducer មួយបម្លែងវាទៅជារូបភាពមួយ៖
| Reducer | ជ្រើសអ្វីនៅក្រឡានីមួយៗ | ប្រើពេលណា |
|---|---|---|
median() | តម្លៃកណ្ដាល (តាមក្រុមរលកនីមួយៗ) | រូបភាពមូលដ្ឋាន ស្អាត និងស្ថិរ |
mean() | មធ្យម | ទិន្នន័យស្អាតរួចហើយ (ឧ. សីតុណ្ហភាព) |
min() / max() | តម្លៃទាប/ខ្ពស់បំផុត | សន្ទស្សន៍ (NDVI max · NDWI max) មិនមែនពណ៌ |
qualityMosaic('NDVI') | រូបភាពដែល NDVI ខ្ពស់បំផុត | រុក្ខជាតិបៃតងបំផុត · ពណ៌ស៊ីគ្នា |
mosaic() | រូបភាពចុងក្រោយដែលមានទិន្នន័យ | បំពេញចន្លោះតាមអាទិភាព |
median() ជាជម្រើសលំនាំដើមល្អបំផុត ព្រោះវាធន់នឹងតម្លៃខុសប្រក្រតី៖ ពពកដែលរត់ចួល (ភ្លឺខ្លាំង) និងស្រមោល (ងងឹតខ្លាំង) ស្ថិតនៅចុងទាំងពីរនៃស៊េរី ហើយមិនត្រូវបានជ្រើសទេ លុះត្រាតែវាលើសពាក់កណ្ដាលនៃរូបភាព។
ប្ដូរ reducer ចំនួនរូបភាព និងការ mask។ ចុចលើរូបភាពដើម្បីមើលស៊េរីតម្លៃនៃក្រឡាមួយ។ ពពក និងស្រមោលក្នុងពិសោធន៍នេះត្រូវបានក្លែងធ្វើលើរូបភាព Sentinel-2 ពិត។
រាយតម្លៃ SCL ដែលត្រូវ mask ហើយពន្យល់ថាតម្លៃនីមួយៗមានន័យអ្វី។
ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។
median() ធ្វើការ ក្រុមរលកម្ដងមួយ៖ តម្លៃក្រហមអាចមកពីថ្ងៃមួយ ហើយតម្លៃ NIR មកពីថ្ងៃផ្សេង។
សម្រាប់ការមើល និងការចាត់ថ្នាក់ទូទៅ នេះមិនជាបញ្ហាទេ ប៉ុន្តែវាអាចបង្កើត «សញ្ញាណ» ដែលមិនធ្លាប់មាននៅថ្ងៃណាមួយពិតប្រាកដ។ qualityMosaic() ជ្រើស រូបភាពទាំងមូលមួយ ក្នុងក្រឡានីមួយៗ តាមលក្ខណៈវិនិច្ឆ័យ (ឧ. NDVI ខ្ពស់បំផុត) ដូច្នេះក្រុមរលកទាំងអស់មកពីថ្ងៃដូចគ្នា៖
```javascript var withNdvi = s2clean.map(function(img) ); var greenest = withNdvi.qualityMosaic('NDVI'); var medianC = s2clean.median(); …
រយៈពេល composite គឺជាការសម្របសម្រួល៖ រយៈពេលវែង ផ្ដល់ក្រឡាស្អាតច្រើន ប៉ុន្តែលាយស្ថានភាពខុសៗគ្នា (ស្រែដាំ និងស្រែច្រូតរួច ទឹកឡើង និងទឹកស្រក)។
រយៈពេលខ្លី រក្សាស្ថានភាពតែមួយ ប៉ុន្តែអាចមានចន្លោះ (ក្រឡាគ្មានទិន្នន័យ)។
| គោលបំណង | រយៈពេលណែនាំ |
|---|---|
| រូបភាពមូលដ្ឋានពណ៌ពិត | រដូវប្រាំង (វិច្ឆិកា–មេសា) ឆ្នាំតែមួយ |
| គម្របដីប្រចាំឆ្នាំ | composite ពីរ៖ រដូវប្រាំង + រដូវវស្សា (រួម Sentinel-1) |
| ស្រែ និងដំណាំ | ប្រចាំខែ ឬ ១៦ ថ្ងៃ (មេរៀនទី៥ និង ១១) |
| ទឹកជំនន់ | ជុំវិញថ្ងៃកើតហេតុ + SAR (មេរៀនទី៧) |
តែងតែសរសេររយៈពេល និង reducer ក្នុងចំណងជើងផែនទី (ឧ. «Sentinel-2 median · វិច្ឆិកា ២០២៣–មេសា ២០២៤»)។ ការផ្លាស់ប្ដូរដែលកើតក្នុងរយៈពេល composite (ឧ. ការឈូសឆាយ) អាចបង្ហាញមិនពេញលេញ។
រដូវប្រាំង ១ វិច្ឆិកា ២០២៣ ដល់ ៣០ មេសា ២០២៤ ខេត្តកំពង់ឆ្នាំង (GAUL level 1)។
```javascript var s2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED') .filterBounds(aoi).filterDate('2023-11-01', '2024-05-01') .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 40)) .map(maskS2); print('រូបភាពប្រើ', …
```javascript var base = s2.median().clip(aoi); Map.addLayer(base, , 'មូលដ្ឋាន'); // ពិនិត្យចំនួនក្រឡាស្អាតដែលប្រើក្នុងក្រឡានីមួយៗ var nClear = …
ស្រទាប់ count() បង្ហាញថាក្រឡាភាគច្រើនមានការសង្កេតស្អាត ២០–៣០ ប៉ុន្តែតំបន់ខ្លះនៅជិតភ្នំមានតិចជាង ៥។
តំបន់ទាំងនោះទុកចិត្តតិចជាង ព្រោះ median ពីតម្លៃតិចងាយរងឥទ្ធិពលពពកដែលរត់ចួល។
រូបភាពនេះមិនតំណាងថ្ងៃណាមួយទេ។ វាមិនអាចប្រើដើម្បីប្រាប់ថា «ស្រែនេះត្រូវបានច្រូតនៅថ្ងៃ X» ឬវាស់ការផ្លាស់ប្ដូរក្នុងរយៈពេល ៦ ខែនោះទេ។
លំហាត់ដំណើរការក្នុង Earth Engine Code Editor ជាមួយទិន្នន័យកាតាឡុក ហើយមានរូបលទ្ធផលគំរូ តារាងកំហុសទូទៅ និងប្រអប់ពិនិត្យលទ្ធផលដោយខ្លួនឯង។
ImageCollection ជាគូបពេលវេលា ដែលក្រឡានីមួយៗមានស៊េរីតម្លៃ។ ការត្រងតាមទីតាំង កាលបរិច្ឆេទ និង metadata កាត់បន្ថយចំនួនរូបភាព ហើយការលុបពពកតាមក្រឡា (SCL · QA_PIXEL · Cloud Score+) ដកតម្លៃមិនល្អចេញ។
Reducer តាមពេលវេលាបម្លែងស៊េរីទៅជារូបភាពមួយ៖ median() ជាជម្រើសលំនាំដើមដែលធន់នឹងពពកដែលរត់ចួល ហើយ qualityMosaic() រក្សាក្រុមរលកពីថ្ងៃដូចគ្នា។ រយៈពេល composite ត្រូវជ្រើសតាមសំណួរ និងរដូវ ហើយត្រូវរាយការណ៍ជាមួយចំនួនការសង្កេតស្អាត។
Composite ប្ដូរសំណួរពី «ថ្ងៃណាស្អាត?» ទៅជា «ក្រឡានីមួយៗ តម្លៃអ្វីដែលតំណាងរយៈពេលនេះបានល្អបំផុត?» ហើយចម្លើយអាស្រ័យលើ reducer ដែលអ្នកជ្រើស។
| ពាក្យខ្មែរ | ពាក្យអង់គ្លេស | អត្ថន័យខ្លី |
|---|---|---|
| បណ្ដុំរូបភាព | ImageCollection | រូបភាពច្រើនជាលំដាប់ពេលវេលា |
| រូបភាពផ្គុំ | Composite | រូបភាពមួយផ្គុំពីរូបភាពច្រើន |
| ការលុបពពក | Cloud masking | សម្គាល់ក្រឡាពពកថាគ្មានទិន្នន័យ |
| ក្រុមរលកគុណភាព | Quality band (SCL, QA_PIXEL) | ព័ត៌មានពពក ស្រមោល ទឹក តាមក្រឡា |
| តម្លៃកណ្ដាល | Median | តម្លៃនៅកណ្ដាលនៃតម្លៃដែលតម្រៀប |
| ក្រឡាបៃតងបំផុត | Greenest pixel (qualityMosaic) | ជ្រើសថ្ងៃដែល NDVI ខ្ពស់បំផុត |
| ចំនួនការសង្កេតស្អាត | Clear observation count | ក្រឡាស្អាតដែលប្រើក្នុង composite |
| គូបពេលវេលា | Data cube | ទីតាំង × ពេលវេលា × ក្រុមរលក |
បង្កើត composite median សម្រាប់ខេត្តរបស់អ្នកក្នុងរយៈពេលបីផ្សេងគ្នា (១ ខែ ៣ ខែ ៦ ខែ)។ ថតរូបអេក្រង់ ហើយសរសេរកថាខណ្ឌមួយប្រៀបធៀបចន្លោះ ពពកដែលរត់ចួល និងការលាយរដូវ។
យើងមានរូបភាពស្អាតមួយសម្រាប់ខេត្តទាំងមូលហើយ។ ប៉ុន្តែអ្នកសម្រេចចិត្តជាញឹកញាប់មិនត្រូវការរូបភាពទេ៖ ពួកគេត្រូវការលេខ ដូចជា «NDVI មធ្យមនៃស្រុកនីមួយៗ» ឬ «ផ្ទៃទឹកតាមខែ»។
តើត្រូវបម្លែងរូបភាពរាប់លានក្រឡា ទៅជាតារាងស្ថិតិតាមតំបន់យ៉ាងដូចម្ដេច?
អានមេរៀនពេញ និងធ្វើលំហាត់ទី៣
https://khgeo.github.io/applied-gis-rs/lessons/lesson-03/