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

កម្មវិធី Earth Engine និងផែនទីវេប

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

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

  1. ស្ថានភាពបើកមេរៀន៖ ឧបករណ៍ទន្លេសាប១០ នាទី
  2. រចនាសម្ព័ន្ធ និង widgets២៥ នាទី
  3. ព្រឹត្តិការណ៍ callback · evaluate · ពិសោធន៍៣៥ នាទី
  4. ក្រាប និង SplitPanel២៥ នាទី
  5. រចនា និងការបោះពុម្ព២០ នាទី
  6. ឧទាហរណ៍៖ សាងសង់កម្មវិធីជាមួយគ្នា៥០ នាទី
  7. សង្ខេប និងណែនាំលំហាត់១៥ នាទី
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤២

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

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

  • ពិពណ៌នារចនាសម្ព័ន្ធកម្មវិធី Earth Engine (ui.root ui.Panel ui.Map) និង widgets សំខាន់ៗ។
  • សរសេរ callback ដែលធ្វើបច្ចុប្បន្នភាពផែនទី និងក្រាប នៅពេលអ្នកប្រើប្ដូរជម្រើស ឬចុចលើផែនទី។
  • ប្រើ evaluate() ជំនួស getInfo() ហើយពន្យល់ហេតុផល។
  • បង្កើតផែនទីពីរភ្ជាប់គ្នា (SplitPanel · Linker) សម្រាប់ការប្រៀបធៀបមុន–ក្រោយ។
  • បោះពុម្ពកម្មវិធី ហើយប្រៀបធៀបជម្រើសចែករំលែកផ្សេង (Export ទៅ QGIS geemap ផែនទីវេប)។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៣

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

  • មេរៀនទី២៖ មុខងារ client និង server · មេរៀនទី៥៖ ui.Chart · មេរៀនទី៧៖ ផែនទីទឹក។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៤
មេរៀនទី១៤

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

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

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

គណៈកម្មាធិការគ្រប់គ្រងគ្រោះមហន្តរាយខេត្តជុំវិញបឹងទន្លេសាប ចង់បានឧបករណ៍សាមញ្ញមួយ៖ ជ្រើសឆ្នាំ និងខែ ឃើញផ្ទៃទឹកលើផែនទី ឃើញក្រាបផ្ទៃទឹកប្រចាំខែ ហើយចុចលើភូមិណាមួយ ដើម្បីដឹងថាទីនោះលិចទឹកញឹកញាប់ប៉ុណ្ណា។ មន្ត្រីមិនមានគណនី Earth Engine ទេ ហើយប្រើទូរស័ព្ទ ឬកុំព្យូទ័រយួរដៃ។

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

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

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

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

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

  • តើកម្មវិធី Earth Engine មានរចនាសម្ព័ន្ធយ៉ាងណា?
  • តើកម្មវិធីឆ្លើយតបទៅនឹងការចុច និងការជ្រើសរបស់អ្នកប្រើយ៉ាងដូចម្ដេច?
  • តើត្រូវធ្វើឱ្យកម្មវិធីលឿន ហើយបោះពុម្ពវាយ៉ាងណា?
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៨

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

តើកម្មវិធី Earth Engine មានរចនាសម្ព័ន្ធយ៉ាងណា?

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

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

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

ព័ត៌មាន

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

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

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

រហូតមកដល់ពេលនេះ លទ្ធផលរបស់យើងរស់នៅក្នុង Code Editor៖ ស្គ្រីប Console និងផ្ទាំង Tasks ដែលមានតែអ្នកមានគណនី Earth Engine ទេដែលប្រើបាន។ ប៉ុន្តែអ្នកដែលត្រូវការលទ្ធផលពិតប្រាកដ (មន្ត្រីខេត្ត អង្គការ កសិករ និស្សិតផ្សេងទៀត) មិនសរសេរកូដទេ។ ពួកគេត្រូវការ តំណមួយ ដែលបើកផែនទី ជ្រើសឆ្នាំ ចុចលើភូមិ ហើយឃើញក្រាប។

មេរៀននេះបង្រៀនការបង្កើត កម្មវិធី Earth Engine (Earth Engine Apps) ដោយ ui API៖ widgets ផ្ទាំង និងផែនទី ព្រឹត្តិការណ៍ និង callback ការរក្សាឱ្យកម្មវិធីលឿន ផែនទីពីរភ្ជាប់គ្នា និងការបោះពុម្ព ព្រមទាំងជម្រើសផ្សេងសម្រាប់ចែករំលែកលទ្ធផល។

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

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

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

