กำไร:
- ความสามารถในการใช้ AI ในการสร้างโค้ดและเวิร์กโฟลว์สำหรับการประมวลผลข้อมูลเชิงพื้นที่ด้วย QGIS และ Python (ไลบรารีเช่น GeoPandas)
- ความสามารถในการทดสอบโค้ดเชิงพื้นที่ที่สร้างโดย AI ในข้อมูลตัวอย่างขนาดเล็ก และตรวจสอบกับข้อผิดพลาดของระบบพิกัดและเรขาคณิต
- ความสามารถในการเข้าใจการรักษาความลับของข้อมูลและความจำเป็นในการตรวจสอบสคริปต์ที่สร้างโดย AI ก่อนที่จะรันกับข้อมูลโครงการจริง
งานเชิงพื้นที่ซ้ำๆ ในหน่วยการวางแผน (การตัดเลเยอร์ บัฟเฟอร์การวาด การคำนวณพื้นที่ การรวมตาราง) ใช้เวลาหลายชั่วโมงและก่อให้เกิดข้อผิดพลาดเมื่อดำเนินการด้วยตนเอง มีเครื่องมือโอเพ่นซอร์สที่ทรงพลัง ฟรี และทรงพลังสองตัวที่ทำงานเหล่านี้ได้โดยอัตโนมัติ: QGIS (ซอฟต์แวร์ GIS บนเดสก์ท็อป) และ Python (ภาษาการเขียนโปรแกรมพร้อมไลบรารีสำหรับข้อมูลเชิงพื้นที่ เช่น GeoPandas, Shapely, Rasterio) AI สร้างโค้ดและเวิร์กโฟลว์สำหรับเครื่องมือเหล่านี้ได้อย่างรวดเร็วอย่างไม่น่าเชื่อ โดยจะร่างสคริปต์การทำงานจากคำขอเพียงประโยคเดียว แต่ AI เขียนโค้ดด้วยสมมติฐานที่คุณมองไม่เห็น เช่น ระบบพิกัดผิด หน่วยผิด การดำเนินการที่ลบองค์ประกอบอย่างเงียบๆ นั่นเป็นเหตุผลว่าทำไมโค้ดเชิงพื้นที่ทุกโค้ดที่ AI สร้างขึ้นจึงต้องอ่านและทดสอบกับตัวอย่างเล็กๆ ก่อนที่จะรันกับข้อมูลโปรเจ็กต์จริง หน่วยนี้จะสอนระบบอัตโนมัติเชิงพื้นที่ที่ปลอดภัยด้วย AI แม้ว่าคุณจะไม่ทราบวิธีเขียนโค้ดก็ตาม
ทำไมต้อง QGIS และ Python
QGIS ช่วยให้คุณวิเคราะห์ได้โดยการคลิก; เรียนรู้ได้ง่ายและมีคอนโซล Python ในทางกลับกัน Python ช่วยให้คุณสามารถเขียนงานซ้ำๆ หนึ่งครั้งและรันงานเหล่านั้นในไฟล์หลายร้อยไฟล์ GeoPandas เป็นห้องสมุดที่ใช้งานได้จริงที่สุดสำหรับนักวางแผน โดยผสมผสานข้อมูลแบบตาราง (แพนด้า) เข้ากับภูมิศาสตร์: อ่านเลเยอร์ ตัวกรอง ดึงบัฟเฟอร์ คำนวณพื้นที่ด้วยโค้ดหนึ่งบรรทัด AI เขียนโค้ด GeoPandas ได้ดีมาก แต่โค้ดที่ดูดีก็ไม่ใช่โค้ดที่ถูกต้องเสมอไป
ข้อควรระวัง: สคริปต์ที่เขียนโดย AI สามารถทำงานได้โดยไม่มีข้อผิดพลาดและยังคงให้ผลลัพธ์ที่ผิดโดยสิ้นเชิง “ใช้งานได้” และ “ถูกต้อง” เป็นสองสิ่งที่แตกต่างกัน การตรวจสอบไม่ใช่ว่ารหัสล้มเหลว แต่ผลลัพธ์ตรงกับข้อมูลอ้างอิงที่ทราบ
แนวคิดที่สำคัญอีกประการหนึ่งคือการทำซ้ำได้ การวิเคราะห์ที่คุณทำในสถาบันสาธารณะควรจะสามารถทำซ้ำในขั้นตอนเดียวกันโดยบุคคลอื่นในอีกหลายเดือนต่อมา การดำเนินการที่ทำโดยการคลิกด้วยตนเองจะไม่ถูกจดจำและไม่สามารถตรวจสอบได้ ในขณะที่สคริปต์ Python เป็นทั้งบันทึกงานและสร้างผลลัพธ์เดียวกัน การจัดเก็บโค้ดที่คุณสร้างด้วย AI พร้อมกับความคิดเห็นจะช่วยเพิ่มความแข็งแกร่งให้กับทั้งความรับผิดชอบและความทรงจำขององค์กร ดังนั้นมุ่งเป้าไปที่ "โค้ดที่อ่านได้ แสดงความคิดเห็น และจัดเก็บได้" ไม่ใช่ "โค้ดที่ใช้งานได้" นิสัยที่ดีคือการเพิ่มบล็อกคำอธิบายสั้นๆ ที่ตอนต้นของแต่ละสคริปต์ โดยระบุว่าสคริปต์ทำงานบนข้อมูลใด วันที่ใด และเพื่อวัตถุประสงค์ใด
กฎทองของการสร้างโค้ดด้วย AI
- ให้บริบท รูปแบบไฟล์, CRS, ชื่อคอลัมน์, สิ่งที่คุณต้องการทำ
- ขอเล็กๆ. รหัสย่อที่ทำงานเดี่ยวจะปลอดภัยกว่าสคริปต์ขนาดยักษ์
- ขอคำชี้แจง. พิมพ์ไปที่ AI ว่าโค้ดแต่ละบรรทัดทำหน้าที่อะไร อย่าเรียกใช้โค้ดที่คุณไม่เข้าใจ
- ทดสอบกับตัวอย่าง ขั้นแรกให้ลองใช้ข้อมูลตัวอย่าง 10-20 รายการ
- เปรียบเทียบกับการอ้างอิง เปรียบเทียบพื้นที่/ระยะทางกับค่าที่ทราบ
- สำรอง. อย่าเขียนทับข้อมูลหลัก ทำงานเป็นสำเนา
ทีละขั้นตอน: สคริปต์เชิงพื้นที่ที่ปลอดภัยด้วย AI
- ชี้แจงภารกิจ. "เลือกพื้นที่สีเขียวจากชั้นพัสดุ คำนวณพื้นที่ เขียนพื้นที่ที่สูงกว่า 5,000 ตร.ม. ลงในไฟล์แยกต่างหาก"
- ระบุข้อมูล รูปแบบ (GeoPackage/Shapefile), CRS, ชื่อคอลัมน์ที่เกี่ยวข้อง
- พิมพ์โค้ด + คำอธิบายไปยัง AI แสดงความคิดเห็นทีละบรรทัด
- ทำ CRS และการควบคุมหน่วยให้เสร็จสิ้น พื้นที่เป็นตารางเมตรหรือชั้นในหน่วยเมตริก CRS?
- รันบนข้อมูลตัวอย่าง ตรวจสอบผลลัพธ์ด้วยสายตา
- ยืนยันด้วยการอ้างอิง เปรียบเทียบพื้นที่พัสดุกับมูลค่าโฉนดที่ดิน
- รันบนข้อมูลหลัก เขียนเอาต์พุตไปยังไฟล์ใหม่
พรอมต์อ่อน / พรอมต์แข็งแกร่ง
ข้อความเตือนที่อ่อนแอ: "คำนวณพื้นที่พัสดุ"
AI เขียนโดยไม่ทราบระบบพิกัด รูปแบบ และคอลัมน์ ฟิลด์อาจปรากฏในหน่วยที่ไม่ถูกต้องหรือ CRS ผิด
ข้อความแจ้งที่รัดกุม: "ด้วย GeoPandas ให้อ่านเลเยอร์ GeoPackage ('parcels.gpkg' ซึ่งเป็นระบบเมตริกระดับชาติ เช่น CRS: EPSG:5254) และเขียนพื้นที่ของแต่ละพัสดุในหน่วย m² ลงในคอลัมน์ 'area_m2' ใหม่ แสดงความคิดเห็นแต่ละบรรทัดของโค้ด เพิ่มบรรทัดก่อนการคำนวณพื้นที่ที่ตรวจสอบว่าเลเยอร์อยู่ใน CRS เมตริก เตือนหากไม่ใช่ เขียนเอาต์พุตเป็นไฟล์ใหม่ อย่าเปลี่ยน ต้นฉบับ"
พรอมต์ที่สองจะสร้างโค้ดที่ปลอดภัยและสามารถตรวจสอบได้ เนื่องจากมี CRS, หน่วย, เอาต์พุตที่ปลอดภัย และคำอธิบาย
เทมเพลตที่สามารถคัดลอกได้สี่แบบ
งาน: เขียนโค้ด Python สั้นๆ ที่ทำงานต่อไปนี้ด้วย GeoPandas แสดงความคิดเห็นแต่ละบรรทัดเป็นภาษาตุรกี การดำเนินการ: [...] ไฟล์อินพุต: [... ] (รูปแบบ, CRS: [...], คอลัมน์ที่เกี่ยวข้อง: [...]) กฎ: ห้ามเปลี่ยนไฟล์ต้นฉบับ เขียนเอาต์พุตเป็นไฟล์ใหม่ ตรวจสอบว่า CRS เป็นหน่วยเมตริกก่อนดำเนินการ ถ้าไม่เช่นนั้นก็ตักเตือน
งาน: อธิบายโค้ด Python/GeoPandas ต่อไปนี้ทีละบรรทัดและทำเครื่องหมายความเสี่ยง: บรรทัดใดที่สามารถลบ/เขียนทับข้อมูลได้ การดำเนินการใดถือว่า CRS หรือวอลุ่ม ขั้นตอนใดจะทำให้ข้อมูลขนาดใหญ่ช้า การเปลี่ยนรหัส แค่อธิบายและตักเตือนCode: [...]
ภารกิจ: เขียนแผน TEST ขนาดเล็กก่อนที่จะรันโค้ดนี้กับข้อมูลจริง ด้วยข้อมูลตัวอย่างใด ผลลัพธ์ที่คาดหวัง ควรตรวจสอบด้วยค่าอ้างอิงใด ให้รายการตรวจสอบ รหัส/การกระทำ: [...]
งาน: อธิบายการดำเนินการ QGIS ต่อไปนี้ (คลิกขั้นตอน) เป็นทั้งเส้นทางเมนู QGIS และโค้ด Python/GeoPandas ที่เทียบเท่ากัน ระบุจุดแตกต่างและจุดสนใจ (CRS, หน่วย) กระบวนการ: [...]
ตาราง: การดำเนินการเชิงพื้นที่บ่อยครั้งและข้อผิดพลาด
การทำธุรกรรม
ทำอะไร
กับดักในรหัส AI
การตรวจสอบ
บัญชีภาคสนาม
ค้นหาพื้นที่รูปหลายเหลี่ยม
ฟิลด์ไม่มีความหมายใน Geographic CRS
เปรียบเทียบกับพื้นที่ที่ทราบ
บัฟเฟอร์
ภูมิภาครอบชายแดน
ข้อผิดพลาดหน่วย (องศา/เมตร)
เมตริก CRS + การวัด
การรวมตัวเชิงพื้นที่
เลเยอร์ที่เกี่ยวข้อง
การลงทะเบียนคีย์/ซ้ำกันไม่ถูกต้อง
การควบคุมการนับบันทึก
คลิป
ตัดกับพื้นที่
การสูญเสียข้อมูลนอกขอบเขต
เปรียบเทียบอินพุต/เอาต์พุต
การปฏิเสธ
ซีอาร์เอสเข้ามาแทนที่
CRS เป้าหมายไม่ถูกต้อง
การยืนยันรหัส EPSG
มินิเคสสามอัน
กรณีที่ 1 — การเขียนทับแบบเงียบๆ นักวางแผนจะรันสคริปต์ที่ AI เขียนโดยตรงบนเลเยอร์ฐาน รหัสใช้ตัวกรองอย่างไม่ถูกต้อง ลบครึ่งหนึ่งของเลเยอร์ และบันทึกไว้ในไฟล์เดียวกัน เนื่องจากไม่มีการสำรองข้อมูล ข้อมูลที่อยู่นานหลายวันจึงสูญหาย บทเรียน: ส่งออกเป็นไฟล์ใหม่เสมอ ข้อมูลหลักจะซ้ำซ้อนเสมอ
กรณีที่ 2 — บัฟเฟอร์มียูนิตผิด ทีมหนึ่งร้องขอบัฟเฟอร์การเข้าถึง 500 ฟุตให้กับโรงเรียน รหัส AI ทำงานบน geo CRS บัฟเฟอร์ 500 องศา ครอบคลุมทั้งแผนที่ เนื่องจากทีมทดสอบตัวอย่างเล็กๆ จึงตรวจพบข้อผิดพลาดก่อนที่จะส่งผ่านไปยังข้อมูลหลัก เพิ่มและแก้ไขการฉายภาพไปยังเมตริก CRS นิสัยในการทดสอบช่วยป้องกันภัยพิบัติ
กรณีที่ 3 — การเรียนรู้เชิงอธิบาย นักวางแผนที่ไม่รู้โค้ดจะสร้างโค้ดเข้าร่วมโดยให้ AI ตีความแต่ละบรรทัด เขาเห็น "แถวนี้ลดบันทึกที่ไม่ตรงกัน" ในคำอธิบาย และตระหนักว่าสิ่งนี้จะทำให้พัสดุบางส่วนหายไป โดยจะถาม AI เกี่ยวกับเวอร์ชันที่ไม่ตรงกันด้วย การทำความเข้าใจโค้ดถือเป็นข้อกำหนดเบื้องต้นสำหรับการใช้งานอย่างปลอดภัย
ข้อผิดพลาดทั่วไป
- ทำงานโดยตรงกับข้อมูลหลัก ทำงานกับสำเนาเสมอ โดยเขียนเอาต์พุตไปยังไฟล์ใหม่
- การเข้าใจผิดว่า "ได้ผล" เป็น "ถูกต้อง" รหัสที่ไม่มีข้อผิดพลาดอาจให้ผลลัพธ์ที่ไม่ถูกต้อง ยืนยันด้วยการอ้างอิง
- สมมติว่า CRS และปริมาณ ตรวจสอบ CRS เมตริกสำหรับการทำงานในพื้นที่และระยะทางเสมอ
- เรียกใช้โค้ดที่คุณไม่เข้าใจ เป็นการเสี่ยงที่จะเรียกใช้โดยไม่ต้องขอคำอธิบายและไม่รู้ว่าบรรทัดนั้นทำอะไร
- ข้ามการทดสอบเล็กน้อย การเปลี่ยนมาใช้ข้อมูลขนาดใหญ่โดยไม่ลองใช้ข้อมูลตัวอย่างเป็นสาเหตุของข้อผิดพลาดที่พบบ่อยที่สุด
- มอบข้อมูลที่เป็นความลับไปยังอุปกรณ์คลาวด์โดยไม่ต้องคิด อย่าเปิดเผยข้อมูลพัสดุ/บุคคลจริงเมื่อสร้างรหัส ใช้ข้อมูลตัวอย่าง/ไม่ระบุชื่อ
โดยสรุป
QGIS และ Python (โดยเฉพาะ GeoPandas) ทำงานเชิงพื้นที่ซ้ำ ๆ โดยอัตโนมัติในการวางแผน AI สร้างโค้ดสำหรับเครื่องมือเหล่านี้อย่างรวดเร็ว แต่ AI เขียนโค้ดด้วยสมมติฐานที่คุณมองไม่เห็น: CRS ผิด ปริมาณไม่ถูกต้อง การดำเนินการที่ลบข้อมูลโดยไม่โต้ตอบ การใช้งานอย่างปลอดภัยขึ้นอยู่กับกฎ 6 ประการ: ให้บริบท ขอข้อมูลเล็กๆ น้อยๆ ขอคำชี้แจง ทดสอบตัวอย่าง ยืนยันโดยการอ้างอิง สำรองข้อมูล “ทำงานแล้ว” ไม่เหมือนกับ “ถูกต้อง” แม้ว่าคุณจะไม่รู้รหัส แต่คุณก็สามารถรักษาความปลอดภัยของระบบอัตโนมัติเชิงพื้นที่ด้วย AI ได้โดยการทำความเข้าใจทุกบรรทัดและไม่ต้องแชร์ข้อมูลที่เป็นความลับ
งานสมัคร
เลือกงานเชิงพื้นที่ที่ทำซ้ำ (เช่น การคำนวณพื้นที่ในเลเยอร์และการแยกส่วนบนของเกณฑ์) (1) พิมพ์โค้ด + คำอธิบายบรรทัดไปยัง AI ด้วยเทมเพลตแรก (2) ตรวจสอบความเสี่ยงของโค้ดเดียวกันกับเทมเพลตที่สอง และค้นหาบรรทัด "อาจลบข้อมูล/สมมติ CRS" อย่างน้อยหนึ่งบรรทัด (3) ส่งออกแผนการทดสอบด้วยเทมเพลตที่สาม: ข้อมูลตัวอย่างใด, ค่าอ้างอิงใด (4) เขียนขั้นตอนความปลอดภัยสามขั้นตอนที่คุณจะต้องทำก่อนที่จะรันโค้ดกับข้อมูลจริง
รายการตรวจสอบ
- [ ] ฉันให้รูปแบบ CRS และบริบทของคอลัมน์แก่ AI
- [ ] ฉันอธิบายโค้ดทุกบรรทัด ฉันไม่ได้รันโค้ดฉันไม่เข้าใจ
- [ ] ฉันต้องการโค้ดสั้นฟังก์ชันเดียว
- [ ] ฉันทดสอบโดยใช้ข้อมูลตัวอย่างเล็กๆ น้อยๆ และตรวจสอบผลลัพธ์ด้วยสายตา
- [ ] ฉันตรวจสอบผลลัพธ์ด้วยค่าอ้างอิงที่ทราบ
- [ ] ฉันได้สำรองข้อมูลหลักแล้ว ฉันเขียนผลลัพธ์ไปยังไฟล์ใหม่
- [ ] ฉันไม่ได้ให้ข้อมูลที่เป็นความลับที่แท้จริงแก่อุปกรณ์คลาวด์ ฉันใช้ข้อมูลที่ไม่ระบุตัวตน/ตัวอย่าง