សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ (Applied GIS and Remote Sensing)

Reducer ស្ថិតិតាមតំបន់ និងការនាំចេញ

មេរៀនទី៤ នៃ ១៥ · ៣ ម៉ោង
យាំ សារដ្ឋ · YAM Sarath
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១

ផែនការមេរៀន ៣ ម៉ោង

  1. ស្ថានភាពបើកមេរៀន៖ របាយការណ៍ប្រចាំខេត្ត១៥ នាទី
  2. Reducer ជាអ្វី · ទិសដៅបួន១៥ នាទី
  3. reduceRegion និង Dictionary២៥ នាទី
  4. scale · ពិសោធន៍ · maxPixels tileScale៣៥ នាទី
  5. បន្សំ reducer និង reduceRegions៣០ នាទី
  6. pixelArea និង reducer ជាក្រុម២០ នាទី
  7. Export · ឧទាហរណ៍កំពង់ឆ្នាំង២៥ នាទី
  8. សង្ខេប និងណែនាំលំហាត់១៥ នាទី
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២

គោលបំណងសិក្សា

បន្ទាប់ពីបញ្ចប់មេរៀន និស្សិតអាច៖

  • ពន្យល់ថា reducer ជាអ្វី ហើយបែងចែកការបង្រួមតាមពេលវេលា តាមលំហ និងតាមក្រឡាជិតខាង។
  • គណនាស្ថិតិក្នុងតំបន់មួយដោយ reduceRegion() ហើយអានលទ្ធផល Dictionary។
  • ពន្យល់ពីឥទ្ធិពលនៃប៉ារ៉ាម៉ែត្រ scale maxPixels និង tileScale លើលទ្ធផល និងកំហុស។
  • គណនាស្ថិតិសម្រាប់តំបន់ច្រើនក្នុងពេលតែមួយដោយ reduceRegions() និងបន្សំ reducer។
  • គណនាផ្ទៃដោយ ee.Image.pixelArea() និង reducer ជាក្រុម ហើយនាំចេញលទ្ធផលជា CSV និង GeoTIFF។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣

ចំណេះដឹងមុនត្រូវមាន

  • មេរៀនទី៣៖ composite និងការលុបពពក។
  • សៀវភៅទី២៖ ស្ថិតិតាមតំបន់ (zonal statistics) និងការភ្ជាប់តារាងក្នុង QGIS។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤
មេរៀនទី៤

ស្ថានភាពបើកមេរៀន

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥

ស្ថានភាពបើកមេរៀន

ក្រសួងមួយស្នើឱ្យក្រុមរបស់អ្នកផ្ដល់ NDVI មធ្យមរដូវប្រាំង សម្រាប់ខេត្តទាំង ២៥ និងស្រុកទាំងអស់ក្នុងខេត្តកំពង់ឆ្នាំង ដើម្បីកំណត់តំបន់ដែលរុក្ខជាតិខ្សោយ។ ពួកគេក៏ចង់ដឹងពីផ្ទៃទឹករដូវប្រាំងក្នុងខេត្តផង។ ក្នុង QGIS ការងារនេះត្រូវទាញយករូបភាពរាប់សិបផ្ទាំង កាត់តាមស្រុកនីមួយៗ ហើយរត់ Zonal Statistics ម្ដងមួយស្រទាប់។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៦

ស្ថានភាពបើកមេរៀន

សំណួរដែលមេរៀននេះឆ្លើយ៖

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៧

សំណួរដែលមេរៀននេះឆ្លើយ

  • តើត្រូវបម្លែងរូបភាពមួយ ទៅជាលេខមួយសម្រាប់តំបន់មួយយ៉ាងដូចម្ដេច?
  • តើធ្វើការគណនាដដែលសម្រាប់តំបន់រាប់រយក្នុងពេលតែមួយបានទេ?
  • តើត្រូវជ្រើស scale យ៉ាងណា ហើយហេតុអ្វីចម្លើយប្ដូរនៅពេល scale ប្ដូរ?
  • តើត្រូវយកលទ្ធផលចេញពី Earth Engine ទៅ Excel ឬ QGIS យ៉ាងដូចម្ដេច?
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៨

គិត · ចែករំលែក

តើត្រូវបម្លែងរូបភាពមួយ ទៅជាលេខមួយសម្រាប់តំបន់មួយយ៉ាងដូចម្ដេច?

គិតម្នាក់ឯង ១ នាទី · ពិភាក្សាជាគូ ២ នាទី · ចែករំលែកជាមួយថ្នាក់។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៩

ព័ត៌មានមេរៀន

ព័ត៌មាន

រយៈពេលបង្រៀនដែលស្នើ៖ ៣ ម៉ោង · មេរៀនទី ៤ ក្នុងចំណោម ១៥

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១០

:material-presentation-play: ស្លាយបង្រៀនមេរៀននេះ