ផ្ទាំងបញ្ជា + ផែនទី

រចនាសម្ព័ន្ធកម្មវិធី Earth Engineui.Panel (ផ្ទាំងបញ្ជា)ui.Labelចំណងជើង · ការពន្យល់ui.Selectជ្រើសខេត្តui.Sliderជ្រើសឆ្នាំui.Buttonគណនាui.Chartក្រាបui.Map (ផែនទី)Map.onClickui.root.clear() · ui.root.add(panel) · ui.root.add(map) ឬ ui.SplitPanel
សង្កេត
  • កម្មវិធីភាគច្រើនមានផ្ទាំងបញ្ជា (widgets) នៅម្ខាង និងផែនទីធំនៅម្ខាងទៀត។
  • Widgets ទាំងអស់ជាវត្ថុ ui.* ដែលដាក់ក្នុង ui.Panel។
  • អ្នកប្រើមិនឃើញកូដទេ៖ ពួកគេឃើញតែផ្ទាំង ផែនទី និងក្រាប។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤១៣

រចនាសម្ព័ន្ធកម្មវិធី

Code Editor មាន ui.root ដែលជាផ្ទាំងមេ។

កម្មវិធីភាគច្រើន៖ លុបផ្ទាំងលំនាំដើម បង្កើត ui.Panel សម្រាប់បញ្ជា និង ui.Map សម្រាប់ផែនទី ហើយដាក់ទាំងពីរក្នុង ui.root៖

```javascript ui.root.clear(); var map = ui.Map(); map.setOptions('HYBRID'); map.setCenter(104.0, 12.8, 9); var panel = ui.Panel(}); panel.add(ui.Label('ឧបករណ៍តាមដានទន្លេសាប', )); panel.add(ui.Label('ជ្រើសឆ្នាំ និងខែ …

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

ប្លុកសាងសង់នៃកម្មវិធី

Widgets សំខាន់ៗui.Labelអត្ថបទ · តំណvalue · styleui.Buttonចុចដើម្បីរត់មុខងារonClickui.Selectបញ្ជីជម្រើសitems · onChangeui.Sliderលេខក្នុងចន្លោះmin · max · step · onChangeui.DateSliderជ្រើសកាលបរិច្ឆេទstart · end · onChangeui.Checkboxបើក/បិទស្រទាប់onChangeui.Chartក្រាបពី ui.Chart.*setOptionsui.Thumbnailរូបភាពតូច · GIFimage · params
សង្កេត
  • Widget នីមួយៗមាន style (ទំហំ ពណ៌ ពុម្ពអក្សរ) និង callback (មុខងារដែលរត់ពេលអ្នកប្រើធ្វើអ្វីមួយ)។
  • ui.Chart.* ដដែលក្នុង Console អាចដាក់ក្នុង Panel បាន។
  • ពុម្ពអក្សរខ្មែរបង្ហាញបានក្នុងកម្មវិធី ប៉ុន្តែទំហំ និងចន្លោះបន្ទាត់ត្រូវកែតាម style។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤១៥

Widgets

Widget នីមួយៗមាន style (ទំហំ ពណ៌ ចន្លោះ) និងអាចមាន callback៖

```javascript var yearSel = ui.Select(); var monthSl = ui.Slider(); var info = ui.Label('ចុចលើផែនទី…'); panel.add(ui.Label('ឆ្នាំ')).add(yearSel).add(ui.Label('ខែ')).add(monthSl).add(info); …

panel.add() ត្រឡប់ panel វិញ ដូច្នេះអាចភ្ជាប់បានជាខ្សែ។ ui.Select ទទួល items ជាអក្សរ ដូច្នេះត្រូវបម្លែងទៅជាលេខ (parseInt) មុនប្រើ។

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

សំណួររហ័ស

ពិពណ៌នារចនាសម្ព័ន្ធ ui.root ui.Panel និង ui.Map នៃកម្មវិធីមួយ។

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

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

កម្មវិធីរង់ចាំ ហើយឆ្លើយតប

