បន្ទាប់ពីបញ្ចប់មេរៀន និស្សិតអាច៖
និស្សិតម្នាក់ចង់ធ្វើផែនទីដង់ស៊ីតេប្រជាជនខេត្តកំពង់ឆ្នាំង។ គាត់មានស្រទាប់ Kh_Commune_area (ព្រំឃុំ ២០១៩) និងតារាង Census_Commune (ជំរឿន ២០០៨)។ គាត់ភ្ជាប់តារាងទាំងពីរតាមលេខកូដឃុំ។ លទ្ធផល៖ គ្មានកំណត់ត្រាណាមួយត្រូវគ្នាទេ។
ពេលមើលឱ្យជិត ព្រំឃុំប្រើលេខកូដ KH040301 ឯជំរឿនប្រើ 040301។ តួអក្សរពីរ KH ធ្វើឱ្យការភ្ជាប់បរាជ័យទាំងស្រុង។
តើការភ្ជាប់តារាងធ្វើការយ៉ាងដូចម្ដេច?
គិតម្នាក់ឯង ១ នាទី · ពិភាក្សាជាគូ ២ នាទី · ចែករំលែកជាមួយថ្នាក់។
រយៈពេលបង្រៀនដែលស្នើ៖ ៣ ម៉ោង · មេរៀនទី ៥ ក្នុងចំណោម ១៥
:material-presentation-play: ស្លាយបង្រៀនមេរៀននេះ
មេរៀនទី៤ បានបង្ហាញតារាងគុណលក្ខណៈមួយ។ ប៉ុន្តែព័ត៌មានដែលយើងត្រូវការ ច្រើនតែនៅរាយប៉ាយក្នុងឯកសារច្រើន៖ ព្រំឃុំពីស្ថាប័នមួយ ជំរឿនពីវិទ្យាស្ថានជាតិស្ថិតិ និងទិន្នន័យកសិកម្មពីក្រសួងមួយទៀត។
មេរៀននេះបង្រៀនពីរបៀបរៀបចំ មូលទិន្នន័យ ភ្ជាប់តារាងតាមវាលរួម និងបង្កើតព័ត៌មានថ្មីដោយ Field Calculator។
មូលទិន្នន័យ (Database) គឺជាសំណុំតារាងដែលរៀបចំឱ្យអាចភ្ជាប់គ្នាបាន។
ជំនួសឱ្យការដាក់ព័ត៌មានទាំងអស់ក្នុងតារាងធំមួយ យើងបំបែកតាមប្រធានបទ ហើយភ្ជាប់តាម វាលរួម។
CommGis ក្នុងស្រទាប់ឃុំ។COMM_CODE ក្នុងជំរឿន។អត្ថប្រយោជន៍៖ ព្រំឃុំអាចប្រើជាមួយជំរឿនឆ្នាំ ២០០៨ ឆ្នាំ ២០១៩ ឬទិន្នន័យកសិកម្ម ដោយមិនចាំបាច់ចម្លងធរណីមាត្រច្រើនដង។
ពេលកែឈ្មោះឃុំ យើងកែតែកន្លែងមួយ។
ឯកសារ .gpkg មួយអាចមានស្រទាប់ និងតារាងច្រើន។ វាជាមូលទិន្នន័យ SQLite តូចមួយ ដែលស័ក្ដិសមសម្រាប់គម្រោងនិស្សិតជាង Shapefile ច្រើន។
ពន្យល់ Primary key និង Foreign key ដោយប្រើឧទាហរណ៍ឃុំ និងជំរឿន។
ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។
ការភ្ជាប់តារាង (Table join) បន្ថែមវាលពីតារាងមួយ ទៅតារាងមួយទៀត ដោយផ្គូផ្គងតម្លៃក្នុងវាលរួម។
| ពាក្យ | អត្ថន័យក្នុង QGIS |
|---|---|
| Target layer | ស្រទាប់ដែលទទួលវាលថ្មី (ជាធម្មតាស្រទាប់មានធរណីមាត្រ) |
| Join layer | តារាងដែលផ្ដល់វាល |
| Target field / Join field | វាលដែលត្រូវផ្គូផ្គង |
ការភ្ជាប់ត្រូវគ្នាលុះត្រាតែតម្លៃ ដូចគ្នាទាំងស្រុង៖ KH040301 ≠ 040301 · 040301 ≠ 40301 · B'er ≠ Ph'er · Khsam ≠ Khsam (ដកឃ្លាខាងក្រោយ)។
ប្ដូរវាលភ្ជាប់ ហើយរាប់ចំនួនកំណត់ត្រាដែលត្រូវគ្នា។ ហេតុអ្វីការភ្ជាប់តាមឈ្មោះមិនល្អ? ហេតុអ្វីនៅតែមានកំណត់ត្រាពីរដែលគ្មានដៃគូ ទោះប្រើកន្សោមត្រឹមត្រូវ?
ក្រោយភ្ជាប់ ត្រូវពិនិត្យជានិច្ច៖ **តើមានកំណត់ត្រាប៉ុន្មានដែលគ្មានដៃគូ ហើយហេតុអ្វី?
** មូលហេតុទូទៅ៖ ទម្រង់លេខកូដ · ឆ្នាំនៃព្រំដែនខុសពីឆ្នាំនៃតារាង (ឃុំបង្កើតថ្មី ឬប្ដូរខេត្ត) · កំហុសវាយ។
រូបទី៥.១៖ ការភ្ជាប់តារាងតាមលេខកូដ៖ ក្រោយបន្ថែម 'KH' ជួរដេក ៤ ត្រូវគ្នា។ ជួរដេកដែលគ្មានដៃគូ ទទួល NULL ហើយត្រូវពន្យល់មូលហេតុ។
| ទំនាក់ទំនង | ឧទាហរណ៍ | លទ្ធផលពេលភ្ជាប់ |
|---|---|---|
| មួយទល់មួយ | ឃុំមួយ ↔ ជួរជំរឿនមួយ | ងាយស្រួល វាលថ្មីមួយតម្លៃក្នុងមួយឃុំ |
| ច្រើនទល់មួយ | ភូមិច្រើន → ឃុំមួយ | ភូមិនីមួយៗទទួលឈ្មោះឃុំដូចគ្នា ត្រឹមត្រូវ |
| មួយទល់ច្រើន | ឃុំមួយ ↔ សាលាច្រើន | QGIS ភ្ជាប់ តែកំណត់ត្រាដំបូង ព័ត៌មានផ្សេងបាត់ដោយស្ងាត់ |
សម្រាប់ទំនាក់ទំនងមួយទល់ច្រើន ត្រូវ សង្ខេបមុន (ឧទាហរណ៍ រាប់សាលាតាមឃុំដោយ Statistics by categories) ទើបភ្ជាប់តារាងសង្ខេបនោះ។
Join ក្នុង Layer Properties មិនប្ដូរឯកសារដើមទេ។ បើលុបតារាង ឬផ្លាស់ទីឯកសារ វាលដែលភ្ជាប់នឹងបាត់។ ដើម្បីរក្សាទុក ត្រូវ Export ជាស្រទាប់ថ្មី។
រូបទី៥.២៖ ទំនាក់ទំនងមួយទល់ច្រើន៖ ឃុំមួយមានសាលាច្រើន។ ត្រូវសង្ខេបតារាងជាមុន មុនភ្ជាប់ទៅស្រទាប់ឃុំ។
ហេតុអ្វី KH040301 មិនភ្ជាប់ជាមួយ 040301? សរសេរកន្សោមកែ។
ឆ្លើយក្នុង ១ នាទី មុនបន្តទៅផ្នែកបន្ទាប់។
Field Calculator បង្កើត ឬធ្វើបច្ចុប្បន្នភាពវាល ដោយប្រើកន្សោម។
វាលថ្មីអាចគណនាពីវាលផ្សេង ពីធរណីមាត្រ ឬពីអនុគមន៍។
| គោលបំណង | កន្សោម |
|---|---|
| ផ្ទៃ (គម²) | $area / 1000000 |
| ប្រវែង (គម) | $length / 1000 |
| ដង់ស៊ីតេ | "TOTPOP" / ($area / 1000000) |
| ភាគរយ | 100 * "FEMALES" / "TOTPOP" |
| ភ្ជាប់អក្សរ | <code>'KH' || "COMM_CODE"</code> |
| ចាត់ថ្នាក់ | CASE WHEN "dens" < 100 THEN 'ទាប' ELSE 'ខ្ពស់' END |
| បំពេញលេខ ០ | lpad("code", 6, '0') |
$area គណនាពីធរណីមាត្របច្ចុប្បន្ន ដូច្នេះត្រឹមត្រូវជាងវាលផ្ទៃចាស់ៗក្នុងតារាង ដែលអាចមកពីព្រំដែនកំណែផ្សេង។
ពេលចែក ត្រូវប្រុងប្រយ័ត្នការចែកនឹងសូន្យ ឬ NULL។
ផែនទីពណ៌តាមតំបន់ (choropleth) ធ្វើឱ្យភ្នែកមើលផ្ទៃ។
បើយើងដាក់ពណ៌តាម ចំនួនប្រជាជនដុល ឃុំធំៗជនបទនឹងមើលទៅ «សំខាន់» ដោយសារតែមានផ្ទៃធំ មិនមែនដោយសារមានមនុស្សក្រាស់ទេ។
ក្បួន៖ ផែនទី choropleth ត្រូវប្រើតម្លៃដែល ធ្វើឱ្យស្តង់ដារ រួច៖
ចំនួនដុលគួរបង្ហាញជានិមិត្តសញ្ញាសមាមាត្រ (រង្វង់ធំតូច) ជំនួសវិញ។
ការជ្រើសវិធីចាត់ថ្នាក់ និងពណ៌យោងទៅសៀវភៅទី១។
រូបទី៥.៣៖ ទិន្នន័យដដែល ផែនទីពីរ៖ ផែនទីចំនួនដុលបន្លិចឃុំធំ ឯផែនទីដង់ស៊ីតេបន្លិចកន្លែងដែលមនុស្សរស់នៅក្រាស់ (ទិន្នន័យសន្មត)។
យើងភ្ជាប់ Census_Commune ទៅ Kh_Commune_area សម្រាប់ខេត្តកំពង់ឆ្នាំង (ProvGis = KH04) ហើយគណនាដង់ស៊ីតេ។
ស្រទាប់ឃុំមាន ៦៩ ឃុំ វាល CommGis = KH040301។
ជំរឿនមានវាល COMM_CODE = 040301 ជាអក្សរ។ ភ្ជាប់ដោយផ្ទាល់ត្រូវគ្នា ០។
បង្កើតវាល join_code = 'KH' || "COMM_CODE"។
ភ្ជាប់ម្ដងទៀត ត្រូវគ្នា ៦៩ / ៦៩។ គ្មានឃុំបាត់ក្នុងខេត្តនេះ (ខុសពីខេត្តកំពង់ចាម និងត្បូងឃ្មុំ ដែលមានការប្ដូរលេខកូដក្រោយឆ្នាំ ២០០៨)។
dens = "TOTPOP" / ($area / 1000000)៖
ផែនទីចំនួនដុល បន្លិច Phsar Chhnang (២០ ២២៦ នាក់) និងឃុំជនបទធំៗ។
| ឃុំ | ប្រជាជន ២០០៨ | ដង់ស៊ីតេ (នាក់/គម²) |
|---|---|---|
| B'er | ៦ ៥៤៣ | ២ ៨២១ |
| Phsar Chhnang | ២០ ២២៦ | ១ ៩០៦ |
| Ponley | ៧ ២៧៥ | ១ ១៦៥ |
យើងមិនអាចរាយការណ៍ថាដង់ស៊ីតេនេះជាស្ថានភាពបច្ចុប្បន្នទេ ព្រោះប្រជាជនមកពីឆ្នាំ ២០០៨ ឯព្រំដែនមកពីឆ្នាំ ២០១៩។ ដង់ស៊ីតេក៏ជាតម្លៃមធ្យមលើផ្ទៃទាំងមូល ដែលរួមបញ្ចូលស្រែ និងទឹក ដូច្នេះមិនប្រាប់ពីភាពក្រាស់ក្នុងភូមិពិតប្រាកដទេ។
ធ្វើ លំហាត់ទី៥ ក្នុង QGIS នៅសៀវភៅអនុវត្ត។
លំហាត់ប្រើទិន្នន័យកម្ពុជាពិត ហើយមានប្រអប់ពិនិត្យលទ្ធផលដោយខ្លួនឯង។
$area។មូលទិន្នន័យបំបែកព័ត៌មានទៅតាមតារាង ហើយភ្ជាប់តាមវាលរួម។ ការភ្ជាប់ត្រូវការតម្លៃដូចគ្នាទាំងស្រុង ដូច្នេះត្រូវរៀបចំទម្រង់លេខកូដ និងពិនិត្យកំណត់ត្រាដែលគ្មានដៃគូ។
Field Calculator បង្កើតព័ត៌មានថ្មីពីវាល និងធរណីមាត្រ។ ផែនទី choropleth ត្រូវប្រើអត្រា ឬដង់ស៊ីតេ មិនមែនចំនួនដុល។
ការភ្ជាប់តារាងគឺជាស្ពានរវាងផែនទី និងស្ថិតិ។ ស្ពាននោះរឹងមាំលុះត្រាតែលេខកូដស៊ីគ្នា ឆ្នាំស៊ីគ្នា ហើយអ្នកពិនិត្យអ្វីដែលមិនបានឆ្លង។
| ពាក្យខ្មែរ | ពាក្យអង់គ្លេស | អត្ថន័យខ្លី |
|---|---|---|
| មូលទិន្នន័យ | Database | សំណុំតារាងដែលភ្ជាប់គ្នា |
| លេខសម្គាល់ចម្បង | Primary key | វាលតែមួយគត់ក្នុងតារាង |
| លេខសម្គាល់បរទេស | Foreign key | វាលដែលយោងទៅតារាងផ្សេង |
| ការភ្ជាប់តារាង | Table join | បន្ថែមវាលតាមវាលរួម |
| មួយទល់ច្រើន | One-to-many | កំណត់ត្រាមួយត្រូវនឹងច្រើន |
| ម៉ាស៊ីនគិតវាល | Field Calculator | ឧបករណ៍គណនាវាល |
| ដង់ស៊ីតេ | Density | បរិមាណក្នុងឯកតាផ្ទៃ |
| ផែនទីពណ៌តាមតំបន់ | Choropleth map | ពណ៌តំបន់តាមតម្លៃ |
$area ជំនួសឱ្យវាលផ្ទៃក្នុងតារាងជំរឿន?1020101)។ សរសេរកន្សោមស្ដារវាឱ្យមាន ៨ ខ្ទង់។ជ្រើសខេត្តមួយក្រៅពីកំពង់ឆ្នាំង។ ពិពណ៌នាជាមួយទំព័រពីរបៀបភ្ជាប់ Census_Commune ទៅ Kh_Commune_area៖ វាលភ្ជាប់ · កន្សោមកែទម្រង់ · ចំនួនឃុំដែលគ្មានដៃគូ (ប៉ាន់ស្មាន ឬពិនិត្យក្នុងលំហាត់) · អត្រាដែលអ្នកនឹងធ្វើផែនទី និងហេតុផល។
រហូតមកដល់ពេលនេះ យើងប្រើទិន្នន័យដែលមានស្រាប់។ ប៉ុន្តែទិន្នន័យទាំងនោះមកពីណា? អ្នកណាផលិត ផលិតឆ្នាំណា ហើយបើមិនមាន តើយើងប្រមូលដោយខ្លួនឯងយ៉ាងដូចម្ដេច?
អានមេរៀនពេញ និងធ្វើលំហាត់ទី៥
https://khgeo.github.io/gis-fundamentals/lessons/lesson-05/