ក្នុងមេរៀនទី៣ យើងបានបង្កើតរូបភាពស្អាតមួយសម្រាប់ខេត្តទាំងមូល។ ប៉ុន្តែអ្នកសម្រេចចិត្តកម្រសួររករូបភាពណាស់។ ពួកគេសួររក លេខ៖ «ស្រុកណាមានរុក្ខជាតិតិចជាងគេ?» «ផ្ទៃទឹកក្នុងខេត្តមានប៉ុន្មានគីឡូម៉ែត្រការ៉េ?» «NDVI មធ្យមឆ្នាំនេះ ទាបជាងឆ្នាំមុនទេ?»

មេរៀននេះបង្រៀនរបៀបបម្លែងរូបភាពរាប់លានក្រឡា ទៅជាតារាងស្ថិតិតាមតំបន់ ដោយប្រើ reducer របស់ Earth Engine ហើយនាំចេញតារាង ឬរូបភាពនោះទៅ Google Drive សម្រាប់ Excel និង QGIS។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១១
មេរៀនទី៤

ទ្រឹស្ដីស្នូល

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១២

Reducer មួយ ប្រើបានបួនបែប

Reducer បង្រួមតម្លៃច្រើនទៅជាតម្លៃតិចបួនទិសដៅនៃការបង្រួមតាមពេលវេលាតាមតំបន់មួយ{NDVI: ០,៦២}តាមតំបន់ច្រើនស្រុក ១ · ០,៥៤ស្រុក ២ · ០,៧១តាមក្រឡាជិតខាងរូបភាពថ្មី (ផ្ទៃរលោង)
សង្កេត
  • មេរៀនទី៣៖ បង្រួមតាមពេលវេលា (median) ដើម្បីបានរូបភាពមួយ។
  • មេរៀននេះ៖ បង្រួមតាមលំហ ដើម្បីបានលេខ ឬតារាង (reduceRegion · reduceRegions)។
  • ee.Reducer ដដែល (mean · sum · count · percentile) ប្រើបានក្នុងទិសដៅទាំងបួន។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១៣

Reducer ជាអ្វី

Reducer គឺជាមុខងារដែលយកតម្លៃច្រើន ហើយត្រឡប់តម្លៃតិចជាង (ភាគច្រើនតម្លៃមួយ)៖ មធ្យម ផលបូក ចំនួន អប្បបរមា អតិបរមា ភាគរយ (percentile) ឬអ៊ីស្តូក្រាម។

ក្នុង Earth Engine reducer ជាវត្ថុ ee.Reducer ដាច់ដោយឡែក ដែលអាចប្រើជាមួយមុខងារបង្រួមផ្សេងៗ៖

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១៤

Reducer ជាអ្វី

មុខងារបង្រួមតាមលទ្ធផល
collection.reduce() · median()ពេលវេលា (មេរៀនទី៣)ee.Image មួយ
image.reduceRegion()លំហ ក្នុងតំបន់មួយee.Dictionary
image.reduceRegions()លំហ ក្នុងតំបន់ច្រើនee.FeatureCollection
image.reduceNeighborhood()ក្រឡាជិតខាង (kernel)ee.Image
list.reduce() · fc.reduceColumns()បញ្ជី ឬជួរឈរនៃតារាងee.Dictionary
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១៥

Reducer ជាអ្វី

ការយល់ឃើញនេះសំខាន់៖ ee.Reducer.mean() ដដែលអាចផ្ដល់រូបភាពមធ្យមតាមពេលវេលា ឬលេខមធ្យមក្នុងស្រុកមួយ អាស្រ័យលើមុខងារដែលយើងហៅ។

ដូច្នេះត្រូវសួរខ្លួនឯងជានិច្ចថា៖ «ខ្ញុំកំពុងបង្រួមតាមវិមាត្រណា? »

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១៦

សំណួររហ័ស

រាយមុខងារបង្រួមបួន ហើយប្រាប់ថាមុខងារនីមួយៗបង្រួមតាមវិមាត្រណា និងត្រឡប់វត្ថុប្រភេទណា។

ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១៧

ពីក្រឡារាប់ពាន់ ទៅជាលេខមួយ

reduceRegion() លើរូបភាព NDVI ពិតLandsat 8 OLI · ភ្នំពេញ · ១១ កុម្ភៈ ២០១៩ · USGSgeometryvar stats = ndvi.reduceRegion({ reducer: ee.Reducer.mean(), geometry: zone, scale: 30, maxPixels: 1e9});print(stats); // Dictionaryលទ្ធផល (ក្រឡា ៣០ ម · ៨ ០០០ ក្រឡា)mean: ០,១១median: ០,១៧stdDev: ០,២៩min: -០,៥២max: ០,៧១
សង្កេត
  • តំបន់នេះមាន ៨ ០០០ ក្រឡា Landsat ៣០ ម៖ reduceRegion ត្រឡប់ Dictionary មួយ។
  • reducer ផ្សេងគ្នា ផ្ដល់ចម្លើយខុសគ្នា៖ mean និង median មិនដូចគ្នាទេ ពេលទិន្នន័យលំអៀង។
  • តួលេខគណនាពីរូបភាព Landsat 8 ពិតលើភ្នំពេញ (TOA · មិនបានកែបរិយាកាស)។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១៨