ព្រឹត្តិការណ៍ និង callbackអ្នកប្រើជ្រើសឆ្នាំ ២០២៤onChangecallback(value)គណនាfilterDate · median · Otsuធ្វើបច្ចុប្បន្នភាពmap.layers().set()ក្រាបpanel.widgets().set()yearSlider.onChange(function(y) { map.layers().set(0, ui.Map.Layer(water(y), vis, 'water ' + y)); });
សង្កេត
  • callback គឺជាមុខងារដែលយើងផ្ដល់ឱ្យ widget៖ វារត់តែនៅពេលអ្នកប្រើធ្វើសកម្មភាព។
  • ប្ដូរស្រទាប់ដោយ layers().set() ជំនួស addLayer() ម្ដងទៀត ដើម្បីកុំឱ្យស្រទាប់ជាន់គ្នារាប់សិប។
  • គណនាតែអ្វីដែលត្រូវការ៖ កម្មវិធីដែលរង់ចាំយូរ ធ្វើឱ្យអ្នកប្រើចាកចេញ។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤១៨

ព្រឹត្តិការណ៍ និង callback

កម្មវិធីមិនរត់ពីលើចុះក្រោមម្ដងហើយបញ្ចប់ទេ៖ វា រង់ចាំ ព្រឹត្តិការណ៍ ហើយរត់ callback៖

