បន្ទាប់ពីបញ្ចប់មេរៀន និស្សិតអាច៖
មន្ទីររៀបចំដែនដីខេត្តកែប ត្រូវការផែនទីគម្របដីឆ្នាំ ២០២៤ ដែលមានថ្នាក់ប្រាំ៖ តំបន់សាងសង់ ដីទទេ ទឹក រុក្ខជាតិ និងស្រែ។ ពួកគេមានចំណុចត្រួតពិនិត្យដី (GCP) ជាច្រើនរយ ដែលប្រមូលរួចហើយពីការងារមុន។ ពួកគេក៏ចង់ដឹងថា ផែនទីត្រឹមត្រូវប៉ុណ្ណា និង ផ្ទៃនៃថ្នាក់នីមួយៗ ជាគីឡូម៉ែត្រការ៉េ។
សំណួរដែលមេរៀននេះឆ្លើយ៖
តើត្រូវផ្ដល់អ្វីខ្លះឱ្យ classifier មើល ក្រៅពីក្រុមរលកពណ៌?
គិតម្នាក់ឯង ១ នាទី · ពិភាក្សាជាគូ ២ នាទី · ចែករំលែកជាមួយថ្នាក់។
រយៈពេលបង្រៀនដែលស្នើ៖ ៣ ម៉ោង · មេរៀនទី ៦ ក្នុងចំណោម ១៥
:material-presentation-play: ស្លាយបង្រៀនមេរៀននេះ
ផែនទីគម្របដី គឺជាផលិតផលដែលគេស្នើសុំញឹកញាប់បំផុតពីអ្នកជំនាញការយកព័ត៌មានពីចម្ងាយ៖ សម្រាប់ផែនការប្រើប្រាស់ដី ការគ្រប់គ្រងព្រៃឈើ ការវាយតម្លៃហានិភ័យទឹកជំនន់ និងការគណនាផ្ទៃដំណាំ។ ក្នុងសៀវភៅទី៣ យើងបានរៀនទ្រឹស្ដីនៃការចាត់ថ្នាក់ត្រួតពិនិត្យ លើរូបភាពមួយផ្ទាំងក្នុង QGIS។ មេរៀននេះធ្វើការងារដដែល …
ការចាត់ថ្នាក់ត្រួតពិនិត្យក្នុង Earth Engine មានប្រាំបីជំហាន៖ (១) composite ឥតពពក (២) បន្ថែមលក្ខណៈ (៣) ចំណុចគំរូដែលមានលក្ខណៈ landcover ជាលេខ ០ ១ ២… (៤) sampleRegions() ទាញតម្លៃក្រឡានៅចំណុចនីមួយៗ ទៅជាតារាង (៥) …
ជំហាន ១–២ និង ៧–៨ ជាញឹកញាប់សំខាន់ជាងការជ្រើស classifier ទៅទៀត។
Classifier មិន «មើល» រូបភាពដូចមនុស្សទេ។
| ប្រភេទ | ឧទាហរណ៍ | ជួយបែងចែក |
|---|---|---|
| ក្រុមរលកស្ពិចត្រាល់ | B2–B8 B11 B12 | ទឹក រុក្ខជាតិ ដី |
| សន្ទស្សន៍ | NDVI · NDBI · MNDWI · BSI | រុក្ខជាតិ · សំណង់ · ទឹក · ដីទទេ |
| ទីសណ្ឋាន | រយៈកម្ពស់ ជម្រាល (ALOS · SRTM) | ព្រៃភ្នំ ធៀបនឹងស្រែវាលទំនាប |
| រដូវ | composite ប្រាំង + វស្សា · ទំហំ harmonic | ស្រែ ធៀបនឹងស្មៅ និងព្រៃ |
| SAR | Sentinel-1 VV VH | ទឹក និងសំណង់ ក្នុងរដូវពពក |
```javascript function addIndices(img) { var ndvi = img.normalizedDifference(['B8', 'B4']).rename('NDVI'); var ndbi = img.normalizedDifference(['B11', 'B8']).rename('NDBI'); var mndwi = img.normalizedDifference(['B3', …
ចំណាំ៖ ALOS AW3D30 ជា ImageCollection ដែលមានច្រើន tile ដូច្នេះត្រូវ mosaic()។
រាយជំហានទាំងប្រាំបីនៃការចាត់ថ្នាក់ក្នុង Earth Engine ហើយប្រាប់មុខងារ Earth Engine នៃជំហាននីមួយៗ។
ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។
ចំណុចគំរូ គឺជា «គ្រូ» របស់ classifier។
ចំណុចខ្សោយ ផ្ដល់ផែនទីខ្សោយ ទោះបីក្បួនដោះស្រាយល្អយ៉ាងណាក៏ដោយ។ គោលការណ៍៖
landcover ត្រូវជាចំនួនគត់ ០ ១ ២… មិនមែនអក្សរទេ។ក្នុង Code Editor ប្រើ Geometry Tools គូរចំណុចសម្រាប់ថ្នាក់នីមួយៗជាស្រទាប់ដាច់ដោយឡែក ហើយកំណត់ Import as FeatureCollection ជាមួយលក្ខណៈ landcover។
ឬនាំចូលចំណុចពី QGIS (Shapefile · CSV) ទៅជា Asset។ បន្ទាប់មក៖
``javascript var gcps = urban.merge(bare).merge(water).merge(vegetation).merge(paddy); var training = features.sampleRegions(); print('ចំនួនជួរ', training.size(), training.first()); ``
sampleRegions ត្រឡប់ FeatureCollection ដែលជួរនីមួយៗមាន landcover និងតម្លៃលក្ខណៈទាំងអស់។ ចំណុចដែលស្ថិតលើក្រឡាដែលបាន mask នឹង បាត់ ពីតារាង ដូច្នេះត្រូវពិនិត្យ size() ជានិច្ច។
ដើមឈើសម្រេចចិត្ត (decision tree) បំបែកទិន្នន័យដោយសំណួរជាបន្តបន្ទាប់ ដូចជា «NDVI > ០,៤?
បន្ទាប់មកក្រឡានីមួយៗត្រូវបាន បោះឆ្នោតភាគច្រើន។
ដើមឈើខុសគ្នាធ្វើកំហុសខុសគ្នា ហើយការបោះឆ្នោតកាត់បន្ថយកំហុសទាំងនោះ។
```javascript var classifier = ee.Classifier.smileRandomForest().train({features: training, …
Earth Engine មាន classifier ផ្សេងទៀត៖ smileCart (ដើមឈើតែមួយ ងាយពន្យល់) libsvm (SVM ត្រូវការ normalize) smileGradientTreeBoost និង minimumDistance។
ជ្រើសចំនួនចំណុចក្នុងមួយថ្នាក់ ចំនួនដើមឈើ និងលក្ខណៈ រួចចុចបណ្ដុះបណ្ដាល។ Random Forest តូចមួយរត់ក្នុងកម្មវិធីរុករករបស់អ្នក លើរូបភាព Landsat 8 ពិតនៃភ្នំពេញ ហើយបង្ហាញផែនទី និងតារាងកំហុស។ សាកល្បងក្រុមរលកពណ៌តែបី ធៀបនឹងក្រុមរលកទាំងប្រាំមួយ។
ហេតុអ្វី Random Forest ជាធម្មតាល្អជាងដើមឈើសម្រេចចិត្តតែមួយ?
ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។
ផែនទីដែលគ្មានការវាយតម្លៃភាពត្រឹមត្រូវ មិនមែនជាលទ្ធផលវិទ្យាសាស្ត្រទេ។
យើងទុកចំណុចមួយផ្នែក (ជាទូទៅ ៣០%) ដែល classifier មិនឃើញពេលបណ្ដុះបណ្ដាល ហើយប្រៀបធៀបថ្នាក់យោង និងថ្នាក់ដែលបានចាត់៖
```javascript var gcp = gcps.randomColumn('random', 42); var trainGcp = gcp.filter(ee.Filter.lt('random', 0.7)); var validGcp = gcp.filter(ee.Filter.gte('random', 0.7)); // ត្រូវតែ 0.7 ដូចគ្នា // ... train ជាមួយ trainGcp ... var test = classified.sampleRegions({collection: validGcp, properties: …
| រង្វាស់ | សំណួរដែលវាឆ្លើយ | ពីតារាង |
|---|---|---|
| Overall Accuracy (OA) | ចំណុចប៉ុន្មានភាគរយត្រូវបានចាត់ត្រឹមត្រូវ? | អង្កត់ទ្រូង ÷ សរុប |
| Producer's Accuracy (PA) | ក្នុងចំណោមស្រែពិត ប៉ុន្មានភាគរយត្រូវបានរកឃើញ? | អង្កត់ទ្រូង ÷ ផលបូកជួរដេក |
| User's Accuracy (UA) | ក្នុងចំណោមក្រឡាដែលផែនទីថាជាស្រែ ប៉ុន្មានភាគរយពិតជាស្រែ? | អង្កត់ទ្រូង ÷ ផលបូកជួរឈរ |
| Kappa | ល្អជាងការទាយដោយចៃដន្យប៉ុណ្ណា? | ០ = ចៃដន្យ · ១ = ឥតខ្ចោះ |
ក្នុង Earth Engine ជួរដេកគឺ យោង ហើយជួរឈរគឺ ចាត់ថ្នាក់។
UA ត្រូវបានហៅថា consumersAccuracy()។ ចំណាំថា OA ខ្ពស់អាចលាក់ថ្នាក់តូចដែលខ្សោយ៖ ត្រូវអាន PA និង UA នៃថ្នាក់នីមួយៗជានិច្ច។
ក្រឡាដែលនៅជិតគ្នាស្រដៀងគ្នាខ្លាំង (spatial autocorrelation)។
lt(0.7) ជាមួយ gte(0.3) ធ្វើឱ្យចំណុច ៤០% នៅក្នុងក្រុមទាំងពីរ។ភាពខុសគ្នារវាង PA និង UA? ផ្ដល់ឧទាហរណ៍ជាមួយថ្នាក់ស្រែ។
ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។
នៅពេល OA ឬ PA/UA នៃថ្នាក់ណាមួយទាប សូមកែតាមលំដាប់នេះ៖
print(classifier.explain()) ផ្ដល់ importance សម្រាប់លក្ខណៈនីមួយៗ។ដោយប្រើ reducer ជាក្រុមពីមេរៀនទី៤៖
```javascript var areas = ee.Image.pixelArea().divide(1e6).addBands(classified).reduceRegion(), geometry: aoi.geometry(), scale: 10, maxPixels: 1e10, tileScale: 4 }); print('ផ្ទៃ (គម²)', areas.get('groups'));
Export.image.toDrive(); Export.table.toDrive({collection: ee.FeatureCollection([ee.Feature(null, { matrix: cm.array(), oa: cm.accuracy(), kappa: …
toByte() ធ្វើឱ្យ GeoTIFF តូច ព្រោះលេខថ្នាក់ ០–២៥៥ សមនឹងមួយបៃ។
យើងប្រើព្រំដែនខេត្ត និងចំណុច GCP ខេត្តកែប ដែលប្រមូលសម្រាប់វគ្គសិក្សានេះកាលពីមុន។
```javascript function maskS2(img) var composite = …
```javascript var gcp = gcps.randomColumn('random', 42); var trainGcp = gcp.filter(ee.Filter.lt('random', 0.7)); var validGcp = gcp.filter(ee.Filter.gte('random', 0.7)); var training = …
```javascript var test = classified.sampleRegions(); var cm = test.errorMatrix('landcover', 'classification'); print(cm, 'OA', cm.accuracy(), …
អាន OA មុន បន្ទាប់មក PA និង UA នៃថ្នាក់នីមួយៗ។
OA ពីចំណុចផ្ទៀងផ្ទាត់ដែលមកពីសំណុំដដែលនឹងចំណុចបណ្ដុះបណ្ដាល វាស់ថាម៉ូដែលធ្វើការបានល្អប៉ុណ្ណានៅកន្លែងដែលមនុស្សជ្រើសចំណុច មិនមែននៅគ្រប់កន្លែងទេ។ ផ្ទៃពីការរាប់ក្រឡាក៏មានកំហុស ដែលមិនត្រូវបានកែនៅទីនេះទេ។
លំហាត់ដំណើរការក្នុង Earth Engine Code Editor ជាមួយទិន្នន័យកាតាឡុក ហើយមានរូបលទ្ធផលគំរូ តារាងកំហុសទូទៅ និងប្រអប់ពិនិត្យលទ្ធផលដោយខ្លួនឯង។
ការចាត់ថ្នាក់ក្នុង Earth Engine មានប្រាំបីជំហាន៖ composite លក្ខណៈ ចំណុចគំរូ sampleRegions train classify errorMatrix និងផ្ទៃ/នាំចេញ។ Classifier ឃើញតែតារាងលក្ខណៈ ដូច្នេះការបន្ថែមក្រុមរលក SWIR សន្ទស្សន៍ ទីសណ្ឋាន និងរដូវ ច្រើនតែមានឥទ្ធិពលធំជាងការជ្រើស classifier។ Random Forest បោះឆ្នោតពីដើមឈើច្រើន ដែលដើមនីមួយៗរៀនពីគំរូចៃដន្យ និងលក្ខណៈចៃដន្យ។
ការវាយតម្លៃភាពត្រឹមត្រូវត្រូវប្រើចំណុចដាច់ដោយឡែក ដែលបំបែកមុន sampleRegions ហើយត្រូវរាយការណ៍ OA Kappa PA និង UA។ ផ្ទៃតាមថ្នាក់គណនាដោយ pixelArea និង reducer ជាក្រុម។
ផែនទីគម្របដីល្អ មកពីចំណុចគំរូល្អ និងលក្ខណៈដែលបែងចែកថ្នាក់បាន មិនមែនពី classifier ស្មុគស្មាញទេ។ ហើយផែនទីនោះមានតម្លៃ លុះត្រាតែវាមកជាមួយការវាយតម្លៃភាពត្រឹមត្រូវដ៏ស្មោះត្រង់។
| ពាក្យខ្មែរ | ពាក្យអង់គ្លេស | អត្ថន័យខ្លី |
|---|---|---|
| ការចាត់ថ្នាក់ត្រួតពិនិត្យ | Supervised classification | ចាត់ថ្នាក់ដោយរៀនពីចំណុចគំរូ |
| លក្ខណៈ | Feature (input band) | ជួរឈរដែល classifier ប្រើ |
| ចំណុចគំរូ | Training sample · GCP | ចំណុចដែលដឹងថ្នាក់ |
| ព្រៃចៃដន្យ | Random Forest | ដើមឈើសម្រេចចិត្តច្រើន បោះឆ្នោត |
| តារាងកំហុស | Confusion (error) matrix | យោង ធៀបនឹងចាត់ថ្នាក់ |
| ភាពត្រឹមត្រូវសរុប | Overall accuracy (OA) | ភាគរយនៃចំណុចដែលត្រឹមត្រូវ |
| ភាពត្រឹមត្រូវអ្នកផលិត/អ្នកប្រើ | Producer's / User's accuracy | កំហុសលុប / កំហុសបន្ថែម តាមថ្នាក់ |
| ទំនាក់ទំនងលំហ | Spatial autocorrelation | ក្រឡាជិតគ្នាស្រដៀងគ្នា |
NDVI_wet។GOOGLE/DYNAMICWORLD/V1)៖ តើភាពខុសគ្នានេះប្រាប់អ្វី?រត់ឧទាហរណ៍ខេត្តកែបពីរដង៖ ម្ដងដោយក្រុមរលកស្ពិចត្រាល់ប្រាំមួយតែប៉ុណ្ណោះ និងម្ដងដោយលក្ខណៈទាំងអស់។ ធ្វើតារាងប្រៀបធៀប OA Kappa និង PA/UA នៃថ្នាក់នីមួយៗ ហើយសរសេរកថាខណ្ឌមួយពន្យល់ថាលក្ខណៈណាជួយថ្នាក់ណា។
ជំពូកទី២ បានផ្ដល់ឧបករណ៍បីសម្រាប់ការវិភាគទ្រង់ទ្រាយធំ៖ ស្ថិតិតាមតំបន់ ស៊េរីពេលវេលា និងការចាត់ថ្នាក់។ ជំពូកបន្ទាប់អនុវត្តឧបករណ៍ទាំងនេះលើគ្រោះមហន្តរាយ ដែលកម្ពុជាជួបញឹកញាប់បំផុត។ ប៉ុន្តែទឹកជំនន់កើតក្នុងរដូវវស្សា ពេលដែលពពកគ្របដណ្ដប់ ហើយ Sentinel-2 ស្ទើរតែមើលមិនឃើញដី។
តើយើងអាចធ្វើផែនទីទឹកជំនន់ក្រោមពពកបានដោយរបៀបណា?
អានមេរៀនពេញ និងធ្វើលំហាត់ទី៦
https://khgeo.github.io/applied-gis-rs/lessons/lesson-06/