reduceRegion()៖ ពីក្រឡារាប់ពាន់ ទៅជាលេខមួយ

reduceRegion() គណនាស្ថិតិនៃក្រឡាទាំងអស់ក្នុងធរណីមាត្រមួយ ហើយត្រឡប់ Dictionary ដែលមានគន្លឹះមួយក្នុងមួយក្រុមរលក៖

```javascript var aoi = ee.FeatureCollection('FAO/GAUL/2015/level1') .filter(ee.Filter.eq('ADM1_NAME', 'Kampong Chhnang')); var ndvi = composite.normalizedDifference(['B8', 'B4']).rename('NDVI');

var stats = ndvi.reduceRegion(); print('NDVI មធ្យម', stats); // print('តម្លៃតែលេខ', …

ចំណុចត្រូវចាំ៖

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤១៩

reduceRegion()៖ ពីក្រឡារាប់ពាន់ ទៅជាលេខមួយ

  • លទ្ធផលជា ee.Dictionary មិនមែនលេខ JavaScript ទេ។ ប្រើ .get('NDVI') ដើម្បីយកតម្លៃ ហើយរុំវាក្នុង ee.Number() ប្រសិនបើត្រូវគណនាបន្ត។
  • ក្រឡាដែលត្រូវបាន mask (ពពក ឬក្រៅតំបន់ clip) មិនត្រូវបានរាប់ទេ។ ដូច្នេះ count() ប្រាប់ពីចំនួនក្រឡាដែលពិតជាបានប្រើ។
  • ក្រឡានៅគែមធរណីមាត្រ ត្រូវបានរាប់ដោយទម្ងន់ តាមផ្នែកដែលស្ថិតក្នុងធរណីមាត្រ (reducer ភាគច្រើន ដូចជា mean និង sum)។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២០

scale គឺជាការសម្រេចចិត្ត មិនមែនលម្អិតតូចទេ

ប៉ារ៉ាម៉ែត្រ scale ប្ដូរចម្លើយតំបន់ ក ដដែល គណនាលើមាត្រដ្ឋានបួន · Landsat 8 OLI · ភ្នំពេញ · ១១ កុម្ភៈ ២០១៩ · USGS០០.២០.៤០.៦០.៨meanstdDevmaxscaleNDVI៣០ ម៩០ ម៣០០ ម៩០០ មតំបន់ ក តាមមាត្រដ្ឋានscaleក្រឡាទឹក (NDVI < ០)៣០ ម៨ ០០០១៩%៩០ ម៨៩១១៩%៣០០ ម៨០២៤%៩០០ ម៩១១%
សង្កេត
  • mean ស្ទើរមិនប្ដូរ (០,១១ → ០,១១) ប៉ុន្តែ max និង stdDev ធ្លាក់ ហើយផ្ទៃទឹកថយពី ១៩% ទៅ ១១%។
  • scale ធំលាយក្រឡាតូចៗចូលគ្នា៖ វត្ថុតូច និងគែមតំបន់បាត់ ហើយចំនួនក្រឡាថយពីរាប់ពាន់ទៅតិចជាងដប់។
  • scale កំណត់ទំហំក្រឡាដែល Earth Engine ប្រើក្នុងការគណនា៖ សរសេរវាជានិច្ច ហើយរាយការណ៍វាជាមួយលទ្ធផល។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២១

scale ប្ដូរចម្លើយ

Earth Engine មិនធ្វើការលើក្រឡាដើមនៃរូបភាពដោយស្វ័យប្រវត្តិទេ។

  • វាធ្វើការនៅ scale ដែលអ្នកប្រាប់។
  • ប្រសិនបើ scale ធំជាងក្រឡាដើម វាប្រើស្រទាប់ពីរ៉ាមីត (pyramid) ដែលក្រឡាតូចៗត្រូវបានបូកមធ្យមរួចហើយ។
  • លទ្ធផល៖
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២២

scale ប្ដូរចម្លើយ

  • mean ស្ទើរមិនប្ដូរ ព្រោះមធ្យមនៃមធ្យមនៅតែជាមធ្យម។
  • max min stdDev និង ភាគរយនៃក្រឡាលើសកម្រិត ប្ដូរច្រើន ព្រោះក្រឡាធំលាយវត្ថុតូចៗ និងគែមចូលគ្នា។
  • count ថយខ្លាំង៖ scale ធំ ៣ ដង មានក្រឡាតិចជាង ៩ ដង។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២៣

scale ប្ដូរចម្លើយ

ប្រសិនបើអ្នកមិនដាក់ scale ទេ Earth Engine ប្រើ scale លំនាំដើមនៃរូបភាព ដែលសម្រាប់ composite ជាញឹកញាប់ ១ ដឺក្រេ (~១១១ គម)៖ លទ្ធផលស្ទើរតែគ្មានន័យ។

ដូច្នេះ ត្រូវដាក់ scale ជានិច្ច៖ ១០ ម សម្រាប់ Sentinel-2 ៣០ ម សម្រាប់ Landsat ហើយធំជាងនេះ (១០០–៥០០ ម) តែពេលតំបន់ធំខ្លាំង ហើយអ្នកដឹងថាកំពុងបាត់បង់ព័ត៌មានលម្អិត។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២៤

ពិសោធន៍៖ reducer និង scale លើរូបភាពពិត

គូររង្វង់ ឬប្រអប់លើរូបភាព NDVI Sentinel-2 ពិត ជ្រើស reducer និង scale ហើយមើលថាលេខ និងចំនួនក្រឡាប្ដូរយ៉ាងដូចម្ដេច។ ប្រៀបធៀប mean ជាមួយ max ពេល scale កើនឡើង។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២៥

សំណួររហ័ស

ហេតុអ្វី mean ស្ទើរមិនប្ដូរ ប៉ុន្តែ max ប្ដូរច្រើន នៅពេល scale កើនឡើង?

ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២៦

maxPixels bestEffort និង tileScale

នៅពេលតំបន់ធំ និង scale តូច ចំនួនក្រឡាអាចលើសដែនកំណត់ ហើយ Earth Engine បង្ហាញកំហុស៖

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២៧

maxPixels bestEffort និង tileScale

សារកំហុសមូលហេតុដំណោះស្រាយ
Too many pixels in the regionក្រឡាលើស maxPixels (លំនាំដើម ១០ លាន)ដាក់ maxPixels: 1e10
User memory limit exceededក្រឡាមួយ tile ត្រូវការអង្គចងចាំច្រើនដាក់ tileScale: 4 (ឬ ៨ ១៦)
Computation timed outការគណនាយូរជាង ៥ នាទីក្នុង Code Editorប្រើ Export ជំនួស print
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២៨

maxPixels bestEffort និង tileScale

bestEffort: true ក៏ដោះស្រាយកំហុសក្រឡាច្រើនដែរ ប៉ុន្តែវាធ្វើដោយ បង្កើន scale ដោយស្ងាត់ៗ។

  • អ្នកប្រហែលជាគិតថាបានគណនានៅ ១០ ម តែការពិតវាគណនានៅ ២៥០ ម។
  • ដូច្នេះចូលចិត្ត maxPixels និង tileScale ជាង bestEffort។
  • tileScale បំបែកការគណនាជាផ្ទាំងតូចៗ៖ យឺតជាងបន្តិច ប៉ុន្តែប្រើអង្គចងចាំតិច។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤២៩

មធ្យមតែមួយ លាក់ការបែងចែក

បន្សំ reducer៖ ស្ថិតិច្រើនក្នុងការហៅតែមួយអ៊ីស្តូក្រាម NDVI នៃតំបន់ ក · Landsat 8 OLI · ភ្នំពេញ · ១១ កុម្ភៈ ២០១៩ · USGS-០,៦-០,៣០,០០,៣០,៦p10p50p90var red = ee.Reducer.mean() .combine({reducer2: ee.Reducer.stdDev(), sharedInputs: true}) .combine({reducer2: ee.Reducer.percentile([10,50,90]), sharedInputs: true});NDVI_mean ០,១១ · NDVI_stdDev ០,២៩NDVI_p10 -០,៤៤ · p50 ០,១៧ · p90 ០,៤១ឈ្មោះលទ្ធផល = ក្រុមរលក + _ + reducer
សង្កេត
  • អ៊ីស្តូក្រាមមានពីរក្រុម៖ ទឹក (NDVI អវិជ្ជមាន ពណ៌ខៀវ) និងដី/រុក្ខជាតិ (NDVI វិជ្ជមាន)។ មធ្យមធ្លាក់នៅចន្លោះ ដែលគ្មានក្រឡាច្រើន។
  • combine() គណនា mean stdDev និង percentile ក្នុងការឆ្លងកាត់ទិន្នន័យតែម្ដង។
  • ឈ្មោះគន្លឹះក្នុងលទ្ធផល ប្ដូរទៅជា NDVI_mean NDVI_p50 … ត្រូវប្រើឈ្មោះនេះពេល get()។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣០

បន្សំ reducer៖ ស្ថិតិច្រើនក្នុងការហៅតែមួយ

មធ្យមតែមួយលាក់ការបែងចែករបស់ទិន្នន័យ។

តំបន់ដែលមានទឹកពាក់កណ្ដាល និងរុក្ខជាតិពាក់កណ្ដាល អាចមាន NDVI មធ្យមប្រហែល ០,១ ដែលមិនតំណាងក្រឡាណាមួយទាល់តែសោះ។ combine() ភ្ជាប់ reducer ជាច្រើន ដើម្បីគណនាក្នុងការឆ្លងកាត់ទិន្នន័យតែម្ដង៖

```javascript var reducer = ee.Reducer.mean() .combine() .combine() .combine(); var stats = ndvi.reduceRegion({reducer: reducer, …

sharedInputs: true មានន័យថា reducer ទាំងអស់ប្រើក្រុមរលកដដែល។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣១

តារាងស្ថិតិ ក្លាយជាផែនទី

reduceRegions()៖ តម្លៃមួយក្នុងមួយខេត្តតម្លៃគំរូ សម្រាប់បង្ហាញទម្រង់លទ្ធផលប៉ុណ្ណោះ (មិនមែនលទ្ធផលពិត)< ០,៤០០,៤០–០,៥០០,៥០–០,៦០០,៦០–០,៧០≥ ០,៧០FeatureCollection លទ្ធផល (៥ ជួរដំបូង)ADM1_NAMEmeanBanteay Meanchey០,៤០Battambang០,៤៥Kampong Cham០,៥០Kampong Chhnang០,៤៤Kampong Speu០,៥៥→ Export.table.toDrive (CSV) → QGIS
សង្កេត
  • reduceRegions បន្ថែមលក្ខណៈ (ឧ. mean) ទៅលើ Feature នីមួយៗ ក្នុង FeatureCollection ដើម។
  • លទ្ធផលជាតារាង៖ នាំចេញជា CSV ឬ SHP ហើយធ្វើផែនទី choropleth ក្នុង QGIS (សៀវភៅទី១)។
  • តម្លៃក្នុងរូបនេះជាគំរូ៖ លំហាត់ទី៤ គណនាតម្លៃពិតសម្រាប់ខេត្តទាំង ២៥។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣២

reduceRegions()៖ តំបន់ច្រើន ក្នុងពេលតែមួយ

reduceRegions() ទទួល FeatureCollection (ឧ. ស្រុកទាំងអស់) ហើយត្រឡប់ FeatureCollection ដដែល ដែល Feature នីមួយៗមានលក្ខណៈថ្មីពី reducer៖

```javascript var districts = ee.FeatureCollection('FAO/GAUL/2015/level2') .filter(ee.Filter.eq('ADM1_NAME', 'Kampong Chhnang'));

var table = ndvi.reduceRegions(); print(table.limit(5)); // ADM2_NAME, ..., mean ```

ចំណុចខុសពី reduceRegion៖ reduceRegions មិនមាន maxPixels ទេ ហើយឈ្មោះលក្ខណៈលទ្ធផលគឺឈ្មោះ reducer (mean) មិនមែន NDVI_mean ទេ។

លទ្ធផលគឺជាតារាងដែលមានធរណីមាត្រ៖ ដូច្នេះវាអាចបង្ហាញជាផែនទី choropleth ក្នុង Earth Engine ឬនាំចេញទៅ QGIS ដើម្បីធ្វើប្លង់ផែនទីតាមគោលការណ៍ក្នុងសៀវភៅទី១។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣៣

សំណួររហ័ស

ភាពខុសគ្នារវាង maxPixels tileScale និង bestEffort?

ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣៤

ផ្ទៃពិត មិនមែនចំនួនក្រឡា

គណនាផ្ទៃ៖ pixelArea() + reducer ជាក្រុមផែនទីគម្របដីគំរូ (បានពីកម្រិតសន្ទស្សន៍ មិនមែនការស្ទង់វាល) · Landsat 8 OLI · ភ្នំពេញ · ១១ កុម្ភៈ ២០១៩ · USGSvar area = ee.Image.pixelArea().divide(1e6) // km² .addBands(classified) .reduceRegion({ reducer: ee.Reducer.sum().group({ groupField: 1, groupName: 'class'}), geometry: aoi, scale: 30, maxPixels: 1e10});ទឹក១៤,៨ គម²ដើមឈើ២២,៩ គម²ដំណាំ/ស្មៅ១៩,៨ គម²តំបន់សាងសង់២០,២ គម²ដីទទេ៣,៤ គម²
សង្កេត
  • pixelArea() ផ្ដល់ផ្ទៃ (ម²) របស់ក្រឡានីមួយៗ តាមទីតាំងពិត មិនមែនលេខថេរទេ។
  • group() បំបែកផលបូកតាមថ្នាក់៖ ផ្ទៃដីមួយថ្នាក់ៗ ក្នុងការគណនាតែមួយ។
  • រូបភាពគំរូ ៣០០ × ៣០០ ក្រឡា ៣០ ម = ៨១ គម²។ ផ្ទៃនេះជាលទ្ធផលគណនាពិតពីផែនទីគំរូ។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣៥

គណនាផ្ទៃដោយ pixelArea()

ការគណនាផ្ទៃដោយ «ចំនួនក្រឡា × ១០០ ម²» ងាយខុស ព្រោះក្រឡាក្នុង EPSG:4326 មិនមានទំហំស្មើគ្នា ហើយ scale ដែលប្រើប្រហែលជាមិនមែន ១០ ម។

ee.Image.pixelArea() បង្កើតរូបភាពដែលក្រឡានីមួយៗមានតម្លៃស្មើនឹង ផ្ទៃពិតរបស់វា (ម²) នៅ scale ដែលប្រើ។ វិធី៖ គុណ pixelArea ជាមួយ mask (០/១) រួច sum៖

``javascript var water = composite.normalizedDifference(['B3', 'B11']).gt(0); // MNDWI > 0 var waterKm2 = water.multiply(ee.Image.pixelArea()).divide(1e6) .reduceRegion(); print('ផ្ទៃទឹក (គម²)', waterKm2); ``

សម្រាប់ផែនទីចាត់ថ្នាក់ (មេរៀនទី៦) reducer ជាក្រុម គណនាផ្ទៃនៃគ្រប់ថ្នាក់ក្នុងការហៅតែមួយ៖

```javascript var areas = ee.Image.pixelArea().divide(1e6).addBands(classified) .reduceRegion(), geometry: aoi.geometry(), scale: 10, maxPixels: 1e10 }); …

groupField: 1 មានន័យថា ក្រុមរលកទី ២ (លិបិក្រម ១) គឺជាលេខថ្នាក់ ហើយក្រុមរលកទី ១ គឺជាតម្លៃដែលត្រូវបូក។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣៦

ពេលណាត្រូវនាំចេញ

print() ឬ Export?print() · Chartលឿន · តូច · អន្តរកម្មExport (Tasks)ធំ · យូរ · រត់នៅផ្ទៃក្រោយExport.table.toDriveCSV · SHP · GeoJSON · KMLតារាងស្ថិតិ → Excel · QGISExport.image.toDriveGeoTIFFរ៉ាស្ទ័រ → QGISExport.image.toAssetEarth Engine Assetប្រើបន្តក្នុងស្គ្រីបផ្សេងExport.table.toAssetFeatureCollectionចំណុចបណ្ដុះបណ្ដាល · ព្រំដែនប្រសិនបើ print() បង្ហាញ «Computation timed out» ឬ «memory limit» → ប្ដូរទៅ Export
សង្កេត
  • print() និង Chart ដំណើរការក្នុងកម្មវិធីរុករក ហើយមានកំណត់ពេល (ប្រហែល ៥ នាទី)។
  • Export រត់ជា Task នៅម៉ាស៊ីនមេ អាចចំណាយពេលរាប់ម៉ោង ហើយមិនពឹងលើកម្មវិធីរុករកទេ។
  • លទ្ធផលស្ថិតិជាតារាង៖ ប្រើ Export.table ជាមួយ selectors ដើម្បីរក្សាតែជួរឈរដែលត្រូវការ។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣៧

print() ឬ Export?

print() និង ui.Chart ល្អសម្រាប់ពិនិត្យលទ្ធផលតូចៗភ្លាមៗ។

ប៉ុន្តែការគណនាក្នុង Code Editor មានកំណត់ពេល និងអង្គចងចាំ។ Export បញ្ជូនការងារទៅជា Task ដែលរត់នៅម៉ាស៊ីនមេ អាចចំណាយពេលរាប់ម៉ោង ហើយរក្សាលទ្ធផលទៅ Google Drive ឬ Asset៖

``javascript Export.table.toDrive(); ``

selectors សំខាន់ណាស់៖ បើគ្មានវា CSV រួមទាំងជួរឈរ .geo (ធរណីមាត្រជា GeoJSON) ដែលធ្វើឱ្យឯកសារធំ ហើយពិបាកបើកក្នុង Excel។ ប្រសិនបើត្រូវការផែនទីក្នុង QGIS សូមប្រើ fileFormat: 'SHP' ឬ 'GeoJSON' ជំនួសវិញ ឬរក្សា ADM2_CODE ដើម្បីភ្ជាប់ (join) ជាមួយស្រទាប់ព្រំដែនដែលអ្នកមានរួច។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣៨

ដាក់ឈ្មោះ description ឱ្យច្បាស់

គន្លឹះ

description ក្លាយជាឈ្មោះឯកសារ។ ប្រើទម្រង់ តំបន់_អ្វី_ឆ្នាំ (ឧ. KCH_NDVI_dry_2024) ហើយកុំប្រើដកឃ្លា ឬអក្សរខ្មែរ ព្រោះ Earth Engine មិនទទួលយកទេ។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៣៩
មេរៀនទី៤

ឧទាហរណ៍ដែលបានដោះស្រាយ

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤០

ជំហានទី១៖ រៀបចំ composite និង NDVI

១

```javascript var prov = ee.FeatureCollection('FAO/GAUL/2015/level1') .filter(ee.Filter.eq('ADM1_NAME', 'Kampong Chhnang')); var districts = ee.FeatureCollection('FAO/GAUL/2015/level2') .filter(ee.Filter.eq('ADM1_NAME', …

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤១

ជំហានទី២៖ ពិនិត្យលើខេត្តទាំងមូលមុន

២

``javascript print('ខេត្ត', ndvi.reduceRegion()); `` ការពិនិត្យលើតំបន់មួយមុន ជួយរកកំហុស (ឈ្មោះក្រុមរលកខុស scale ភ្លេច) …

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤២

ជំហានទី៣៖ ស្ថិតិតាមស្រុក

៣

```javascript var reducer = ee.Reducer.mean().combine(); var byDistrict = ndvi.reduceRegions(); …

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤៣

ជំហានទី៤៖ នាំចេញ

៤

``javascript Export.table.toDrive(); ``

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤៤

ជំហានទី៥៖ បកស្រាយ

៥

បើកតារាងក្នុង Excel ហើយតម្រៀបតាម mean។

  • ស្រុកដែលមានវាលស្រែ និងតំបន់លិចទឹកជិតទន្លេសាបច្រើន ទំនងជាមាន NDVI រដូវប្រាំងទាប ព្រោះស្រែត្រូវបានច្រូតរួច ឬនៅតែមានទឹក។
  • ស្រុកដែលមានព្រៃ និងភ្នំច្រើន ទំនងជាមាន NDVI ខ្ពស់។
  • stdDev ខ្ពស់ប្រាប់ថាស្រុកនោះមានគម្របដីចម្រុះ ដូច្នេះមធ្យមរបស់វាតំណាងមិនល្អ។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤៥

អ្វីដែលយើងមិនអាចសន្និដ្ឋាន

ប្រុងប្រយ័ត្ន

NDVI ទាបក្នុងរដូវប្រាំង មិនមានន័យថាដំណាំខ្សោយទេ៖ វាអាចជាស្រែដែលច្រូតរួច ដីទំនេរ ឬទឹក។ មធ្យមតាមស្រុកក៏លាក់ភាពខុសគ្នាក្នុងស្រុក និងពឹងលើព្រំដែន GAUL ដែលប្រហែលជាមិនត្រូវនឹងព្រំដែនរដ្ឋបាលផ្លូវការថ្មីបំផុតទេ។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤៦

លំហាត់ទី៤ ក្នុង Earth Engine

លំដាប់ការងារ លំហាត់ទី៤NDVI មធ្យមតាមខេត្តស្ថិតិខេត្តមួយ២០ នាទីឥទ្ធិពលនៃ scale២០ នាទីខេត្តទាំង ២៥២៥ នាទីស្រុក និងផ្ទៃទឹក២៥ នាទីផែនទីក្នុង QGIS៣០ នាទីសរុបប្រហែល ១២០ នាទី

លំហាត់ដំណើរការក្នុង Earth Engine Code Editor ជាមួយទិន្នន័យកាតាឡុក ហើយមានរូបលទ្ធផលគំរូ តារាងកំហុសទូទៅ និងប្រអប់ពិនិត្យលទ្ធផលដោយខ្លួនឯង។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤៧
មេរៀនទី៤

ការយល់ច្រឡំដែលត្រូវប្រុងប្រយ័ត្ន

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤៨

ការយល់ច្រឡំទី១

✗ «reduceRegion ធ្វើការលើក្រឡាដើមនៃរូបភាពជានិច្ច»
↓
✓ វាធ្វើការនៅ scale ដែលអ្នកប្រាប់។ បើគ្មាន scale វាអាចប្រើក្រឡាធំ ១ ដឺក្រេ ហើយលទ្ធផលគ្មានន័យ។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៤៩

ការយល់ច្រឡំទី២

✗ «bestEffort ធ្វើឱ្យការគណនាដំណើរការ ដូច្នេះវាល្អ»
↓
✓ bestEffort បង្កើន scale ដោយស្ងាត់ៗ។ ប្រើ maxPixels និង tileScale ជំនួសវិញ ហើយកត់ត្រា scale ពិតប្រាកដ។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥០

ការយល់ច្រឡំទី៣

✗ «ផ្ទៃ = ចំនួនក្រឡា × ១០០ ម²»
↓
✓ ទំហំក្រឡាអាស្រ័យលើ scale និង CRS ហើយក្រឡាគែមត្រូវបានរាប់ដោយទម្ងន់។ ប្រើ ee.Image.pixelArea()។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥១

ការយល់ច្រឡំទី៤

✗ «ក្រឡាដែលបាន mask ត្រូវបានរាប់ជាសូន្យ»
↓
✓ វាមិនត្រូវបានរាប់ទាល់តែសោះ។ ប្រសិនបើ ៨០% នៃខេត្តមានពពក មធ្យមតំណាងតែ ២០% ដែលនៅសល់ប៉ុណ្ណោះ៖ ពិនិត្យ count ជាមួយ។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥២

ការយល់ច្រឡំទី៥

✗ «ប្រសិនបើ print ដំណើរការ មិនចាំបាច់ Export ទេ»
↓
✓ print ល្អសម្រាប់ពិនិត្យ។ ដើម្បីរក្សាលទ្ធផលឱ្យអ្នកដទៃប្រើ និងធ្វើឡើងវិញបាន ត្រូវ Export ទៅ Drive ឬ Asset។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥៣

សេចក្ដីសង្ខេប

Reducer បង្រួមតម្លៃច្រើនទៅជាតម្លៃតិច។ reduceRegion() ផ្ដល់ Dictionary សម្រាប់តំបន់មួយ ហើយ reduceRegions() បន្ថែមស្ថិតិទៅ Feature នីមួយៗនៃ FeatureCollection ដែលក្លាយជាតារាងសម្រាប់ Excel និងផែនទីសម្រាប់ QGIS។ combine() គណនាស្ថិតិច្រើនក្នុងការហៅតែមួយ ហើយ pixelArea() ជាមួយ reducer ជាក្រុម ផ្ដល់ផ្ទៃពិតតាមថ្នាក់។

scale ជាការសម្រេចចិត្តវិទ្យាសាស្ត្រ៖ វាប៉ះពាល់ដល់ max stdDev ផ្ទៃ និងចំនួនក្រឡា។ ត្រូវដាក់ scale ជានិច្ច ដោះស្រាយកំហុសដោយ maxPixels និង tileScale ហើយប្រើ Export សម្រាប់លទ្ធផលធំ ឬលទ្ធផលដែលត្រូវរក្សាទុក។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥៤

គំនិតស្នូលនៃមេរៀន

រូបភាពឆ្លើយសំណួរ «នៅទីណា?» ហើយ reducer ឆ្លើយសំណួរ «ប៉ុន្មាន?»។ ចម្លើយនោះត្រឹមត្រូវ លុះត្រាតែអ្នកដឹង និងរាយការណ៍ scale តំបន់ និងក្រឡាដែលបានប្រើ។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥៥

ពាក្យគន្លឹះខ្មែរ–អង់គ្លេស

ពាក្យខ្មែរពាក្យអង់គ្លេសអត្ថន័យខ្លី
មុខងារបង្រួមReducerបម្លែងតម្លៃច្រើនទៅជាតម្លៃតិច
ស្ថិតិតាមតំបន់Zonal statisticsស្ថិតិនៃក្រឡាក្នុងតំបន់នីមួយៗ
វចនានុក្រមDictionaryគូគន្លឹះ–តម្លៃ (ឧ. )
មាត្រដ្ឋានគណនាScaleទំហំក្រឡា (ម) ដែលប្រើក្នុងការគណនា
ពីរ៉ាមីតរូបភាពImage pyramidកម្រិតក្រឡាធំៗដែលគណនារួច
ផ្ទៃក្រឡាPixel areaផ្ទៃពិត (ម²) នៃក្រឡានីមួយៗ
reducer ជាក្រុមGrouped reducerគណនាស្ថិតិតាមថ្នាក់នីមួយៗ
ការនាំចេញExport (Task)រក្សាលទ្ធផលទៅ Drive ឬ Asset
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥៦

សំណួររំលឹក

  • ហេតុអ្វីមធ្យមតែមួយអាចបំភាន់? ស្ថិតិអ្វីខ្លះគួរភ្ជាប់ជាមួយ?
  • ពន្យល់ពីមូលហេតុដែល CSV ដែលនាំចេញមានជួរឈរ .geo និងរបៀបដកវាចេញ។
  • សរសេរកូដគណនា NDVI p10 p50 p90 នៃខេត្តមួយក្នុងការហៅ reduceRegion តែមួយ ហើយប្រាប់ឈ្មោះគន្លឹះនៃលទ្ធផល។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥៧

សំណួររំលឹក

  • stats.get('NDVI_mean') ត្រឡប់ null។ រាយមូលហេតុពីរដែលអាចកើតឡើង។
  • សរសេរកូដគណនាផ្ទៃព្រៃ (NDVI > ០,៦) ជាគីឡូម៉ែត្រការ៉េក្នុងខេត្តមួយ។
  • ខេត្តមួយមានពពក ៧០% ក្នុង composite រដូវវស្សា។ តើអ្នកនឹងរាយការណ៍ NDVI មធ្យមនោះដូចម្ដេច?
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥៨

សំណួររំលឹក

  • ប្រៀបធៀបការគណនា zonal statistics ក្នុង QGIS និង Earth Engine៖ ពេលណាគួរប្រើមួយណា?
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៥៩

កិច្ចការខ្លី

គណនាផ្ទៃទឹក (MNDWI > ០) នៃខេត្តរបស់អ្នកក្នុងខែមីនា និងខែតុលា ឆ្នាំតែមួយ។ សរសេរកថាខណ្ឌមួយពន្យល់ភាពខុសគ្នា ហើយរាយការណ៍ scale និងចំនួនក្រឡាស្អាតដែលបានប្រើ។

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៦០

មេរៀនបន្ទាប់

មេរៀននេះគណនាស្ថិតិលើ composite មួយ ពោលគឺលេខមួយសម្រាប់រយៈពេលមួយ។ ប៉ុន្តែស្រែ ព្រៃ និងទឹកប្ដូររាល់ខែ ហើយការប្ដូរនោះហើយដែលប្រាប់ពីដំណាំ គ្រោះរាំងស្ងួត ឬការបាត់បង់ព្រៃ។

តើត្រូវតាមដានតម្លៃមួយតាមពេលវេលា ហើយបម្លែងក្រាបដែលមានពពកច្រើន ទៅជាព័ត៌មានអំពីរដូវដំណាំយ៉ាងដូចម្ដេច?

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៦១

អរគុណ

អានមេរៀនពេញ និងធ្វើលំហាត់ទី៤

https://khgeo.github.io/applied-gis-rs/lessons/lesson-04/

សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី៤៦២