```javascript var gswM = ee.ImageCollection('JRC/GSW1_4/MonthlyHistory'); // ១៩៨៤–២០២១ · 0 គ្មានទិន្នន័យ · 1 ដី · 2 ទឹក function waterOf(y, m) function refresh() { var y = …

ប្រើ map.layers().set(0, …) ដើម្បីជំនួសស្រទាប់ទី ០ ជំនួសឱ្យ map.addLayer() ដែលនឹងបន្ថែមស្រទាប់ថ្មីរាល់ពេលអ្នកប្រើរំកិល។ JRC Monthly History គ្របរហូតដល់ឆ្នាំ ២០២១ ប៉ុណ្ណោះ៖ សម្រាប់ឆ្នាំថ្មីជាងនេះ ប្រើផែនទីទឹក Sentinel-1 ពីមេរៀនទី៧។

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

កុំឱ្យកម្មវិធីគាំង

getInfo() ឬ evaluate()?getInfo()កម្មវិធីរុករក «ជាប់គាំង» រហូតដល់ម៉ាស៊ីនមេឆ្លើយevaluate(callback)កម្មវិធីនៅតែដំណើរការ · callback រត់ពេលមានចម្លើយvar n = col.size().getInfo();col.size().evaluate(function(n) { label.setValue('images: ' + n); });ក្នុងកម្មវិធី៖ ប្រើ evaluate() ជានិច្ច · រក្សាវត្ថុ ee.* នៅលើម៉ាស៊ីនមេឱ្យបានយូរបំផុត
សង្កេត
  • getInfo() ទាញលទ្ធផលមកម៉ាស៊ីនភ្ញៀវ ហើយរង់ចាំ៖ ក្នុងកម្មវិធី វាធ្វើឱ្យផ្ទាំងទាំងមូលកក។
  • evaluate() ស្នើលទ្ធផល ហើយបន្តដំណើរការ៖ ពេលចម្លើយមកដល់ callback ធ្វើបច្ចុប្បន្នភាព Label ឬ Chart។
  • បង្ហាញ «កំពុងគណនា…» មុន evaluate ដើម្បីឱ្យអ្នកប្រើដឹងថាកម្មវិធីកំពុងធ្វើការ (មេរៀនទី២៖ client ធៀប server)។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤២០

getInfo() ឬ evaluate()

នៅពេលអ្នកប្រើចុចលើផែនទី យើងចង់បង្ហាញលេខមួយ (ឧ. ភាគរយនៃខែដែលលិច)។

លេខនោះគណនានៅម៉ាស៊ីនមេ (មេរៀនទី២)។ evaluate() ស្នើលទ្ធផល ហើយបន្តដំណើរការ៖

```javascript var occ = ee.Image('JRC/GSW1_4/GlobalSurfaceWater').select('occurrence'); map.onClick(function(c) , 'ចំណុច')); occ.reduceRegion({reducer: ee.Reducer.first(), …

getInfo() ធ្វើឱ្យកម្មវិធីទាំងមូលកក រហូតដល់ម៉ាស៊ីនមេឆ្លើយ ហើយបើម៉ាស៊ីនមេយឺត អ្នកប្រើនឹងគិតថាកម្មវិធីខូច។ ក្នុងកម្មវិធី ត្រូវប្រើ evaluate() ជានិច្ច ហើយបង្ហាញ «កំពុងគណនា…» មុន។

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

ពីកូដ ទៅឧបករណ៍ដែលអ្នកដទៃប្រើបាន

ក្រាបក្នុងកម្មវិធីតាមដានទឹកផ្ទៃទឹកទន្លេសាបប្រចាំខែ · តម្លៃគំរូ (លំហាត់ទី១៤ គណនាតម្លៃពិត)០៤០០០៨០០០១២០០០គម²២០២០២០២១២០២២២០២៣២០២៤
សង្កេត
  • កម្មវិធីតាមដានទឹក ទាញផ្ទៃទឹកប្រចាំខែ ហើយបង្ហាញក្រាប និងផែនទីនៃខែដែលអ្នកប្រើចុច។
  • ក្រាបត្រូវគណនាលើម៉ាស៊ីនមេ៖ ក្រាបដែលមានច្រើនខែ ច្រើនឆ្នាំ អាចយឺត ដូច្នេះគណនាទុកមុនជា Asset បាន។
  • តម្លៃក្នុងក្រាបនេះជាគំរូ ដើម្បីបង្ហាញទម្រង់។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤២២

ក្រាបក្នុងផ្ទាំង

```javascript var chartBox = ui.Panel(); panel.add(chartBox); var lake = ee.Geometry.Rectangle([103.3, 12.2, 104.7, 13.4]); function yearChart(y) { var fc = ee.FeatureCollection(ee.List.sequence(1, 12).map(function(m) { …

ក្រាបក្នុងកម្មវិធីគួរប្រើ scale ធំល្មម (ឧ. ៣០០ ម) ដើម្បីឱ្យវាលឿន៖ អ្នកប្រើចង់ឃើញលំនាំ មិនមែនលេខត្រឹមត្រូវដល់ហិកតាទេ។

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

ពិសោធន៍៖ កម្មវិធីតាមដានទឹក

កម្មវិធីគំរូនេះធ្វើតាមរចនាសម្ព័ន្ធក្នុងមេរៀន៖ ជ្រើសឆ្នាំ រំកិលខែ ហើយចុចលើផែនទី។ មើលផ្ទាំង «កំណត់ហេតុ» ដើម្បីឃើញ callback ណាដែលរត់ ហើយនៅពេលណា។ ទិន្នន័យក្នុងពិសោធន៍ត្រូវបានក្លែងធ្វើ។

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

សំណួររហ័ស

callback ជាអ្វី? ផ្ដល់ឧទាហរណ៍ពីរ។

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

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

ប្រៀបធៀបដោយអូស

ផែនទីពីរភ្ជាប់គ្នា៖ ui.SplitPanelមុន ធៀបនឹង ក្រោយរដូវប្រាំងរដូវទឹកឡើងvar linker = ui.Map.Linker([left, right]); ui.root.widgets().reset([ui.SplitPanel({firstPanel: left, secondPanel: right, wipe: true})]);
សង្កេត
  • ui.Map.Linker ធ្វើឱ្យផែនទីទាំងពីរ zoom និងរំកិលជាមួយគ្នា។
  • wipe: true បង្កើតរបារអូស ដូចពិសោធន៍ក្រុងព្រះសីហនុ ក្នុងមេរៀនទី១២។
  • ល្អសម្រាប់ទឹកជំនន់ មុន/ក្រោយ ការបាត់បង់ព្រៃ និងការពង្រីកទីក្រុង។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤២៦

ផែនទីពីរភ្ជាប់គ្នា

```javascript var left = ui.Map(), right = ui.Map(); ui.Map.Linker([left, right]); left.addLayer(waterOf(2020, 4), , 'មេសា'); right.addLayer(waterOf(2020, 10), , 'តុលា'); …

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

រចនាកម្មវិធីល្អ

  • សំណួរមួយ កម្មវិធីមួយ៖ កម្មវិធីដែលព្យាយាមធ្វើអ្វីៗគ្រប់យ៉ាង ពិបាកប្រើ។
  • ពន្យល់ខ្លីៗ៖ ចំណងជើង ការណែនាំមួយប្រយោគ ប្រភពទិន្នន័យ ឆ្នាំ និងដែនកំណត់។
  • Legend៖ ពណ៌ដោយគ្មាន legend គ្មានន័យ។ បង្កើតដោយ ui.Panel និង ui.Label ដែលមាន backgroundColor។
  • ល្បឿន៖ scale ធំសម្រាប់ក្រាប · Asset ដែលគណនារួច · កុំ getInfo។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤២៨

រចនាកម្មវិធីល្អ

  • ទូរស័ព្ទ៖ ផ្ទាំងតូច ពុម្ពអក្សរធំ ដាក់ panel ខាងក្រោម ប្រសិនបើអេក្រង់តូច (ui.root.setLayout)។
  • ភាសា៖ អត្ថបទខ្មែរបង្ហាញបាន៖ ពិនិត្យលើទូរស័ព្ទជាក់ស្ដែង។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤២៩

ចែករំលែកដោយតំណមួយ

ការបោះពុម្ពកម្មវិធីCloud Projectចុះឈ្មោះ Earth EngineApps → New Appជ្រើសស្គ្រីបសិទ្ធិ AssetAnyone can readURL សាធារណៈ…/view/app-nameធ្វើបច្ចុប្បន្នភាពPublish ម្ដងទៀតអ្នកប្រើកម្មវិធីមិនត្រូវការគណនី Earth Engine ទេ · ការគណនាគិតលើ Cloud Project របស់អ្នកបោះពុម្ព
សង្កេត
  • កម្មវិធីត្រូវភ្ជាប់ជាមួយ Cloud Project ដែលបានចុះឈ្មោះ Earth Engine (មិនមែនពាណិជ្ជកម្ម ឬពាណិជ្ជកម្ម)។
  • Asset ដែលកម្មវិធីប្រើ (ចំណុច ព្រំដែន) ត្រូវតែអាចអានបានដោយកម្មវិធី។
  • ពិនិត្យលក្ខខណ្ឌប្រើប្រាស់ និងកូតាជាប្រចាំ៖ ច្បាប់ទាំងនេះប្ដូរតាមពេលវេលា។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៣០

ការបោះពុម្ព និងជម្រើសចែករំលែកផ្សេង

ក្នុង Code Editor ចុច Apps → New App ជ្រើសស្គ្រីប និង Cloud Project ហើយចុច Publish។

កម្មវិធីទទួលបាន URL សាធារណៈ ហើយអ្នកប្រើមិនត្រូវការគណនី Earth Engine ទេ។ ការគណនារបស់កម្មវិធីគិតលើ Cloud Project របស់អ្នកបោះពុម្ព ដូច្នេះពិនិត្យកូតា និងលក្ខខណ្ឌប្រើប្រាស់ ដែលអាចប្ដូរតាមពេលវេលា។

ជម្រើសចែករំលែកផ្សេង៖

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

ការបោះពុម្ព និងជម្រើសចែករំលែកផ្សេង

ជម្រើសពេលណាប្រើ
តំណស្គ្រីប (Get Link)ចែករំលែកជាមួយអ្នកប្រើ Earth Engine (គ្រូ មិត្តរួមការងារ)
Export GeoTIFF/CSV → QGISផែនទីបោះពុម្ព របាយការណ៍ ការវិភាគបន្ត (សៀវភៅទី១–២)
Earth Engine Appឧបករណ៍អន្តរកម្មសម្រាប់អ្នកមិនសរសេរកូដ
geemap / PythonJupyter notebook ការវិភាគធំ ការរួមបញ្ចូលជាមួយបណ្ណាល័យ Python
ផែនទីវេបផ្ទាល់ខ្លួននាំចេញ tiles ឬ GeoJSON ទៅ Leaflet/MapLibre ពេលមិនចង់ពឹងលើ Earth Engine
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៣២
មេរៀនទី១៤

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

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

ជំហានទី១៖ រចនាសម្ព័ន្ធ

១

ចម្លងកូដផ្នែក ១៤.៣.១ (ផ្ទាំង និងផែនទី) និង ១៤.៣.២ (widgets) ទៅក្នុងស្គ្រីបថ្មី។

រត់៖ អ្នកគួរឃើញផ្ទាំងនៅខាងឆ្វេង និងផែនទីនៅខាងស្ដាំ។

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

ជំហានទី២៖ ស្រទាប់ទឹក និង callback

២

បន្ថែមកូដផ្នែក ១៤.៣.៣។

រំកិលខែ ហើយពិនិត្យថាស្រទាប់ជំនួសគ្នា (មិនជាន់គ្នា)។

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

ជំហានទី៣៖ ចុចលើផែនទី និងក្រាប

៣

បន្ថែមកូដផ្នែក ១៤.៣.៤ និង ១៤.៣.៥។

ចុចលើបឹង ព្រៃលិចទឹក និងភូមិ ហើយប្រៀបធៀបភាគរយ។

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

ជំហានទី៤៖ Legend និងប្រភព

៤

```javascript function legendRow(color, text) ), ui.Label(text)], ui.Panel.Layout.flow('horizontal')); } …

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

ជំហានទី៥៖ សាកល្បង និងបោះពុម្ព

៥

ឱ្យមិត្តម្នាក់ប្រើកម្មវិធីដោយគ្មានការពន្យល់ ហើយកត់ត្រាកន្លែងដែលគេច្រឡំ។

កែ ហើយបោះពុម្ព (ផ្នែក ១៤.៣.៨)។ សាកល្បង URL លើទូរស័ព្ទ។

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

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

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

កម្មវិធីបង្ហាញទិន្នន័យដែលមានដែនកំណត់របស់វា (JRC មិនមានឆ្នាំក្រោយ ២០២១ ហើយខកទឹកក្រោមព្រៃលិចទឹក)។ អ្នកប្រើមិនឃើញដែនកំណត់ទាំងនេះ លុះត្រាតែយើងសរសេរវាក្នុងកម្មវិធី។

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

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

លំដាប់ការងារ លំហាត់ទី១៤កម្មវិធីតាមដានទឹកផ្ទាំង និងផែនទី២០ នាទីស្រទាប់ និង callback២៥ នាទីក្រាប និងការចុច៣០ នាទីLegend ប្រភព និង SplitPa…៣០ នាទីSentinel-1 ឆ្នាំថ្មី និង…២០ នាទីសរុបប្រហែល ១២៥ នាទី

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

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

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

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

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

✗ «កម្មវិធីរត់កូដម្ដងពីលើចុះក្រោម»
↓
✓ កូដខាងលើរៀបចំផ្ទាំង។ បន្ទាប់មកកម្មវិធីរង់ចាំ ហើយរត់ callback តែពេលអ្នកប្រើធ្វើសកម្មភាព។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៤២

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

✗ «getInfo() ងាយ ដូច្នេះប្រើបាន»
↓
✓ វាធ្វើឱ្យកម្មវិធីកក។ ក្នុងកម្មវិធី ប្រើ evaluate()។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៤៣

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

✗ «map.addLayer() ក្នុង callback គ្មានបញ្ហា»
↓
✓ រាល់ការរំកិលបន្ថែមស្រទាប់ថ្មី ហើយកម្មវិធីយឺតទៅៗ។ ប្រើ layers().set()។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៤៤

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

✗ «អ្នកប្រើកម្មវិធីត្រូវការគណនី Earth Engine»
↓
✓ កម្មវិធីដែលបានបោះពុម្ព បើកបានដោយអ្នកណាក៏ដោយ ដែលមាន URL។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៤៥

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

✗ «កម្មវិធីល្អ = widgets ច្រើន»
↓
✓ កម្មវិធីល្អឆ្លើយសំណួរមួយបានច្បាស់ ហើយលឿន។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៤៦

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

កម្មវិធី Earth Engine មាន ui.Panel សម្រាប់ widgets និង ui.Map សម្រាប់ផែនទី ក្នុង ui.root។ Widgets (Label Select Slider Button Chart) មាន style និង callback ដែលរត់ពេលអ្នកប្រើធ្វើសកម្មភាព។ ប្រើ layers().set() ដើម្បីជំនួសស្រទាប់ evaluate() ដើម្បីកុំឱ្យកម្មវិធីកក និង scale ធំ ឬ Asset ដែលគណនារួច ដើម្បីល្បឿន។

SplitPanel និង Linker ប្រៀបធៀបមុន–ក្រោយ។ កម្មវិធីបោះពុម្ពតាម Cloud Project ហើយបើកបានដោយគ្មានគណនី។ ជម្រើសផ្សេង (Export ទៅ QGIS geemap ផែនទីវេប) សមសម្រាប់អ្នកប្រើ និងគោលបំណងផ្សេងៗ។

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

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

ការវិភាគដែលមានតែអ្នកវិភាគអាចប្រើ មានផលប៉ះពាល់តិច។ កម្មវិធីសាមញ្ញ លឿន និងស្មោះត្រង់អំពីដែនកំណត់ នាំលទ្ធផលទៅដល់អ្នកសម្រេចចិត្ត។

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

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

ពាក្យខ្មែរពាក្យអង់គ្លេសអត្ថន័យខ្លី
កម្មវិធី Earth EngineEarth Engine Appស្គ្រីបដែលបោះពុម្ពជាវេប
ធាតុផ្ទាំងWidgetប៊ូតុង បញ្ជី របាររំកិល …
ផ្ទាំងPanelប្រអប់ដែលផ្ទុក widgets
ព្រឹត្តិការណ៍Eventការចុច ការជ្រើស ការរំកិល
មុខងារហៅត្រឡប់Callbackមុខងារដែលរត់ពេលមានព្រឹត្តិការណ៍
ការស្នើមិនរង់ចាំAsynchronous (evaluate)ស្នើលទ្ធផលដោយមិនកក
ផែនទីបំបែកSplit panelផែនទីពីររំកិលជាមួយគ្នា
ការបោះពុម្ពPublishធ្វើឱ្យកម្មវិធីមាន URL សាធារណៈ
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៤៩

សំណួររំលឹក

  • ហេតុអ្វីប្រើ evaluate() ជំនួស getInfo() ក្នុងកម្មវិធី?
  • ហេតុអ្វីប្រើ layers().set() ជំនួស addLayer() ក្នុង callback?
  • ប្រៀបធៀបកម្មវិធី Earth Engine និងការ Export ទៅ QGIS៖ ពេលណាប្រើមួយណា?
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៥០

សំណួររំលឹក

  • សរសេរ ui.Select សម្រាប់ខេត្ត ៥ ដែលពេលជ្រើស ធ្វើឱ្យផែនទី zoom ទៅខេត្តនោះ។
  • សរសេរ ui.Button «ទាញយក CSV» ដែលបង្ហាញតំណទាញយក ដោយប្រើ getDownloadURL និង evaluate។
  • កម្មវិធីរបស់អ្នកចំណាយពេល ៣០ វិនាទីដើម្បីបង្ហាញក្រាប។ ស្នើដំណោះស្រាយបី។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៥១

សំណួររំលឹក

  • សរសេរមុខងារ legend ដែលទទួលបញ្ជីពណ៌ និងឈ្មោះ ហើយត្រឡប់ ui.Panel។
  • ពិពណ៌នាកម្មវិធីមួយ ដោយប្រើមេរៀនណាមួយក្នុងសៀវភៅនេះ ដែលអាចជួយសហគមន៍របស់អ្នក។
សៀវភៅទី៤ · អនុវត្តន៍ GIS និងការយកព័ត៌មានពីចម្ងាយ · មេរៀនទី១៤៥២

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

បន្ថែម ui.DateSlider ទៅកម្មវិធីទន្លេសាប ដែលបង្ហាញរូបភាព Sentinel-1 VV នៃថ្ងៃដែលជ្រើស (± ៦ ថ្ងៃ)។ សរសេរកថាខណ្ឌមួយពីបញ្ហាដែលអ្នកជួប និងរបៀបដោះស្រាយ។

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

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

អ្នកឥឡូវមានឧបករណ៍ពេញលេញ៖ ពីការត្រងទិន្នន័យ ទៅការវិភាគ ការផ្ទៀងផ្ទាត់ និងការចែករំលែក។ ជំហានចុងក្រោយគឺប្រើវាដោយខ្លួនឯង លើបញ្ហាពិតមួយ ពីសំណួររហូតដល់លទ្ធផល ដោយការទទួលខុសត្រូវ។

តើគម្រោងអនុវត្តល្អមួយមានលក្ខណៈអ្វីខ្លះ ហើយយើងត្រូវគិតពីអ្វីខ្លះ មុនចែករំលែកផែនទីដែលអាចប៉ះពាល់ដល់មនុស្ស?

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

អរគុណ

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

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

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