{
  "format": "geolibre-language-pack",
  "formatVersion": 1,
  "scope": "whitebox",
  "locale": "th",
  "name": "ชุดภาษาไทยสำหรับ Whitebox",
  "updatedAt": "2026-09-25T16:57:57.552Z",
  "translations": {
    "processing": {
      "toolMeta": {
        "whitebox": {
          "build_object_hierarchy_multiscale": {
            "name": "สร้างลำดับชั้นวัตถุหลายมาตราส่วน",
            "description": "โครงข่ายวัตถุเชิงลำดับชั้นที่สร้างขึ้นผ่านการรวมกลุ่มแบบวนซ้ำข้ามหลายมาตราส่วนการแบ่งส่วน โดยค่อย ๆ ผสานเซกเมนต์ที่ละเอียดกว่าตามความคล้ายคลึงเชิงสเปกตรัมและการอยู่ติดกันเชิงพื้นที่ สร้างโครงสร้างต้นไม้ที่โหนดใบแทนเซกเมนต์มาตราส่วนละเอียดและรากแทนภาพทั้งภาพ ความสัมพันธ์การบรรจุเข้ารหัสลำดับชั้นวัตถุแบบแม่-ลูก (ส่วน-ทั้งหมด) ทำให้สามารถวิเคราะห์หลายความละเอียดและสืบค้นวัตถุแบบปรับตามมาตราส่วนข้ามระดับชั้นได้ คุณสมบัติหลัก: ลำดับชั้นการแบ่งส่วนหลายมาตราส่วน; ติดตามความสัมพันธ์ส่วน-ทั้งหมด; รองรับการสืบค้นวัตถุแบบซ้อน; ทำให้วิเคราะห์แบบปรับตามมาตราส่วนได้; การแทนลำดับชั้นที่ประหยัดหน่วยความจำ; เอื้อต่อการจำแนกแบบลำดับขั้น กรณีการใช้งาน: การทำแผนที่สิ่งปกคลุมดินเชิงลำดับชั้น; การสกัดกลุ่มอาคารที่ซับซ้อนจากองค์ประกอบ; การตรวจจับแปลงเกษตร; การวิเคราะห์ชั้นพืชพรรณ; การกำหนดขอบเขตย่านเมือง; การทำแผนที่พื้นที่ชุ่มน้ำพร้อมการจำแนกองค์ประกอบย่อย การตีความผลลัพธ์: ผลลัพธ์คือฐานข้อมูลวัตถุเชิงลำดับชั้นที่เข้ารหัสโครงสร้างที่ขึ้นกับมาตราส่วน สืบค้นวัตถุที่มาตราส่วนเฉพาะ; มาตราส่วนระดับกลางเผยให้เห็นมาตราส่วนวัตถุช่วงเปลี่ยนผ่านที่สมดุลระหว่างรายละเอียดกับการวางนัยทั่วไป ความสัมพันธ์แม่-ลูกเผยให้เห็นโครงสร้างองค์ประกอบ การกระจายเชิงสถิติระดับมาตราส่วนอธิบายคุณสมบัติขนาด/รูปร่างของวัตถุในแต่ละระดับชั้น ทำให้สามารถเลือกกลยุทธ์การจำแนกที่เหมาะสมที่สุดตามมาตราส่วนได้",
            "params": {
              "coarse_segments": {
                "label": "เซกเมนต์หยาบ",
                "description": "แรสเตอร์เซกเมนต์แบบหยาบ."
              },
              "fine_segments": {
                "label": "เซกเมนต์ละเอียด",
                "description": "แรสเตอร์เซกเมนต์แบบละเอียด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ลำดับชั้นผลลัพธ์."
              }
            }
          },
          "classify_objects_ensemble_pro": {
            "name": "จำแนกวัตถุแบบรวมโมเดล Pro",
            "description": "เรียกใช้การกำหนดค่าการจำแนกวัตถุแบบกลุ่มโมเดล (ensemble) ที่ปรับให้มีเสถียรภาพสูงขึ้นในฉากที่มีความหลากหลาย",
            "params": {
              "features": {
                "label": "ฟีเจอร์",
                "description": "ไฟล์ CSV คุณลักษณะของวัตถุนำเข้า (ต้องมี segment_id และคอลัมน์คุณลักษณะเชิงตัวเลข)."
              },
              "training": {
                "label": "ข้อมูลฝึกสอน",
                "description": "ไฟล์ CSV ฝึกสอนที่มีคอลัมน์ segment_id และป้ายกำกับคลาส."
              },
              "segment_id_field": {
                "label": "ฟิลด์รหัสเซกเมนต์",
                "description": "ชื่อฟิลด์รหัสเซกเมนต์ (ค่าเริ่มต้น segment_id)."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์ป้ายกำกับคลาสในไฟล์ CSV ฝึกสอน (ค่าเริ่มต้น class)."
              },
              "n_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ (ค่าเริ่มต้น 200)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลการทำนายผลลัพธ์."
              }
            }
          },
          "classify_objects_random_forest": {
            "name": "จำแนกวัตถุด้วย Random Forest",
            "description": "ฝึกตัวจำแนก Random Forest แบบกลุ่มโมเดลจากตัวอย่างฝึกของเซกเมนต์ที่มีป้ายกำกับ โดยใช้คุณลักษณะเชิงสเปกตรัม สัณฐาน และเนื้อสัมผัสเป็นตัวแปรทำนาย สร้างต้นไม้ตัดสินใจหลายต้นผ่านการสุ่มตัวอย่างแบบบูตสแตรปและการสุ่มคุณลักษณะ แล้วรวมผลการทำนายด้วยการลงคะแนนเสียงข้างมาก การจำแนกทำงานบนเวกเตอร์คุณลักษณะรายเซกเมนต์ โดยกำหนดป้ายคลาสของวัตถุเชิงความน่าจะเป็นตามฉันทามติของกลุ่มโมเดล ทำให้จัดหมวดหมู่วัตถุหลายคลาสจากคุณลักษณะ OBIA ได้อย่างทนทาน คุณสมบัติหลักได้แก่ การเรียนรู้แบบกลุ่มโมเดลที่รวมต้นไม้ตัดสินใจหลายต้นเพื่อการจำแนกที่ทนทาน การรองรับปริภูมิคุณลักษณะมิติสูงที่พบทั่วไปใน OBIA หลายสเปกตรัม ค่าประมาณความเชื่อมั่นและความน่าจะเป็นของการจำแนก การจัดอันดับความสำคัญของคุณลักษณะเพื่อระบุคุณสมบัติที่แยกแยะได้ การรองรับปฏิสัมพันธ์ไม่เชิงเส้นระหว่างคุณลักษณะโดยธรรมชาติ และความทนทานต่อสัญญาณรบกวนและความซ้ำซ้อนของคุณลักษณะ กรณีการใช้งานครอบคลุมการจำแนกสิ่งปกคลุมดินหลายคลาสจากเซกเมนต์ OBIA (เมือง เกษตรกรรม ป่าไม้ น้ำ) การจำแนกแบบมีผู้สอนระดับวัตถุที่ปรับปรุงผ่านการเลือกตัวอย่างฝึก การจำแนกเพื่อตรวจหาการเปลี่ยนแปลงข้ามลำดับการแบ่งส่วนตามเวลา การจำแนกเชิงลำดับชั้น (ประเภทถิ่นที่อยู่อาศัยหยาบที่ปรับละเอียดเป็นหมวดหมู่ย่อย) และการผสานกับตัวอย่างฝึกที่ได้จากการแปลตีความด้วยสายตา ป้ายคลาสที่ทำนายได้ในผลลัพธ์ระบุประเภทวัตถุหลัก; ความน่าจะเป็นความเชื่อมั่นบ่งบอกความแน่นอนของการจำแนก; ความเชื่อมั่นต่ำบ่งชี้วัตถุกำกวมระดับกลาง; ความสำคัญของคุณลักษณะระบุว่าคุณสมบัติเชิงสเปกตรัม/สัณฐานใดเป็นตัวขับเคลื่อนการตัดสินใจจำแนก; แผนที่การจำแนกแสดงการกระจายของประเภทวัตถุโดยตรง; ความสับสนระหว่างคลาสที่คล้ายกันช่วยชี้แนะการปรับปรุงข้อมูลฝึก; ผลลัพธ์เชิงความน่าจะเป็นช่วยให้วัดปริมาณความไม่แน่นอนได้",
            "params": {
              "features": {
                "label": "ฟีเจอร์",
                "description": "ไฟล์ CSV คุณลักษณะของวัตถุนำเข้า (ต้องมี segment_id และคอลัมน์คุณลักษณะเชิงตัวเลข)."
              },
              "training": {
                "label": "ข้อมูลฝึกสอน",
                "description": "ไฟล์ CSV ฝึกสอนที่มีคอลัมน์ segment_id และป้ายกำกับคลาส."
              },
              "segment_id_field": {
                "label": "ฟิลด์รหัสเซกเมนต์",
                "description": "ชื่อฟิลด์รหัสเซกเมนต์ (ค่าเริ่มต้น segment_id)."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์ป้ายกำกับคลาสในไฟล์ CSV ฝึกสอน (ค่าเริ่มต้น class)."
              },
              "n_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ (ค่าเริ่มต้น 200)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลการทำนายผลลัพธ์."
              }
            }
          },
          "classify_objects_rules_basic": {
            "name": "จำแนกวัตถุด้วยกฎพื้นฐาน",
            "description": "ใช้การจำแนกวัตถุแบบอิงกฎที่โปร่งใสจากไฟล์ CSV ของกฎแบบคุณลักษณะ-ตัวดำเนินการ-ค่าเกณฑ์ ตรรกะการตัดสินใจที่ตีความได้อย่างสมบูรณ์สำหรับเวิร์กโฟลว์ของผู้เชี่ยวชาญเฉพาะด้านและการปฏิบัติตามข้อกำหนด",
            "params": {
              "features": {
                "label": "ฟีเจอร์",
                "description": "ไฟล์ CSV คุณลักษณะของวัตถุนำเข้า."
              },
              "rules": {
                "label": "กฎ",
                "description": "ไฟล์ CSV กฎที่มีคอลัมน์: feature, op, value, class, [priority]."
              },
              "default_class": {
                "label": "คลาสเริ่มต้น",
                "description": "คลาสสำรองเมื่อไม่มีกฎใดตรงกัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลการทำนายผลลัพธ์."
              }
            }
          },
          "classify_objects_rules_hierarchical": {
            "name": "จำแนกวัตถุด้วยกฎแบบลำดับชั้น",
            "description": "ใช้การจำแนกวัตถุแบบอิงกฎเชิงลำดับชั้น ปัจจุบันใช้กฎตามลำดับพร้อมค่าสำรองแบบกำหนดแน่นอน",
            "params": {
              "features": {
                "label": "ฟีเจอร์",
                "description": "ไฟล์ CSV คุณลักษณะของวัตถุนำเข้า."
              },
              "rules": {
                "label": "กฎ",
                "description": "ไฟล์ CSV กฎที่มีคอลัมน์: feature, op, value, class, [priority]."
              },
              "default_class": {
                "label": "คลาสเริ่มต้น",
                "description": "คลาสสำรองเมื่อไม่มีกฎใดตรงกัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลการทำนายผลลัพธ์."
              }
            }
          },
          "classify_objects_svm": {
            "name": "จำแนกวัตถุด้วย SVM",
            "description": "จำแนกวัตถุโดยใช้เวิร์กโฟลว์แบบ SVM (ใช้งานผ่านค่าเริ่มต้นของแบ็กเอนด์การจำแนกวัตถุที่ทนทาน)",
            "params": {
              "features": {
                "label": "ฟีเจอร์",
                "description": "ไฟล์ CSV คุณลักษณะของวัตถุนำเข้า (ต้องมี segment_id และคอลัมน์คุณลักษณะเชิงตัวเลข)."
              },
              "training": {
                "label": "ข้อมูลฝึกสอน",
                "description": "ไฟล์ CSV ฝึกสอนที่มีคอลัมน์ segment_id และป้ายกำกับคลาส."
              },
              "segment_id_field": {
                "label": "ฟิลด์รหัสเซกเมนต์",
                "description": "ชื่อฟิลด์รหัสเซกเมนต์ (ค่าเริ่มต้น segment_id)."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์ป้ายกำกับคลาสในไฟล์ CSV ฝึกสอน (ค่าเริ่มต้น class)."
              },
              "n_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ (ค่าเริ่มต้น 200)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลการทำนายผลลัพธ์."
              }
            }
          },
          "evaluate_object_classification_accuracy": {
            "name": "ประเมินความถูกต้องของการจำแนกวัตถุ",
            "description": "คำนวณดัชนีความถูกต้องของการจำแนกโดยเปรียบเทียบป้ายวัตถุที่ทำนายได้กับป้ายอ้างอิงจากข้อมูลจริงภาคพื้นดินหรือป้ายตรวจสอบความถูกต้อง สร้างเมทริกซ์ความสับสนที่บันทึกรูปแบบความสอดคล้อง/ไม่สอดคล้องของการจำแนกรายคลาส คำนวณความถูกต้องโดยรวม (จำนวนการทำนายที่ถูกต้องทั้งหมด) ความถูกต้องของผู้ผลิตรายคลาส (อัตราการตรวจจับ) ความถูกต้องของผู้ใช้ (ความน่าเชื่อถือ) ค่า F1-score (ค่าเฉลี่ยฮาร์มอนิก) ค่าสถิติ kappa (ความสอดคล้องที่ปรับแก้ผลจากความบังเอิญ) และการวิเคราะห์ความคลาดเคลื่อนรายคลาสเพื่อระบุรูปแบบการจำแนกผิดอย่างเป็นระบบ คุณสมบัติหลักได้แก่ การประเมินความถูกต้องอย่างครอบคลุมทุกคลาส ดัชนีประสิทธิภาพรายคลาสที่ช่วยวินิจฉัยเฉพาะคลาส เมทริกซ์ความสับสนที่เผยรูปแบบการจำแนกผิดอย่างเป็นระบบ การทดสอบนัยสำคัญทางสถิติผ่านสัมประสิทธิ์ kappa การรองรับการกระจายคลาสที่ไม่สมดุลโดยธรรมชาติ และการระบุปัญหาความเพียงพอของข้อมูลฝึก กรณีการใช้งานได้แก่ การตรวจสอบความถูกต้องของโมเดลการจำแนกและการวัดปริมาณประสิทธิภาพ การเปรียบเทียบแนวทางและพารามิเตอร์การจำแนกที่แข่งขันกัน การระบุคลาสวัตถุที่มีปัญหาซึ่งต้องการข้อมูลฝึกเพิ่มเติม การประเมินความเหมาะสมของการจำแนกสำหรับการใช้งานจริง การเลือกโมเดลและการปรับไฮเปอร์พารามิเตอร์ตามความถูกต้อง การประกันคุณภาพในเวิร์กโฟลว์การทำแผนที่อัตโนมัติ และการรายงานดัชนีความถูกต้องมาตรฐานสำหรับการพิจารณาโดยผู้ทรงคุณวุฒิ ความถูกต้องโดยรวมในผลลัพธ์แสดงความน่าเชื่อถือของการจำแนกของวัตถุทั้งหมด; ความถูกต้องของผู้ผลิตบ่งบอกความครบถ้วนของการตรวจจับรายคลาส; ความถูกต้องของผู้ใช้บ่งบอกความน่าเชื่อถือของการทำนาย; kappa สูง (>0.8) บ่งบอกความสอดคล้องที่เหนือกว่าความบังเอิญอย่างชัดเจน; เมทริกซ์ความสับสนเผยว่าคลาสใดสับสนกัน; การที่ค่าแนวทแยงมุมเด่นบ่งบอกการแยกคลาสที่ดี; ค่านอกแนวทแยงมุมชี้แหล่งที่มาของการจำแนกผิด; ดัชนีรายคลาสช่วยชี้แนะการปรับปรุงข้อมูลฝึกอย่างตรงจุด",
            "params": {
              "predictions": {
                "label": "ค่าทำนาย",
                "description": "ไฟล์ CSV ผลการทำนายที่มี segment_id และ predicted_class."
              },
              "reference": {
                "label": "ข้อมูลอ้างอิง",
                "description": "ไฟล์ CSV อ้างอิงที่มี segment_id และ class."
              },
              "segment_id_field": {
                "label": "ฟิลด์รหัสเซกเมนต์",
                "description": "ชื่อฟิลด์รหัสเซกเมนต์ (ค่าเริ่มต้น segment_id)."
              },
              "predicted_field": {
                "label": "ฟิลด์ค่าทำนาย",
                "description": "ฟิลด์คลาสที่ทำนาย (ค่าเริ่มต้น predicted_class)."
              },
              "reference_field": {
                "label": "ฟิลด์ค่าอ้างอิง",
                "description": "ฟิลด์คลาสอ้างอิง (ค่าเริ่มต้น class)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์รายงาน JSON ผลลัพธ์."
              }
            }
          },
          "evaluate_segmentation_quality_pro": {
            "name": "ประเมินคุณภาพการแบ่งส่วน Pro",
            "description": "คำนวณค่าวินิจฉัยคุณภาพการแบ่งส่วน รวมถึงจำนวนวัตถุและสถิติการซ้อนทับของป้ายที่เด่น",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "reference": {
                "label": "ข้อมูลอ้างอิง",
                "description": "แรสเตอร์ป้ายกำกับอ้างอิงเป็นตัวเลือกสำหรับการวินิจฉัยที่อิงการซ้อนทับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์รายงาน JSON ผลลัพธ์."
              }
            }
          },
          "image_segmentation": {
            "name": "การแบ่งส่วนภาพ",
            "description": "แบ่งส่วนสแตกแรสเตอร์หลายแบนด์ให้เป็นบริเวณที่ต่อเนื่องและเป็นเนื้อเดียวกันโดยใช้การขยายบริเวณจากจุดเริ่มต้น (seeded region growing)",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว (หนึ่งชั้นต่อหนึ่งแบนด์)."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ระยะทางสำหรับการขยายภูมิภาคในปริภูมิคุณลักษณะที่ทำเป็นมาตรฐานแล้ว (ค่าเริ่มต้น 0.5)."
              },
              "steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนแบนด์ที่ใช้จัดลำดับความสำคัญของจุดเริ่มต้น (ค่าเริ่มต้น 10)."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "พื้นที่ภูมิภาคต่ำสุดสำหรับการทำความสะอาดหลังการรวมเป็นตัวเลือก (ค่าเริ่มต้น 4)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "image_slider": {
            "name": "ตัวเลื่อนภาพ",
            "description": "Image Slider เป็นเครื่องมือแสดงผลแบบโต้ตอบที่ช่วยให้เปรียบเทียบระดับพิกเซลโดยตรงระหว่างชุดข้อมูลแรสเตอร์ที่ลงทะเบียนร่วมกัน ผ่านเส้นแบ่งซ้อนทับแนวนอนหรือแนวตั้งที่ลากได้ อัลกอริทึม: เก็บชุดข้อมูลแรสเตอร์ที่จัดแนวแล้วสองชุดไว้ในหน่วยความจำ เรนเดอร์มุมมองรวมโดยตำแหน่งเส้นแบ่งที่ปรับได้ควบคุมการมองเห็นเลเยอร์ การโต้ตอบของผู้ใช้ปรับเส้นแบ่งแบบไดนามิกทำให้เกิดเอฟเฟกต์แบ่งหน้าจอ รองรับการแบ่งทั้งแนวนอนและแนวตั้ง คุณสมบัติหลัก: การเปรียบเทียบแบบโต้ตอบตามเวลาจริง คงการแสดงผลที่ความละเอียดเต็ม ส่วนติดต่อผู้ใช้ที่ใช้งานง่ายโดยไม่ต้องมีทักษะการวิเคราะห์ ทำงานกับแรสเตอร์หลายสเปกตรัมและแรสเตอร์แบบดัชนี รองรับชุดข้อมูลขนาดใหญ่ด้วยการเรนเดอร์ที่มีประสิทธิภาพ ความสามารถ: การแสดงผลการตรวจหาการเปลี่ยนแปลง การเปรียบเทียบก่อน/หลัง การวิเคราะห์หลายช่วงเวลา การประเมินการปรับมาตรฐานเชิงรังสี การตรวจสอบความถูกต้องของการจำแนกด้วยสายตา กรณีการใช้งาน: การตรวจหาการเปลี่ยนแปลงของภาพระหว่างวันที่ การเปรียบเทียบผลการจำแนกกับข้อมูลอ้างอิง การประเมินประสิทธิผลของการประมวลผลเบื้องต้น การตรวจหาการเปลี่ยนแปลงด้วยสายตาในการวิเคราะห์อนุกรมเวลา การประยุกต์ใช้: การประเมินความเสียหายเพื่อตอบสนองภัยพิบัติ การติดตามการขยายตัวของเมือง การตรวจจับการรบกวนของป่า การติดตามการเปลี่ยนแปลงทางการเกษตร การควบคุมคุณภาพของผลลัพธ์การประมวลผลภาพ การตีความผลลัพธ์: ความแตกต่างที่มองเห็นเผยให้เห็นขนาดและตำแหน่งของการเปลี่ยนแปลง; ขอบที่คมชัดบ่งบอกการเปลี่ยนแปลงที่มีนัยสำคัญ; การเปลี่ยนผ่านแบบค่อยเป็นค่อยไปบ่งชี้ความคลาดเคลื่อนของการลงทะเบียนภาพหรือการไล่ระดับตามเวลา; ความแตกต่างที่เป็นระบบทั่วทั้งภาพเผยให้เห็นสิ่งแปลกปลอมจากการประมวลผลอย่างเป็นระบบ",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์ภาพซ้ายหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์ภาพขวาหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "label1": {
                "label": "ป้ายกำกับ 1",
                "description": "ป้ายกำกับที่แสดงสำหรับภาพซ้ายเป็นตัวเลือก."
              },
              "left_palette": {
                "label": "จานสีด้านซ้าย",
                "description": "จานสีสำหรับภาพซ้ายที่ไม่ใช่ RGB (ค่าเริ่มต้น grey)."
              },
              "left_reverse_palette": {
                "label": "กลับลำดับจานสีด้านซ้าย",
                "description": "กลับด้านจานสีซ้าย."
              },
              "label2": {
                "label": "ป้ายกำกับ 2",
                "description": "ป้ายกำกับที่แสดงสำหรับภาพขวาเป็นตัวเลือก."
              },
              "right_palette": {
                "label": "จานสีด้านขวา",
                "description": "จานสีสำหรับภาพขวาที่ไม่ใช่ RGB (ค่าเริ่มต้น grey)."
              },
              "right_reverse_palette": {
                "label": "กลับลำดับจานสีด้านขวา",
                "description": "กลับด้านจานสีขวา."
              },
              "height": {
                "label": "ความสูง",
                "description": "ความสูงของการแสดงผลเป็นพิกเซล (ค่าเริ่มต้น 600)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ HTML ผลลัพธ์."
              }
            }
          },
          "image_stack_profile": {
            "name": "โปรไฟล์สแตกภาพ",
            "description": "สกัดโปรไฟล์รายจุดข้ามสแตกแรสเตอร์ที่เรียงลำดับ และเขียนรายงาน HTML ได้ตามต้องการ",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการแรสเตอร์นำเข้าในรูปอาร์เรย์ของพาธ หรือสตริงที่คั่นด้วยจุลภาค/อัฒภาค."
              },
              "points": {
                "label": "จุด",
                "description": "พาธเวกเตอร์จุด (หรืออ็อบเจกต์เวกเตอร์ที่มีชนิดกำกับ) ที่มีตำแหน่งตัวอย่าง."
              },
              "output_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธไฟล์รายงาน HTML ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "obia_audit_report_pro": {
            "name": "รายงานตรวจสอบ OBIA Pro",
            "description": "สร้างรายงานตรวจสอบสำหรับไฟล์ผลงานของเวิร์กโฟลว์ OBIA รวมถึงการมีอยู่ของไฟล์ ขนาด และเมทาดาทาการประทับเวลา",
            "params": {
              "artifacts": {
                "label": "อาร์ทิแฟกต์",
                "description": "อาร์เรย์ของพาธอาร์ติแฟกต์ที่จะตรวจสอบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ JSON รายงานการตรวจสอบผลลัพธ์."
              }
            }
          },
          "obia_batch_orchestrator_pro": {
            "name": "ตัวจัดการงานแบตช์ OBIA Pro",
            "description": "เรียกใช้งานไปป์ไลน์ OBIA หลายงานในคำขอเดียวและส่งคืนรายงานงานแบบรวม",
            "params": {
              "jobs": {
                "label": "งาน",
                "description": "อาร์เรย์ของอ็อบเจกต์งานที่มี inputs, training, output_prefix และ segment_method เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์รายงาน JSON ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "obia_pipeline_basic": {
            "name": "ไปป์ไลน์ OBIA พื้นฐาน",
            "description": "ดำเนินเวิร์กโฟลว์ OBIA ครบวงจรตั้งแต่ต้นจนจบ: การแบ่งส่วน (SLIC/Graph) การผสานบริเวณขนาดเล็ก การสกัดคุณลักษณะเชิงสเปกตรัม/รูปร่าง และการจำแนกแบบ random forest ในการดำเนินการเดียว",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียวสำหรับการแบ่งส่วน/คุณลักษณะ."
              },
              "training": {
                "label": "ข้อมูลฝึกสอน",
                "description": "ไฟล์ CSV ฝึกสอนที่มีคอลัมน์ segment_id และ class."
              },
              "output_prefix": {
                "label": "คำนำหน้าผลลัพธ์",
                "description": "คำนำหน้าพาธผลลัพธ์สำหรับอาร์ติแฟกต์ที่สร้างขึ้น."
              },
              "segment_method": {
                "label": "วิธีแบ่งส่วน",
                "description": "วิธีแบ่งส่วน: slic หรือ graph (ค่าเริ่มต้น slic)."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "ขนาดเซกเมนต์ต่ำสุดสำหรับการทำความสะอาดด้วยการรวม (ค่าเริ่มต้น 10)."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ชื่อฟิลด์คลาสฝึกสอน (ค่าเริ่มต้น class)."
              }
            }
          },
          "object_class_probability_maps": {
            "name": "แผนที่ความน่าจะเป็นของคลาสวัตถุ",
            "description": "แปลงผลการทำนายเป็นแผนที่ความน่าจะเป็นรายคลาส ทำให้แสดงผลความไม่แน่นอนแบบแรสเตอร์และกรองตามความเชื่อมั่นได้ รองรับการกำหนดค่าเกณฑ์ความเชื่อมั่นในขั้นตอนถัดไปและกรณีหลายป้ายกำกับ",
            "params": {
              "predictions": {
                "label": "ค่าทำนาย",
                "description": "ไฟล์ CSV ผลการทำนายที่มี segment_id และ predicted_class."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ความน่าจะเป็นผลลัพธ์."
              }
            }
          },
          "object_features_context_neighbors": {
            "name": "คุณลักษณะวัตถุ: บริบทเพื่อนบ้าน",
            "description": "คำนวณคุณลักษณะบริบทเชิงพื้นที่: จำนวนวัตถุที่อยู่ติดกัน ความยาวขอบเขตร่วม และดัชนีการแยกตัว ทำให้สามารถจำแนกโดยคำนึงถึงเพื่อนบ้านซึ่งจับความสัมพันธ์ของวัตถุในภูมิทัศน์ได้",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "object_features_shape_basic": {
            "name": "คุณลักษณะวัตถุ: รูปร่างพื้นฐาน",
            "description": "คำนวณตัวอธิบายรูปร่างเชิงเรขาคณิตและสัณฐานสำหรับแต่ละเซกเมนต์ ได้แก่ พื้นที่ (จำนวนพิกเซล) เส้นรอบรูป (ความยาวขอบเขต) ความกะทัดรัด (ความเป็นวงกลมที่ปรับมาตรฐานด้วยเส้นรอบรูป) ความยืด (อัตราส่วนความยาวต่อความกว้าง) ตัวประกอบรูปทรง (ความสม่ำเสมอของรูปร่างที่ปรับมาตรฐาน) และความทึบ (ประสิทธิภาพเทียบคอนเวกซ์ฮัลล์) ตัวอธิบายรูปร่างจับลักษณะเชิงโครงสร้างโดยไม่ขึ้นกับเนื้อหาเชิงสเปกตรัม ทำให้จำแนกเรขาคณิตของวัตถุและรู้จำรูปแบบทางสัณฐานได้ คุณสมบัติหลักได้แก่ ชุดดัชนีรูปร่างที่ครอบคลุมพื้นที่ เส้นรอบรูป ความสม่ำเสมอ และความยืด อัลกอริทึมติดตามขอบเขตที่มีประสิทธิภาพเชิงคำนวณ ดัชนีที่ไม่แปรเปลี่ยนต่อการหมุนและการเลื่อนตำแหน่ง ใช้ได้กับหลายช่วงมาตราส่วน และความสามารถในการจำแนกวัตถุเชิงสัณฐาน (เช่น ถนนที่ยืดยาวเทียบกับอาคารที่กะทัดรัด) กรณีการใช้งานครอบคลุมการจำแนกรอยเท้าอาคารและการวิเคราะห์โครงสร้างเมือง การสกัดลักษณะเชิงเส้น (ถนน แม่น้ำ ขอบเขต) การอธิบายลักษณะหย่อมพืชพรรณและการวิเคราะห์การแตกกระจาย การควบคุมคุณภาพผ่านการกรองตามรูปร่าง การรู้จำวัตถุเชิงลำดับชั้นที่รวมคุณสมบัติรูปร่างและสเปกตรัม และการวัดปริมาณโครงสร้างภูมิทัศน์ในการติดตามทางนิเวศวิทยา พื้นที่ในผลลัพธ์วัดขนาดเซกเมนต์เป็นพิกเซล; เส้นรอบรูปบ่งบอกความซับซ้อนของขอบเขต; ความกะทัดรัดใกล้ 1.0 บ่งบอกรูปร่างกลม/สม่ำเสมอ ค่าที่ต่ำกว่าบ่งบอกลักษณะที่ไม่สม่ำเสมอ/ยืดยาว; ความยืด >1 บ่งบอกลักษณะเชิงเส้น ใกล้ 1 บ่งบอกวัตถุที่กะทัดรัด; ตัวประกอบรูปทรงรวมคุณสมบัติรูปร่างหลายอย่างเพื่อการจำแนกรูปร่างแบบบูรณาการ; ดัชนีรูปร่างช่วยให้กรองเชิงสัณฐานเพื่อแยกประเภทวัตถุเป้าหมายได้",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "object_features_spectral_basic": {
            "name": "คุณลักษณะวัตถุ: สเปกตรัมพื้นฐาน",
            "description": "คำนวณสรุปสถิติตัวแปรเดียวอย่างครอบคลุมของค่าการสะท้อนเชิงสเปกตรัมภายในแต่ละเซกเมนต์ในทุกแบนด์ของภาพ การคำนวณรายเซกเมนต์ประกอบด้วยค่าการสะท้อนเฉลี่ย ส่วนเบี่ยงเบนมาตรฐาน (ความเป็นเนื้อเดียวกัน) ขอบเขตค่าการสะท้อนต่ำสุดและสูงสุด ค่าควอนไทล์สำหรับการประมาณแบบทนทาน และสถิติรายแบนด์ที่ช่วยวัดปริมาณเนื้อสัมผัสหลายสเปกตรัมและอธิบายลักษณะโปรไฟล์สเปกตรัม ซึ่งเป็นพื้นฐานของเวิร์กโฟลว์การจำแนก OBIA คุณสมบัติหลักได้แก่ การสร้างสถิติเชิงสเปกตรัมรายแบนด์สำหรับภาพหลายสเปกตรัมและไฮเปอร์สเปกตรัม ค่าสถิติที่ทนทานซึ่งจับแนวโน้มเข้าสู่ส่วนกลางและการกระจาย การระบุความผิดปกติเชิงสเปกตรัมและค่าผิดปกติภายในเซกเมนต์ การสรุปจากแรสเตอร์เป็นเวกเตอร์อย่างมีประสิทธิภาพ และผลลัพธ์ที่ป้อนเข้าไปป์ไลน์การจำแนกด้วยการเรียนรู้ของเครื่องได้โดยตรง กรณีการใช้งานครอบคลุมการสกัดคุณลักษณะสำหรับการจำแนกเชิงวัตถุด้วยดัชนีเชิงสเปกตรัม การระบุประเภทสิ่งปกคลุมดินผ่านการวิเคราะห์ลายเซ็นเชิงสเปกตรัม การตรวจหาการเปลี่ยนแปลงผ่านการเปรียบเทียบสถิติเชิงสเปกตรัมข้ามลำดับเวลา การประเมินคุณภาพข้อมูลและการตรวจหาค่าผิดปกติ การติดตามสิ่งแวดล้อมผ่านการวิเคราะห์อนุกรมเวลาเชิงสเปกตรัม และการประยุกต์ใช้ในเกษตรแม่นยำที่ต้องการอธิบายลักษณะการตอบสนองเชิงสเปกตรัมที่ปรับมาตรฐานแล้ว ค่าเฉลี่ยในผลลัพธ์แสดงการตอบสนองเชิงสเปกตรัมโดยทั่วไปของวัสดุในเซกเมนต์; ส่วนเบี่ยงเบนมาตรฐานวัดความไม่เป็นเนื้อเดียวกันภายใน (ต่ำ = พื้นผิวเป็นเนื้อเดียวกัน สูง = วัสดุผสมหรือเงา); ขอบเขตต่ำสุด/สูงสุดระบุค่าสุดขั้วเชิงสเปกตรัมภายในเซกเมนต์; โปรไฟล์สเปกตรัมช่วยให้เปรียบเทียบกับลายเซ็นอ้างอิงได้; สถิติเป็นพื้นฐานของเวกเตอร์คุณลักษณะสำหรับการจำแนก; การวิเคราะห์รายแบนด์เผยให้เห็นดัชนีเชิงสเปกตรัมและความสามารถในการแยกแยะวัสดุ",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียวที่ใช้สำหรับคุณลักษณะเชิงสเปกตรัม."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "object_features_texture_glcm_basic": {
            "name": "คุณลักษณะวัตถุ: พื้นผิว GLCM พื้นฐาน",
            "description": "สกัดลักษณะเนื้อสัมผัสโดยใช้การวิเคราะห์เมทริกซ์การเกิดร่วมของระดับสีเทา (GLCM) ที่คำนวณจากการกระจายความเข้มรายแบนด์ภายในแต่ละเซกเมนต์ GLCM วัดปริมาณการเกิดร่วมเชิงพื้นที่ของระดับโทนสี โดยสร้างตัวอธิบายได้แก่ คอนทราสต์ (ความแปรผันเฉพาะที่) ความเป็นเนื้อเดียวกัน (ความสม่ำเสมอเชิงพื้นที่) พลังงาน (ความเป็นระเบียบ) เอนโทรปี (ความไร้ระเบียบ) และดัชนีความไม่คล้ายคลึง ซึ่งจับรูปแบบเนื้อสัมผัสโดยไม่ขึ้นกับความสว่างเชิงสเปกตรัมโดยรวม คุณสมบัติหลักได้แก่ ดัชนีเนื้อสัมผัสแบบ GLCM ที่จับรูปแบบเชิงพื้นที่เฉพาะที่ภายในเซกเมนต์ การวิเคราะห์หลายทิศทาง (แนวนอน แนวตั้ง แนวทแยง) เพื่ออธิบายเนื้อสัมผัสโดยไม่ขึ้นกับทิศทาง ใช้ได้กับทุกแบนด์ของภาพเพื่อสร้างลายพิมพ์เนื้อสัมผัส การแยกแยะพื้นผิวที่มีเนื้อสัมผัสกับพื้นผิวเรียบ และการวิเคราะห์ระดับเซกเมนต์ที่คำนวณได้ในทางปฏิบัติ กรณีการใช้งานได้แก่ การจำแนกวัสดุตามความขรุขระของพื้นผิวและเนื้อสัมผัส (แอสฟัลต์เทียบกับคอนกรีต การแยกประเภทพืชผล) การอธิบายโครงสร้างและความหนาแน่นของป่าผ่านเนื้อสัมผัสของเรือนยอด การแปลตีความภาพ SAR และการวิเคราะห์เนื้อสัมผัสของโครงสร้างเมือง การแยกแยะพื้นผิวที่มีคุณภาพกับพื้นผิวที่เสื่อมสภาพ การประเมินสุขภาพพืชผลผ่านดัชนีเนื้อสัมผัสของเรือนยอด และการตรวจจับเมฆและเงาจากความผิดปกติของเนื้อสัมผัส คอนทราสต์สูงในผลลัพธ์บ่งบอกเนื้อสัมผัสขรุขระ/แปรผัน ต่ำบ่งบอกพื้นผิวเรียบ; ความเป็นเนื้อเดียวกันสูงบ่งบอกรูปแบบเชิงพื้นที่ที่สม่ำเสมอ ต่ำบ่งบอกเนื้อสัมผัสที่ยุ่งเหยิง; พลังงานสูงบ่งบอกเนื้อสัมผัสที่เป็นระเบียบ ต่ำบ่งบอกสัญญาณรบกวนแบบสุ่ม; เอนโทรปีวัดความไร้ระเบียบของเนื้อสัมผัส; ความไม่คล้ายคลึงจับความไม่สม่ำเสมอของรูปแบบเชิงพื้นที่; โปรไฟล์เนื้อสัมผัสช่วยให้จำแนกเฉพาะวัสดุได้; การรวมกับคุณลักษณะเชิงสเปกตรัมช่วยปรับปรุงการแยกแยะประเภทวัตถุ",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ความเข้มแบบแบนด์เดียวสำหรับการวิเคราะห์พื้นผิว."
              },
              "levels": {
                "label": "ระดับ",
                "description": "ระดับการควอนไทซ์สำหรับ GLCM (ค่าเริ่มต้น 16)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "object_features_topology_relations": {
            "name": "คุณลักษณะวัตถุ: ความสัมพันธ์ทอพอโลยี",
            "description": "คำนวณคุณลักษณะทอพอโลยีกราฟ: ดีกรีของวัตถุ (จำนวนเพื่อนบ้าน) ความแรงของเพื่อนบ้านที่เด่น และแฟล็กจุดเชื่อมต่อ (articulation) จับตำแหน่งเชิงโครงสร้างในโครงข่ายวัตถุสำหรับการจำแนกเชิงลำดับชั้น",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "object_uncertainty_diagnostics_pro": {
            "name": "วินิจฉัยความไม่แน่นอนของวัตถุ Pro",
            "description": "คำนวณค่าวินิจฉัยความไม่แน่นอนแบบรวมจากผลลัพธ์ความน่าจะเป็นของวัตถุ",
            "params": {
              "probabilities": {
                "label": "ความน่าจะเป็น",
                "description": "ไฟล์ CSV ความน่าจะเป็นนำเข้าที่มีคอลัมน์ความน่าจะเป็นและความไม่แน่นอน."
              },
              "low_conf_threshold": {
                "label": "ค่าเกณฑ์ความเชื่อมั่นต่ำ",
                "description": "ค่าเกณฑ์ความเชื่อมั่นต่ำบนความน่าจะเป็น (ค่าเริ่มต้น 0.7)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ JSON การวินิจฉัยผลลัพธ์."
              }
            }
          },
          "objects_boundary_refinement_pro": {
            "name": "ปรับแต่งขอบเขตวัตถุ Pro",
            "description": "ปรับปรุงขอบเขตวัตถุโดยใช้การล้างบริเวณขนาดเล็กแบบวนซ้ำร่วมกับการผสานที่คำนึงถึงเพื่อนบ้าน",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบการปรับละเอียด (ค่าเริ่มต้น 2)."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "ค่าเกณฑ์ขนาดวัตถุต่ำสุด (ค่าเริ่มต้น 6)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ที่ปรับละเอียดแล้วผลลัพธ์."
              }
            }
          },
          "objects_enforce_min_mapping_unit": {
            "name": "บังคับหน่วยแผนที่ขั้นต่ำของวัตถุ",
            "description": "บังคับใช้หน่วยการทำแผนที่ขั้นต่ำโดยผสานเซกเมนต์วัตถุที่มีขนาดเล็กเกินไป",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "ขนาดเซกเมนต์ต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 5)."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีรวม: longest, largest, nearest (ค่าเริ่มต้น longest)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "polygons_to_segments": {
            "name": "โพลิกอนเป็นเซกเมนต์",
            "description": "แปลงโพลิกอนที่แก้ไขแล้วกลับเป็นแรสเตอร์ป้ายเซกเมนต์ โดยคงรหัสวัตถุหรือค่าแอตทริบิวต์ไว้ ทำให้เวิร์กโฟลว์ OBIA แบบวนซ้ำที่รวมการแบ่งส่วนอัตโนมัติกับการปรับปรุงด้วยมือเป็นไปได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์โพลิกอนนำเข้า."
              },
              "base": {
                "label": "ฐาน",
                "description": "แรสเตอร์ฐานที่กำหนดกริดผลลัพธ์."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์เชิงตัวเลขที่จะฝังเป็นตัวเลือก (ค่าเริ่มต้น FID)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์เซกเมนต์ผลลัพธ์."
              }
            }
          },
          "propagate_labels_across_hierarchy": {
            "name": "ถ่ายทอดป้ายกำกับข้ามลำดับชั้น",
            "description": "ถ่ายทอดป้ายคลาสระดับหยาบไปยังวัตถุลูกระดับละเอียดผ่านการจับคู่ลำดับชั้น ทำให้กำหนดป้ายให้ลำดับชั้นซ้อนและเวิร์กโฟลว์การปรับปรุงแบบสืบทอดได้อย่างมีประสิทธิภาพ",
            "params": {
              "hierarchy": {
                "label": "ลำดับชั้น",
                "description": "ไฟล์ CSV ลำดับชั้นที่มี fine_segment_id และ coarse_segment_id."
              },
              "parent_labels": {
                "label": "ป้ายกำกับแม่",
                "description": "ไฟล์ CSV ป้ายกำกับระดับบนที่มี coarse_segment_id และ class."
              },
              "child_labels": {
                "label": "ป้ายกำกับลูก",
                "description": "ไฟล์ CSV ป้ายกำกับระดับล่างเป็นตัวเลือกที่มี fine_segment_id และ class."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ป้ายกำกับที่กระจายแล้วผลลัพธ์."
              }
            }
          },
          "segment_graph_felzenszwalb": {
            "name": "แบ่งส่วนด้วยกราฟ Felzenszwalb",
            "description": "การแบ่งส่วนแบบอิงกราฟของ Felzenszwalb มองภาพเป็นกราฟไม่มีทิศทางแบบถ่วงน้ำหนัก โดยพิกเซลเป็นโหนดและเส้นเชื่อมเชื่อมพิกเซลที่อยู่ติดกันด้วยน้ำหนักที่แทนความไม่คล้ายคลึงเชิงสเปกตรัม เซกเมนต์ถูกผสานแบบวนซ้ำโดยเปรียบเทียบน้ำหนักเส้นเชื่อมภายในองค์ประกอบกับค่าเกณฑ์แบบไดนามิก เส้นเชื่อมที่มีน้ำหนักต่ำกว่าค่าเกณฑ์จะถูกผสาน ทำให้ได้เซกเมนต์ที่มีลักษณะเชิงสเปกตรัมเป็นเนื้อเดียวกันเฉพาะที่ แนวทางเชิงลำดับชั้นนี้ให้การแบ่งส่วนที่มีความหมายเชิงการรับรู้ ไวต่อความแปรผันของคอนทราสต์เฉพาะที่และความไม่ต่อเนื่องตามธรรมชาติของสี/เนื้อสัมผัส คุณสมบัติหลัก: การแบ่งส่วนเชิงลำดับชั้นแบบอิงกราฟ; ความซับซ้อนเชิงคำนวณ O(n log n) ที่มีประสิทธิภาพ; ไวต่อความแปรผันของคอนทราสต์เฉพาะที่; ให้เซกเมนต์ที่มีความหมายเชิงการรับรู้; รองรับข้อมูลหลายสเปกตรัม/ไฮเปอร์สเปกตรัม; สร้างบริเวณขนาดแปรผันที่คงขอบเขตตามธรรมชาติ กรณีการใช้งาน: การแบ่งส่วนภาพหลายสเปกตรัม; การทำแผนที่ถิ่นที่อยู่อาศัยตามธรรมชาติ; การสกัดลักษณะในเมือง; การกำหนดขอบเขตเรือนยอดป่า; การประมวลผลเบื้องต้นสำหรับการตรวจหาการเปลี่ยนแปลง; การแบ่งส่วนข้อมูลไฮเปอร์สเปกตรัม การตีความผลลัพธ์: ผลลัพธ์คือแรสเตอร์ที่มีป้ายกำกับ แต่ละพิกเซลได้รับรหัสเซกเมนต์ ขนาดเซกเมนต์แปรผกผันกับคอนทราสต์เชิงสเปกตรัมเฉพาะที่; ขอบเขตที่มีคอนทราสต์สูงให้เซกเมนต์ที่เล็กและมีจำนวนมาก; บริเวณที่สม่ำเสมอผสานเป็นเซกเมนต์ที่ใหญ่กว่า ความไวต่อพารามิเตอร์ k (มาตราส่วนค่าเกณฑ์) ทำให้สร้างการแบ่งส่วนที่หยาบหรือละเอียดขึ้นได้ ขอบเขตเซกเมนต์สอดคล้องกับความไม่ต่อเนื่องเชิงสเปกตรัมตามธรรมชาติ",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "k": {
                "label": "K",
                "description": "พารามิเตอร์มาตราส่วนการแบ่งส่วน (ค่าเริ่มต้น 500.0)."
              },
              "sigma": {
                "label": "Sigma",
                "description": "คำแนะนำการทำให้เรียบเป็นตัวเลือก (ค่าเริ่มต้น 0.8)."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "พื้นที่ต่ำสุดสำหรับการทำความสะอาดหลังการรวม (ค่าเริ่มต้น 20)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์เซกเมนต์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "segment_multiresolution_hierarchical": {
            "name": "แบ่งส่วนหลายความละเอียดแบบลำดับชั้น",
            "description": "สร้างการแบ่งส่วนเชิงลำดับชั้นหลายมาตราส่วน (หยาบและละเอียด) พร้อมการจับคู่แม่-ลูกอย่างชัดเจน ทำให้สกัดคุณลักษณะที่ขึ้นกับมาตราส่วนและเวิร์กโฟลว์การจำแนกหลายระดับได้",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "coarse_k": {
                "label": "K หยาบ",
                "description": "พารามิเตอร์มาตราส่วนหยาบ (ค่าเริ่มต้น 800)."
              },
              "fine_k": {
                "label": "K ละเอียด",
                "description": "พารามิเตอร์มาตราส่วนละเอียด (ค่าเริ่มต้น 250)."
              },
              "output_prefix": {
                "label": "คำนำหน้าผลลัพธ์",
                "description": "คำนำหน้าผลลัพธ์สำหรับผลิตภัณฑ์ที่สร้างขึ้น."
              }
            }
          },
          "segment_scale_parameter_optimizer": {
            "name": "ตัวปรับพารามิเตอร์มาตราส่วนการแบ่งส่วน",
            "description": "ค้นหาพารามิเตอร์มาตราส่วนการแบ่งส่วนที่เป็นตัวเลือก เพื่อระบุมาตราส่วนที่เหมาะสมที่สุดที่ตรงกับจำนวนวัตถุเป้าหมาย การเลือกมาตราส่วนอัตโนมัติช่วยขจัดการปรับแต่งด้วยมือเพื่อคุณภาพการแบ่งส่วนที่สม่ำเสมอ",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "candidate_scales": {
                "label": "มาตราส่วนตัวเลือก",
                "description": "รายการค่ามาตราส่วน (k) ที่เป็นไปได้."
              },
              "target_objects": {
                "label": "จำนวนวัตถุเป้าหมาย",
                "description": "จำนวนวัตถุที่ต้องการ ค่าเริ่มต้นคือ sqrt(total_cells)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ JSON รายงานตัวหาค่าเหมาะที่สุดเป็นตัวเลือก."
              }
            }
          },
          "segment_slic_superpixels": {
            "name": "แบ่งส่วนซูเปอร์พิกเซล SLIC",
            "description": "SLIC (Simple Linear Iterative Clustering) ทำการจัดกลุ่มพิกเซลแบบวนซ้ำในปริภูมิคุณลักษณะ 5 มิติที่รวมพิกัดเชิงพื้นที่และค่าสี/สเปกตรัม โดยทำให้ซูเปอร์พิกเซลลู่เข้าสู่ความเป็นเนื้อเดียวกันเฉพาะที่ อัลกอริทึมเริ่มต้นด้วยกริดปกติของจุดศูนย์กลางคลัสเตอร์และกำหนดพิกเซลให้กับจุดศูนย์กลางที่ใกล้ที่สุด แล้วปรับปรุงจุดศูนย์กลางและลดบริเวณการค้นหาแบบวนซ้ำ ให้ซูเปอร์พิกเซลที่กะทัดรัดและมีรูปร่างสม่ำเสมอ โดยละเมิดขอบเขตน้อยที่สุดเมื่อเทียบกับทางเลือกแบบ watershed หรือ mean-shift และยึดติดกับขอบตามธรรมชาติได้ดีกว่า คุณสมบัติหลัก: ให้ซูเปอร์พิกเซลที่สม่ำเสมอและกะทัดรัด; มีประสิทธิภาพเชิงคำนวณด้วยความซับซ้อนเชิงเวลาแบบเชิงเส้น; พารามิเตอร์ความกะทัดรัดที่ผู้ใช้กำหนดได้ช่วยสมดุลระหว่างความสม่ำเสมอเชิงพื้นที่กับความสอดคล้องเชิงสเปกตรัม; การล้ำขอบเขตน้อยที่สุด; รองรับภาพหลายสเปกตรัม กรณีการใช้งาน: การประมวลผลเบื้องต้นสำหรับการจำแนกเชิงวัตถุ; การวิเคราะห์บริเวณเชิงลำดับชั้น; การแบ่งส่วนภาพ SAR และภาพเชิงแสง; การทำแผนที่เมือง; การกำหนดขอบเขตพืชพรรณ; การระบุขอบเขตการใช้ประโยชน์ที่ดิน การตีความผลลัพธ์: ผลลัพธ์คือแรสเตอร์ที่มีป้ายกำกับ โดยค่าพิกเซลแทนรหัสซูเปอร์พิกเซลที่กำหนด ขอบเขตซูเปอร์พิกเซลสอดคล้องกับขอบที่เด่นและการเปลี่ยนผ่านของสี ซูเปอร์พิกเซลที่เล็กกว่า (ความละเอียดสูงกว่า) จับรายละเอียดได้ละเอียดกว่าแต่เพิ่มภาระการคำนวณ; ซูเปอร์พิกเซลที่ใหญ่กว่า (ความละเอียดต่ำกว่า) ผสานบริเวณที่คล้ายกัน ช่วยเพิ่มประสิทธิภาพ ความถูกต้องของขอบเขตขึ้นกับการปรับพารามิเตอร์ความกะทัดรัดและการแยกแบนด์หลายสเปกตรัม",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "region_size": {
                "label": "ขนาดภูมิภาค",
                "description": "ขนาดซูเปอร์พิกเซลเป้าหมายเป็นพิกเซล (ค่าเริ่มต้น 20)."
              },
              "compactness": {
                "label": "ความกะทัดรัด",
                "description": "การควบคุมความกะทัดรัด (ค่าเริ่มต้น 10.0)."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "พื้นที่ต่ำสุดสำหรับการรวมเพื่อทำความสะอาด (ค่าเริ่มต้นได้จาก region_size)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์เซกเมนต์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "segment_watershed_markers": {
            "name": "แบ่งส่วนด้วย Watershed แบบมาร์กเกอร์",
            "description": "การแบ่งส่วนคล้าย watershed ที่ขับเคลื่อนด้วยมาร์กเกอร์ ซึ่งแยกวัตถุรอบบริเวณจุดเริ่มต้นของมาร์กเกอร์ที่ระบุ เน้นการคงขอบเขตไว้พร้อมควบคุมขนาดเซกเมนต์สำหรับเวิร์กโฟลว์ OBIA เชิงลำดับชั้น",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "gradient_weight": {
                "label": "น้ำหนักเกรเดียนต์",
                "description": "การควบคุมการเน้นขอบเขต (ค่าเริ่มต้น 1.0)."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "ขนาดเซกเมนต์ต่ำสุด (ค่าเริ่มต้น 12)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์เซกเมนต์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "segments_merge_small_regions": {
            "name": "รวมเซกเมนต์ขนาดเล็ก",
            "description": "การผสานเซกเมนต์ดำเนินการรวมเชิงลำดับชั้นผ่านการวิเคราะห์การอยู่ติดกันเชิงพื้นที่และเกณฑ์การผสานที่ผู้ใช้กำหนด ประเมินเซกเมนต์ที่มีขนาดเล็กเกินไปแต่ละเซกเมนต์เทียบกับบริเวณข้างเคียงโดยใช้ค่าเกณฑ์ขนาด การวัดความคล้ายคลึงเชิงสเปกตรัม หรือเกณฑ์เชิงสัณฐานที่กำหนดเอง แล้วค่อย ๆ ผสานเซกเมนต์ที่เป็นตัวเลือกเข้ากับเพื่อนบ้านที่ดูดซับตามคิวลำดับความสำคัญที่อิงต้นทุนการผสาน โดยคงความเชื่อมต่อของเซกเมนต์และหลีกเลี่ยงการละเมิดทอพอโลยี คุณสมบัติหลักได้แก่ การทำให้เป็นระเบียบหลังการประมวลผลสำหรับภาพที่แบ่งส่วนมากเกินไป เกณฑ์การผสานที่ผู้ใช้กำหนดได้ (ขนาดขั้นต่ำ ค่าเกณฑ์ความคล้ายคลึงเชิงสเปกตรัม คุณสมบัติเชิงสัณฐาน) การคงความสมบูรณ์ของขอบเขตเซกเมนต์ระหว่างการผสาน การสร้างแผนที่เซกเมนต์ที่กะทัดรัดและเรียบง่าย และการปรับปรุงเชิงลำดับชั้นโดยไม่ต้องแบ่งส่วนใหม่ทั้งหมด กรณีการใช้งานได้แก่ การล้างผล OBIA ที่แบ่งส่วนมากเกินไปเพื่อลดการแตกกระจายและสัญญาณรบกวน การทำให้เซกเมนต์เรียบง่ายเพื่อเพิ่มเสถียรภาพของการจำแนก การกำจัดเซกเมนต์ขนาดเล็กที่ไม่พึงประสงค์จากการแบ่งส่วนเริ่มต้น การทำให้คุณสมบัติเซกเมนต์เป็นมาตรฐานเพื่อการสกัดคุณลักษณะที่สม่ำเสมอในขั้นตอนถัดไป และการปรับปรุงเพื่อประกันคุณภาพของลำดับชั้นการแบ่งส่วนหลายมาตราส่วน ผลลัพธ์มีจำนวนเซกเมนต์ลดลงซึ่งสะท้อนการรวม; เซกเมนต์ที่ผสานแล้วสืบทอดสถิติเชิงสเปกตรัมจากองค์ประกอบที่ถูกดูดซับ; ขอบเขตเรียบขึ้นและมีความซับซ้อนลดลง; บริเวณที่ผสานแล้วคงความสมบูรณ์เชิงพื้นที่แต่มีความไม่เป็นเนื้อเดียวกันเชิงสเปกตรัมภายในเพิ่มขึ้นเล็กน้อย; ผลลัพธ์ได้รับการปรับให้เหมาะสมสำหรับการจำแนกในขั้นตอนถัดไปและเสถียรภาพของคุณลักษณะ",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์ป้ายกำกับเซกเมนต์นำเข้า."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "ขนาดเซกเมนต์ต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 5)."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีรวม: longest, largest, nearest (ค่าเริ่มต้น longest)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "segments_split_low_cohesion": {
            "name": "แยกเซกเมนต์ที่มีความเกาะกลุ่มต่ำ",
            "description": "แบ่งส่วนใหม่สำหรับวัตถุที่มีอยู่ซึ่งมีความเกาะกลุ่มต่ำ โดยใช้การตั้งค่ามาตราส่วนที่ละเอียดกว่าเพื่อปรับปรุงความเป็นเนื้อเดียวกันเชิงสเปกตรัม การปรับปรุงแบบปรับตัวสำหรับโซนที่มีปัญหาโดยไม่กระทบวัตถุที่มีรูปร่างดีแล้ว",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์เซกเมนต์ที่มีอยู่."
              },
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าที่ใช้สำหรับการแบ่งส่วนใหม่."
              },
              "split_scale": {
                "label": "มาตราส่วนการแยก",
                "description": "พารามิเตอร์มาตราส่วนการแยกที่ละเอียดขึ้น (ค่าเริ่มต้น 120)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "segments_to_polygons": {
            "name": "เซกเมนต์เป็นโพลิกอน",
            "description": "แปลงป้ายเซกเมนต์แรสเตอร์เป็นโพลิกอนเวกเตอร์สำหรับการแก้ไขแบบโต้ตอบ การควบคุมคุณภาพ และการผสานกับ GIS ทำให้เปลี่ยนผ่านระหว่างการแทน OBIA แบบแรสเตอร์และเวกเตอร์ได้อย่างราบรื่น",
            "params": {
              "segments": {
                "label": "เซกเมนต์",
                "description": "แรสเตอร์เซกเมนต์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "evaluate_training_sites": {
            "name": "ประเมินพื้นที่ฝึกสอน",
            "description": "ประเมินความสามารถในการแยกคลาสในโพลิกอนตัวอย่างฝึกหลายแบนด์ และเขียนรายงาน HTML พร้อมสถิติการกระจายรายแบนด์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว (หนึ่งชั้นต่อหนึ่งแบนด์เชิงสเปกตรัม) ในรูปพาธหรือสตริงที่มีตัวคั่น."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธไปยังข้อมูลฝึกสอนแบบโพลิกอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ชื่อฟิลด์คลาสในแอตทริบิวต์ของ training_data."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ HTML ผลลัพธ์."
              }
            }
          },
          "fuzzy_knn_classification": {
            "name": "การจำแนกแบบ Fuzzy KNN",
            "description": "ทำการจำแนกแบบ fuzzy k-nearest-neighbor และส่งออกค่าความเชื่อมั่นของการเป็นสมาชิกคลาส",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด/โพลิกอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์คลาสในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "k": {
                "label": "K",
                "description": "จำนวนเพื่อนบ้าน (ค่าเริ่มต้น 5)."
              },
              "m": {
                "label": "M",
                "description": "พารามิเตอร์เลขชี้กำลังฟัซซี (> 1 ค่าเริ่มต้น 2.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ที่จำแนกแล้วผลลัพธ์เป็นตัวเลือก."
              },
              "probability_output": {
                "label": "ผลลัพธ์ความน่าจะเป็น",
                "description": "พาธแรสเตอร์ความน่าจะเป็นของการเป็นสมาชิกเป็นตัวเลือก."
              }
            }
          },
          "generalize_classified_raster": {
            "name": "ทำให้แรสเตอร์ที่จำแนกแล้วเป็นภาพรวม",
            "description": "Generalize Classified Raster ทำให้แผนที่การจำแนกเรียบง่ายขึ้นโดยกำจัดหย่อมขนาดเล็กที่แยกตัวออกผ่านการกรองฐานนิยมแบบวนซ้ำ และผสานองค์ประกอบที่แตกกระจายขนาดหนึ่งพิกเซลหรือหลายพิกเซลเข้ากับคลาสข้างเคียงที่เด่นเชิงพื้นที่ อัลกอริทึม: ใช้ตัวกรองฐานนิยมเชิงสัณฐานที่คงคลาสเด่นภายในหน้าต่างเคลื่อนที่ กำจัดหรือรวมพิกเซลที่แยกตัวจากบริบทเชิงพื้นที่ ปรับปรุงการจำแนกแบบวนซ้ำผ่านการวิเคราะห์องค์ประกอบที่เชื่อมต่อกัน และดูดซับคลาสย่อยเข้ากับคลาสข้างเคียงที่เด่น ขนาดหน้าต่างและขนาดหย่อมขั้นต่ำที่กำหนดได้ควบคุมระดับการวางนัยทั่วไป คุณสมบัติหลัก: ลดการแตกกระจายของการจำแนก ปรับปรุงความสอดคล้องเชิงพื้นที่ กำจัดหย่อมแยกตัวที่เกิดจากสัญญาณรบกวน คงขอบเขตคลาสไว้ผ่านการกรองแบบเลือก การประมวลผลองค์ประกอบที่เชื่อมต่อกันอย่างมีประสิทธิภาพเชิงคำนวณ ความสามารถ: ระดับการวางนัยทั่วไปที่ปรับได้ การคงหย่อมขนาดใหญ่ที่ต่อเนื่องกัน ใช้ได้กับข้อมูลแบบดัชนีหรือข้อมูลหมวดหมู่ กรณีการใช้งาน: การปรับปรุงหลังการจำแนกเพื่อกำจัดผลแบบ salt-and-pepper การรวมผลการจำแนกที่แตกกระจาย การเตรียมผลผลิตการจำแนกขั้นสุดท้าย การวางนัยทั่วไปให้ได้หน่วยการทำแผนที่ขั้นต่ำที่กำหนด การประยุกต์ใช้: การจัดทำแผนที่สิ่งปกคลุมดินขั้นสุดท้าย การกำจัดการจำแนกพิกเซลเดี่ยวที่ไม่พึงประสงค์ การปรับปรุงความต่อเนื่องเชิงพื้นที่ของการจำแนก การตีความผลลัพธ์: การแตกกระจายของคลาสที่ลดลงบ่งบอกการกำจัดจุดรบกวนที่มีประสิทธิผล; ขอบเขตที่คงอยู่แสดงว่าพารามิเตอร์การวางนัยทั่วไปเหมาะสม; การวางนัยทั่วไปที่มากเกินไปบ่งบอกว่าพารามิเตอร์หน้าต่างใหญ่เกินไป; ความสอดคล้องเชิงพื้นที่ที่ดีขึ้นบ่งชี้ว่าสัญญาณรบกวนของการจำแนกส่วนใหญ่เป็นสิ่งแปลกปลอมระดับพิกเซลเดี่ยว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ที่จำแนกแล้วนำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "ขนาดฟีเจอร์ต่ำสุดเป็นจำนวนเซลล์ หย่อมที่เล็กกว่านี้จะถูกกำหนดใหม่ (ค่าเริ่มต้น 5)."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีลดรายละเอียด: 'longest' (ค่าเริ่มต้น), 'largest' หรือ 'nearest'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "generalize_with_similarity": {
            "name": "ทำให้เป็นภาพรวมด้วยความคล้ายคลึง",
            "description": "วางนัยทั่วไปหย่อมขนาดเล็กในแรสเตอร์ที่จำแนกแล้ว โดยผสานเข้ากับหย่อมข้างเคียงที่มีความคล้ายคลึงเชิงสเปกตรัมมากที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ที่จำแนกแล้วนำเข้า."
              },
              "similarity": {
                "label": "ความคล้ายคลึง",
                "description": "อาร์เรย์ของแรสเตอร์ความคล้ายที่ใช้คำนวณความคล้ายของศูนย์กลางฟีเจอร์."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "ขนาดฟีเจอร์ต่ำสุดเป็นพิกเซล ฟีเจอร์ที่เล็กกว่านี้จะถูกรวม (ค่าเริ่มต้น 5)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "k_means_clustering": {
            "name": "การจัดกลุ่มแบบ K-Means",
            "description": "การจัดกลุ่มแบบ K-means ทำการจำแนกเชิงสเปกตรัมแบบไม่มีผู้สอนโดยแบ่งพิกเซลแบบวนซ้ำออกเป็น K คลัสเตอร์เชิงสเปกตรัม ลดความแปรปรวนภายในคลัสเตอร์ให้น้อยที่สุด และค้นพบกลุ่มเชิงสเปกตรัมตามธรรมชาติในภาพหลายสเปกตรัมโดยไม่ต้องใช้ตัวอย่างฝึกหรือการนิยามคลาสล่วงหน้า อัลกอริทึมเริ่มต้นด้วยจุดศูนย์กลางคลัสเตอร์แบบสุ่ม K จุด กำหนดพิกเซลให้กับจุดศูนย์กลางที่ใกล้ที่สุดและคำนวณจุดศูนย์กลางใหม่เป็นค่าเฉลี่ยของคลัสเตอร์แบบวนซ้ำจนกว่าจะลู่เข้า แล้วส่งออกการกำหนดคลัสเตอร์และจุดศูนย์กลางขั้นสุดท้าย K-means มีประสิทธิภาพเชิงคำนวณ ขยายขนาดได้กับสแตกหลายสเปกตรัมขนาดใหญ่ และค้นพบรูปแบบเชิงสเปกตรัมที่ขับเคลื่อนด้วยข้อมูลซึ่งมีประโยชน์สำหรับการวิเคราะห์เชิงสำรวจและการระบุคลาสตามธรรมชาติ คุณสมบัติหลักได้แก่ จำนวนคลัสเตอร์ K ที่ผู้ใช้กำหนดซึ่งช่วยให้แลกเปลี่ยนระหว่างรายละเอียดเชิงสเปกตรัมกับความสามารถในการตีความผลลัพธ์ได้อย่างยืดหยุ่น เกณฑ์การลู่เข้าที่มีขีดจำกัดจำนวนรอบและค่าเกณฑ์การเคลื่อนที่ของจุดศูนย์กลางที่กำหนดได้ การควบคุมค่าเริ่มต้นสุ่มเพื่อให้การจัดกลุ่มทำซ้ำได้สำหรับการทดสอบและการตรวจสอบความถูกต้อง และการประมวลผลแบบขนานที่มีประสิทธิภาพสำหรับภาพขนาดใหญ่ การประยุกต์ใช้ครอบคลุมการจำแนกสิ่งปกคลุมดินแบบไม่มีผู้สอนเพื่อค้นพบคลาสเชิงสเปกตรัมตามธรรมชาติ การตรวจหาความผิดปกติเพื่อระบุพิกเซลที่มีสเปกตรัมผิดปกติ การแบ่งส่วนภาพสำหรับการจำแนกแบบมีผู้สอนในภายหลัง และการวิเคราะห์เชิงสเปกตรัมเชิงสำรวจที่เผยรูปแบบเชิงสเปกตรัมที่เด่น ผลลัพธ์ K-means ระบุกลุ่มเชิงสเปกตรัมตามธรรมชาติ ผลลัพธ์ประกอบด้วยแรสเตอร์การเป็นสมาชิกคลัสเตอร์ที่มีค่าจำนวนเต็ม 0 ถึง K-1 ไฟล์จุดศูนย์กลางคลัสเตอร์พร้อมสเปกตรัมเฉลี่ยของแต่ละคลัสเตอร์ และความแปรปรวนภายในคลัสเตอร์ (ถ้าเลือก) ที่วัดความกะทัดรัด; การแสดงผลโดยซ้อนคลาสของคลัสเตอร์บนภาพผสมสีจริงเผยให้เห็นรูปแบบเชิงพื้นที่และความต่อเนื่องของคลัสเตอร์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการแรสเตอร์นำเข้าในรูปอาร์เรย์ของพาธ หรือสตริงที่คั่นด้วยจุลภาค/อัฒภาค."
              },
              "classes": {
                "label": "คลาส",
                "description": "จำนวนคลาสเป้าหมาย (k)."
              },
              "max_iterations": {
                "label": "จำนวนรอบวนซ้ำสูงสุด",
                "description": "จำนวนรอบวนซ้ำสูงสุด (ค่าเริ่มต้น 10)."
              },
              "class_change": {
                "label": "การเปลี่ยนคลาส",
                "description": "หยุดเมื่อร้อยละของเซลล์ที่ถูกต้องซึ่งเปลี่ยนแปลงลดลงต่ำกว่าค่าเกณฑ์นี้ (ค่าเริ่มต้น 2.0)."
              },
              "initialize": {
                "label": "การกำหนดค่าเริ่มต้น",
                "description": "กลยุทธ์การกำหนดค่าเริ่มต้นของเซนทรอยด์: 'diagonal' (ค่าเริ่มต้น) หรือ 'random'."
              },
              "min_class_size": {
                "label": "ขนาดคลาสต่ำสุด",
                "description": "ขนาดคลาสต่ำสุดที่ใช้เมื่ออัปเดตเซนทรอยด์ (ค่าเริ่มต้น 10)."
              },
              "out_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธไฟล์รายงาน HTML ผลลัพธ์เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์คลาสผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "knn_classification": {
            "name": "การจำแนกแบบ KNN",
            "description": "การจำแนกแบบ K-nearest neighbors กำหนดพิกเซลให้กับคลาสตามการลงคะแนนเสียงข้างมากระหว่างตัวอย่างฝึก K ตัวที่ใกล้ที่สุดในปริภูมิสเปกตรัม ทำให้จำแนกแบบไม่เชิงเส้นได้อย่างยืดหยุ่นโดยไม่ต้องฝึกโมเดลอย่างชัดเจน KNN คำนวณระยะทาง (Euclidean, spectral angle หรือ Mahalanobis) จากแต่ละพิกเซลของภาพไปยังตัวอย่างฝึกทั้งหมด ระบุตัวอย่างฝึก K ตัวที่ใกล้ที่สุด ใช้การลงคะแนนเสียงข้างมากแบบถ่วงน้ำหนักหรือไม่ถ่วงน้ำหนักเพื่อกำหนดคลาส และส่งคืนป้ายคลาสพร้อมคะแนนความเชื่อมั่น (ถ้าเลือก) KNN ทำงานได้ดีเยี่ยมเมื่อข้อมูลฝึกมีจำกัด ขอบเขตคลาสไม่เชิงเส้นสูง และการกระจายเชิงสเปกตรัมของคลาสไม่เป็นเนื้อเดียวกัน ซึ่งโมเดลแบบพาราเมตริกทำได้ยาก คุณสมบัติหลักได้แก่ ตัววัดระยะทางที่เลือกได้ (Euclidean, spectral angle, Mahalanobis) ที่รองรับลักษณะเชิงสเปกตรัมและโครงสร้างสหสัมพันธ์ที่แตกต่างกัน ค่า K ที่ผู้ใช้กำหนดซึ่งช่วยให้แลกเปลี่ยนระหว่างความถูกต้องกับความซับซ้อน ตัวเลือกการลงคะแนนแบบถ่วงน้ำหนักที่เน้นตัวอย่างที่อยู่ใกล้ และค่าเกณฑ์ความเชื่อมั่น (ถ้าเลือก) ที่ช่วยปฏิเสธการจำแนกที่กำกวม การประยุกต์ใช้ได้แก่ การจำแนกข้อมูลการสำรวจระยะไกลความถูกต้องสูงด้วยตัวอย่างฝึกที่เก็บจากภาคสนาม การจำแนกด้วยตัวอย่างขนาดเล็กเมื่อมีข้อมูลจริงภาคพื้นดินจำกัด การจำแนกภูมิประเทศที่ยากซึ่งมีลายเซ็นเชิงสเปกตรัมแปรผันสูง และการจำแนกที่คำนึงถึงความเชื่อมั่นซึ่งปฏิเสธการตัดสินใจที่ก้ำกึ่ง การจำแนก KNN ให้ผลความถูกต้องสูงด้วยข้อมูลฝึกที่ยืดหยุ่น ผลลัพธ์ประกอบด้วยแรสเตอร์ป้ายคลาสที่มีรหัสคลาสจำนวนเต็มตรงกับป้ายของตัวอย่างฝึก แรสเตอร์ความเชื่อมั่น (ถ้าเลือก) ที่บันทึกร้อยละของคะแนนเสียงหรือคะแนนความเชื่อมั่นแบบถ่วงน้ำหนักด้วยระยะทาง และความถูกต้องของการจำแนกที่อาจสูงกว่าวิธีอื่นเมื่อเลือก K ได้เหมาะสมและมีตัวอย่างฝึกเพียงพอ",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด/โพลิกอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์คลาสในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "k": {
                "label": "K",
                "description": "จำนวนเพื่อนบ้าน (ค่าเริ่มต้น 5)."
              },
              "clip": {
                "label": "ตัด",
                "description": "หากเป็นจริง จะกำจัดตัวอย่างฝึกสอนที่จำแนกผิดด้วยการทำรอบล่วงหน้าแบบละทิ้งทีละหนึ่ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "knn_regression": {
            "name": "การถดถอยแบบ KNN",
            "description": "ทำการถดถอยแบบ k-nearest-neighbor แบบมีผู้สอนบนแรสเตอร์นำเข้าหลายแบนด์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์เป้าหมายเชิงตัวเลขในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "k": {
                "label": "K",
                "description": "จำนวนเพื่อนบ้าน (ค่าเริ่มต้น 5)."
              },
              "distance_weighted": {
                "label": "ถ่วงน้ำหนักตามระยะทาง",
                "description": "หากเป็นจริง จะใช้การเฉลี่ยแบบถ่วงน้ำหนักด้วยระยะทางผกผัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "logistic_regression": {
            "name": "การถดถอยโลจิสติก",
            "description": "ทำการจำแนกด้วยการถดถอยโลจิสติกแบบมีผู้สอนบนแรสเตอร์นำเข้าหลายแบนด์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด/โพลิกอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์คลาสในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "alpha": {
                "label": "Alpha",
                "description": "น้ำหนักการปรับ L2 (ค่าเริ่มต้น 0.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "min_dist_classification": {
            "name": "การจำแนกแบบระยะทางน้อยที่สุด",
            "description": "ทำการจำแนกแบบระยะทางต่ำสุด (minimum-distance) แบบมีผู้สอนบนแรสเตอร์หลายสเปกตรัมโดยใช้ข้อมูลฝึกแบบโพลิกอน",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว (หนึ่งชั้นต่อหนึ่งแบนด์เชิงสเปกตรัม) ในรูปพาธหรือสตริงที่มีตัวคั่น."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธไปยังไฟล์เวกเตอร์โพลิกอนที่มีพื้นที่ฝึกสอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ชื่อของฟิลด์แอตทริบิวต์ในข้อมูลฝึกสอนที่เก็บตัวระบุคลาส."
              },
              "dist_threshold": {
                "label": "ค่าเกณฑ์ระยะทาง",
                "description": "ค่าเกณฑ์ค่า z เป็นตัวเลือก พิกเซลที่ห่างจากค่าเฉลี่ยของคลาสที่ใกล้ที่สุดเกินค่านี้จะไม่ถูกจำแนก ค่าเริ่มต้น: ไม่มีค่าเกณฑ์ (จำแนกทั้งหมด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "modified_k_means_clustering": {
            "name": "การจัดกลุ่มแบบ K-Means ดัดแปลง",
            "description": "การจัดกลุ่มแบบ Modified K-means ปรับปรุง K-means มาตรฐานด้วยการประมวลผลเบื้องต้นเชิงสเปกตรัม การเลือก K แบบปรับตัวอัตโนมัติ และเกณฑ์การลู่เข้าที่ดีขึ้น เพื่อการจำแนกหลายสเปกตรัมแบบไม่มีผู้สอนที่ทนทานและแม่นยำยิ่งขึ้น อัลกอริทึมใช้การประมวลผลเบื้องต้นที่เลือกได้ ได้แก่ การปรับมาตรฐานเชิงสเปกตรัมเพื่อขจัดผลของมาตราส่วน การแปลงองค์ประกอบหลักเพื่อเน้นทิศทางความแปรปรวนที่เด่น และการกรองสัญญาณรบกวนเพื่อขจัดความแปรผันเชิงสเปกตรัมที่ไม่พึงประสงค์ การเลือก K แบบปรับตัวใช้วิธี elbow หรือการวิเคราะห์ silhouette เพื่อค้นหาจำนวนคลัสเตอร์ที่เหมาะสมที่สุดโดยอัตโนมัติแทนการกำหนดด้วยมือ คุณสมบัติหลักได้แก่ การประมวลผลเบื้องต้นเชิงสเปกตรัมที่ลดความไวต่อมาตราส่วนและเน้นทิศทางความแปรผันเชิงสเปกตรัมที่เด่น การเลือก K อัตโนมัติที่ค้นหาจำนวนคลัสเตอร์ที่เหมาะสมที่สุดอย่างเป็นกลาง เกณฑ์การลู่เข้าที่ดีขึ้นซึ่งรวมค่าเกณฑ์การเคลื่อนที่สัมพัทธ์ของจุดศูนย์กลางและตัววัดความคล้ายคลึงแบบ spectral angle และการประมวลผลภายหลังที่เลือกได้เพื่อผสานคลัสเตอร์ที่คล้ายกันหรือแยกคลัสเตอร์ที่กระจัดกระจาย การประยุกต์ใช้ได้แก่ การจำแนกสิ่งปกคลุมดินเชิงสำรวจที่ดีขึ้นซึ่งจัดการมาตราส่วนเชิงสเปกตรัมโดยอัตโนมัติ การตรวจหาความผิดปกติที่ทนทานซึ่งแยกสัญญาณออกจากสัญญาณรบกวนผ่านการประมวลผลเบื้องต้น การแบ่งส่วนภาพแบบปรับตัวที่ค้นหาระดับรายละเอียดที่เหมาะสมโดยอัตโนมัติ และการผสานข้อมูลหลายเซนเซอร์ที่ปรับมาตรฐานมาตราส่วนเชิงสเปกตรัมของเซนเซอร์ต่าง ๆ ผลลัพธ์ Modified K-means เผยให้เห็นคลาสเชิงสเปกตรัมตามธรรมชาติที่ทนทาน ผลลัพธ์ประกอบด้วยแรสเตอร์การเป็นสมาชิกคลัสเตอร์ที่ปรับให้เหมาะสมพร้อมจำนวนคลาสที่กำหนดโดยอัตโนมัติ จุดศูนย์กลางคลัสเตอร์พร้อมบันทึกการแปลงในการประมวลผลเบื้องต้น และสถิติวินิจฉัยที่วัดคุณภาพ การแยก และการลู่เข้าของคลัสเตอร์; คำแนะนำการเลือก K แบบปรับตัวช่วยชี้แนะการแลกเปลี่ยนระหว่างความสามารถในการตีความกับรายละเอียด",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการแรสเตอร์นำเข้าในรูปอาร์เรย์ของพาธ หรือสตริงที่คั่นด้วยจุลภาค/อัฒภาค."
              },
              "start_clusters": {
                "label": "จำนวนกลุ่มเริ่มต้น",
                "description": "จำนวนคลัสเตอร์เริ่มต้นก่อนการรวม (ค่าเริ่มต้น 1000)."
              },
              "merge_dist": {
                "label": "ระยะทางการรวม",
                "description": "ค่าเกณฑ์ระยะทางการรวมคลัสเตอร์ (แบบยูคลิด)."
              },
              "max_iterations": {
                "label": "จำนวนรอบวนซ้ำสูงสุด",
                "description": "จำนวนรอบวนซ้ำสูงสุด (ค่าเริ่มต้น 10)."
              },
              "class_change": {
                "label": "การเปลี่ยนคลาส",
                "description": "หยุดเมื่อร้อยละของเซลล์ที่ถูกต้องซึ่งเปลี่ยนแปลงลดลงต่ำกว่าค่าเกณฑ์นี้ (ค่าเริ่มต้น 2.0)."
              },
              "out_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธไฟล์รายงาน HTML ผลลัพธ์เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์คลาสผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "nnd_classification": {
            "name": "การจำแนกแบบ NND",
            "description": "ทำการจำแนกแบบระยะทางปรับมาตรฐานที่ใกล้ที่สุด พร้อมการปฏิเสธค่าผิดปกติ (ถ้าเลือก)",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด/โพลิกอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์คลาสในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "z_threshold": {
                "label": "ค่าเกณฑ์ Z",
                "description": "ค่า z ของระยะทางที่ทำเป็นมาตรฐานสูงสุดที่ยอมรับก่อนจะถูกระบุว่าเป็นค่าผิดปกติ (ค่าเริ่มต้น 1.96)."
              },
              "outlier_is_zero": {
                "label": "ค่าผิดปกติเป็นศูนย์",
                "description": "หากเป็นจริง ค่าผิดปกติจะถูกกำหนดเป็นคลาส 0 มิฉะนั้นจะเป็น NoData."
              },
              "k": {
                "label": "K",
                "description": "ขนาดเพื่อนบ้านสำหรับการประมาณระยะทางของคลาส (ค่าเริ่มต้น 25)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "otsu_thresholding": {
            "name": "การกำหนดค่าเกณฑ์แบบ Otsu",
            "description": "Otsu Thresholding เป็นวิธีการแบ่งส่วนภาพอัตโนมัติที่กำหนดค่าเกณฑ์รวมที่เหมาะสมที่สุดโดยทำให้ความแปรปรวนระหว่างคลาสในฮิสโทแกรมความเข้มของพิกเซลมีค่ามากที่สุด อัลกอริทึม: ตรวจสอบฮิสโทแกรมของภาพระดับสีเทาหรือภาพแบนด์เดียว ทดสอบค่าเกณฑ์ที่เป็นไปได้ทั้งหมดแบบวนซ้ำ คำนวณความแปรปรวนระหว่างคลาสสำหรับแต่ละค่าเกณฑ์ และเลือกค่าที่ทำให้การแยกความแปรปรวนระหว่างคลาสพื้นหน้าและพื้นหลังมากที่สุด ไม่ใช้พาราเมตริก ไม่ต้องกำหนดค่าเกณฑ์ด้วยมือ คุณสมบัติหลัก: การกำหนดค่าเกณฑ์อัตโนมัติเต็มรูปแบบ ทนทานต่อความแปรผันของแสง แนวทางที่อิงฮิสโทแกรมทำให้คำนวณได้รวดเร็ว ไม่มีพารามิเตอร์ภายนอก ให้ค่าเกณฑ์รวมเพียงค่าเดียว ความสามารถ: การแบ่งส่วนแบบไบนารี การหาค่าที่เหมาะสมสำหรับฮิสโทแกรมแบบฐานนิยมเดียวและสองฐานนิยม รองรับภาพที่มีช่วงไดนามิกแคบหรือคอนทราสต์สูง กรณีการใช้งาน: การแบ่งส่วนภาพอัตโนมัติโดยไม่ต้องมีผู้ใช้แทรกแซง การแปลงเอกสารเป็นไบนารี การสกัดแหล่งน้ำ การตรวจจับเมฆในภาพดาวเทียม การทำแผนที่น้ำแข็ง/หิมะ การประยุกต์ใช้: การประมวลผลเบื้องต้นสำหรับการตรวจหาการเปลี่ยนแปลง การจำแนกสิ่งปกคลุมดินอย่างง่าย การสร้างมาสก์น้ำ การแบ่งส่วนเบื้องต้นก่อนการจำแนกขั้นสูง การตีความผลลัพธ์: พิกเซลที่ต่ำกว่าค่าเกณฑ์ถูกจำแนกเป็นคลาสหนึ่ง ที่สูงกว่าเป็นอีกคลาสหนึ่ง; ความเป็นสองฐานนิยมของฮิสโทแกรมบ่งบอกคุณภาพของการแยก; ฮิสโทแกรมที่แยกได้ไม่ดีบ่งบอกความไม่เหมาะสมสำหรับการจำแนกแบบไบนารี; ค่าทางสถิติเช่นความแปรปรวนระหว่างคลาสและความสม่ำเสมอบ่งบอกคุณภาพของการแบ่งส่วน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "parallelepiped_classification": {
            "name": "การจำแนกแบบ Parallelepiped",
            "description": "ทำการจำแนกแบบ parallelepiped แบบมีผู้สอนบนแรสเตอร์หลายสเปกตรัมโดยใช้ข้อมูลฝึกแบบโพลิกอน",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว (หนึ่งชั้นต่อหนึ่งแบนด์เชิงสเปกตรัม) ในรูปพาธหรือสตริงที่มีตัวคั่น."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธไปยังไฟล์เวกเตอร์โพลิกอนที่มีพื้นที่ฝึกสอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ชื่อของฟิลด์แอตทริบิวต์ในข้อมูลฝึกสอนที่เก็บตัวระบุคลาส."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "random_forest_classification": {
            "name": "การจำแนกแบบ Random Forest",
            "description": "การจำแนกแบบ Random Forest กำหนดป้ายผ่านต้นไม้ตัดสินใจแบบกลุ่มโมเดลที่ฝึกบนตัวอย่างบูตสแตรปพร้อมชุดย่อยคุณลักษณะแบบสุ่ม ต้นไม้แต่ละต้นเติบโตอย่างอิสระโดยไม่ตัดแต่ง จับความสัมพันธ์ไม่เชิงเส้นที่ซับซ้อนและปฏิสัมพันธ์ระหว่างคุณลักษณะ การจำแนกรวมคะแนนเสียงจากต้นไม้โดยทั่วไป 100-1000 ต้น คลาสสุดท้ายคือคะแนนเสียงข้างมาก การฝึกแบบบูตสแตรปและการเลือกคุณลักษณะแบบสุ่มช่วยลดการเรียนรู้เกิน (overfitting) พร้อมจับรูปแบบมิติสูง ความสำคัญของคุณลักษณะสามารถคำนวณได้จากการเปลี่ยนแปลงของความคลาดเคลื่อน out-of-bag เพื่อระบุแบนด์สเปกตรัมหรือคุณลักษณะที่ได้จากการคำนวณที่เกี่ยวข้องกับการจำแนกมากที่สุด คุณสมบัติหลักได้แก่ การจัดอันดับความสำคัญของตัวแปรเพื่อระบุคุณลักษณะสำคัญของการจำแนก ความเชื่อมั่นของการจำแนกรายพิกเซลจากฉันทามติของคะแนนเสียงในต้นไม้ทั้งกลุ่ม การจัดการข้อมูลไฮเปอร์สเปกตรัมมิติสูงโดยอัตโนมัติ ความทนทานต่อค่าผิดปกติเชิงสเปกตรัมและสัญญาณรบกวน และการฝึกและการทำนายที่ประมวลผลแบบขนานได้ เครื่องมือนี้ประมวลผลปัญหาหลายคลาสที่มีชุดฝึกไม่สมดุลได้อย่างมีประสิทธิภาพ การประยุกต์ใช้ได้แก่ การจำแนกสิ่งปกคลุมดินจากข้อมูลหลายสเปกตรัมและไฮเปอร์สเปกตรัม การตรวจหาการเปลี่ยนแปลงเพื่อระบุการเปลี่ยนผ่านเชิงสเปกตรัมระหว่างแผนที่ การจำแนกประเภทพืชผลจากภาพดาวเทียมหลายช่วงเวลา การจำแนกวัสดุในเมืองเพื่อแยกแยะประเภทอาคารและพื้นผิว และการตรวจหาความผิดปกติเพื่อระบุค่าผิดปกติเชิงสเปกตรัม Random forest ให้ความถูกต้องสูงอย่างสม่ำเสมอในการประยุกต์ใช้การสำรวจระยะไกลด้วยข้อมูลฝึกในปริมาณไม่มาก การตีความผลลัพธ์: จำนวนคะแนนเสียงให้ความเชื่อมั่นของการจำแนก คะแนนเสียงเป็นเอกฉันท์หรือข้างมากอย่างชัดเจน (>80%) บ่งบอกการจำแนกที่มั่นใจ ขณะที่ส่วนต่างที่แคบบ่งชี้ความกำกวมจากพิกเซลผสม การจัดอันดับความสำคัญของคุณลักษณะระบุแบนด์สเปกตรัมหรือดัชนีที่ได้จากการคำนวณที่ใช้วินิจฉัยการจำแนกได้ดีที่สุด ค่าประมาณความคลาดเคลื่อน out-of-bag ประเมินประสิทธิภาพการวางนัยทั่วไปโดยไม่ต้องใช้ชุดข้อมูลตรวจสอบที่กันไว้ ปฏิสัมพันธ์ของคุณลักษณะเป็นแบบแฝง ความถูกต้องสูงจากการผสมแบนด์บางชุดบ่งชี้ความสัมพันธ์เชิงสเปกตรัมแบบไม่เชิงเส้น",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด/โพลิกอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์คลาสในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "n_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ในฟอเรสต์ (ค่าเริ่มต้น 200)."
              },
              "min_samples_leaf": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อใบ",
                "description": "จำนวนตัวอย่างต่ำสุดที่ต้องมีที่โหนดใบ (ค่าเริ่มต้น 1)."
              },
              "min_samples_split": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อการแยก",
                "description": "จำนวนตัวอย่างต่ำสุดที่ต้องมีเพื่อแยกโหนดภายใน (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "random_forest_regression": {
            "name": "การถดถอยแบบ Random Forest",
            "description": "ทำการถดถอยแบบ random forest แบบมีผู้สอนบนแรสเตอร์นำเข้าหลายแบนด์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์เป้าหมายเชิงตัวเลขในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "n_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ในฟอเรสต์ (ค่าเริ่มต้น 200)."
              },
              "min_samples_leaf": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อใบ",
                "description": "จำนวนตัวอย่างต่ำสุดที่ต้องมีที่โหนดใบ (ค่าเริ่มต้น 1)."
              },
              "min_samples_split": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อการแยก",
                "description": "จำนวนตัวอย่างต่ำสุดที่ต้องมีเพื่อแยกโหนดภายใน (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "svm_classification": {
            "name": "การจำแนกแบบ SVM",
            "description": "การจำแนกแบบ Support Vector Machine (SVM) ใช้อัลกอริทึมการเรียนรู้ของเครื่อง Support Vector Machine กับข้อมูลการสำรวจระยะไกลหลายสเปกตรัม โดยแยกคลาสฝึกผ่านการวางไฮเปอร์เพลนที่เหมาะสมที่สุดในปริภูมิคุณลักษณะเชิงสเปกตรัมมิติสูง อัลกอริทึม: แปลงเวกเตอร์คุณลักษณะเชิงสเปกตรัมไปยังปริภูมิมิติสูงผ่านฟังก์ชันเคอร์เนล (linear, RBF, polynomial) ระบุไฮเปอร์เพลนที่มีระยะขอบสูงสุดซึ่งแยกคลาสฝึก และจำแนกพิกเซลใหม่ตามตำแหน่งเทียบกับไฮเปอร์เพลน พารามิเตอร์ความคลาดเคลื่อนที่ยอมรับได้และการเลือกเคอร์เนลควบคุมการวางนัยทั่วไป จัดการการแยกคลาสแบบไม่เชิงเส้นได้อย่างมีประสิทธิผล คุณสมบัติหลัก: ทนทานต่อข้อมูลเชิงสเปกตรัมมิติสูง การวางนัยทั่วไปที่ดีเยี่ยมด้วยตัวอย่างฝึกที่จำกัด ความยืดหยุ่นของเคอร์เนลรองรับการกระจายเชิงสเปกตรัมที่หลากหลาย ให้ค่าประมาณความน่าจะเป็น/ความเชื่อมั่น ความสามารถ: การจำแนกหลายคลาส ความยืดหยุ่นแบบ soft-margin การปรับสมดุลน้ำหนักคลาสอัตโนมัติ กรณีการใช้งาน: การจำแนกที่ดินอย่างละเอียดด้วยข้อมูลฝึกที่เบาบาง การผสานคุณลักษณะเชิงสเปกตรัม-พื้นที่ การตรวจหาการเปลี่ยนแปลง เกษตรแม่นยำ การทำแผนที่เมือง การประยุกต์ใช้: การจำแนกภาพไฮเปอร์สเปกตรัม การทำแผนที่ระบบนิเวศที่ซับซ้อน การกำหนดขอบเขตประเภทพืชผล การจำแนกโครงสร้างพื้นฐาน การตีความผลลัพธ์: การเป็นสมาชิกคลาสบ่งบอกหมวดหมู่ที่ทำนายได้ โดยความสอดคล้องเชิงพื้นที่เผยให้เห็นคุณภาพของการจำแนก; ค่าประมาณความน่าจะเป็นวัดความเชื่อมั่นระดับพิกเซล; รูปแบบการจำแนกผิดบ่งบอกข้อบกพร่องของข้อมูลฝึกหรือปัญหาการซ้อนทับเชิงสเปกตรัม",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด/โพลิกอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์คลาสในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "kernel": {
                "label": "เคอร์เนล",
                "description": "ชนิดเคอร์เนล: linear (ค่าเริ่มต้น) หรือ rbf."
              },
              "c": {
                "label": "C",
                "description": "พารามิเตอร์การปรับของ SVM (ค่าเริ่มต้น 1.0)."
              },
              "gamma": {
                "label": "Gamma",
                "description": "ค่าแกมมาของเคอร์เนล RBF ค่าเริ่มต้นคือ 1 / จำนวนคุณลักษณะ."
              },
              "epoch": {
                "label": "จำนวน Epoch",
                "description": "จำนวนรอบการฝึกสอน (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "svm_regression": {
            "name": "การถดถอยแบบ SVM",
            "description": "ทำการถดถอยแบบ support-vector-machine แบบมีผู้สอนบนแรสเตอร์นำเข้าหลายแบนด์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์เป้าหมายเชิงตัวเลขในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "kernel": {
                "label": "เคอร์เนล",
                "description": "ชนิดเคอร์เนล: linear (ค่าเริ่มต้น) หรือ rbf."
              },
              "c": {
                "label": "C",
                "description": "พารามิเตอร์การปรับของ SVM (ค่าเริ่มต้น 1.0)."
              },
              "gamma": {
                "label": "Gamma",
                "description": "ค่าแกมมาของเคอร์เนล RBF ค่าเริ่มต้นคือ 1 / จำนวนคุณลักษณะ."
              },
              "eps": {
                "label": "Eps",
                "description": "ความกว้างของฟังก์ชันสูญเสียแบบไม่ไวต่อเอปไซลอน (ค่าเริ่มต้น 0.1)."
              },
              "tol": {
                "label": "ค่าเผื่อการลู่เข้า",
                "description": "ค่าเผื่อของตัวหาค่าเหมาะที่สุด (ค่าเริ่มต้น 1e-3)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "change_vector_analysis": {
            "name": "การวิเคราะห์เวกเตอร์การเปลี่ยนแปลง",
            "description": "ทำการวิเคราะห์เวกเตอร์การเปลี่ยนแปลง (change vector analysis) บนชุดข้อมูลหลายสเปกตรัมสองช่วงเวลา และส่งคืนแรสเตอร์ขนาดและทิศทาง",
            "params": {
              "date1": {
                "label": "วันที่ 1",
                "description": "รายการแรสเตอร์วันที่ก่อนหน้าในรูปอาร์เรย์ของพาธ หรือสตริงที่คั่นด้วยจุลภาค/อัฒภาค."
              },
              "date2": {
                "label": "วันที่ 2",
                "description": "รายการแรสเตอร์วันที่หลังในรูปอาร์เรย์ของพาธ หรือสตริงที่คั่นด้วยจุลภาค/อัฒภาค."
              },
              "magnitude_output": {
                "label": "ผลลัพธ์ขนาด",
                "description": "พาธผลลัพธ์สำหรับแรสเตอร์ขนาดเวกเตอร์เป็นตัวเลือก."
              },
              "direction_output": {
                "label": "ผลลัพธ์ทิศทาง",
                "description": "พาธผลลัพธ์สำหรับแรสเตอร์รหัสทิศทางเป็นตัวเลือก."
              }
            }
          },
          "image_difference_change_detection": {
            "name": "การตรวจจับการเปลี่ยนแปลงด้วยผลต่างภาพ",
            "description": "การตรวจหาการเปลี่ยนแปลงด้วยผลต่างของภาพระบุการเปลี่ยนแปลงสิ่งปกคลุมดินโดยคำนวณผลต่างรายพิกเซลหลายสเปกตรัมระหว่างภาพดาวเทียมหลายช่วงเวลาที่ลงทะเบียนร่วมกัน เน้นพื้นที่ที่ลายเซ็นเชิงสเปกตรัมเปลี่ยนแปลงมากพอจนเกินความแปรผันพื้นหลังเชิงสถิติ อัลกอริทึมลงทะเบียนภาพให้อยู่บนกริดพิกเซลร่วมกัน คำนวณผลต่างในแบนด์ที่เลือกหรือดัชนีพืชพรรณ (เช่น ผลต่าง NDVI) ใช้การกำหนดค่าเกณฑ์เชิงสถิติด้วยผลต่างสัมบูรณ์เฉลี่ยและช่วงความเชื่อมั่นเพื่อแยกการเปลี่ยนแปลงออกจากสัญญาณรบกวน และส่งออกมาสก์การเปลี่ยนแปลงแบบไบนารีหรือแรสเตอร์ขนาดผลต่างแบบต่อเนื่อง การหาผลต่างของภาพคำนวณได้ง่าย ตีความได้ และมีประสิทธิผลในการตรวจหาการเปลี่ยนแปลงสำคัญของพืชพรรณ การพัฒนาเมือง หรือแหล่งน้ำ คุณสมบัติหลักได้แก่ การเลือกแบนด์ที่ยืดหยุ่นเพื่อตรวจหาการเปลี่ยนแปลงแบบเจาะจงในโดเมนสเปกตรัมเฉพาะ การกำหนดค่าเกณฑ์เชิงสถิติด้วยระดับความเชื่อมั่นแบบอัตโนมัติหรือกำหนดเอง การประมวลผลเบื้องต้นที่เลือกได้ (การปรับมาตรฐาน การคำนวณดัชนี) เพื่อปรับปรุงอัตราส่วนสัญญาณต่อสัญญาณรบกวนของการเปลี่ยนแปลง และการประมวลผลที่รวดเร็วซึ่งทำให้ตรวจหาการเปลี่ยนแปลงในพื้นที่ขนาดใหญ่ได้ การประยุกต์ใช้ได้แก่ การทำแผนที่การตัดไม้ทำลายป่าและการติดตามการสูญเสียป่า การติดตามการขยายตัวของเมืองจากอนุกรมเวลาภาพดาวเทียมหลายสเปกตรัม การทำแผนที่น้ำท่วมก่อน/หลังเหตุการณ์จากข้อมูล SAR หรือเชิงแสง และการตรวจหาการเปลี่ยนแปลงทางการเกษตรเพื่อติดตามการเปลี่ยนชนิดพืชผล ผลลัพธ์ผลต่างของภาพเน้นพื้นที่ที่เปลี่ยนแปลง ผลลัพธ์ประกอบด้วยแรสเตอร์มาสก์การเปลี่ยนแปลง (ไบนารี เปลี่ยน/ไม่เปลี่ยน) พร้อมค่าเกณฑ์ที่กำหนดได้ แรสเตอร์ขนาดผลต่างแบบต่อเนื่องที่วัดความรุนแรงของการเปลี่ยนแปลง และแรสเตอร์คลาสการเปลี่ยนแปลง (ถ้าเลือก) ที่แยกแยะประเภทการเปลี่ยนแปลง (เพิ่มขึ้น ลดลง); การรวมตามเวลาช่วยให้ติดตามการเปลี่ยนแปลงข้ามช่วงหลายปีได้",
            "params": {
              "t1_inputs": {
                "label": "ข้อมูลนำเข้า T1",
                "description": "อาร์เรย์ของพาธแรสเตอร์วันที่ 1."
              },
              "t2_inputs": {
                "label": "ข้อมูลนำเข้า T2",
                "description": "อาร์เรย์ของพาธแรสเตอร์วันที่ 2 ต้องมีจำนวนและลำดับตรงกับ t1_inputs."
              },
              "mode": {
                "label": "โหมด",
                "description": "โหมดผลต่าง: magnitude (ค่าเริ่มต้น) หรือ signed."
              },
              "threshold_sigma": {
                "label": "Sigma ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ซิกมาเป็นตัวเลือกสำหรับการสร้างมาสก์การเปลี่ยนแปลงแบบไบนารี."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ t1_inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับภาพผลต่างเป็นตัวเลือก."
              },
              "output_absolute": {
                "label": "ผลลัพธ์ค่าสัมบูรณ์",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับผลต่างสัมบูรณ์แบบมีเครื่องหมาย (|mean(t2-t1)|) เป็นตัวเลือก."
              },
              "output_signed": {
                "label": "ผลลัพธ์ค่าที่มีเครื่องหมาย",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับผลต่างแบบมีเครื่องหมาย mean(t2-t1) เป็นตัวเลือก."
              },
              "output_mask": {
                "label": "ผลลัพธ์มาสก์",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับมาสก์การเปลี่ยนแปลงแบบไบนารีที่ผ่านค่าเกณฑ์เป็นตัวเลือก."
              }
            }
          },
          "pca_based_change_detection": {
            "name": "การตรวจจับการเปลี่ยนแปลงด้วย PCA",
            "description": "การตรวจหาการเปลี่ยนแปลงด้วยการวิเคราะห์องค์ประกอบหลักระบุการเปลี่ยนแปลงสิ่งปกคลุมดินโดยคำนวณองค์ประกอบหลักจากข้อมูลเชิงสเปกตรัมหลายช่วงเวลาที่ซ้อนกัน โดยองค์ประกอบแรก ๆ จับรูปแบบร่วมข้ามเวลาและองค์ประกอบหลัง ๆ แยกการเปลี่ยนแปลงตามเวลาออกมา อัลกอริทึมซ้อนข้อมูลหลายสเปกตรัมหลายช่วงเวลา (ลงทะเบียนให้อยู่บนกริดร่วมกัน) คำนวณ PCA เพื่อแปลงเป็นองค์ประกอบเชิงสเปกตรัม-เวลาที่ตั้งฉากกันและไม่มีสหสัมพันธ์ ตีความ PC หลัง ๆ ว่าไวต่อการเปลี่ยนแปลง และใช้การกำหนดค่าเกณฑ์เชิงสถิติกับค่า loading/score ของ PC เพื่อตรวจหาการเปลี่ยนแปลง การตรวจหาด้วย PCA ทำงานได้ดีเยี่ยมเมื่อสัญญาณการเปลี่ยนแปลงมีความละเอียดอ่อนเชิงสเปกตรัม เนื่องจาก PCA ทำให้ความแปรปรวนสูงสุดและแยกรูปแบบเชิงสเปกตรัมที่คงที่ตามเวลา (PC แรก ๆ) ออกจากความแปรผันตามเวลา (PC หลัง ๆ) คุณสมบัติหลักได้แก่ การหลอมรวมข้อมูลหลายวันที่ที่รองรับจำนวนภาพที่แปรผันและข้อกำหนดการลงทะเบียนร่วม การทำให้ความแปรปรวนสูงสุดโดยอัตโนมัติซึ่งเน้นรูปแบบเชิงสเปกตรัม-เวลาที่สำคัญ สถิติหลายตัวแปรที่ปรับปรุงการแยกแยะการเปลี่ยนแปลงเมื่อเทียบกับการหาผลต่างแบบตัวแปรเดียว และการกรองเชิงพื้นที่ที่เลือกได้เพื่อลดสัญญาณรบกวนของพิกเซล การประยุกต์ใช้ได้แก่ การตรวจหาความเครียดของพืชพรรณที่ละเอียดอ่อนก่อนที่จะมองเห็นได้ด้วยตา การตรวจหาการเปลี่ยนแปลงของเมืองแบบหลายสเปกตรัมเพื่อติดตามการพัฒนาหลายทศวรรษ การประเมินผลกระทบจากภัยธรรมชาติผ่านการทำแผนที่ความเสียหายอย่างรวดเร็ว และการติดตามสิ่งแวดล้อมเพื่อตรวจหาการเปลี่ยนสถานะของระบบนิเวศ ผลลัพธ์การตรวจหาด้วย PCA แยกแยะรูปแบบตามเวลา ผลลัพธ์ประกอบด้วยภาพองค์ประกอบหลักที่มีค่า loading เชิงสเปกตรัม-เวลาที่ตีความได้ แรสเตอร์ความน่าจะเป็นของการเปลี่ยนแปลงที่ได้จากคะแนนขององค์ประกอบหลัง ๆ และการจำแนกการเปลี่ยนแปลง (ถ้าเลือก) ที่แยกแยะประเภทการเปลี่ยนแปลง; รูปแบบเชิงพื้นที่ของ PC ช่วยให้รู้จำรูปแบบด้วยสายตาซึ่งเสริมการตรวจหาเชิงสถิติ",
            "params": {
              "t1_inputs": {
                "label": "ข้อมูลนำเข้า T1",
                "description": "อาร์เรย์ของพาธแรสเตอร์วันที่ 1."
              },
              "t2_inputs": {
                "label": "ข้อมูลนำเข้า T2",
                "description": "อาร์เรย์ของพาธแรสเตอร์วันที่ 2 ต้องมีจำนวนและลำดับตรงกับ t1_inputs."
              },
              "component": {
                "label": "องค์ประกอบ",
                "description": "ดัชนีองค์ประกอบหลักที่จะให้ผลลัพธ์ เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "standardized": {
                "label": "ปรับให้เป็นมาตรฐาน",
                "description": "หากเป็นจริง จะใช้ PCA บนเมทริกซ์สหสัมพันธ์ของเวกเตอร์การเปลี่ยนแปลง (ค่าเริ่มต้น false)."
              },
              "threshold_sigma": {
                "label": "Sigma ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ซิกมาบนคะแนน PC สัมบูรณ์สำหรับผลลัพธ์มาสก์แบบไบนารีเป็นตัวเลือก."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ t1_inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับคะแนน PC ที่เลือกแบบสัมบูรณ์เป็นตัวเลือก."
              },
              "output_mask": {
                "label": "ผลลัพธ์มาสก์",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับมาสก์ไบนารีที่ผ่านค่าเกณฑ์ (0/1) เป็นตัวเลือก."
              },
              "output_report": {
                "label": "ผลลัพธ์รายงาน",
                "description": "พาธไฟล์รายงาน JSON ผลลัพธ์สำหรับค่าไอเกน ความแปรปรวนที่อธิบายได้ และน้ำหนักองค์ประกอบ เป็นตัวเลือก."
              }
            }
          },
          "post_classification_change": {
            "name": "การเปลี่ยนแปลงหลังการจำแนก",
            "description": "การตรวจหาการเปลี่ยนแปลงหลังการจำแนกวัดปริมาณการเปลี่ยนผ่านของสิ่งปกคลุมดิน/การใช้ประโยชน์ที่ดิน (LULC) โดยเปรียบเทียบแผนที่ที่จำแนกแยกกันจากช่วงเวลาต่าง ๆ โดยตรง การเปรียบเทียบคลาสทีละพิกเซลระบุการเปลี่ยนผ่านที่แสดงคลาส \"จาก\" และ \"เป็น\" เมทริกซ์ตารางไขว้ (เมทริกซ์ความสับสน) วัดความถี่ของการเปลี่ยนผ่านซึ่งเผยให้เห็นเส้นทางการเปลี่ยนแปลงที่เด่น วิธีนี้ต้องการแผนการจำแนกที่สอดคล้องกันในทุกวันที่ ความถูกต้องขึ้นกับคุณภาพการจำแนกในแต่ละช่วงเวลา คุณสมบัติหลัก: การทำแผนที่การเปลี่ยนผ่านจากคลาสสู่คลาสโดยตรง; การจำแนกแต่ละครั้งเป็นอิสระต่อกัน; รองรับการผสมเซนเซอร์ที่แตกต่างกัน; วัดความถี่ของการเปลี่ยนผ่าน; ระบุจุดร้อนของการเปลี่ยนแปลง กรณีการใช้งาน: การติดตามการตัดไม้ทำลายป่า; การทำแผนที่การเติบโตของเมือง; การติดตามการใช้ประโยชน์ที่ดินทางการเกษตร; การตรวจหาการสูญเสียพื้นที่ชุ่มน้ำ; การประเมินการแตกกระจายของถิ่นที่อยู่อาศัย การตีความผลลัพธ์: เมทริกซ์การเปลี่ยนผ่านแสดงค่าไม่เปลี่ยนแปลงในแนวทแยงมุมและความถี่การเปลี่ยนผ่านนอกแนวทแยงมุม แผนที่การเปลี่ยนแปลงเน้นพิกเซลที่เปลี่ยนไป ผลลัพธ์ที่เข้ารหัสการเปลี่ยนผ่านเข้ารหัสทั้งคลาสต้นทางและคลาสเป้าหมายเพื่อให้ตีความได้ ความถูกต้องสูงต้องอาศัยการจำแนกที่มีคุณภาพ ความคลาดเคลื่อนของการจำแนกในวันที่ใดวันที่หนึ่งจะส่งผลต่อเป็นความคลาดเคลื่อนของการตรวจหาการเปลี่ยนแปลง การรวมการเปลี่ยนผ่านเผยให้เห็นรูปแบบที่เด่น (เช่น ป่าไม้→เกษตรกรรม ทุ่งหญ้า→เมือง) การเปลี่ยนผ่านระดับต่ำกว่าพิกเซลไม่สามารถตรวจพบได้ด้วยวิธีหลังการจำแนก การเปลี่ยนแปลงระดับละเอียดอาจตรวจไม่พบ",
            "params": {
              "t1_classified": {
                "label": "ภาพจำแนก T1",
                "description": "พาธแรสเตอร์ที่จำแนกแล้วของวันที่ 1."
              },
              "t2_classified": {
                "label": "ภาพจำแนก T2",
                "description": "พาธแรสเตอร์ที่จำแนกแล้วของวันที่ 2."
              },
              "transition_scale": {
                "label": "สเกลการเปลี่ยนผ่าน",
                "description": "ตัวคูณมาตราส่วนสำหรับเข้ารหัสการเปลี่ยนผ่าน (ค่าเริ่มต้น 1000): code = class1 * scale + class2."
              },
              "t1_class_remap": {
                "label": "การแมปคลาสใหม่ T1",
                "description": "ตารางแมปคลาสของวันที่ 1 ใหม่เป็นตัวเลือก ในรูปอ็อบเจกต์ {\"old\": new, ...}."
              },
              "t2_class_remap": {
                "label": "การแมปคลาสใหม่ T2",
                "description": "ตารางแมปคลาสของวันที่ 2 ใหม่เป็นตัวเลือก ในรูปอ็อบเจกต์ {\"old\": new, ...}."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลง t2_classified ไปยังระบบพิกัดของ t1_classified เมื่อจำเป็น."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ที่เข้ารหัสการเปลี่ยนผ่านแล้วผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "write_function_memory_insertion": {
            "name": "การแทรกหน่วยความจำฟังก์ชันเขียน",
            "description": "สร้างภาพผสม RGB แบบแพ็กเพื่อแสดงผลการเปลี่ยนแปลงจากภาพแบนด์เดียวสองหรือสามวันที่",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์แบนด์เดียวของวันที่แรก."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์แบนด์เดียวของวันที่สอง."
              },
              "input3": {
                "label": "ข้อมูลนำเข้า 3",
                "description": "แรสเตอร์แบนด์เดียวของวันที่สามเป็นตัวเลือก หากไม่ระบุ จะใช้ input2 สำหรับช่องสีน้ำเงิน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "brdf_normalization": {
            "name": "การปรับมาตรฐาน BRDF",
            "description": "การปรับมาตรฐาน BRDF สำหรับภาพฉากเดียวโดยใช้วิธี C-correction หรือ Minnaert ร่วมกับเรขาคณิตความลาดชัน/ทิศด้านลาดจาก DEM",
            "params": {
              "input_raster": {
                "label": "แรสเตอร์นำเข้า",
                "description": "แรสเตอร์การสะท้อนนำเข้าที่จะทำให้เป็นมาตรฐาน (แบนด์เดียวหรือสแตกหลายแบนด์)."
              },
              "input_dem": {
                "label": "DEM นำเข้า",
                "description": "แรสเตอร์ DEM ที่ซ้อนทับตรงกับข้อมูลนำเข้า (กริดเดียวกันหรือจะถูกสุ่มตัวอย่างใหม่ให้ตรงกัน)."
              },
              "solar_zenith_deg": {
                "label": "มุมเซนิทดวงอาทิตย์ (องศา)",
                "description": "มุมเซนิทของดวงอาทิตย์เป็นองศา ณ เวลาที่บันทึกภาพ."
              },
              "solar_azimuth_deg": {
                "label": "มุมอะซิมัทดวงอาทิตย์ (องศา)",
                "description": "มุมแอซิมัทของดวงอาทิตย์เป็นองศา (ตามเข็มนาฬิกาจากทิศเหนือ) ณ เวลาที่บันทึกภาพ."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีแก้ไข: c_correction (ค่าเริ่มต้น) หรือ minnaert."
              },
              "minnaert_k": {
                "label": "ค่า K ของ Minnaert",
                "description": "สัมประสิทธิ์ k ของ Minnaert ในช่วง [0,1] (ค่าเริ่มต้น 0.5) ใช้เมื่อ method=minnaert เท่านั้น."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "การขยายแนวดิ่งสำหรับการคำนวณความลาดชัน/ทิศด้านลาดจาก DEM (ค่าเริ่มต้น 1.0)."
              },
              "output_prefix": {
                "label": "คำนำหน้าผลลัพธ์",
                "description": "คำนำหน้าสำหรับไฟล์ผลลัพธ์ (ค่าเริ่มต้น brdf_normalized)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์สำหรับแรสเตอร์ที่ทำเป็นมาตรฐานแล้ว (แทนที่ output_prefix ในโหมดผลลัพธ์เดียว)."
              }
            }
          },
          "correct_vignetting": {
            "name": "แก้ไขขอบภาพมืด",
            "description": "การแก้ไขวิกเนตติงของเลนส์ขจัดสิ่งแปลกปลอมเชิงรังสีที่เกิดจากคุณสมบัติเชิงแสงของเลนส์นอกแกน ซึ่งขอบภาพได้รับแสงน้อยกว่ากึ่งกลางภาพ ทำให้เกิดการไล่ระดับความสว่างเทียมที่ไม่เกี่ยวกับความแปรผันของการสะท้อนของพื้นผิว การแก้ไขวิกเนตติงใช้ตัวคูณที่แปรผันเชิงพื้นที่ซึ่งคำนวณจากแบบจำลองโปรไฟล์วิกเนตติง (สูตร Gaussian หรือกฎ cosine-fourth) ที่ปรับเทียบตามลักษณะของเซนเซอร์ เพื่อคืนการตอบสนองเชิงรังสีที่สม่ำเสมอทั่วขอบเขตภาพ ขั้นตอนการประมวลผลเบื้องต้นนี้มีความสำคัญอย่างยิ่งสำหรับการสำรวจระยะไกลแบบหลายสเปกตรัมและไฮเปอร์สเปกตรัม ซึ่งวิกเนตติงจะทำให้การวิเคราะห์เชิงสเปกตรัมผิดเพี้ยนและก่อให้เกิดความคลาดเคลื่อนอย่างเป็นระบบในเวิร์กโฟลว์การจำแนกและการตรวจหาการเปลี่ยนแปลง คุณสมบัติหลักได้แก่ การประมาณโปรไฟล์วิกเนตติงอัตโนมัติจากสถิติของภาพหรือพารามิเตอร์การปรับเทียบที่ผู้ใช้กำหนด ตัวคูณการแก้ไขที่แปรผันเชิงพื้นที่ซึ่งใช้รายพิกเซลโดยไม่เกิดสิ่งแปลกปลอมจากการประมาณค่าในช่วง การมาสก์พิกเซลรอบนอกที่ถูกแก้ไขมากเกินไป (ถ้าเลือก) เพื่อป้องกันการขยายขอบที่มีสัญญาณรบกวน และการแก้ไขเฉพาะแบนด์ที่รองรับวิกเนตติงที่แปรผันระหว่างแบนด์สเปกตรัม การประยุกต์ใช้ได้แก่ การประมวลผลเบื้องต้นสำหรับอัลกอริทึมการจำแนกเชิงสเปกตรัมที่ไวต่อความสม่ำเสมอเชิงรังสี การเตรียมภาพโมเสกที่ขอบเขตวิกเนตติงทำให้เกิดความไม่ต่อเนื่องที่มองเห็นได้ การเปรียบเทียบเชิงรังสีที่แม่นยำทั่วทั้งกรอบภาพ และการวิเคราะห์ไฮเปอร์สเปกตรัมที่ต้องการการตอบสนองต่อแสงที่สม่ำเสมอ ภาพที่แก้ไขวิกเนตติงแล้วแสดงความสว่างสม่ำเสมอทั่วขอบเขตภาพ ผลลัพธ์ไม่มีขอบมืดโดยมีการตอบสนองเชิงรังสีสม่ำเสมอจากกึ่งกลางถึงขอบภาพ; พิกเซลรอบนอกอาจมีสัญญาณรบกวนสูงขึ้นหากถูกแก้ไขมาก; ภาพที่แก้ไขแล้วผสานเข้ากับเวิร์กโฟลว์การวิเคราะห์หลายสเปกตรัมได้อย่างราบรื่นโดยไม่มีสิ่งแปลกปลอมเชิงรังสี",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ภาพแรสเตอร์นำเข้า."
              },
              "pp": {
                "label": "จุดหลัก (PP)",
                "description": "พาธเวกเตอร์จุด (หรืออ็อบเจกต์เวกเตอร์ที่มีชนิดกำกับ) ที่มีจุดหลักของภาพ."
              },
              "focal_length": {
                "label": "ความยาวโฟกัส",
                "description": "ความยาวโฟกัสของกล้องเป็นมิลลิเมตร (ค่าเริ่มต้น 304.8)."
              },
              "image_width": {
                "label": "ความกว้างภาพ",
                "description": "ระยะห่างระหว่างขอบซ้ายและขอบขวาของภาพเป็นมิลลิเมตร (ค่าเริ่มต้น 228.6)."
              },
              "n": {
                "label": "N",
                "description": "เลขชี้กำลัง n ของแบบจำลองโคไซน์ (ค่าเริ่มต้น 4.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "dark_object_subtraction": {
            "name": "การลบวัตถุมืด",
            "description": "Dark Object Subtraction (DOS) เป็นวิธีฮิวริสติกที่เรียบง่ายแต่มีประสิทธิผลสำหรับการขจัดหมอกควันในบรรยากาศ โดยไม่ต้องใช้ข้อมูลอุตุนิยมวิทยาเสริมหรือแบบจำลองการถ่ายโอนการแผ่รังสีที่ซับซ้อน เทคนิคนี้อาศัยหลักการที่ว่าการสะท้อนเป็นศูนย์ควรให้สัญญาณการสะท้อนเป็นศูนย์ (โดยละเลยการกระเจิงแบบ Rayleigh) สัญญาณใด ๆ ที่สังเกตได้จากพื้นผิวที่ดำทางแสง (น้ำลึก เงาป่าทึบ แอสฟัลต์ในเมือง) จะถือว่าเป็นรังสีตามเส้นทางในบรรยากาศที่เกิดจากการกระเจิงของละอองลอย เครื่องมือนี้ระบุค่าดิจิทัลต่ำสุดในแต่ละแบนด์ทั่วทั้งภาพ ตีความค่านี้ว่าเป็นหมอกควันในบรรยากาศ และลบออกจากทุกพิกเซลเป็นค่าชดเชยคงที่รายแบนด์ รูปแบบที่ซับซ้อนกว่า (DOS2, DOS3, DOS4) คำนึงถึงการกระเจิงแบบ Rayleigh และความลึกเชิงแสงของละอองลอยที่แปรผันโดยใช้ดัชนีพืชพรรณหรือการจัดกลุ่มพิกเซลมืด ความสามารถหลักได้แก่ การวิเคราะห์ฮิสโทแกรมเพื่อแยกวัตถุมืดและแยกแยะหมอกควันที่ขึ้นกับฉากออกจากการสะท้อนที่เป็นศูนย์จริง การมาสก์ลักษณะที่มีการสะท้อนสูงที่ทราบ (เมือง หิมะ เมฆ) ซึ่งจะทำให้การระบุวัตถุมืดเอนเอียง (ถ้าเลือก) การแก้ไขหมอกควันเฉพาะแบนด์ และการคำนวณที่รวดเร็วเหมาะสำหรับการประมวลผลแบบเวลาจริงหรือขนาดใหญ่ กรณีการใช้งานได้แก่ การประมาณการสะท้อนแบบดูเร็ว การติดตามพืชพรรณและคุณภาพน้ำที่การปรับเทียบสัมบูรณ์มีความสำคัญน้อยกว่าการเปลี่ยนแปลงสัมพัทธ์ การทำแผนที่ตอบสนองภัยพิบัติอย่างรวดเร็ว และข้อมูลจัดเก็บเก่าที่ไม่มีข้อมูลละอองลอยที่แม่นยำ ข้อมูลนำเข้าประกอบด้วยการสะท้อนที่ยอดบรรยากาศหรือค่ารังสีที่ปรับเทียบแล้ว มาสก์สิ่งปกคลุมดิน (ถ้าเลือก) เพื่อยกเว้นลักษณะที่สว่าง และเมทาดาทาของฉาก ผลลัพธ์คือค่าการสะท้อนที่แก้ไขหมอกควันแล้ว ค่าประมาณรังสีตามเส้นทางในบรรยากาศรายแบนด์ และแฟล็กคุณภาพที่บ่งบอกความเชื่อมั่นในการระบุวัตถุมืด (เช่น มีพิกเซลมืดจำกัด ฉากที่เป็นเมืองเป็นส่วนใหญ่) แม้จะหยาบเมื่อเทียบกับแบบจำลองการถ่ายโอนการแผ่รังสี แต่ DOS ยังคงใช้งานได้จริงสำหรับการวิเคราะห์หลายช่วงเวลาและการทำแผนที่ครอบคลุมทั่วโลกเมื่อข้อมูลบรรยากาศที่ละเอียดนั้นไม่มีให้ใช้งาน",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "สแตกแรสเตอร์นำเข้า (หนึ่งชั้นหรือมากกว่า)."
              },
              "percentile": {
                "label": "เปอร์เซ็นไทล์",
                "description": "เปอร์เซ็นไทล์ของวัตถุมืดรายแบนด์ (ค่าเริ่มต้น 1.0)."
              },
              "clamp_non_negative": {
                "label": "จำกัดไม่ให้ติดลบ",
                "description": "หากเป็นจริง จะจำกัดค่าที่แก้ไขแล้วซึ่งต่ำกว่าศูนย์ให้เป็นศูนย์ (ค่าเริ่มต้น true)."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของข้อมูลนำเข้าให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              },
              "output_diagnostic_offsets": {
                "label": "ผลลัพธ์ออฟเซ็ตวินิจฉัย",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับการวินิจฉัยออฟเซ็ตวัตถุมืดรายแบนด์เป็นตัวเลือก."
              }
            }
          },
          "dn_to_toa_reflectance": {
            "name": "DN เป็นค่าการสะท้อน TOA",
            "description": "การแปลงค่าดิจิทัลเป็นค่าการสะท้อนที่ยอดบรรยากาศ (top-of-atmosphere reflectance) แปลงค่าดิจิทัลดิบของเซนเซอร์เป็นค่าการสะท้อนเชิงสเปกตรัมที่มีความหมายทางกายภาพ โดยใช้สัมประสิทธิ์การปรับเทียบเชิงรังสีรายแบนด์ที่ได้จากเมทาดาทาของดาวเทียม การแปลงนี้ใช้การปรับมาตราส่วนเชิงรังสี การแก้ไขค่าความเข้มรังสีดวงอาทิตย์นอกบรรยากาศเชิงสเปกตรัม การชดเชยมุมเซนิทของดวงอาทิตย์ และการปรับมาตรฐานระยะทางโลก-ดวงอาทิตย์ (ถ้าเลือก) เพื่อให้ได้ค่าการสะท้อนที่เปรียบเทียบได้โดยตรงข้ามเซนเซอร์ เวลาถ่ายภาพ และตำแหน่งทางภูมิศาสตร์ ค่าการสะท้อนที่ยอดบรรยากาศแทนสัดส่วนของพลังงานแสงอาทิตย์ที่ตกกระทบซึ่งถูกสะท้อนโดยเป้าหมายบนพื้นผิวโลกที่เซนเซอร์ก่อนผลกระทบของบรรยากาศ และเป็นพื้นฐานสำหรับการวิเคราะห์การสำรวจระยะไกลเชิงปริมาณ คุณสมบัติหลักได้แก่ การใช้สัมประสิทธิ์การปรับเทียบรายแบนด์พร้อมการแยกวิเคราะห์เมทาดาทาครบถ้วนจากผลิตภัณฑ์ดาวเทียมมาตรฐาน การคำนวณเรขาคณิตดวงอาทิตย์อัตโนมัติจากเวลาและตำแหน่งการถ่ายภาพ การแก้ไขระยะทางโลก-ดวงอาทิตย์ (ถ้าเลือก) สำหรับความแปรผันตามฤดูกาล และการรองรับเซนเซอร์หลายประเภทอย่างยืดหยุ่นด้วยรูปแบบสัมประสิทธิ์มาตรฐาน การประยุกต์ใช้ครอบคลุมการตรวจหาการเปลี่ยนแปลงเชิงปริมาณโดยใช้หน่วยทางกายภาพที่สอดคล้องกัน การเปรียบเทียบเชิงรังสีสัมบูรณ์ข้ามการถ่ายภาพหลายช่วงเวลาและเซนเซอร์ต่าง ๆ การคำนวณดัชนีพืชพรรณเชิงสเปกตรัมที่ต้องการค่าการสะท้อนที่แม่นยำ และการตรวจสอบความถูกต้องข้ามเซนเซอร์ในงานกลุ่มดาวเทียม ค่าการสะท้อน TOA ทำให้เวิร์กโฟลว์การวิเคราะห์เข้มงวดและได้ผลลัพธ์ที่มีหลักฐานทางวิทยาศาสตร์รองรับ ค่าการสะท้อนในผลลัพธ์อยู่ในช่วง 0-1 (บางครั้งแสดงเป็น 0-10000 เพื่อความแม่นยำแบบจำนวนเต็ม) ซึ่งแทนสัดส่วนไร้มิติ; เมทาดาทาฝังสัมประสิทธิ์การปรับเทียบที่ใช้และพารามิเตอร์เรขาคณิตของเซนเซอร์; ค่าลบบ่งบอกปัญหาคุณภาพข้อมูลที่ต้องมาสก์ก่อนการวิเคราะห์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "สแตกแรสเตอร์ค่า DN นำเข้า (หนึ่งชั้นหรือมากกว่า)."
              },
              "reflectance_mult": {
                "label": "ตัวคูณค่าการสะท้อน",
                "description": "สัมประสิทธิ์การคูณรายแบนด์ เป็นค่าสเกลาร์หรืออาร์เรย์ที่มีขนาดเท่ากับ inputs."
              },
              "reflectance_add": {
                "label": "ค่าบวกเพิ่มค่าการสะท้อน",
                "description": "สัมประสิทธิ์การบวกรายแบนด์ เป็นค่าสเกลาร์หรืออาร์เรย์ที่มีขนาดเท่ากับ inputs (ค่าเริ่มต้น 0)."
              },
              "sensor_bundle_root": {
                "label": "โฟลเดอร์รากชุดข้อมูลเซนเซอร์",
                "description": "รากของบันเดิล Landsat/Sentinel-2 เป็นตัวเลือก ใช้หาสัมประสิทธิ์โดยอัตโนมัติเมื่อไม่ได้ระบุสัมประสิทธิ์ไว้ชัดเจน."
              },
              "sun_elevation_deg": {
                "label": "มุมเงยดวงอาทิตย์ (องศา)",
                "description": "มุมยกของดวงอาทิตย์เป็นองศาสำหรับการแก้ไขด้วยโคไซน์เป็นตัวเลือก จะหาจากเมทาดาทาของบันเดิลโดยอัตโนมัติเมื่อมี."
              },
              "apply_solar_correction": {
                "label": "ใช้การแก้ไขดวงอาทิตย์",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะหารด้วย sin(sun_elevation)."
              },
              "clamp_unit_interval": {
                "label": "จำกัดในช่วงหน่วย",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะจำกัดผลลัพธ์ให้อยู่ในช่วง [0, 1]."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของข้อมูลนำเข้าให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "terrain_corrected_optical_analytics": {
            "name": "การวิเคราะห์ภาพออปติคัลที่แก้ไขภูมิประเทศ",
            "description": "การแก้ไขภูมิประเทศแบบ C-correction ของแบนด์เชิงแสงหลายสเปกตรัมโดยใช้ DEM ที่ลงทะเบียนร่วมกัน ส่งออกสแตกค่าการสะท้อนพื้นผิว ตัวคูณการแก้ไข มาสก์เมฆ/เงา และค่าความเชื่อมั่นของคุณภาพ",
            "params": {
              "input_dem": {
                "label": "DEM นำเข้า",
                "description": "แรสเตอร์ DEM ที่ซ้อนทับตรงกับแบนด์เชิงแสง."
              },
              "bundle_root": {
                "label": "โฟลเดอร์รากชุดข้อมูล",
                "description": "ไดเรกทอรีรากของบันเดิลเซนเซอร์เชิงแสงเป็นตัวเลือก (ปัจจุบันรองรับ Sentinel-2 SAFE, Landsat หรือ DIMAP SPOT/Pleiades) ใช้หาแบนด์ที่จำเป็น มาสก์ QA เมื่อมี และเมทาดาทาดวงอาทิตย์โดยอัตโนมัติเมื่อไม่ได้ระบุข้อมูลนำเข้าไว้ชัดเจน."
              },
              "input_red": {
                "label": "แบนด์แดงนำเข้า",
                "description": "แรสเตอร์แบนด์แดง (เป็นตัวเลือกเมื่อระบุ bundle_root)."
              },
              "input_nir": {
                "label": "แบนด์ NIR นำเข้า",
                "description": "แรสเตอร์แบนด์ NIR (เป็นตัวเลือกเมื่อระบุ bundle_root)."
              },
              "input_green": {
                "label": "แบนด์เขียวนำเข้า",
                "description": "แรสเตอร์แบนด์เขียว (เป็นตัวเลือก)."
              },
              "input_blue": {
                "label": "แบนด์น้ำเงินนำเข้า",
                "description": "แรสเตอร์แบนด์น้ำเงิน (เป็นตัวเลือก) จะหาจากเมทาดาทาของบันเดิลโดยอัตโนมัติเมื่อระบุ bundle_root."
              },
              "solar_mode": {
                "label": "โหมดดวงอาทิตย์",
                "description": "โหมดการหาค่ามุมดวงอาทิตย์: auto, manual, metadata, datetime_location."
              },
              "solar_zenith_deg": {
                "label": "มุมเซนิทดวงอาทิตย์ (องศา)",
                "description": "มุมเซนิทของดวงอาทิตย์เป็นองศา (จำเป็นในโหมด manual)."
              },
              "solar_azimuth_deg": {
                "label": "มุมอะซิมัทดวงอาทิตย์ (องศา)",
                "description": "แอซิมัทของดวงอาทิตย์เป็นองศา (ตามเข็มนาฬิกาจากทิศเหนือ จำเป็นในโหมด manual)."
              },
              "acquisition_datetime_utc": {
                "label": "วันเวลาบันทึกภาพ (UTC)",
                "description": "เวลาที่บันทึกภาพในรูปแบบ RFC3339 UTC สำหรับโหมด datetime_location."
              },
              "latitude": {
                "label": "ละติจูด",
                "description": "ละติจูดสำหรับโหมด datetime_location เป็นตัวเลือก."
              },
              "longitude": {
                "label": "ลองจิจูด",
                "description": "ลองจิจูดสำหรับโหมด datetime_location เป็นตัวเลือก."
              },
              "profile": {
                "label": "โปรไฟล์",
                "description": "โปรไฟล์การประมวลผล: conservative, balanced, fast."
              },
              "cloud_threshold": {
                "label": "ค่าเกณฑ์เมฆ",
                "description": "ค่าเกณฑ์เมฆในหน่วยของแบนด์ต้นทางเป็นตัวเลือก จะอนุมานอัตโนมัติเมื่อไม่ระบุ."
              },
              "shadow_threshold": {
                "label": "ค่าเกณฑ์เงา",
                "description": "ค่าเกณฑ์เงาเมฆในหน่วยของแบนด์ต้นทางเป็นตัวเลือก จะอนุมานอัตโนมัติเมื่อไม่ระบุ."
              },
              "qa_mask": {
                "label": "มาสก์ QA",
                "description": "พาธแรสเตอร์มาสก์ QA เป็นตัวเลือก."
              },
              "qa_mask_format": {
                "label": "รูปแบบมาสก์ QA",
                "description": "การเข้ารหัสมาสก์ QA: auto, landsat_qa_pixel, sentinel2_scl, sentinel2_qa60, binary."
              },
              "mask_strategy": {
                "label": "กลยุทธ์การมาสก์",
                "description": "กลยุทธ์การมาสก์: auto, qa_only, heuristic_only, qa_plus_heuristic."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "การขยายแนวดิ่งสำหรับความลาดชัน/ทิศด้านลาด."
              },
              "output_prefix": {
                "label": "คำนำหน้าผลลัพธ์",
                "description": "คำนำหน้าสำหรับอาร์ติแฟกต์ผลลัพธ์ทั้งหมด."
              }
            }
          },
          "land_surface_temperature_single_channel": {
            "name": "อุณหภูมิพื้นผิวดินแบบช่องสัญญาณเดียว",
            "description": "การประมาณอุณหภูมิพื้นผิวดิน (LST) จากช่องอินฟราเรดความร้อนช่องเดียวประมาณอุณหภูมิผิวเชิงการแผ่รังสีผ่านการผกผันสมการการถ่ายโอนการแผ่รังสี ค่าดิจิทัลของเซนเซอร์ถูกแปลงเป็นค่ารังสีเชิงสเปกตรัมโดยใช้สัมประสิทธิ์การปรับเทียบเฉพาะเซนเซอร์ ค่ารังสีถูกผกผันเป็นอุณหภูมิความสว่างผ่านฟังก์ชัน Planck โดยใช้ค่าคงที่ความร้อนเฉพาะแบนด์ อุณหภูมิความสว่างถูกแปลงเป็น LST ทางกายภาพผ่านการแก้ไขสภาพเปล่งรังสีเชิงประจักษ์ สภาพเปล่งรังสีได้จากดัชนีพืชพรรณหรือกำหนดโดยตรง เพื่อแก้ไขความแปรผันของสภาพเปล่งรังสีความร้อนที่ขึ้นกับวัสดุ คุณสมบัติหลัก: ต้องการแบนด์ความร้อนเพียงแบนด์เดียว; การประมวลผลเชิงรังสีที่เรียบง่าย; การคำนวณที่รวดเร็ว; ไม่ต้องใช้หลายช่อง; การประมาณสภาพเปล่งรังสีจากดัชนีพืชพรรณ; ให้ผลลัพธ์อุณหภูมิทางกายภาพโดยตรง กรณีการใช้งาน: การทำแผนที่ปรากฏการณ์เกาะความร้อนในเมือง; การติดตามความเครียดจากภัยแล้ง; การตรวจจับลักษณะความร้อนใต้พิภพ; การติดตามลายเซ็นความร้อนของไฟป่า; การจัดการน้ำเพื่อการเกษตร การตีความผลลัพธ์: ผลลัพธ์คืออุณหภูมิผิวเชิงการแผ่รังสีในหน่วย Kelvin (หรือ Celsius หากแปลง) การประมาณจากช่องเดียวไม่สามารถขจัดผลของไอน้ำในบรรยากาศได้ทั้งหมด ความเอนเอียงจากบรรยากาศที่เหลืออยู่โดยทั่วไปคือ 2-5 K ความคลาดเคลื่อนของสภาพเปล่งรังสีส่งผลโดยตรง: ความคลาดเคลื่อนของสภาพเปล่งรังสี ±0.05 ≈ ความคลาดเคลื่อนของอุณหภูมิ ±1-2 K สภาพเปล่งรังสีที่อิงพืชพรรณแปรผันตาม NDVI ดินเปล่ามีสภาพเปล่งรังสีต่ำกว่าพืชพรรณ LST แบบอนุกรมเวลาเผยให้เห็นแนวโน้มการร้อนขึ้น/เย็นลง ความผิดปกติของ LST > พื้นหลัง ± 5K บ่งบอกลักษณะทางความร้อน",
            "params": {
              "thermal_input": {
                "label": "แบนด์ความร้อนนำเข้า",
                "description": "พาธแรสเตอร์ความร้อน (เป็นค่า DN โดยค่าเริ่มต้น หรือเป็นอุณหภูมิความสว่างหาก input_is_brightness_temp=true)."
              },
              "input_is_brightness_temp": {
                "label": "ข้อมูลนำเข้าเป็นอุณหภูมิความสว่าง",
                "description": "หากเป็นจริง thermal_input เป็นอุณหภูมิความสว่างในหน่วยเคลวินอยู่แล้ว (ค่าเริ่มต้น false)."
              },
              "emissivity_input": {
                "label": "สภาพเปล่งรังสีนำเข้า",
                "description": "พาธแรสเตอร์สภาพเปล่งรังสีเป็นตัวเลือก ที่จัดแนวตรงกับ thermal_input."
              },
              "emissivity_constant": {
                "label": "ค่าคงที่สภาพเปล่งรังสี",
                "description": "ค่าสภาพเปล่งรังสีสำรองเมื่อไม่ได้ระบุ emissivity_input (ค่าเริ่มต้น 0.98)."
              },
              "sensor_bundle_root": {
                "label": "โฟลเดอร์รากชุดข้อมูลเซนเซอร์",
                "description": "รากของบันเดิล Landsat เป็นตัวเลือก ใช้หาค่าความเข้มรังสีความร้อนและค่าคงที่ของ Planck."
              },
              "thermal_band_number": {
                "label": "หมายเลขแบนด์ความร้อน",
                "description": "หมายเลขแบนด์ความร้อนสำหรับการค้นหาเมทาดาทา (ค่าเริ่มต้น 10)."
              },
              "radiance_mult": {
                "label": "ตัวคูณเรเดียนซ์",
                "description": "ตัวคูณความเข้มรังสีความร้อนสำหรับการแปลง DN เป็นความเข้มรังสี."
              },
              "radiance_add": {
                "label": "ค่าบวกเพิ่มเรเดียนซ์",
                "description": "ตัวบวกความเข้มรังสีความร้อนสำหรับการแปลง DN เป็นความเข้มรังสี."
              },
              "k1_constant": {
                "label": "ค่าคงที่ K1",
                "description": "ค่าคงที่ความร้อน K1 ของ Planck."
              },
              "k2_constant": {
                "label": "ค่าคงที่ K2",
                "description": "ค่าคงที่ความร้อน K2 ของ Planck."
              },
              "wavelength_um": {
                "label": "ความยาวคลื่น (µm)",
                "description": "ความยาวคลื่นความร้อนประสิทธิผลเป็นไมโครเมตร (ค่าเริ่มต้นอนุมานจาก thermal_band_number)."
              },
              "output_units": {
                "label": "หน่วยผลลัพธ์",
                "description": "หน่วยผลลัพธ์: celsius (ค่าเริ่มต้น) หรือ kelvin."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลง emissivity_input ไปยังระบบพิกัดของ thermal_input เมื่อจำเป็น."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "land_surface_temperature_split_window": {
            "name": "อุณหภูมิพื้นผิวดินแบบ Split Window",
            "description": "การประมาณ LST แบบ split-window ใช้แบนด์อินฟราเรดความร้อนสองแบนด์เพื่อประมาณอุณหภูมิพื้นผิวและสภาพเปล่งรังสีพร้อมกันผ่านการผกผันสมการการถ่ายโอนการแผ่รังสี การดูดกลืนของบรรยากาศที่แตกต่างกันระหว่างสองแบนด์ (โดยทั่วไปในช่วง 10-12 μm) ทำให้แก้ไขผลของไอน้ำในบรรยากาศได้ ช่วยเพิ่มความถูกต้องเหนือกว่าวิธีช่องเดียว อุณหภูมิความสว่างจากทั้งสองแบนด์ถูกผกผันด้วยการกำหนดพารามิเตอร์สภาพเปล่งรังสีตามสัดส่วนพืชพรรณ หรือกริดสภาพเปล่งรังสีที่ผู้ใช้จัดเตรียม คุณสมบัติหลัก: ต้องการแบนด์ความร้อนสองแบนด์; การแก้ไขบรรยากาศผ่านการดูดกลืนที่แตกต่างกัน; การประมาณอุณหภูมิ/สภาพเปล่งรังสีพร้อมกัน; อัลกอริทึมที่เผยแพร่แล้วสำหรับเซนเซอร์มาตรฐาน; การชดเชยบรรยากาศที่ดีกว่าวิธีช่องเดียว กรณีการใช้งาน: การทำแผนที่ปรากฏการณ์เกาะความร้อนในเมือง; การตรวจหาภัยแล้งทางการเกษตร; การตรวจจับลักษณะความร้อนใต้พิภพ; การศึกษาปฏิสัมพันธ์ระหว่างพื้นดินกับบรรยากาศ; การตรวจหาความผิดปกติทางภูเขาไฟ/ความร้อน การตีความผลลัพธ์: ผลลัพธ์คืออุณหภูมิพื้นผิวเชิงการแผ่รังสีที่มีการแก้ไขบรรยากาศดีขึ้น การประมาณแบบ split-window ลดความเอนเอียงจากไอน้ำในบรรยากาศเหลือ <1-2 K เทียบกับความคลาดเคลื่อน 2-5 K ของวิธีช่องเดียว การแลกเปลี่ยนระหว่างอุณหภูมิ/สภาพเปล่งรังสียังคงมีอยู่: พื้นที่ที่มีดัชนีพืชพรรณสูงมีสภาพเปล่งรังสีต่ำซึ่งต้องตีความอย่างระมัดระวัง พื้นผิวที่ไม่เป็นเนื้อเดียวกัน (พืชพรรณ/ดินผสม) แสดงค่าระดับกลาง ความสอดคล้องตามเวลาช่วยเพิ่มความน่าเชื่อถือของการตรวจหาการเปลี่ยนแปลง แนวโน้ม LST > ±3K บ่งบอกการเปลี่ยนแปลงทางความร้อนที่มีนัยสำคัญ",
            "params": {
              "thermal1_input": {
                "label": "แบนด์ความร้อน 1 นำเข้า",
                "description": "พาธแรสเตอร์ความร้อนชุดแรก (เช่น Landsat B10)."
              },
              "thermal2_input": {
                "label": "แบนด์ความร้อน 2 นำเข้า",
                "description": "พาธแรสเตอร์ความร้อนชุดที่สอง (เช่น Landsat B11)."
              },
              "input_is_brightness_temp": {
                "label": "ข้อมูลนำเข้าเป็นอุณหภูมิความสว่าง",
                "description": "หากเป็นจริง ข้อมูลความร้อนนำเข้าเป็นอุณหภูมิความสว่างในหน่วยเคลวินอยู่แล้ว (ค่าเริ่มต้น false)."
              },
              "emissivity_mean_input": {
                "label": "ค่าเฉลี่ยสภาพเปล่งรังสีนำเข้า",
                "description": "พาธแรสเตอร์สภาพเปล่งรังสีเฉลี่ยเป็นตัวเลือก."
              },
              "emissivity_delta_input": {
                "label": "ผลต่างสภาพเปล่งรังสีนำเข้า",
                "description": "พาธแรสเตอร์ผลต่างสภาพเปล่งรังสีเป็นตัวเลือก (epsilon1 - epsilon2)."
              },
              "emissivity_mean_constant": {
                "label": "ค่าคงที่ค่าเฉลี่ยสภาพเปล่งรังสี",
                "description": "ค่าคงที่สภาพเปล่งรังสีเฉลี่ยสำรองเมื่อไม่มี emissivity_mean_input (ค่าเริ่มต้น 0.98)."
              },
              "emissivity_delta_constant": {
                "label": "ค่าคงที่ผลต่างสภาพเปล่งรังสี",
                "description": "ค่าคงที่ผลต่างสภาพเปล่งรังสีสำรองเมื่อไม่มี emissivity_delta_input (ค่าเริ่มต้น 0.0)."
              },
              "sensor_bundle_root": {
                "label": "โฟลเดอร์รากชุดข้อมูลเซนเซอร์",
                "description": "รากของบันเดิล Landsat เป็นตัวเลือก ใช้หาค่าความเข้มรังสีความร้อนและค่าคงที่ของ Planck."
              },
              "thermal_band1_number": {
                "label": "หมายเลขแบนด์ความร้อน 1",
                "description": "หมายเลขแบนด์สำหรับการค้นหาเมทาดาทาของ thermal1_input (ค่าเริ่มต้น 10)."
              },
              "thermal_band2_number": {
                "label": "หมายเลขแบนด์ความร้อน 2",
                "description": "หมายเลขแบนด์สำหรับการค้นหาเมทาดาทาของ thermal2_input (ค่าเริ่มต้น 11)."
              },
              "radiance1_mult": {
                "label": "ตัวคูณเรเดียนซ์ 1",
                "description": "ตัวคูณความเข้มรังสีของแบนด์ 1."
              },
              "radiance1_add": {
                "label": "ค่าบวกเพิ่มเรเดียนซ์ 1",
                "description": "ตัวบวกความเข้มรังสีของแบนด์ 1."
              },
              "k1_1": {
                "label": "K1 (แบนด์ 1)",
                "description": "ค่าคงที่ K1 ของ Planck สำหรับแบนด์ 1."
              },
              "k2_1": {
                "label": "K2 (แบนด์ 1)",
                "description": "ค่าคงที่ K2 ของ Planck สำหรับแบนด์ 1."
              },
              "radiance2_mult": {
                "label": "ตัวคูณเรเดียนซ์ 2",
                "description": "ตัวคูณความเข้มรังสีของแบนด์ 2."
              },
              "radiance2_add": {
                "label": "ค่าบวกเพิ่มเรเดียนซ์ 2",
                "description": "ตัวบวกความเข้มรังสีของแบนด์ 2."
              },
              "k1_2": {
                "label": "K1 (แบนด์ 2)",
                "description": "ค่าคงที่ K1 ของ Planck สำหรับแบนด์ 2."
              },
              "k2_2": {
                "label": "K2 (แบนด์ 2)",
                "description": "ค่าคงที่ K2 ของ Planck สำหรับแบนด์ 2."
              },
              "coeff_a0": {
                "label": "สัมประสิทธิ์ A0",
                "description": "สัมประสิทธิ์ a0 ของ Split Window (ค่าเริ่มต้น 0.0)."
              },
              "coeff_a1": {
                "label": "สัมประสิทธิ์ A1",
                "description": "สัมประสิทธิ์ a1 ของ Split Window สำหรับพจน์ T1 (ค่าเริ่มต้น 1.0)."
              },
              "coeff_a2": {
                "label": "สัมประสิทธิ์ A2",
                "description": "สัมประสิทธิ์ a2 ของ Split Window สำหรับพจน์ (T1-T2) (ค่าเริ่มต้น 0.0)."
              },
              "coeff_a3": {
                "label": "สัมประสิทธิ์ A3",
                "description": "สัมประสิทธิ์ a3 ของ Split Window สำหรับพจน์ (T1-T2)^2 (ค่าเริ่มต้น 0.0)."
              },
              "coeff_a4": {
                "label": "สัมประสิทธิ์ A4",
                "description": "สัมประสิทธิ์ a4 ของ Split Window สำหรับพจน์ (1-emissivity_mean) (ค่าเริ่มต้น 0.0)."
              },
              "coeff_a5": {
                "label": "สัมประสิทธิ์ A5",
                "description": "สัมประสิทธิ์ a5 ของ Split Window สำหรับพจน์ emissivity_delta (ค่าเริ่มต้น 0.0)."
              },
              "output_units": {
                "label": "หน่วยผลลัพธ์",
                "description": "หน่วยผลลัพธ์: celsius (ค่าเริ่มต้น) หรือ kelvin."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงแรสเตอร์เสริมให้ตรงกับระบบพิกัดของ thermal1_input เมื่อจำเป็น."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "ndvi_based_emissivity": {
            "name": "สภาพเปล่งรังสีจาก NDVI",
            "description": "การประมาณสภาพเปล่งรังสีของพื้นผิวดินจาก NDVI คำนวณสภาพเปล่งรังสีความร้อนแบบแถบกว้างจากสัดส่วนพืชพรรณที่คำนวณจาก NDVI ทำให้สามารถแก้ไขการถ่ายโอนการแผ่รังสีความร้อนสำหรับการประมาณอุณหภูมิพื้นผิวดินจากข้อมูลดาวเทียมอินฟราเรดความร้อนได้ อัลกอริทึมคำนวณ NDVI จากค่าการสะท้อนช่วงสีแดงและอินฟราเรดใกล้ แปลง NDVI เป็นสัดส่วนพืชพรรณ แล้วใช้ความสัมพันธ์เชิงประจักษ์ระหว่างสัดส่วนพืชพรรณกับสภาพเปล่งรังสีที่ได้รับการตรวจสอบผ่านการวัดภาคสนามและการจำลองการถ่ายโอนการแผ่รังสี พืชพรรณส่งผลอย่างมากต่อสภาพเปล่งรังสีความร้อน พืชพรรณที่มากขึ้นทำให้สภาพเปล่งรังสีเพิ่มขึ้นเข้าใกล้ ~0.99 ขณะที่สภาพเปล่งรังสีของดินเปล่าอยู่ในช่วง ~0.90-0.98 ขึ้นกับองค์ประกอบของดินและความขรุขระของพื้นผิว คุณสมบัติหลักได้แก่ การคำนวณสัดส่วนพืชพรรณอัตโนมัติจาก NDVI โดยไม่ต้องปรับเทียบภาคสนาม ความสัมพันธ์เชิงประจักษ์มาตรฐานที่มีรากฐานจากทฤษฎีการถ่ายโอนการแผ่รังสีทางกายภาพ การวิเคราะห์ความไว (ถ้าเลือก) เพื่อสำรวจความแปรผันของสภาพเปล่งรังสี และความเข้ากันได้โดยตรงกับข้อมูลดาวเทียมอินฟราเรดความร้อน การประยุกต์ใช้ได้แก่ การประมาณอุณหภูมิพื้นผิวดินจากข้อมูลดาวเทียมความร้อนที่ต้องการการแก้ไขสภาพเปล่งรังสีที่แม่นยำ (Landsat, MODIS, Sentinel-3) การวิเคราะห์ปรากฏการณ์เกาะความร้อนในเมืองที่แก้ไขตามพืชพรรณที่แปรผัน การสร้างแบบจำลองความร้อนในการประยุกต์ใช้ด้านทรัพยากรน้ำและการเกษตร และการประยุกต์ใช้ด้านภูมิอากาศที่ต้องการชุดข้อมูลความร้อนทั่วโลกที่สอดคล้องกัน สภาพเปล่งรังสีจาก NDVI ทำให้แก้ไขความร้อนได้อย่างแม่นยำ ผลลัพธ์ประกอบด้วยแรสเตอร์สภาพเปล่งรังสี (0-1) ที่เหมาะสำหรับการแก้ไขการถ่ายโอนการแผ่รังสีความร้อน ผลิตภัณฑ์ระหว่างกลางสัดส่วนพืชพรรณที่ช่วยในการตีความ และเมทาดาทาที่บันทึกความสัมพันธ์เชิงประจักษ์และคุณสมบัติดิน/พื้นผิวที่สมมติ; ค่าสภาพเปล่งรังสีช่วยชี้แนะความไม่แน่นอนของการแก้ไขความร้อนและความเหมาะสมสำหรับการประยุกต์ใช้เฉพาะ",
            "params": {
              "red_input": {
                "label": "แบนด์แดงนำเข้า",
                "description": "พาธแรสเตอร์แบนด์แดง."
              },
              "nir_input": {
                "label": "แบนด์ NIR นำเข้า",
                "description": "พาธแรสเตอร์แบนด์ NIR."
              },
              "ndvi_soil": {
                "label": "NDVI ของดิน",
                "description": "ค่าเกณฑ์ NDVI สำหรับสัดส่วนดินเปล่า (ค่าเริ่มต้น 0.2)."
              },
              "ndvi_vegetation": {
                "label": "NDVI ของพืชพรรณ",
                "description": "ค่าเกณฑ์ NDVI สำหรับสัดส่วนพืชพรรณเต็มพื้นที่ (ค่าเริ่มต้น 0.5)."
              },
              "emissivity_soil": {
                "label": "สภาพเปล่งรังสีของดิน",
                "description": "สภาพเปล่งรังสีของดินที่สมมติ (ค่าเริ่มต้น 0.97)."
              },
              "emissivity_vegetation": {
                "label": "สภาพเปล่งรังสีของพืชพรรณ",
                "description": "สภาพเปล่งรังสีของพืชพรรณที่สมมติ (ค่าเริ่มต้น 0.99)."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลง nir_input ไปยังระบบพิกัดของ red_input เมื่อจำเป็น."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "continuum_removal": {
            "name": "การลบคอนตินิวอัม",
            "description": "การขจัดคอนตินิวอัม (continuum removal) ปรับมาตรฐานสเปกตรัมหลายสเปกตรัมโดยประมาณคอนเวกซ์ฮัลล์ด้านบน (คอนตินิวอัม) ที่ห่อหุ้มสเปกตรัม แล้วหารแต่ละแบนด์ด้วยค่าคอนตินิวอัมที่สอดคล้องกัน ขจัดความชันเชิงสเปกตรัมโดยรวมและความแปรผันของความสว่าง ทำให้แสดงลักษณะการดูดกลืน (แบนด์ ความลึก) ได้ชัดเจนขึ้น ความลึกและตำแหน่งการดูดกลืนถูกทำให้เป็นมาตรฐาน ทำให้ระบุแร่/วัสดุผ่านห้องสมุดสเปกตรัมได้ เส้นคอนตินิวอัมคำนวณผ่านอัลกอริทึมคอนเวกซ์ฮัลล์ที่เชื่อมจุดสูงสุดเฉพาะที่ทั่วช่วงสเปกตรัม คุณสมบัติหลัก: ขจัดคอนตินิวอัมเชิงสเปกตรัม; เน้นลักษณะการดูดกลืน; ปรับมาตรฐานสำหรับความแปรผันของความสว่าง; ทำให้จับคู่กับห้องสมุดสเปกตรัมได้; ทำให้รูปร่างสเปกตรัมเป็นมาตรฐาน กรณีการใช้งาน: การระบุแร่; การจำแนกวัสดุ; การวิเคราะห์สเปกตรัมพืชพรรณ; การตรวจหาความผิดปกติเชิงสเปกตรัม; การทำแผนที่ลักษณะการดูดกลืน การตีความผลลัพธ์: สเปกตรัมที่ขจัดคอนตินิวอัมแล้วแสดงลักษณะการดูดกลืน (ค่า <1.0) ที่บ่งบอกแบนด์เฉพาะวัสดุ ความลึกการดูดกลืนบ่งบอกความแรงของลักษณะ ลักษณะตื้น (<0.2) บ่งบอกองค์ประกอบรอง ลักษณะลึก (>0.5) บ่งบอกการดูดกลืนที่เด่น ตำแหน่งลักษณะในปริภูมิความยาวคลื่นทำให้ระบุวัสดุผ่านห้องสมุดอ้างอิงได้ สเปกตรัมที่ขจัดคอนตินิวอัมแล้วที่แบนราบ (ใกล้ 1.0) บ่งบอกวัสดุที่เป็นกลางเชิงสเปกตรัม",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "สแตกแรสเตอร์นำเข้า (หนึ่งชั้นต่อหนึ่งแบนด์)."
              },
              "wavelengths": {
                "label": "ความยาวคลื่น",
                "description": "อาร์เรย์ความยาวคลื่นที่เพิ่มขึ้นอย่างเคร่งครัดซึ่งมีจำนวนตรงกับ inputs เป็นตัวเลือก."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์หลายแบนด์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "linear_spectral_unmixing": {
            "name": "การแยกส่วนผสมสเปกตรัมเชิงเส้น",
            "description": "การแยกองค์ประกอบสเปกตรัมเชิงเส้น (linear spectral unmixing) แยกเวกเตอร์หลายสเปกตรัมของแต่ละพิกเซลเป็นผลรวมเชิงเส้นแบบไม่เป็นลบของสเปกตรัม endmember ที่แทนลายเซ็นของวัสดุบริสุทธิ์ การหาค่าเหมาะที่สุดแบบกำลังสองน้อยที่สุดไม่เป็นลบแก้ปัญหา min ||y - Ax||² ภายใต้เงื่อนไข x ≥ 0 โดย y คือสเปกตรัมของพิกเซล A ประกอบด้วยลายเซ็น endmember และ x แทนสัดส่วนความชุกชุม มีการบังคับเงื่อนไขผลรวมเท่ากับหนึ่งเพื่อให้ค่าความชุกชุมแทนสัดส่วนทางกายภาพ endmember ได้จากข้อมูลฝึก ฐานข้อมูลห้องสมุด หรือสกัดผ่านอัลกอริทึมการสกัด endmember คุณสมบัติหลัก: การประมาณวัสดุระดับต่ำกว่าพิกเซล; สัดส่วนความชุกชุมตีความทางกายภาพได้; รองรับหลาย endmember; ผลลัพธ์ถูกจำกัดให้อยู่ในช่วงที่ถูกต้อง [0,1]; ทำให้ตรวจหาการเปลี่ยนแปลงของวัสดุได้ กรณีการใช้งาน: การทำแผนที่ความชุกชุมของสิ่งปกคลุมดิน; การประมาณองค์ประกอบแร่; การสำรวจวัสดุในเมือง; สัดส่วนพืชพรรณ/ดิน/พื้นผิวทึบน้ำ; การจำแนกโดยอิงห้องสมุดสเปกตรัม การตีความผลลัพธ์: แผนที่ความชุกชุมในผลลัพธ์แสดงสัดส่วนวัสดุรายพิกเซลที่รวมกันเป็น 1.0 ความชุกชุม <0.1 บ่งบอกองค์ประกอบรอง ความชุกชุม >0.7 บ่งบอกวัสดุที่เด่น ความคลาดเคลื่อนคงเหลือบ่งบอกคุณภาพของการแยก ค่าคงเหลือต่ำบ่งบอกการพอดีเชิงสเปกตรัมที่ดี ค่าคงเหลือสูงบ่งบอก endmember ไม่ตรงกันหรือพิกเซลมีความซับซ้อน",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "สแตกแรสเตอร์นำเข้า (หนึ่งชั้นต่อหนึ่งแบนด์)."
              },
              "endmembers": {
                "label": "เอนด์เมมเบอร์",
                "description": "ลายเซ็นของสมาชิกปลายในรูปอาร์เรย์ของอ็อบเจกต์ {name, values} หรืออาร์เรย์เชิงตัวเลข."
              },
              "sum_to_one": {
                "label": "ผลรวมเท่ากับหนึ่ง",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะทำให้สัดส่วนที่ไม่เป็นลบเป็นมาตรฐานให้รวมกันได้หนึ่ง."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำของเกรเดียนต์แบบฉาย (ค่าเริ่มต้น 80)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ขนาดก้าวของเกรเดียนต์แบบฉาย (ค่าเริ่มต้น 0.05)."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์สัดส่วนหลายแบนด์ผลลัพธ์เป็นตัวเลือก."
              },
              "output_residual": {
                "label": "ผลลัพธ์ค่าคงเหลือ",
                "description": "พาธแรสเตอร์ค่า RMS ของค่าคงเหลือผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "minimum_noise_fraction": {
            "name": "Minimum Noise Fraction",
            "description": "Minimum noise fraction แปลงข้อมูลไฮเปอร์สเปกตรัมผ่านกระบวนการสองขั้นตอน: การประมาณความแปรปรวนร่วมของสัญญาณรบกวน ตามด้วยการทำให้สัญญาณรบกวนเป็นไวต์ (noise whitening) และการวิเคราะห์องค์ประกอบหลัก การทำให้สัญญาณรบกวนเป็นไวต์ขจัดสหสัมพันธ์ของสัญญาณรบกวนระหว่างแบนด์ PCA ในปริภูมิที่ทำให้เป็นไวต์แล้วระบุทิศทางที่สัญญาณเด่น องค์ประกอบในผลลัพธ์เรียงตามอัตราส่วนสัญญาณต่อสัญญาณรบกวน โดยองค์ประกอบแรก ๆ แทนสัญญาณและองค์ประกอบหลัง ๆ แทนสัญญาณรบกวน ทำให้ลดสัญญาณรบกวนได้ด้วยการตัดองค์ประกอบโดยไม่มีสิ่งแปลกปลอมจากการทำให้เรียบแบบดั้งเดิม คุณสมบัติหลัก: แยกสัญญาณออกจากสัญญาณรบกวน; สัญญาณรบกวนรวมตัวอยู่ในองค์ประกอบหลัง ๆ; การเลือกองค์ประกอบทำให้กรองสัญญาณรบกวนได้; คงความเที่ยงตรงเชิงสเปกตรัม; ทำให้ลดมิติได้ กรณีการใช้งาน: การลดสัญญาณรบกวนในภาพไฮเปอร์สเปกตรัม; การลดมิติสำหรับการจำแนก; การเสริมสัญญาณ; การอธิบายลักษณะสัญญาณรบกวน; การประเมินคุณภาพภาพ การตีความผลลัพธ์: องค์ประกอบ MNF 1-3 แรกโดยทั่วไปมีสัญญาณ 70-90% องค์ประกอบหลัง ๆ มีสัญญาณรบกวนมากขึ้นตามลำดับ การตัดองค์ประกอบ (เก็บไว้เฉพาะ N องค์ประกอบแรก) ขจัดสัญญาณรบกวนพร้อมคงข้อมูลเชิงสเปกตรัมที่สำคัญไว้ ภาพองค์ประกอบ MNF ช่วยให้ประเมินสัญญาณรบกวนด้วยสายตาได้ ส่วนเบี่ยงเบนมาตรฐานขององค์ประกอบหลัง ๆ บ่งบอกระดับสัญญาณรบกวน",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "สแตกแรสเตอร์นำเข้า (หนึ่งชั้นต่อหนึ่งแบนด์)."
              },
              "num_components": {
                "label": "จำนวนองค์ประกอบ",
                "description": "จำนวนองค์ประกอบ MNF ผลลัพธ์ (ค่าเริ่มต้น: ทุกแบนด์)."
              },
              "noise_mode": {
                "label": "โหมดสัญญาณรบกวน",
                "description": "โหมดตัวประมาณสัญญาณรบกวน: 'difference_x' (ค่าเริ่มต้น) หรือ 'difference_y'."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์องค์ประกอบ MNF หลายแบนด์ผลลัพธ์เป็นตัวเลือก."
              },
              "output_inverse": {
                "label": "ผลลัพธ์ผกผัน",
                "description": "พาธแรสเตอร์หลายแบนด์ที่สร้างขึ้นใหม่จากองค์ประกอบ MNF ที่เก็บไว้ เป็นตัวเลือก."
              }
            }
          },
          "spectral_angle_mapper": {
            "name": "Spectral Angle Mapper",
            "description": "Spectral Angle Mapping จำแนกพิกเซลโดยคำนวณมุมเชิงสเปกตรัมระหว่างสเปกตรัมของแต่ละพิกเซลกับสเปกตรัมในห้องสมุดอ้างอิง แล้วกำหนดพิกเซลให้กับสเปกตรัมในห้องสมุดที่มีมุมน้อยที่สุด ซึ่งแทนความคล้ายคลึงเชิงสเปกตรัมสูงสุดโดยไม่ขึ้นกับความเข้มของแสง SAM มองแต่ละพิกเซลและสเปกตรัมอ้างอิงเป็นเวกเตอร์ในปริภูมิสเปกตรัม N มิติ และคำนวณมุมระหว่างเวกเตอร์โดยใช้ผลคูณจุดและการแปลงโคไซน์ผกผัน การจำแนกตามมุมเชิงสเปกตรัมนี้ไม่แปรเปลี่ยนต่อผลของแสงและภูมิประเทศที่ปรับขนาดความสว่างโดยรวมแต่คงรูปร่างสเปกตรัมไว้ จึงทนทานสำหรับภูมิประเทศที่ซับซ้อนและสภาวะการถ่ายภาพที่แปรผัน คุณสมบัติหลักได้แก่ การกำหนดค่าเกณฑ์มุมเชิงสเปกตรัมอัตโนมัติที่ช่วยให้ได้ความเชื่อมั่นของการจำแนกเชิงความน่าจะเป็น การนำเข้าห้องสมุดอ้างอิงที่รองรับลายเซ็นเชิงสเปกตรัมที่ผู้ใช้จัดเตรียมจากตัวอย่างภาคสนามหรือห้องสมุดสเปกตรัม ความไม่แปรเปลี่ยนต่อแสงที่รองรับแสงที่แปรผันพร้อมคงการแยกแยะเชิงสเปกตรัม และการคำนวณที่รวดเร็วซึ่งทำให้จำแนกภาพขนาดใหญ่แบบเวลาจริงได้ การประยุกต์ใช้ทั่วไปได้แก่ การระบุวัสดุและการทำแผนที่ธรณีวิทยาโดยใช้ห้องสมุดสเปกตรัม USGS การจำแนกชนิดพืชพรรณโดยรวมข้อมูลดาวเทียมหลายสเปกตรัมกับสเปกตรัมที่เก็บจากภาคสนาม การสำรวจแร่ในการสำรวจไฮเปอร์สเปกตรัมทางอากาศ และการประเมินความถูกต้องโดยเปรียบเทียบสเปกตรัมของภาพกับลายเซ็นอ้างอิงที่เก็บจากภาคพื้นดิน ผลลัพธ์ SAM ทำให้ระบุวัสดุได้อย่างมั่นใจโดยอาศัยลายเซ็นรูปร่างสเปกตรัม ผลลัพธ์การจำแนกเป็นภาพแบนด์เดียวที่มีป้ายคลาสจำนวนเต็มตรงกับรายการในห้องสมุด แรสเตอร์ความเชื่อมั่น (ถ้าเลือก) บันทึกมุมเชิงสเปกตรัมต่ำสุดของแต่ละพิกเซลเพื่อการกรองตามค่าเกณฑ์ ผลลัพธ์ช่วยให้ระบุวัสดุได้โดยตรงและกรองตามความเชื่อมั่นได้",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "สแตกแรสเตอร์นำเข้า (หนึ่งชั้นต่อหนึ่งแบนด์)."
              },
              "endmembers": {
                "label": "เอนด์เมมเบอร์",
                "description": "ลายเซ็นของสมาชิกปลายในรูปอาร์เรย์ของอ็อบเจกต์ {name, values} หรืออาร์เรย์เชิงตัวเลข."
              },
              "threshold_angle_deg": {
                "label": "ค่าเกณฑ์มุม (องศา)",
                "description": "มุมสเปกตรัมสูงสุดที่ยอมรับเป็นองศา เป็นตัวเลือก พิกเซลที่ไม่ตรงกันจะเป็นคลาส 0."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์คลาสผลลัพธ์เป็นตัวเลือก."
              },
              "output_angle": {
                "label": "ผลลัพธ์มุม",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับมุมสเปกตรัมต่ำสุด (องศา) เป็นตัวเลือก."
              }
            }
          },
          "spectral_library_matching": {
            "name": "การจับคู่ไลบรารีสเปกตรัม",
            "description": "การจับคู่ห้องสมุดสเปกตรัมทำการจำแนกโดยเปรียบเทียบสเปกตรัมของพิกเซลในภาพกับสเปกตรัมในห้องสมุดอ้างอิง โดยใช้ตัววัดความคล้ายคลึงหลายแบบ ได้แก่ มุมเชิงสเปกตรัม (มุมระหว่างเวกเตอร์สเปกตรัม) ระยะทาง Euclidean (ผลต่างของขนาด) และ spectral information divergence อัลกอริทึมรับห้องสมุดสเปกตรัมอ้างอิงที่ผู้ใช้จัดเตรียมซึ่งมีสเปกตรัมของวัสดุ/คลาสที่ทราบ คำนวณตัววัดความคล้ายคลึงระหว่างแต่ละพิกเซลของภาพกับรายการในห้องสมุด ระบุสเปกตรัมในห้องสมุดที่ตรงกันมากที่สุด (มุมต่ำสุด ระยะทางต่ำสุด หรือ divergence ต่ำสุด) และส่งออกป้ายคลาสพร้อมคะแนนความเชื่อมั่น/ความคล้ายคลึง (ถ้าเลือก) การจับคู่ห้องสมุดทำให้ระบุวัสดุได้โดยไม่ต้องมีตัวอย่างฝึกภาคสนาม โดยอาศัยสเปกตรัมอ้างอิงจาก USGS การสำรวจภาคสนาม หรือสเปกโตรสโกปีในห้องปฏิบัติการ คุณสมบัติหลักได้แก่ ตัววัดความคล้ายคลึงหลายแบบที่ช่วยให้เลือกตัววัดตามลักษณะเชิงสเปกตรัมและการกระจายคลาสเฉพาะ ความยืดหยุ่นในการนำเข้าห้องสมุดที่รองรับรูปแบบห้องสมุดสเปกตรัมต่าง ๆ การวัดปริมาณความเชื่อมั่น/ความไม่แน่นอน (ถ้าเลือก) และผลลัพธ์ที่ระบุวัสดุได้โดยตรง การประยุกต์ใช้ได้แก่ การทำแผนที่ธรณีวิทยาโดยใช้ห้องสมุดสเปกตรัม USGS สำหรับแร่วิทยา การจำแนกพืชพรรณโดยใช้ห้องสมุดอ้างอิงสเปกตรัมพืช การระบุวัสดุก่อสร้างในพื้นที่เมือง และการวิเคราะห์การสำรวจไฮเปอร์สเปกตรัมทางอากาศ การจับคู่ห้องสมุดสเปกตรัมทำให้ระบุวัสดุได้โดยอัตโนมัติ ผลลัพธ์ประกอบด้วยแผนที่ที่จำแนกแล้วโดยใช้รหัสรายการในห้องสมุดเป็นป้ายคลาส แรสเตอร์ความคล้ายคลึง/ความเชื่อมั่นที่วัดคุณภาพการจับคู่ และสแตกมุมเชิงสเปกตรัม/ระยะทางเต็มสำหรับแต่ละรายการในห้องสมุด (ถ้าเลือก) เพื่อการกรองตามค่าเกณฑ์; เมทาดาทาบันทึกแหล่งที่มาของห้องสมุดอ้างอิงและตัววัดความคล้ายคลึงที่ใช้",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "สแตกแรสเตอร์นำเข้า (หนึ่งชั้นต่อหนึ่งแบนด์)."
              },
              "library": {
                "label": "ไลบรารี",
                "description": "รายการในคลังสเปกตรัมในรูปอาร์เรย์ของอ็อบเจกต์ {name, values} หรืออาร์เรย์เชิงตัวเลข."
              },
              "library_csv": {
                "label": "ไลบรารี CSV",
                "description": "พาธคลังสเปกตรัมแบบ CSV เป็นตัวเลือก (แถวรูปแบบ name,b1,b2,... หรือ b1,b2,...) ใช้เมื่อไม่ได้ระบุ 'library'."
              },
              "metric": {
                "label": "เมตริก",
                "description": "ค่าวัดการจับคู่: 'sam' (ค่าเริ่มต้น), 'euclidean' หรือ 'sid'."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์คลาสผลลัพธ์เป็นตัวเลือก."
              },
              "output_score": {
                "label": "ผลลัพธ์คะแนน",
                "description": "พาธแรสเตอร์คะแนนการจับคู่ที่ดีที่สุดผลลัพธ์ (มุมหรือระยะทาง) เป็นตัวเลือก."
              }
            }
          },
          "canny_edge_detection": {
            "name": "การตรวจจับขอบแบบ Canny",
            "description": "ใช้การตรวจจับขอบแบบหลายขั้นตอนของ Canny (Gaussian blur → Sobel gradient → non-maximum suppression → double threshold → hysteresis)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า (แบนด์เดียวหรือ RGB แบบแพ็ก)."
              },
              "sigma": {
                "label": "Sigma",
                "description": "ส่วนเบี่ยงเบนมาตรฐานของเคอร์เนลการทำให้เรียบแบบเกาส์เซียนเป็นพิกเซล ค่าเริ่มต้น: 0.5."
              },
              "low_threshold": {
                "label": "ค่าเกณฑ์ต่ำ",
                "description": "ค่าเกณฑ์ฮิสเทอรีซิสต่ำ (สัดส่วน 0–1 ของเกรเดียนต์สูงสุด) ค่าเริ่มต้น: 0.05."
              },
              "high_threshold": {
                "label": "ค่าเกณฑ์สูง",
                "description": "ค่าเกณฑ์ฮิสเทอรีซิสสูง (สัดส่วน 0–1 ของเกรเดียนต์สูงสุด) ค่าเริ่มต้น: 0.15."
              },
              "add_back": {
                "label": "บวกกลับ",
                "description": "หากเป็นจริง พิกเซลขอบจะถูกทำให้เป็นศูนย์ในภาพต้นฉบับแทนที่จะสร้างแผนที่ขอบแบบไบนารี ค่าเริ่มต้น: false."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "corner_detection": {
            "name": "การตรวจจับมุม",
            "description": "ระบุรูปแบบมุมในแรสเตอร์ไบนารีโดยใช้แม่แบบ hit-and-miss",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "laplacian_filter": {
            "name": "ตัวกรอง Laplacian",
            "description": "ตัวกรอง Laplacian คำนวณอนุพันธ์เชิงพื้นที่อันดับสองของความเข้มของภาพ ให้การตรวจจับขอบที่มีประสิทธิภาพผ่านการวัดเกรเดียนต์แบบไอโซทรอปิก (ทุกทิศทาง) การดำเนินการใช้เคอร์เนลคงที่ที่ประมาณตัวดำเนินการ Laplacian (ผลรวมของอนุพันธ์อันดับสองในทิศทาง x และ y) เพื่อจับการเปลี่ยนแปลงความเข้มโดยไม่คำนึงถึงทิศทางของขอบ ต่างจากตัวกรองแบบมีทิศทาง แนวทางนี้ปฏิบัติต่อขอบทุกทิศทางอย่างเท่าเทียมกัน จึงเหมาะสำหรับการตรวจจับลักษณะที่ต้องไม่ขึ้นกับทิศทาง พื้นฐานทางคณิตศาสตร์อยู่บนการประมาณแบบไม่ต่อเนื่อง: ∇²I ≈ I(x+1,y) + I(x-1,y) + I(x,y+1) + I(x,y-1) - 4·I(x,y) คุณสมบัติหลักได้แก่ ความสามารถในการตรวจจับจุดตัดศูนย์ (ขอบจริงเกิดขึ้นเมื่อผลลัพธ์ตัดผ่านศูนย์) ความไม่ไวต่อทิศทางของขอบ และความสามารถในการตรวจจับการเปลี่ยนผ่านทั้งจากสว่างไปมืดและจากมืดไปสว่างได้เหมือนกัน การกรองด้วย Laplacian ทำงานได้ดีเยี่ยมในการทำแผนที่ธรณีวิทยาที่ขอบเขตโครงสร้างปรากฏเป็นจุดตัดศูนย์ การกำหนดขอบเขตพืชพรรณ การสกัดโครงข่ายถนนจากภาพความละเอียดสูง และการตรวจจับรอยเท้าอาคาร การตีความผลลัพธ์มุ่งที่การเข้าใจการเปลี่ยนเครื่องหมาย: ค่าบวกที่สูงบ่งบอกจุดต่ำสุดมืดเฉพาะที่ ค่าลบบ่งบอกจุดสูงสุดสว่างเฉพาะที่ และจุดตัดศูนย์ระบุขอบจริง ผลลัพธ์โดยทั่วไปอยู่ในช่วง -1000 ถึง +1000 สำหรับภาพต้นฉบับ 8 บิต ขึ้นกับคอนทราสต์เฉพาะที่ ขนาดผลลัพธ์สูงบ่งบอกขอบที่คมชัดและชัดเจน ขนาดต่ำบ่งชี้การเปลี่ยนผ่านแบบค่อยเป็นค่อยไป การตรวจจับจุดตัดศูนย์ต้องเลือกค่าเกณฑ์อย่างระมัดระวัง โปรดทราบว่า Laplacian ไวต่อสัญญาณรบกวน (ขยายสัญญาณรบกวนความถี่สูง) จึงมักแนะนำให้กรองล่วงหน้าด้วยการทำให้เรียบแบบ Gaussian ก่อนใช้งาน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "variant": {
                "label": "รูปแบบย่อย",
                "description": "รูปแบบเคอร์เนล: 3x3(1), 3x3(2), 3x3(3), 3x3(4), 5x5(1), 5x5(2)."
              },
              "clip_amount": {
                "label": "ปริมาณการตัด",
                "description": "ร้อยละการตัดปลายแบบสมมาตรเป็นตัวเลือก (0-40)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "laplacian_of_gaussians_filter": {
            "name": "ตัวกรอง Laplacian of Gaussians",
            "description": "ทำการเสริมขอบแบบ Laplacian-of-Gaussians (LoG) ที่รวมการทำให้เรียบแบบ Gaussian กับการตรวจจับขอบแบบ Laplacian คำนวณโดยประมาณผ่าน difference-of-Gaussians (DoG) ขั้นแรกทำให้ภาพเรียบ (ลดสัญญาณรบกวน) แล้วจึงใช้ Laplacian (ตรวจจับขอบ) เป็นเทคนิคการตรวจจับขอบหลายมาตราส่วนแบบดั้งเดิม การตรวจจับจุดตัดศูนย์บนผลลัพธ์ LoG ระบุตำแหน่งขอบที่แม่นยำ LoG เป็นมาตรฐานสำหรับการตรวจจับขอบในปริภูมิมาตราส่วน: Gaussian ขจัดสัญญาณรบกวน Laplacian ขยายขอบ พารามิเตอร์ sigma ควบคุมมาตราส่วนของขอบที่ตรวจจับ: sigma เล็กตรวจจับขอบละเอียด sigma ใหญ่ตรวจจับขอบกว้าง LoG ถูกประมาณผ่าน DoG เพื่อประสิทธิภาพ การใช้ค่า sigma หลายค่าทำให้ตรวจจับขอบหลายมาตราส่วนได้ (ระบุลักษณะที่มาตราส่วนต่าง ๆ) การประยุกต์ใช้: (1) การตรวจจับขอบที่ทนทาน (ต้านทานสัญญาณรบกวน) (2) การตรวจจับขอบหลายมาตราส่วน (ใช้ sigma หลายค่า) (3) การระบุตำแหน่งขอบด้วยจุดตัดศูนย์ (4) การประมวลผลเบื้องต้นสำหรับการแบ่งส่วน (5) การตรวจจับก้อน (blob) ผ่านจุดตัดศูนย์ของ LoG เวิร์กโฟลว์: ใช้ LoG→ระบุจุดตัดศูนย์→ติดตามขอบ→แปลงเป็นเวกเตอร์หรือประมวลผลต่อ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "sigma": {
                "label": "Sigma",
                "description": "ค่าซิกมาแบบเกาส์เซียนที่เคอร์เนล LoG ใช้ (0.5-20.0 ค่าเริ่มต้น 0.75)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "prewitt_filter": {
            "name": "ตัวกรอง Prewitt",
            "description": "ตัวดำเนินการ Prewitt ทำการตรวจจับขอบแบบอิงเกรเดียนต์คล้าย Sobel โดยใช้น้ำหนักเคอร์เนลทางเลือกที่ปรับให้เหมาะกับลักษณะสัญญาณรบกวนที่แตกต่างกัน การดำเนินการใช้เคอร์เนลคอนโวลูชัน 3×3 สองตัวที่คำนวณอนุพันธ์ตามทิศทาง x และ y ด้วยน้ำหนักสม่ำเสมอบนแถว/คอลัมน์กลางและที่อยู่ติดกัน ซึ่งต่างจากแนวทางของ Sobel ที่เน้นจุดกึ่งกลาง ขนาดเกรเดียนต์รวมองค์ประกอบตามทิศทางผ่าน √(Gx² + Gy²) ให้การตอบสนองต่อทิศทางที่สม่ำเสมอ พื้นฐานทางคณิตศาสตร์อยู่บนการประมาณการหาอนุพันธ์แบบไม่ต่อเนื่องที่ถ่วงน้ำหนักทุกพิกเซลที่มีส่วนร่วมเท่ากันแทนการเน้นจุดกึ่งกลาง คุณสมบัติหลักได้แก่ การตอบสนองต่อสัญญาณรบกวนที่แตกต่างจาก Sobel เล็กน้อย (บางครั้งดีกว่าในภาพที่มีสัญญาณรบกวนมาก) การแยกขนาด/ทิศทางที่แท้จริงซึ่งทำให้วิเคราะห์ขอบได้อย่างซับซ้อน ประสิทธิภาพเชิงคำนวณที่ต้องการเพียงการคอนโวลูชันมาตรฐาน และประสิทธิผลที่พิสูจน์แล้วกับภาพเรดาร์ เชิงแสง และความร้อน การกรองด้วย Prewitt ทำงานได้ดีเยี่ยมในการวิเคราะห์ภาพ SAR ที่การถ่วงน้ำหนักสม่ำเสมอลดสิ่งแปลกปลอมจากจุดประ (speckle) ได้ดีกว่า Sobel การตรวจหาความผิดปกติทางความร้อนที่เน้นลักษณะเชิงเส้น และการสกัดขอบหลายสเปกตรัมที่ต้องการการประมวลผลที่ไม่ขึ้นกับทิศทาง การตีความผลลัพธ์คล้ายกับ Sobel: ขนาดบ่งบอกความแรงของขอบ (สูงกว่า = คมชัดกว่า) ทิศทางที่คำนวณผ่าน atan2(Gy, Gx) ให้การวางแนวของขอบในหน่วยเรเดียน ขนาดโดยทั่วไปอยู่ในช่วง 0-256 สำหรับข้อมูลนำเข้า 8 บิต ขนาดที่เกิน 80 โดยทั่วไปบ่งบอกขอบที่มีนัยสำคัญ ค่าทิศทางอยู่ในช่วง -π ถึง +π โดย 0 เรเดียนบ่งบอกขอบแนวนอนล้วน ±π/2 บ่งบอกขอบแนวตั้งล้วน การถ่วงน้ำหนักเคอร์เนลแบบสม่ำเสมอโดยทั่วไปให้การตอบสนองเกรเดียนต์ที่เรียบกว่า Sobel เล็กน้อย ซึ่งอาจดีกว่าสำหรับลักษณะในภาพที่เบาบางหรือละเอียด ใช้การกรองมัธยฐานเสริมเพื่อลดผลบวกลวงที่เกิดจากสัญญาณรบกวน รวมผลลัพธ์ตามทิศทางกับการเลือกค่าเกณฑ์สำหรับเวิร์กโฟลว์การเชื่อมขอบและการสกัดขอบเขตที่สำคัญต่อไปป์ไลน์การแบ่งส่วน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "clip_tails": {
                "label": "ตัดส่วนปลาย",
                "description": "ร้อยละการตัดปลายแบบสมมาตรเป็นตัวเลือก (0-40)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "roberts_cross_filter": {
            "name": "ตัวกรอง Roberts Cross",
            "description": "ตัวกรอง Roberts Cross เป็นหนึ่งในตัวดำเนินการตรวจจับขอบยุคแรก ๆ ที่ใช้รูปแบบเคอร์เนลกากบาทแนวทแยง 2×2 ที่เรียบง่ายแต่มีประสิทธิผลในการคำนวณเกรเดียนต์ของภาพด้วยภาระการคำนวณน้อยที่สุด ตัวดำเนินการนี้ใช้เมทริกซ์ 2×2 สองตัวที่ตั้งฉากกันและหมุน 45° จากแนวนอน-แนวตั้ง สร้างมาสก์คอนโวลูชันรูปกากบาทที่ตรวจจับขอบโดยเน้นมุมและการเปลี่ยนผ่านแนวทแยง ตัวกรองใช้เคอร์เนลแยกกันสำหรับเกรเดียนต์ X และ Y และคำนวณขนาดผ่านผลรวมของค่าสัมบูรณ์หรือนอร์ม Euclidean คุณสมบัติหลักได้แก่ ประสิทธิภาพเชิงคำนวณที่โดดเด่นเนื่องจากขนาดเคอร์เนล 2×2 ที่เล็ก ความต้องการหน่วยความจำน้อยที่สุด และการประมวลผลที่รวดเร็วบนชุดข้อมูลแรสเตอร์ขนาดใหญ่ Roberts Cross มีประสิทธิผลเป็นพิเศษในการตรวจจับลักษณะระดับละเอียดและการเปลี่ยนผ่านที่คมชัดในภาพความละเอียดสูง กรณีการใช้งานหลักได้แก่ การตรวจจับขอบอย่างรวดเร็วในการประยุกต์ใช้ที่เวลามีความสำคัญ การประมวลผลสตรีมวิดีโอแบบเวลาจริง การตรวจจับขอบเขตเบื้องต้นก่อนใช้อัลกอริทึมขั้นสูง และสภาพแวดล้อมที่มีทรัพยากรจำกัด การประยุกต์ใช้ครอบคลุมการประมวลผลเบื้องต้นของการสำรวจทางอากาศ การประเมินคุณภาพภาพดาวเทียม การสกัดคุณลักษณะสำหรับไปป์ไลน์การเรียนรู้ของเครื่อง และการใช้งาน GIS บนอุปกรณ์เคลื่อนที่ การตีความผลลัพธ์แสดงตำแหน่งขอบเป็นพิกเซลที่มีขนาดสูงซึ่งเกิดการเปลี่ยนแปลงเชิงสเปกตรัมในย่านใกล้เคียง 2×2 บริเวณพื้นหลังโดยทั่วไปมีค่าใกล้ศูนย์ ขอบปรากฏเป็นลักษณะเชิงเส้นสว่างที่บ่งบอกขอบเขตระหว่างคลาสสิ่งปกคลุมดินที่แตกต่างกัน ผลลัพธ์มีความเบาบางโดยธรรมชาติ มีขอบเฉพาะที่เกรเดียนต์เกินค่าเกณฑ์ความแม่นยำเชิงคำนวณ สำหรับภาพหลายสเปกตรัม ให้ใช้กับแต่ละแบนด์แยกกันหรือคำนวณดัชนีผลต่างปรับมาตรฐานก่อน การประมวลผลภายหลังเพื่อทำให้ขอบบางลงมักทำตามหลังการใช้ Roberts เพื่อปรับปรุงผลลัพธ์สำหรับเวิร์กโฟลว์การแปลงเป็นเวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "clip_amount": {
                "label": "ปริมาณการตัด",
                "description": "ร้อยละการตัดปลายแบบสมมาตรเป็นตัวเลือก (0-50)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "sobel_filter": {
            "name": "ตัวกรอง Sobel",
            "description": "ตัวดำเนินการ Sobel ตรวจจับขอบผ่านการประมาณเกรเดียนต์ตามทิศทางทั้งในทิศทาง x (แนวนอน) และ y (แนวตั้ง) โดยรวมเคอร์เนลอนุพันธ์ที่ตั้งฉากกันเป็นการแทนขนาดแบบรวม การดำเนินการใช้เคอร์เนลคอนโวลูชัน 3×3 สองตัวแยกกัน (ตัวหนึ่งเน้นขอบแนวนอน อีกตัวเน้นขอบแนวตั้ง) แล้วรวมผลลัพธ์ผ่านนอร์ม Euclidean: magnitude = √(Gx² + Gy²) แนวทางที่แยกได้นี้ลดต้นทุนการคำนวณพร้อมคงความถูกต้องของการตรวจจับขอบ พื้นฐานทางคณิตศาสตร์มาจากการประมาณเกรเดียนต์ของภาพแบบไม่ต่อเนื่อง โดยน้ำหนักเคอร์เนลเอนเอียงไปทางพิกเซลกึ่งกลางเพื่อเพิ่มความทนทานต่อสัญญาณรบกวน คุณสมบัติหลักได้แก่ การวัดเกรเดียนต์ตามทิศทางที่ช่วยกำหนดการวางแนวของขอบ ภาระการคำนวณที่ค่อนข้างต่ำ ประสิทธิผลที่พิสูจน์แล้วกับภาพดาวเทียมและภาพถ่ายทางอากาศ และความต้องการปรับแต่งพารามิเตอร์น้อยที่สุด การกรองด้วย Sobel ถูกนำไปใช้อย่างกว้างขวางในการคำนวณความลาดชันและทิศด้านลาดของภูมิประเทศ การสกัดขอบเขตลักษณะสำหรับเวิร์กโฟลว์การตรวจจับวัตถุ การกำหนดขอบเขตโครงข่ายแม่น้ำจากข้อมูล DEM และการทำแผนที่โครงสร้างพื้นฐาน (ถนน อาคาร สายไฟฟ้า) จากภาพความละเอียดสูง การตีความผลลัพธ์แสดงว่าขนาดบ่งบอกความแรงของขอบ (ค่าสูงกว่า = การเปลี่ยนผ่านคมชัดกว่า) ขณะที่องค์ประกอบตามทิศทาง (Gx, Gy) ช่วยวิเคราะห์การวางแนว ขนาดเกรเดียนต์โดยทั่วไปอยู่ในช่วง 0-256 สำหรับภาพ 8 บิต ค่าที่เกิน 100 โดยทั่วไปบ่งบอกขอบที่มีนัยสำคัญ อัตราส่วน Gx/Gy ให้ข้อมูลการวางแนวของขอบ: อัตราส่วนเข้าใกล้ 1 บ่งบอกขอบ 45 องศา อัตราส่วน >>1 บ่งบอกลักษณะแนวนอน อัตราส่วน <<1 บ่งบอกลักษณะแนวตั้ง ผลบวกลวงมักเกิดในบริเวณที่มีสัญญาณรบกวน การกรองมัธยฐานหรือการดำเนินการเชิงสัณฐานช่วยลดการตรวจจับที่ผิดพลาดได้อย่างมีประสิทธิผล ใช้ร่วมกับการกำหนดค่าเกณฑ์เพื่อสร้างมาสก์ขอบแบบไบนารีที่เหมาะสำหรับไปป์ไลน์การแบ่งส่วน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "variant": {
                "label": "รูปแบบย่อย",
                "description": "รูปแบบขนาดเคอร์เนล: 3x3 (ค่าเริ่มต้น) หรือ 5x5."
              },
              "clip_tails": {
                "label": "ตัดส่วนปลาย",
                "description": "ร้อยละการตัดปลายแบบสมมาตรเป็นตัวเลือก (0-40)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "balance_contrast_enhancement": {
            "name": "การเพิ่มคอนทราสต์แบบสมดุล",
            "description": "ลดความเอนเอียงของสีในภาพ RGB แบบแพ็กโดยใช้การยืดแบบพาราโบลารายช่อง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "band_mean": {
                "label": "ค่าเฉลี่ยแบนด์",
                "description": "ความสว่างเฉลี่ยผลลัพธ์ที่ต้องการของแต่ละช่องสี (ค่าเริ่มต้น 100.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "create_colour_composite": {
            "name": "สร้างภาพผสมสี",
            "description": "สร้างภาพผสมสี RGB แบบแพ็กจากแรสเตอร์สีแดง สีเขียว สีน้ำเงิน และแรสเตอร์ความทึบ (ถ้าเลือก)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "red": {
                "label": "แดง",
                "description": "พาธแรสเตอร์แบนด์แดงหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "green": {
                "label": "เขียว",
                "description": "พาธแรสเตอร์แบนด์เขียวหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "blue": {
                "label": "น้ำเงิน",
                "description": "พาธแรสเตอร์แบนด์น้ำเงินหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "opacity": {
                "label": "ความทึบ",
                "description": "พาธแรสเตอร์ความทึบแสงหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ เป็นตัวเลือก."
              },
              "enhance": {
                "label": "เพิ่มคุณภาพ",
                "description": "ใช้การปรับปรุงความต่างระดับแบบสมดุลหลังการประกอบภาพ (ค่าเริ่มต้น true)."
              },
              "treat_zeros_as_nodata": {
                "label": "ถือว่าศูนย์เป็น NoData",
                "description": "ถือว่าค่าศูนย์ในข้อมูล RGB นำเข้าเป็น NoData/พื้นหลัง (ค่าเริ่มต้น false)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "direct_decorrelation_stretch": {
            "name": "การยืดสีแบบ Direct Decorrelation",
            "description": "ปรับปรุงความอิ่มตัวของสีในภาพ RGB แบบแพ็กโดยลดองค์ประกอบไม่มีสีและยืดช่องสีแบบเชิงเส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "achromatic_factor": {
                "label": "ตัวประกอบอะโครมาติก",
                "description": "ตัวคูณการลดองค์ประกอบสีเทาตั้งแต่ 0 ถึง 1 (ค่าเริ่มต้น 0.5)."
              },
              "clip_percent": {
                "label": "ร้อยละการตัด",
                "description": "ร้อยละการตัดปลายสำหรับการปรับสเกลเชิงเส้นหลังการยืด (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "false_colour_composite": {
            "name": "ภาพผสมสีเท็จ",
            "description": "สร้างแรสเตอร์ภาพผสมสีเท็จ (NIR/Red/Green) จากชุดข้อมูลเซนเซอร์เชิงแสงที่รองรับ",
            "params": {
              "wbe": {
                "label": "WBE",
                "description": "WBE"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ผลลัพธ์"
              }
            }
          },
          "gamma_correction": {
            "name": "การแก้ไขแกมมา",
            "description": "การแก้ไขแกมมาใช้การปรับความสว่างแบบไม่เชิงเส้นผ่านการแปลงแบบกฎกำลัง เพื่อปรับคอนทราสต์ของภาพ ความเที่ยงตรงของการแสดงผล และการกระจายความสว่างเชิงการรับรู้ให้เหมาะสม การแปลงทางคณิตศาสตร์คือ I_corrected = I^(1/γ) โดย γ (แกมมา) คือเลขชี้กำลังที่ผู้ใช้กำหนดซึ่งควบคุมทิศทางและขนาดของการปรับความสว่าง ค่า γ > 1 ทำให้ภาพมืดลง (ชดเชยจอแสดงผลที่สว่าง) ขณะที่ γ < 1 ทำให้ภาพสว่างขึ้น (ชดเชยจอแสดงผลที่มืด) การดำเนินการทำงานอย่างอิสระบนแต่ละพิกเซลหรือแบนด์สเปกตรัม โดยคงความสัมพันธ์เชิงพื้นที่ไว้พร้อมปรับมาตราส่วนความเข้ม คุณสมบัติหลักได้แก่ การคงโครงสร้างของภาพไว้ขณะกระจายค่าโทนสีใหม่ ประสิทธิภาพเชิงคำนวณที่ต้องการเพียงตารางค้นหา ใช้ได้กับข้อมูลเชิงรังสีใด ๆ รวมถึงภาพ 16/32 บิต และความสามารถในการย้อนกลับซึ่งทำให้แก้ไขผกผันได้ การแก้ไขแกมมามีการประยุกต์ใช้ที่สำคัญในการเตรียมภาพดาวเทียมสำหรับการแปลตีความด้วยสายตาโดยชดเชยลักษณะของเซนเซอร์ การปรับมาตรฐานความสว่างของภาพออร์โทข้ามแนวบินหรือประเภทเซนเซอร์ การเสริมภาพความร้อนเพื่อให้มองเห็นลักษณะได้ และการประมวลผลเบื้องต้นของข้อมูลหลายสเปกตรัมสำหรับไปป์ไลน์การเรียนรู้ของเครื่องที่การปรับมาตรฐานข้อมูลนำเข้าช่วยให้ลู่เข้าได้ดีขึ้น การตีความผลลัพธ์แสดงว่าค่าที่แก้ไขแล้วเป็นไปตามการปรับมาตราส่วนแบบกฎกำลัง: โทนกลางได้รับการปรับสัมพัทธ์มากที่สุด ขณะที่ค่าสุดขั้วถูกบีบอัดน้อยกว่า สำหรับข้อมูลนำเข้า 8 บิต (0-255) แกมมาทั่วไป 0.4-0.6 ทำให้ภาพสว่างขึ้นอย่างมาก แกมมา 1.4-1.6 ทำให้มืดลงอย่างมาก รูปร่างฮิสโทแกรมเปลี่ยนไปอย่างคาดการณ์ได้: ฮิสโทแกรมที่เบ้ซ้าย (ภาพมืด) ได้ประโยชน์จาก γ < 1 ขณะที่ฮิสโทแกรมที่เบ้ขวา (ภาพสว่าง) ได้ประโยชน์จาก γ > 1 ตรวจสอบผลลัพธ์ที่แก้ไขแล้วโดยใช้การแสดงผลฮิสโทแกรมและการตรวจด้วยสายตา ใช้อย่างสม่ำเสมอกับชุดภาพที่ต้องการการประมวลผลเบื้องต้นแบบเดียวกัน เวิร์กโฟลว์ทั่วไปใช้การแก้ไขแกมมาก่อนการเลือกค่าเกณฑ์หรือการจำแนกเพื่อให้มองเห็นลักษณะได้อย่างสมดุล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "gamma": {
                "label": "Gamma",
                "description": "เลขชี้กำลังแกมมาในช่วง [0, 4] ค่าเริ่มต้น 0.5."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "gaussian_contrast_stretch": {
            "name": "การยืดคอนทราสต์แบบเกาส์เซียน",
            "description": "ยืดคอนทราสต์โดยจับคู่กับการกระจายอ้างอิงแบบ Gaussian",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "num_tones": {
                "label": "จำนวนโทนสี",
                "description": "จำนวนระดับโทนผลลัพธ์ (ค่าเริ่มต้น 256)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "histogram_equalization": {
            "name": "การปรับเท่าฮิสโทแกรม",
            "description": "ใช้การปรับฮิสโทแกรมให้เท่ากัน (histogram equalization) เพื่อปรับปรุงคอนทราสต์ของภาพ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "num_tones": {
                "label": "จำนวนโทนสี",
                "description": "จำนวนระดับโทนผลลัพธ์ (ค่าเริ่มต้น 256)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "histogram_matching": {
            "name": "การจับคู่ฮิสโทแกรม",
            "description": "จับคู่ฮิสโทแกรมของภาพกับฮิสโทแกรมอ้างอิงที่จัดเตรียมให้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "histogram": {
                "label": "ฮิสโทแกรม",
                "description": "ฮิสโทแกรมอ้างอิงในรูป [[value, frequency], ...] หรือ [{x, y}, ...]."
              },
              "is_cumulative": {
                "label": "เป็นแบบสะสม",
                "description": "เป็นจริงหากค่าฮิสโทแกรมที่ให้มาเป็นค่าสะสมอยู่แล้ว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "histogram_matching_two_images": {
            "name": "การจับคู่ฮิสโทแกรมสองภาพ",
            "description": "จับคู่ฮิสโทแกรมของภาพนำเข้ากับฮิสโทแกรมของภาพอ้างอิง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "reference": {
                "label": "ข้อมูลอ้างอิง",
                "description": "พาธแรสเตอร์อ้างอิงหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "ihs_to_rgb": {
            "name": "IHS เป็น RGB",
            "description": "การแปลงผกผัน IHS เป็น RGB แปลงองค์ประกอบ Intensity-Hue-Saturation กลับเป็นปริภูมิสีแดง-เขียว-น้ำเงิน ทำให้กู้คืนสีธรรมชาติจากข้อมูลการสำรวจระยะไกลที่แยกองค์ประกอบแล้วได้ สูตรผกผันทำงานบนพิกัดเชิงขั้วทรงกระบอก โดยแปลงมุมฮิวและขนาดความอิ่มตัวร่วมกับความเข้มกลับเป็นพิกัด RGB แบบคาร์ทีเซียน พร้อมคงเสถียรภาพเชิงตัวเลขและลดสิ่งแปลกปลอมจากการควอนไทซ์ให้น้อยที่สุด การแปลงนี้เป็นส่วนเติมเต็มที่สำคัญของการดำเนินการ RGB เป็น IHS โดยเฉพาะในเวิร์กโฟลว์ pan-sharpening ที่ความเข้มถูกแทนที่ด้วยข้อมูลแพนโครมาติกความละเอียดสูง คุณสมบัติหลักได้แก่ การผกผันทางคณิตศาสตร์ที่แม่นตรงของการแปลงไปข้างหน้าซึ่งรับประกันความสอดคล้องในการดำเนินการไป-กลับ การจัดการพิกเซลไม่มีสีที่ไม่มีค่าฮิวโดยอัตโนมัติเพื่อป้องกันการแพร่ของสิ่งแปลกปลอมเชิงตัวเลข เสถียรภาพเชิงตัวเลขในค่าความอิ่มตัวสุดขั้วใกล้ศูนย์ และประสิทธิภาพเชิงคำนวณที่ทำให้ผสานเข้ากับไปป์ไลน์การประมวลผลที่รวดเร็วได้อย่างราบรื่น การแปลงผกผันทำให้เวิร์กโฟลว์ pan-sharpening สมบูรณ์โดยกู้คืนภาพสีธรรมชาติหลังการแทนที่ความเข้มด้วยข้อมูลแพนโครมาติก ทำให้แสดงผลสีของข้อมูลที่เพิ่มความละเอียดแล้วได้ รองรับการสร้างสเปกตรัมใหม่จากองค์ประกอบที่แยกแล้ว และตรวจสอบความสอดคล้องของการแปลงในเวิร์กโฟลว์การควบคุมคุณภาพ ผลลัพธ์ IHS เป็น RGB ให้ภาพสีธรรมชาติสามแบนด์ที่มีความละเอียดเชิงพื้นที่สืบทอดจากแบนด์ความเข้มนำเข้า เหมาะสำหรับการแสดงผลโดยตรงและการวิเคราะห์ต่อ แบนด์ผลลัพธ์แทนช่องสีแดง สีเขียว และสีน้ำเงินตามลำดับมาตรฐาน สีจะแสดงรายละเอียดเชิงพื้นที่ที่ดีขึ้นหากความเข้มถูกแทนที่ด้วยข้อมูลแพนโครมาติกความละเอียดสูงกว่า โดยคงลักษณะเชิงสเปกตรัมจากองค์ประกอบฮิวและความอิ่มตัวเดิมไว้",
            "params": {
              "intensity": {
                "label": "ความเข้ม",
                "description": "แรสเตอร์แบนด์ความเข้ม (0–1)."
              },
              "hue": {
                "label": "สีสัน",
                "description": "แรสเตอร์แบนด์เฉดสี (0–2π เรเดียน)."
              },
              "saturation": {
                "label": "ความอิ่มตัว",
                "description": "แรสเตอร์แบนด์ความอิ่มตัวของสี (0–1)."
              },
              "red_output": {
                "label": "ผลลัพธ์แดง",
                "description": "พาธผลลัพธ์สำหรับแบนด์แดงเป็นตัวเลือก."
              },
              "green_output": {
                "label": "ผลลัพธ์เขียว",
                "description": "พาธผลลัพธ์สำหรับแบนด์เขียวเป็นตัวเลือก."
              },
              "blue_output": {
                "label": "ผลลัพธ์น้ำเงิน",
                "description": "พาธผลลัพธ์สำหรับแบนด์น้ำเงินเป็นตัวเลือก."
              }
            }
          },
          "min_max_contrast_stretch": {
            "name": "การยืดคอนทราสต์แบบค่าต่ำสุด-สูงสุด",
            "description": "ยืดค่าแบบเชิงเส้นระหว่างค่าต่ำสุดและค่าสูงสุดที่ผู้ใช้กำหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "min_val": {
                "label": "ค่าต่ำสุด",
                "description": "ค่านำเข้าต่ำสุดสำหรับการปรับสเกล."
              },
              "max_val": {
                "label": "ค่าสูงสุด",
                "description": "ค่านำเข้าสูงสุดสำหรับการปรับสเกล."
              },
              "num_tones": {
                "label": "จำนวนโทนสี",
                "description": "จำนวนระดับโทนผลลัพธ์ (ค่าเริ่มต้น 256)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "mosaic": {
            "name": "โมเสก",
            "description": "การทำโมเสกรวมแรสเตอร์หลายชุดที่ซ้อนทับกันเป็นผลลัพธ์ที่ไร้รอยต่อผ่านการลงทะเบียนเชิงเรขาคณิต การสุ่มตัวอย่างใหม่ให้อยู่บนเส้นโครงแผนที่และกริดพิกเซลร่วมกัน และการผสมขอบเพื่อลดความไม่ต่อเนื่องให้น้อยที่สุด อัลกอริทึมลงทะเบียนแรสเตอร์โดยใช้พิกัดภูมิศาสตร์หรือจุดควบคุมภาคพื้นดิน สุ่มตัวอย่างใหม่ตามความละเอียดและขอบเขตเป้าหมาย และใช้การผสมแบบถ่วงน้ำหนัก (Feather blending หรือการถ่วงน้ำหนักแบบเอกซ์โพเนนเชียล) ในบริเวณที่ซ้อนทับ พิกเซลที่ซ้อนทับถูกผสมโดยใช้ค่าเฉลี่ยถ่วงน้ำหนักด้วยระยะทางจากขอบแรสเตอร์ สร้างการเปลี่ยนผ่านที่ราบรื่นพร้อมคงความถูกต้องของพิกเซลภายใน ทำให้ได้โมเสกแรสเตอร์ระดับทวีปหรือระดับโลกที่ไร้รอยต่อ ปราศจากสิ่งแปลกปลอมที่ขอบและความไม่ต่อเนื่องเชิงรังสี คุณสมบัติหลักได้แก่ การจัดแนวเชิงเรขาคณิตของแรสเตอร์หลายชุดให้อยู่บนเส้นโครงแผนที่ร่วมกัน การเลือกวิธีการสุ่มตัวอย่างใหม่ (bilinear, cubic, nearest-neighbour) การผสมขอบที่ขจัดรอยต่อ การปรับมาตรฐานเชิงรังสีที่ชดเชยความแตกต่างของเซนเซอร์หรือแสง และการรองรับแรสเตอร์นำเข้าหลายพันชุด เครื่องมือจัดการลำดับความสำคัญของแรสเตอร์โดยอัตโนมัติ หลีกเลี่ยงช่องว่างด้วยกลยุทธ์การเติมอัจฉริยะ การประยุกต์ใช้ได้แก่ การสร้างโมเสกภาพดาวเทียมระดับทวีปจากชุดฉากภาพ การสร้างแบบจำลองระดับความสูงเชิงเลขที่ไร้รอยต่อจากหลายแนวบิน การสร้างโมเสกเชิงแสงแบบผสมจากภาพหลายช่วงเวลา การสร้างออร์โทโมเสกจากการสำรวจด้วยอากาศยานไร้คนขับ (UAV) และการสร้างแผนที่ฐานสำหรับพื้นที่ขนาดใหญ่จากฉากดาวเทียมที่ซ้อนทับกัน การทำโมเสกมีความสำคัญอย่างยิ่งสำหรับเวิร์กโฟลว์การวิเคราะห์ระดับทวีปและระดับโลก การตีความผลลัพธ์: แรสเตอร์ผลลัพธ์สืบทอดเส้นโครงแผนที่และความละเอียดของข้อมูลนำเข้า บริเวณที่ผสมแสดงค่าที่ประมาณค่าในช่วงซึ่งสมดุลระหว่างแรสเตอร์นำเข้า สิ่งแปลกปลอมที่ขอบบ่งบอกการซ้อนทับไม่เพียงพอหรือการปรับมาตรฐานเชิงรังสีไม่ดี การประเมินตรวจสอบรอยต่อและความสม่ำเสมอของสีข้ามขอบเขตโมเสก การจัดการ Nodata ที่ขอบโมเสกต้องใส่ใจค่าเติมและการกำหนดขอบเขต การประเมินคุณภาพรวมถึงการตรวจสอบเชิงเรขาคณิตผ่านจุดควบคุมภาคพื้นดินและการประเมินเชิงรังสีโดยเปรียบเทียบค่าในโมเสกกับแรสเตอร์นำเข้า",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการแรสเตอร์นำเข้าในรูปอาร์เรย์ของพาธ หรือสตริงที่คั่นด้วยจุลภาค/อัฒภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีสุ่มตัวอย่างใหม่: 'nn' (ค่าเริ่มต้น), 'bilinear' หรือ 'cc'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "mosaic_with_feathering": {
            "name": "โมเสกแบบเกลี่ยขอบ",
            "description": "ทำโมเสกแรสเตอร์สองชุดและผสมเซลล์ที่ซ้อนทับกันแบบ feather โดยใช้น้ำหนักตามระยะทางจากขอบ",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าชุดแรก."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าชุดที่สอง."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีสุ่มตัวอย่างใหม่: 'cc' (ค่าเริ่มต้น), 'nn' หรือ 'bilinear'."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "เลขชี้กำลังการถ่วงน้ำหนักตามระยะทางที่ใช้ไล่ระดับบริเวณซ้อนทับ (ค่าเริ่มต้น 4.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "normalized_difference_index": {
            "name": "ดัชนีผลต่างแบบปรับมาตรฐาน",
            "description": "คำนวณ (band1 - band2) / (band1 + band2) จากแรสเตอร์หลายแบนด์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "band1": {
                "label": "แบนด์ 1",
                "description": "ดัชนีของแบนด์แรก เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "band2": {
                "label": "แบนด์ 2",
                "description": "ดัชนีของแบนด์ที่สอง เริ่มนับจาก 1 (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "panchromatic_sharpening": {
            "name": "การเพิ่มความคมชัดด้วยแบนด์แพนโครมาติก",
            "description": "การเพิ่มความคมชัดด้วยภาพแพนโครมาติกหลอมรวมภาพแพนโครมาติกความละเอียดสูงกับข้อมูลหลายสเปกตรัมความละเอียดต่ำกว่าโดยใช้วิธี Brovey ซึ่งเป็นเทคนิคการคูณเชิงสเปกตรัมที่เพิ่มรายละเอียดเชิงพื้นที่พร้อมคงข้อมูลเชิงสเปกตรัมไว้ วิธีนี้ทำงานโดยสุ่มตัวอย่างแบนด์หลายสเปกตรัมใหม่ให้ตรงกับความละเอียดของภาพแพนโครมาติกก่อน แล้วคำนวณอัตราส่วนความเข้มระหว่างภาพแพนโครมาติกกับความเข้มหลายสเปกตรัมที่คำนวณได้เพื่อปรับมาตราส่วนแต่ละแบนด์ตามนั้น แนวทางนี้คงความเที่ยงตรงเชิงสเปกตรัมพร้อมปรับปรุงความละเอียดเชิงพื้นที่อย่างมาก คุณสมบัติหลักได้แก่ การคงลักษณะเชิงสเปกตรัมเดิม ประสิทธิภาพเชิงพีชคณิตเชิงเส้นที่ทำให้ประมวลผลภาพขนาดใหญ่ได้รวดเร็ว ความเข้ากันได้ของการสุ่มตัวอย่างใหม่อัตโนมัติกับข้อมูลนำเข้าที่ลงทะเบียนแบนด์แล้ว และการปรับมาตรฐานอัตโนมัติเพื่อความสม่ำเสมอเชิงรังสีข้ามเซนเซอร์ที่หลากหลาย เทคนิคนี้ใช้กันอย่างแพร่หลายในการเสริมภาพดาวเทียมสำหรับการประยุกต์ใช้ด้านการทำแผนที่ รวมถึงการวางผังเมือง การติดตามการเกษตร และการสำรวจทรัพยากร ซึ่งทั้งรายละเอียดเชิงสเปกตรัมและเชิงพื้นที่มีความสำคัญ การเพิ่มความคมชัดด้วยภาพแพนโครมาติกสร้างผลลัพธ์หลายสเปกตรัมที่เสริมแล้วซึ่งมีความคมชัดเชิงพื้นที่ที่เหนือกว่า เหมาะสำหรับการแปลตีความด้วยสายตาและการทำแผนที่อย่างละเอียด แบนด์ผลลัพธ์คงลำดับแบนด์หลายสเปกตรัมเดิมแต่มีความละเอียดระดับแพนโครมาติก ทำให้ผสานเข้ากับเวิร์กโฟลว์การวิเคราะห์ภาพมาตรฐานและระบบ GIS ได้อย่างราบรื่น ความละเอียดเชิงพื้นที่ที่เพิ่มขึ้นตรงกับความละเอียดของภาพแพนโครมาติกนำเข้า ทำให้สกัดลักษณะได้ที่มาตราส่วนละเอียดกว่าข้อมูลหลายสเปกตรัมเดิม",
            "params": {
              "red": {
                "label": "แดง",
                "description": "แรสเตอร์แบนด์แดง (จำเป็นเว้นแต่ระบุ 'composite')."
              },
              "green": {
                "label": "เขียว",
                "description": "แรสเตอร์แบนด์เขียว (จำเป็นเว้นแต่ระบุ 'composite')."
              },
              "blue": {
                "label": "น้ำเงิน",
                "description": "แรสเตอร์แบนด์น้ำเงิน (จำเป็นเว้นแต่ระบุ 'composite')."
              },
              "composite": {
                "label": "ภาพผสมสี",
                "description": "ภาพผสมหลายสเปกตรัม RGB แบบแพ็ก (ใช้ร่วมกับ red/green/blue ไม่ได้)."
              },
              "pan": {
                "label": "แบนด์แพนโครมาติก",
                "description": "แบนด์แรสเตอร์แพนโครมาติก."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีหลอมรวม: 'brovey' (ค่าเริ่มต้น) หรือ 'ihs'."
              },
              "output_mode": {
                "label": "โหมดผลลัพธ์",
                "description": "การเข้ารหัสผลลัพธ์: 'packed' (ค่าเริ่มต้น) หรือ 'bands' (แรสเตอร์ RGB 3 แบนด์)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "percentage_contrast_stretch": {
            "name": "การยืดคอนทราสต์แบบร้อยละ",
            "description": "Percentage Contrast Stretch ทำการเสริมคอนทราสต์แบบเชิงเส้นโดยตัดค่าสุดขั้ว (หาง) ตามร้อยละที่กำหนดออกจากฮิสโทแกรมก่อนยืดให้เต็มช่วงไดนามิก อัลกอริทึม: ตัดค่าเปอร์เซ็นไทล์ล่างและบนออกจากแต่ละแบนด์แยกกัน จับคู่ช่วงที่เหลือแบบเชิงเส้นกับช่วงผลลัพธ์ (โดยทั่วไป 0-255 หรือเต็มความลึกบิต) ขจัดค่าสุดขั้วเชิงรังสีที่ทำให้คอนทราสต์ไม่ดี การเลือกเปอร์เซ็นไทล์ (โดยทั่วไป 2-3%) สร้างสมดุลระหว่างการเสริมคอนทราสต์กับการคงความสมบูรณ์ของข้อมูล คุณสมบัติหลัก: ขจัดค่าผิดปกติเชิงรังสีโดยอัตโนมัติ ป้องกันการบีบอัดคอนทราสต์จากค่าผิดปกติ ใช้ได้รายแบนด์หรือทั้งหมด การแปลงเชิงเส้นที่มีประสิทธิภาพเชิงคำนวณ การดำเนินการที่ผกผันได้ ความสามารถ: จัดการสิ่งแปลกปลอมเชิงรังสี เพิ่มการมองเห็นลักษณะที่ละเอียดอ่อน รองรับช่วงข้อมูลนำเข้าที่แปรผัน กรณีการใช้งาน: การประมวลผลเบื้องต้นก่อนการจำแนกหรือการหลอมรวม การเสริมช่วงไดนามิกที่ใช้ไม่เต็มที่ การเตรียมสำหรับการแสดงผลหลายสเปกตรัม การปรับมาตรฐานเชิงรังสีข้ามฉาก การประยุกต์ใช้: การเสริมภาพดาวเทียมสำหรับการแปลตีความด้วยสายตา การประมวลผลเบื้องต้นสำหรับการตรวจจับดินถล่มจากดาวเทียม การปรับมาตรฐานก่อนการจำแนก การแก้ไขภาพที่จัดเก็บไว้ การตีความผลลัพธ์: ภาพที่เสริมแล้วแสดงคอนทราสต์ที่ดีขึ้น ค่าสุดขั้วถูกตัด ลักษณะที่ละเอียดอ่อนซึ่งเคยซ่อนอยู่จะมองเห็นได้ ค่าการตัดเฉพาะแบนด์เผยให้เห็นคุณภาพการกระจายเชิงรังสี",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "clip": {
                "label": "ตัด",
                "description": "ร้อยละการตัดตามเปอร์เซ็นไทล์ (ค่าเริ่มต้น 1.0)."
              },
              "tail": {
                "label": "ส่วนปลาย",
                "description": "โหมดการตัดปลาย: both (ค่าเริ่มต้น), upper หรือ lower."
              },
              "num_tones": {
                "label": "จำนวนโทนสี",
                "description": "จำนวนระดับโทนผลลัพธ์ (ค่าเริ่มต้น 256)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "piecewise_contrast_stretch": {
            "name": "การยืดคอนทราสต์แบบเป็นช่วง",
            "description": "ทำการยืดคอนทราสต์แบบเชิงเส้นเป็นช่วงโดยใช้จุดแบ่งที่ผู้ใช้กำหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "function": {
                "label": "ฟังก์ชัน",
                "description": "สตริงคำสั่งจุดแบ่ง เช่น '(50,0.1);(120,0.6);(180,0.85)'."
              },
              "greytones": {
                "label": "จำนวนระดับสีเทา",
                "description": "จำนวนระดับโทนผลลัพธ์สำหรับแรสเตอร์ที่ไม่ใช่ RGB (ค่าเริ่มต้น 1024)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "resample": {
            "name": "สุ่มตัวอย่างใหม่",
            "description": "การสุ่มตัวอย่างภาพใหม่เปลี่ยนความละเอียดของพิกเซลโดยใช้วิธีการประมาณค่าในช่วง ได้แก่ nearest neighbor (เร็วที่สุด ทำให้เรียบน้อยที่สุด) bilinear (การประมาณค่าในช่วงเชิงเส้นระหว่างพิกเซลที่อยู่ติดกัน) bicubic (การปรับพหุนามกำลังสาม) และ cubic spline (การประมาณค่าในช่วงที่ต่อเนื่องและเรียบ) การสุ่มตัวอย่างใหม่มีความสำคัญอย่างยิ่งสำหรับการลงทะเบียนเชิงเรขาคณิต การสร้างสแตกหลายสเปกตรัมที่มีความละเอียดสม่ำเสมอจากเซนเซอร์ที่มีความละเอียดผสมกัน และการผสานข้อมูลเสริมที่มาตราส่วนต่าง ๆ แต่ละวิธีเกี่ยวข้องกับการปรับเคอร์เนลการประมาณค่าในช่วงเฉพาะที่ให้พอดีกับค่าพิกเซลเดิม ประเมินเคอร์เนลที่ตำแหน่งพิกเซลใหม่ และส่งคืนค่าที่ประมาณได้ Nearest neighbor คงค่าเชิงรังสีไว้ (เหมาะสำหรับข้อมูลหมวดหมู่) วิธีอันดับสูงกว่าทำให้ขอบเรียบและลด aliasing แต่ทำให้ขอบเขตที่คมชัดพร่ามัว คุณสมบัติหลักได้แก่ วิธีการประมาณค่าในช่วงที่เลือกได้เพื่อปรับสมดุลระหว่างความเร็วกับความถูกต้อง การกำหนดความละเอียดผลลัพธ์ผ่านขนาดพิกเซลหรือขนาดภาพเป้าหมาย การจัดการค่าพื้นหลังอัตโนมัติสำหรับพื้นที่นอกขอบเขตข้อมูลนำเข้า และการกรอง antialiasing (ถ้าเลือก) เพื่อลดสิ่งแปลกปลอมจากการสุ่มตัวอย่างใหม่ การประยุกต์ใช้ได้แก่ การลงทะเบียนภาพเพื่อจัดแนวข้อมูลให้อยู่บนกริดร่วมกัน การปรับความละเอียดให้สอดคล้องกันเพื่อรวมสแตกหลายสเปกตรัมที่มีความละเอียดดั้งเดิมแตกต่างกัน การลดความละเอียดเพื่อลดปริมาณข้อมูลพร้อมคงรูปแบบเชิงพื้นที่ และการเพิ่มความละเอียดเพื่อเพิ่มรายละเอียดสำหรับการแสดงผล ผลลัพธ์การสุ่มตัวอย่างใหม่ผสานภาพที่ความละเอียดที่สอดคล้องกัน ความละเอียดผลลัพธ์ตรงตามที่ผู้ใช้กำหนด วิธีการประมาณค่าในช่วงส่งผลต่อความคมชัดของขอบ (nearest neighbor คงขอบไว้ วิธีอันดับสูงกว่าทำให้เรียบ) พื้นที่พื้นหลัง (นอกขอบเขตข้อมูลนำเข้า) ได้รับค่าเติมที่กำหนดได้ ผลลัพธ์ผสานเข้ากับเวิร์กโฟลว์การวิเคราะห์หลายสเปกตรัมได้อย่างราบรื่น",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการแรสเตอร์นำเข้าในรูปอาร์เรย์ของพาธ หรือสตริงที่คั่นด้วยจุลภาค/อัฒภาค."
              },
              "base": {
                "label": "ฐาน",
                "description": "แรสเตอร์ฐานที่กำหนดขอบเขตและกริดผลลัพธ์เป็นตัวเลือก มีลำดับความสำคัญเหนือ cell_size."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เป็นตัวเลือกเมื่อไม่ได้ระบุ base."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีสุ่มตัวอย่างใหม่: 'cc' (ค่าเริ่มต้น), 'nn' หรือ 'bilinear'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "rgb_to_ihs": {
            "name": "RGB เป็น IHS",
            "description": "การแปลง RGB เป็น Intensity-Hue-Saturation แยกปริภูมิสีแดง-เขียว-น้ำเงินเป็นองค์ประกอบที่เกี่ยวข้องกับการรับรู้: ความเข้ม (ความสว่าง) ฮิว (สี) และความอิ่มตัว (ความบริสุทธิ์ของสี) การแยกใช้สูตรทางคณิตศาสตร์มาตรฐานที่แปลงค่า tristimulus ของ RGB เป็นพิกัดเชิงขั้วทรงกระบอก โดยความเข้มแทนความสว่าง ฮิวเข้ารหัสมุมสี และความอิ่มตัววัดความเข้มข้นของสี ปริภูมิสีนี้มีประโยชน์เป็นพิเศษสำหรับการสำรวจระยะไกล เนื่องจากสามารถแทนที่ความเข้มด้วยข้อมูลความละเอียดสูงได้ขณะคงลักษณะสีเดิมไว้ผ่านการแปลงผกผัน คุณสมบัติหลักได้แก่ สูตรที่มีเสถียรภาพเชิงตัวเลขซึ่งจัดการกรณีขอบ (พิกเซลไม่มีสี) ได้อย่างทนทาน การคงช่วงไดนามิกเต็มโดยไม่มีการตัดหรือสูญเสียข้อมูล การปรับมาตราส่วนแบนด์อัตโนมัติเพื่อผลลัพธ์ที่สอดคล้องกันข้ามช่วงข้อมูลนำเข้าต่าง ๆ และประสิทธิภาพเชิงคำนวณที่เหมาะสำหรับสแตกหลายสเปกตรัมขนาดใหญ่ เทคนิคนี้ใช้ในการประยุกต์หลายด้าน: เวิร์กโฟลว์ pan-sharpening ที่ความเข้มถูกแทนที่ด้วยข้อมูลแพนโครมาติก การเสริมการแสดงผลสี การประมวลผลเบื้องต้นเชิงสเปกตรัมสำหรับอัลกอริทึมการจำแนก และการแปลงสีเป็นระดับสีเทาที่คงข้อมูลเชิงการรับรู้ไว้ การแปลง RGB เป็น IHS มีความสำคัญอย่างยิ่งสำหรับเทคนิคการหลอมรวมที่รวมความละเอียดของภาพแพนโครมาติกกับข้อมูลสีหลายสเปกตรัม ผลลัพธ์ประกอบด้วยไฟล์แบนด์เดียวสามไฟล์ที่แทนองค์ประกอบความเข้ม ฮิว และความอิ่มตัว ซึ่งใช้ในเวิร์กโฟลว์การวิเคราะห์ได้อย่างอิสระ แบนด์ความเข้มประมาณความสว่าง ฮิวอยู่ในช่วง 0-360 องศาเข้ารหัสข้อมูลสี ความอิ่มตัวอยู่ในช่วง 0-100 เปอร์เซ็นต์บ่งบอกความบริสุทธิ์ของสี",
            "params": {
              "red": {
                "label": "แดง",
                "description": "แรสเตอร์แบนด์แดง (ใช้ร่วมกับ 'composite' ไม่ได้)."
              },
              "green": {
                "label": "เขียว",
                "description": "แรสเตอร์แบนด์เขียว (ใช้ร่วมกับ 'composite' ไม่ได้)."
              },
              "blue": {
                "label": "น้ำเงิน",
                "description": "แรสเตอร์แบนด์น้ำเงิน (ใช้ร่วมกับ 'composite' ไม่ได้)."
              },
              "composite": {
                "label": "ภาพผสมสี",
                "description": "แรสเตอร์ภาพผสม RGB แบบแพ็ก (ใช้ร่วมกับ red/green/blue ไม่ได้)."
              },
              "intensity_output": {
                "label": "ผลลัพธ์ความเข้ม",
                "description": "พาธผลลัพธ์สำหรับแบนด์ความเข้มเป็นตัวเลือก."
              },
              "hue_output": {
                "label": "ผลลัพธ์สีสัน",
                "description": "พาธผลลัพธ์สำหรับแบนด์เฉดสีเป็นตัวเลือก."
              },
              "saturation_output": {
                "label": "ผลลัพธ์ความอิ่มตัว",
                "description": "พาธผลลัพธ์สำหรับแบนด์ความอิ่มตัวของสีเป็นตัวเลือก."
              }
            }
          },
          "sigmoidal_contrast_stretch": {
            "name": "การยืดคอนทราสต์แบบซิกมอยด์",
            "description": "ทำการยืดคอนทราสต์แบบซิกมอยด์โดยใช้ค่าเกนและค่าตัด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "cutoff": {
                "label": "จุดตัด",
                "description": "จุดกึ่งกลางของซิกมอยด์ในหน่วยที่ทำเป็นมาตรฐานแล้ว (ค่าเริ่มต้น 0.0)."
              },
              "gain": {
                "label": "อัตราขยาย",
                "description": "พารามิเตอร์อัตราขยายของซิกมอยด์ (ค่าเริ่มต้น 1.0)."
              },
              "num_tones": {
                "label": "จำนวนโทนสี",
                "description": "จำนวนระดับโทนผลลัพธ์ (ค่าเริ่มต้น 256)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "split_colour_composite": {
            "name": "แยกภาพผสมสี",
            "description": "แยกแรสเตอร์ภาพผสมสี RGB แบบแพ็กออกเป็นแรสเตอร์แบนด์เดียวสามชุดแยกกันที่แทนช่องสีแดง สีเขียว และสีน้ำเงิน อัลกอริทึม: เครื่องมือนี้สกัดแบนด์สีแต่ละแบนด์จากภาพผสมที่ค่า R, G และ B ถูกแพ็กรวมในแรสเตอร์เดียว (มักใช้การเข้ารหัส RGB 24 บิต หรือ RGBA 32 บิตมาตรฐาน) การแยกทำผ่านการดำเนินการระดับบิตเพื่อแยกองค์ประกอบของแต่ละช่อง 8 บิต คุณสมบัติหลัก: คงค่าเชิงรังสีเดิม (0–255) รองรับภาพผสม RGB มาตรฐานและรูปแบบขยาย ส่งออกแรสเตอร์ที่อ้างอิงพิกัดทางภูมิศาสตร์อิสระสามชุด กรณีการใช้งาน: การวิเคราะห์เชิงสเปกตรัมที่ต้องประมวลผลแต่ละแบนด์แยกกัน; การสร้างชุดข้อมูลนำเข้าสำหรับการคำนวณดัชนีพืชพรรณ (NDVI, EVI); การเตรียมข้อมูลสำหรับการดำเนินการพีชคณิตแบนด์; การเปิดใช้การแปลงสีขั้นสูงเช่นการแปลง RGB เป็น IHS; การสกัดแบนด์เฉพาะสำหรับเวิร์กโฟลว์การจำแนกแบบมีผู้สอนหรือไม่มีผู้สอน การประยุกต์ใช้: การวิเคราะห์ภาพการสำรวจระยะไกล การประมวลผลเบื้องต้นของข้อมูลดาวเทียม การเตรียมการวิเคราะห์หลายสเปกตรัม ไปป์ไลน์การเสริมภาพ การตีความผลลัพธ์: ได้แรสเตอร์แบนด์เดียวสามชุดที่มีขอบเขตเชิงพื้นที่ เส้นโครงแผนที่ และการอ้างอิงพิกัดทางภูมิศาสตร์เหมือนกับภาพผสมนำเข้า แบนด์ผลลัพธ์แต่ละแบนด์มีค่าเชิงรังสี 8 บิต (0–255) ที่แทนความเข้มขององค์ประกอบสีนั้นทั่วทั้งฉาก สถิติของแบนด์ (ต่ำสุด สูงสุด เฉลี่ย) สะท้อนลักษณะเชิงสเปกตรัมของช่องสีนั้น ค่าที่เด่นบ่งบอกความเด่นของสีทั่วทั้งภาพ แรสเตอร์ผลลัพธ์พร้อมใช้ทันทีสำหรับการคำนวณแบนด์ ดัชนีเชิงสเปกตรัม หรือเวิร์กโฟลว์การประมวลผลหลายแบนด์ต่อไป",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ RGB แบบแพ็กนำเข้า."
              },
              "red_output": {
                "label": "ผลลัพธ์แดง",
                "description": "พาธผลลัพธ์สำหรับแบนด์แดงเป็นตัวเลือก."
              },
              "green_output": {
                "label": "ผลลัพธ์เขียว",
                "description": "พาธผลลัพธ์สำหรับแบนด์เขียวเป็นตัวเลือก."
              },
              "blue_output": {
                "label": "ผลลัพธ์น้ำเงิน",
                "description": "พาธผลลัพธ์สำหรับแบนด์น้ำเงินเป็นตัวเลือก."
              }
            }
          },
          "standard_deviation_contrast_stretch": {
            "name": "การยืดคอนทราสต์แบบส่วนเบี่ยงเบนมาตรฐาน",
            "description": "ทำการยืดคอนทราสต์แบบเชิงเส้นโดยใช้ค่าเฉลี่ยบวก/ลบตัวคูณส่วนเบี่ยงเบนมาตรฐาน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "clip": {
                "label": "ตัด",
                "description": "ตัวคูณส่วนเบี่ยงเบนมาตรฐานที่ใช้หาขอบเขตการตัด (ค่าเริ่มต้น 2.0)."
              },
              "num_tones": {
                "label": "จำนวนโทนสี",
                "description": "จำนวนระดับโทนผลลัพธ์ (ค่าเริ่มต้น 256)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "true_colour_composite": {
            "name": "ภาพผสมสีจริง",
            "description": "สร้างแรสเตอร์ภาพผสมสีจริง (RGB) จากชุดข้อมูลเซนเซอร์เชิงแสงที่รองรับ",
            "params": {
              "wbe": {
                "label": "WBE",
                "description": "WBE"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ผลลัพธ์"
              }
            }
          },
          "adaptive_filter": {
            "name": "ตัวกรองแบบปรับตัว",
            "description": "Adaptive Filter ปรับความแรงของการกรองแบบไดนามิกตามสถิติเฉพาะที่ของภาพ (ค่าเฉลี่ย ความแปรปรวน ความโด่ง) ทำให้ทำให้เรียบโดยคำนึงถึงบริบทซึ่งตอบสนองต่อลักษณะของฉาก การดำเนินการแบ่งภาพเป็นหน้าต่างเคลื่อนที่ คำนวณสถิติเฉพาะที่ (ตรวจหาบริเวณที่สัญญาณรบกวนเด่นเทียบกับบริเวณที่ลักษณะเด่น) และเลือกพารามิเตอร์ตัวกรองตามนั้น บริเวณราบเรียบถูกทำให้เรียบอย่างเข้มข้น บริเวณที่ซับซ้อนถูกกรองอย่างนุ่มนวล พื้นฐานทางคณิตศาสตร์ใช้การทดสอบเชิงสถิติเพื่อระบุลักษณะเฉพาะที่: บริเวณที่ความแปรปรวนต่ำกว่าค่าเกณฑ์ถูกทำให้เรียบมาก บริเวณที่เกินค่าเกณฑ์คงรายละเอียดไว้ คุณสมบัติหลักได้แก่ การปรับพารามิเตอร์อัตโนมัติ (ผู้ใช้กำหนดช่วง อัลกอริทึมเลือกเฉพาะที่) ใช้ได้กับเคอร์เนลตัวกรองใด ๆ (Gaussian, มัธยฐาน, เชิงสัณฐาน) และมีประสิทธิผลกับภาพเชิงแสงและเรดาร์ การกรองแบบปรับตัวทำงานได้ดีเยี่ยมในการประมวลผลเบื้องต้นของโมเสกดาวเทียมที่ไม่เป็นเนื้อเดียวกัน (เซนเซอร์ต่างกัน สภาวะการถ่ายภาพต่างกัน) การทำให้กลุ่มจุด LiDAR เรียบ (คงขอบพืชพรรณในป่า ทำให้พื้นดินเรียบในพื้นที่เปิด) การลด speckle ของ SAR แบบเลือกที่คำนึงถึงทั้งเป้าหมายและพื้นหลัง และการซ้อนภาพหลายช่วงเวลา การตีความผลลัพธ์แสดงว่าบริเวณที่เป็นเนื้อเดียวกันได้รับการกรองอย่างเข้มข้น (ความแปรปรวนเฉพาะที่ต่ำ → ทำให้เรียบมาก) บริเวณที่ซับซ้อนถูกกรองอย่างระมัดระวัง (ความแปรปรวนสูง → ประมวลผลน้อยที่สุด) รัศมีการทำให้เรียบปรับแบบไดนามิกรายบริเวณ: พื้นที่ราบได้รับการกรองรัศมีใหญ่ พื้นที่ที่มีเนื้อสัมผัสได้รับการกรองรัศมีเล็กหรือไม่กรองเลย ช่วงผลลัพธ์ยังคงอยู่ภายในช่วงข้อมูลนำเข้า ตรวจสอบแผนที่ความแรงของการกรองเชิงพื้นที่เพื่อยืนยันการปรับตัว สถิติเลื่อนเข้าหาค่าเฉลี่ยเฉพาะที่ในบริเวณเรียบ บริเวณที่ซับซ้อนแทบไม่เปลี่ยนแปลง สิ่งแปลกปลอมที่พบบ่อยได้แก่ การทำให้เรียบมากเกินไปที่ขอบเขตบริเวณ (โดยทั่วไปใช้การเปลี่ยนผ่านที่ราบรื่น) และความไวต่อความสัมพันธ์ระหว่างสัญญาณรบกวนกับความแปรปรวน ตรวจสอบการปรับตัวโดยวิเคราะห์แผนที่ความแปรปรวนเฉพาะที่ ใช้ในไปป์ไลน์การประมวลผลเบื้องต้นอัตโนมัติที่จัดการข้อมูลหลายแหล่งซึ่งการกรองแบบสม่ำเสมอไม่เพียงพอ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ค่า z สัมบูรณ์สำหรับการแทนที่ด้วยค่าเฉลี่ย (ค่าเริ่มต้น 2.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "anisotropic_diffusion_filter": {
            "name": "ตัวกรองการแพร่แบบแอนไอโซทรอปิก",
            "description": "การกรองแบบการแพร่แบบแอนไอโซทรอปิก (anisotropic diffusion) ทำการทำให้เรียบแบบคงขอบแบบวนซ้ำผ่านกระบวนการแพร่ตามทิศทางที่แยกแยะระหว่างขอบกับบริเวณราบ อัลกอริทึมปรับปรุงแต่ละพิกเซลแบบวนซ้ำตามผลต่างแบบถ่วงน้ำหนักกับเพื่อนบ้าน โดยใช้ฟังก์ชันการนำที่ลดการแพร่ข้ามขอบเขตที่มีเกรเดียนต์สูงขณะยอมให้ทำให้เรียบภายในบริเวณที่เป็นเนื้อเดียวกัน การดำเนินการแก้สมการเชิงอนุพันธ์ย่อย ∂I/∂t = div(c(|∇I|)∇I) โดยค่าการนำ c(·) ปรับตามขนาดเกรเดียนต์เฉพาะที่ แนวทางที่ขับเคลื่อนด้วยข้อมูลนี้คงการเปลี่ยนผ่านที่คมชัดไว้ขณะค่อย ๆ ลดสัญญาณรบกวนในพื้นที่สม่ำเสมอ คุณสมบัติหลักได้แก่ การคงขอบที่แท้จริงโดยไม่ต้องใช้มาสก์ขอบอย่างชัดเจน การเลือกมาตราส่วนอัตโนมัติผ่านจำนวนรอบ การลดสัญญาณรบกวนที่มีประสิทธิผลพร้อมคงความคมชัดของลักษณะ และใช้ได้กับข้อมูลแบนด์เดียวและหลายสเปกตรัม การแพร่แบบแอนไอโซทรอปิกทำงานได้ดีเยี่ยมในการทำให้กลุ่มจุด LiDAR เรียบโดยคงแนวหักของภูมิประเทศ การลดสัญญาณรบกวนในภาพดาวเทียมเพื่อตรวจจับลักษณะทางธรณีวิทยาที่ละเอียดอ่อน การลด speckle ของ SAR โดยคงขอบของเป้าหมายเรดาร์ และภาพทางการแพทย์/วิทยาศาสตร์ที่ความเที่ยงตรงของขอบมีความสำคัญ การตีความผลลัพธ์ต้องเข้าใจว่าบริเวณเรียบจะค่อย ๆ เป็นเนื้อเดียวกัน (ค่าลู่เข้าหาค่าเฉลี่ยเฉพาะที่) ขณะที่ขอบจะชันขึ้นจนกระทั่งคงที่ รอบแรก ๆ (t<5) ให้การลดสัญญาณรบกวนเล็กน้อย รอบกลาง (t=5-20) ให้การทำให้เรียบอย่างมาก รอบที่มากเกินไป (t>50) เสี่ยงต่อการเสริมขอบเขตมากเกินไปหรือเกิดลักษณะเท็จ ค่าผลลัพธ์ยังคงอยู่ในช่วงข้อมูลต้นฉบับ สถิติเลื่อนเข้าหาค่าเฉลี่ยของบริเวณเมื่อการประมวลผลดำเนินไป ติดตามความแปรปรวนของผลลัพธ์เพื่อประเมินความสมบูรณ์ของการทำให้เรียบ ตัวชี้วัดทั่วไปได้แก่ การปรับปรุงอัตราส่วนสัญญาณต่อสัญญาณรบกวนและดัชนีความคมชัดของขอบ ใช้อย่างระมัดระวังในเวิร์กโฟลว์หลายมาตราส่วนที่ความแม่นยำของการคงขอบส่งผลโดยตรงต่อความถูกต้องของการจำแนกหรือการตรวจหาการเปลี่ยนแปลงในขั้นตอนถัดไป",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำของการแพร่ (ค่าเริ่มต้น 10)."
              },
              "kappa": {
                "label": "Kappa",
                "description": "พารามิเตอร์ความไวต่อขอบ (ค่าเริ่มต้น 20.0)."
              },
              "lambda": {
                "label": "Lambda",
                "description": "ขั้นเวลาในช่วง (0, 0.25] ค่าเริ่มต้น 0.2."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "bilateral_filter": {
            "name": "ตัวกรอง Bilateral",
            "description": "การทำให้เรียบแบบ bilateral ที่คงขอบผ่านเคอร์เนลเชิงพื้นที่ + ความเข้ม ดีกว่า Gaussian ในการคงรายละเอียด Sigma_dist=รัศมี, sigma_int=ค่าเกณฑ์การคงขอบ รองรับ RGB",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "sigma_dist": {
                "label": "Sigma ระยะทาง",
                "description": "ส่วนเบี่ยงเบนมาตรฐานของเคอร์เนลเกาส์เซียนเชิงพื้นที่เป็นพิกเซล (0.5–20.0 ค่าเริ่มต้น 0.75)."
              },
              "sigma_int": {
                "label": "Sigma ความเข้ม",
                "description": "ส่วนเบี่ยงเบนมาตรฐานของเคอร์เนลเกาส์เซียนเชิงความเข้มในหน่วยค่าแรสเตอร์ (ค่าเริ่มต้น 1.0)."
              },
              "treat_as_rgb": {
                "label": "ถือว่าเป็น RGB",
                "description": "ตั้งเป็นจริงเพื่อบังคับการประมวลผล HSI แบบ RGB แพ็ก เมื่อเป็นเท็จ RGB แบบแพ็กอาจยังถูกตรวจพบอัตโนมัติจากเมทาดาทาของแรสเตอร์."
              },
              "assume_three_band_rgb": {
                "label": "ถือว่าเป็น RGB สามแบนด์",
                "description": "เมื่อเป็นจริง (ค่าเริ่มต้น) แรสเตอร์ 3 แบนด์ชนิด uint8/uint16 อาจถูกถือว่าเป็น RGB ในตัวกรองที่รองรับการประมวลผลความเข้ม RGB 3 แบนด์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "closing": {
            "name": "การปิด",
            "description": "ทำการดำเนินการปิดเชิงสัณฐาน (morphological closing) โดยใช้องค์ประกอบโครงสร้างรูปสี่เหลี่ยมผืนผ้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นจำนวนคี่ (ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นจำนวนคี่ (ค่าเริ่มต้นเท่ากับ filter_size_x)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "conservative_smoothing_filter": {
            "name": "ตัวกรองทำให้เรียบแบบอนุรักษ์",
            "description": "Conservative Smoothing ทำการกรองแบบไม่เชิงเส้นโดยแทนที่แต่ละพิกเซลด้วยค่าเฉลี่ยของเพื่อนบ้านที่คล้ายกัน (ภายในช่วงความเข้มที่กำหนด) คงขอบไว้ขณะลดสัญญาณรบกวน การดำเนินการตรวจสอบย่านใกล้เคียง ระบุพิกเซลที่อยู่ภายในค่าเกณฑ์ความเข้มของพิกเซลกึ่งกลาง และหาค่าเฉลี่ยของพิกเซลที่มีค่าคล้ายกันเหล่านี้ สูตรทางคณิตศาสตร์: F = (1/N) Σ(I_j : |I_j - I_center| < T) โดย T คือค่าเกณฑ์ความคล้ายคลึงและ N คือจำนวนพิกเซลที่คล้ายกัน คุณสมบัติหลักได้แก่ การนิยามความคล้ายคลึงแบบอิงค่าเกณฑ์ที่เรียบง่าย ประสิทธิผลกับภาพเชิงแสงและเรดาร์ ความสามารถในการตีความพารามิเตอร์ (ค่าเกณฑ์ควบคุมความคมชัดของขอบ) และภาระการคำนวณน้อยที่สุด Conservative Smoothing ทำงานได้ดีเยี่ยมในการประมวลผลเบื้องต้นของภาพดาวเทียมหลายสเปกตรัม (ลดสัญญาณรบกวนพร้อมคงขอบเขตเชิงสเปกตรัม) การเสริมภาพความร้อน (ทำให้สัญญาณรบกวนเชิงรังสีเรียบพร้อมคงความไม่ต่อเนื่องของอุณหภูมิ) การทำให้การจำแนก LiDAR เรียบ (คงขอบเขตพืชพรรณ/พื้นดิน) และการประมวลผลเบื้องต้นของข้อมูลสำรวจที่มีสัญญาณรบกวน การตีความผลลัพธ์แสดงว่าบริเวณที่เป็นเนื้อเดียวกันถูกเฉลี่ยทั้งหมด (เพื่อนบ้านทั้งหมดคล้ายกัน) ขอบถูกกรองน้อยที่สุด (พิกเซลที่คล้ายกันอยู่เฉพาะด้านเดียวกัน) พารามิเตอร์ค่าเกณฑ์ควบคุมการคงขอบ: ค่าเกณฑ์เล็ก (ความคล้ายคลึงเข้มงวด) ให้การทำให้เรียบเล็กน้อย ค่าเกณฑ์ใหญ่ (ความคล้ายคลึงหลวม) ให้การทำให้เรียบอย่างเข้มข้นซึ่งอาจสูญเสียขอบ ค่าผลลัพธ์ตรงกับค่าเพื่อนบ้านนำเข้าพอดี (ไม่มีการประมาณค่าในช่วง ผลลัพธ์คือค่าเฉลี่ยของค่าที่มีอยู่) สถิติเลื่อนเข้าหากลุ่มเฉพาะที่ บริเวณที่ไม่เป็นเนื้อเดียวกันแสดงการเปลี่ยนแปลงน้อยที่สุด ตรวจสอบประสิทธิผลของค่าเกณฑ์ผ่านการตรวจด้วยสายตาและการวิเคราะห์ฮิสโทแกรมเฉพาะที่ สิ่งแปลกปลอมที่พบบ่อยได้แก่ การทำให้เรียบไม่เพียงพอหากค่าเกณฑ์เข้มงวดเกินไป และขอบพร่ามัวหากค่าเกณฑ์หลวมเกินไป จำนวนรอบทำให้กรองแบบต่อเนื่องได้: รอบเดียวให้การทำให้เรียบอย่างนุ่มนวล หลายรอบเพิ่มความเข้มของผล ใช้ก่อนการจำแนกเมื่อต้องลดความสับสนของหมวดหมู่ที่เกิดจากสัญญาณรบกวนขณะที่ขอบเขตคลาสยังคงคมชัด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 3)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 3)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "diff_of_gaussians_filter": {
            "name": "ตัวกรองผลต่างของเกาส์เซียน",
            "description": "การกรองแบบ Difference of Gaussians (DoG) ตรวจจับขอบและลักษณะละเอียดผ่านการลบภาพที่เบลอด้วย Gaussian สองแบบที่มีรัศมีต่างกัน สร้างตัวกรองแถบผ่านที่เน้นความถี่เชิงพื้นที่ระดับกลาง การดำเนินการคำนวณการเบลอแบบ Gaussian สองครั้ง (รัศมีเล็ก σ₁ และรัศมีใหญ่ σ₂) แล้วลบกัน: DoG = G(σ₁) - G(σ₂) การรวมแบบไม่เชิงเส้นนี้เสริมขอบและสันขณะกดทั้งสัญญาณรบกวนละเอียดและแนวโน้มแสงกว้าง คุณสมบัติหลักได้แก่ การตอบสนองความถี่ที่ปรับได้ (อัตราส่วน σ₂/σ₁ ควบคุมลักษณะแถบผ่าน) ผลลัพธ์ที่มีศูนย์กลางที่ศูนย์ (สองขั้ว: ค่าบวกและค่าลบ) ใช้ได้กับการตรวจจับขอบและการสกัดลักษณะ และประสิทธิภาพเชิงคำนวณผ่านการนำ Gaussian มาใช้ซ้ำ Difference of Gaussians ทำงานได้ดีเยี่ยมในการตรวจจับโครงสร้างทางธรณีวิทยา (รอยเลื่อนและแนวเส้นปรากฏเป็นการตอบสนอง DoG สูง) การสกัดอาคารจากภาพออร์โท การเสริมเนื้อสัมผัสละเอียดในโมเสกการสำรวจระยะไกล และแบบจำลองการประมวลผลที่ได้แรงบันดาลใจจากประสาทวิทยาศาสตร์ การตีความผลลัพธ์แสดงว่าขอบให้การตอบสนองสูงสุด (บวกด้านสว่าง ลบด้านมืด) โดยจุดตัดศูนย์อยู่ที่การเปลี่ยนผ่านพอดี การตรวจจับจุดตัดศูนย์เผยให้เห็นขอบจริงโดยไม่ขึ้นกับทิศทางของขอบ ขนาดของ DoG บ่งบอกความแรงของขอบ ช่วงโดยทั่วไปคือ -1000 ถึง +1000 สำหรับข้อมูลนำเข้า 8 บิต ขึ้นกับคอนทราสต์เฉพาะที่ อัตราส่วน σ₂/σ₁ กำหนดศูนย์กลางแถบผ่าน: อัตราส่วน~2 เน้นลักษณะที่ละเอียดมาก อัตราส่วน~5 เน้นลักษณะระดับกลาง อัตราส่วน~10 เน้นลักษณะที่หยาบกว่า การกระจายผลลัพธ์แบบสองฐานนิยม (จุดสูงสุดที่ค่าสุดขั้วบวกและลบ) บ่งบอกการแยกขอบที่ดี สิ่งแปลกปลอมที่พบบ่อยได้แก่ รัศมีเรือง (halo) รอบขอบที่แรงและการตอบสนองต่ำเกินไปหากแถบความถี่ไม่ตรงกับมาตราส่วนของลักษณะ ใช้ร่วมกับการกำหนดค่าเกณฑ์ขนาดเพื่อสกัดขอบ ใช้ก่อนการประมวลผลภายหลังเชิงสัณฐานเพื่อสกัดลักษณะที่ทนทานจากภาพดาวเทียมที่มีสัญญาณรบกวน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ค่าซิกมาแบบเกาส์เซียนที่เล็กกว่า (0.25-20.0 ค่าเริ่มต้น 2.0)."
              },
              "sigma2": {
                "label": "Sigma 2",
                "description": "ค่าซิกมาแบบเกาส์เซียนที่ใหญ่กว่า (0.5-20.0 ค่าเริ่มต้น 4.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "diversity_filter": {
            "name": "ตัวกรองความหลากหลาย",
            "description": "คำนวณความหลากหลายในหน้าต่างเคลื่อนที่เป็นจำนวนค่า/คลาสที่ไม่ซ้ำกันภายในย่านใกล้เคียง วัดความไม่เป็นเนื้อเดียวกันเฉพาะที่: ความหลากหลายสูง = ภูมิประเทศ/คลาสที่หลากหลาย ความหลากหลายต่ำ = เป็นเนื้อเดียวกัน เผยให้เห็นเนื้อสัมผัส การแตกกระจาย และความหลากหลายของรูปแบบ มักใช้กับภาพที่จำแนกแล้วหรือภาพหมวดหมู่เพื่อระบุโซนเปลี่ยนผ่าน/ขอบ\n\nตัวกรองความหลากหลายสร้างตัวชี้วัดความแปรผันเฉพาะที่โดยไม่ขึ้นกับค่าเฉพาะ มีประโยชน์สำหรับนิเวศวิทยาภูมิทัศน์ (ความหลากหลายของถิ่นที่อยู่อาศัย ดัชนีการแตกกระจาย) การประเมินคุณภาพการจำแนก (ความหลากหลายสูง = พื้นที่ผสม/ไม่แน่นอน) และการวิเคราะห์เนื้อสัมผัส เมื่อใช้กับข้อมูลระดับความสูง ความหลากหลายบ่งบอกความขรุขระที่มาตราส่วนย่านใกล้เคียง เมื่อใช้กับการจำแนก จะระบุโซนผสม/โซนรอยต่อนิเวศ/โซนขอบเขต\n\nการประยุกต์ใช้: (1) การทำแผนที่การแตกกระจายของภูมิทัศน์ (ความหลากหลายสูง = โมเสกที่หลากหลาย ความหลากหลายต่ำ = หย่อมที่สม่ำเสมอ) (2) การประเมินความเชื่อมั่น/ความไม่แน่นอนของการจำแนก (ความหลากหลายสูง = พื้นที่ไม่แน่นอน) (3) การวิเคราะห์เนื้อสัมผัส (การทำแผนที่ความไม่เป็นเนื้อเดียวกัน) (4) การตรวจจับขอบ/ขอบเขตผ่านจุดสูงสุดของความหลากหลาย (5) ความหลากหลายของถิ่นที่อยู่อาศัยสำหรับการวิเคราะห์ทางนิเวศวิทยา (ความเหมาะสมขึ้นกับความหลากหลายเฉพาะที่)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "edge_preserving_mean_filter": {
            "name": "ตัวกรองค่าเฉลี่ยแบบรักษาขอบ",
            "description": "ตัวกรอง Edge-Preserving Mean ทำการเฉลี่ยพิกเซลแบบเลือกโดยคำนวณค่าเฉลี่ยเฉพาะที่พร้อมยกเว้นพิกเซลค่าผิดปกติที่น่าจะแทนขอบหรือสัญญาณรบกวน การดำเนินการเรียงลำดับพิกเซลในย่านใกล้เคียง ตัดค่าสุดขั้ว (ต่ำสุดและสูงสุด หรือค่าที่เกินค่าเกณฑ์เชิงสถิติ) และเฉลี่ยค่าที่เหลือ แนวทางที่ทนทานนี้สร้างสมดุลระหว่างการทำให้เรียบกับการคงความคมชัด รูปแบบต่าง ๆ ได้แก่ การเฉลี่ยแบบถ่วงน้ำหนักที่เน้นพิกเซลกึ่งกลาง และการเลือกค่าเกณฑ์แบบปรับตัวตามสถิติเฉพาะที่ คุณสมบัติหลักได้แก่ การควบคุมพารามิเตอร์ที่เรียบง่าย (จำนวนที่ยกเว้นหรือค่าเกณฑ์) ประสิทธิภาพเชิงคำนวณผ่านการเรียงลำดับย่านใกล้เคียงขนาดเล็ก การลดสัญญาณรบกวนที่มีประสิทธิผลโดยไม่ทำให้รายละเอียดพร่ามัว และใช้ได้กับข้อมูลเชิงแสง เรดาร์ และความร้อน การกรองแบบ Edge-Preserving Mean ทำงานได้ดีเยี่ยมในการประมวลผลเบื้องต้นของภาพดาวเทียมเชิงแสงสำหรับการคำนวณดัชนีพืชพรรณ (ขจัดเงาและเมฆโดยไม่ทำให้ลักษณะพร่ามัว) การทำให้ DEM เรียบโดยคงแนวหักของความลาดชัน การลดสัญญาณรบกวนในภาพความร้อนโดยคงความคมชัดของขอบเขต และการเตรียมภาพออร์โทสำหรับการดิจิไทซ์ด้วยมือ การตีความผลลัพธ์แสดงว่าค่าผิดปกติที่ถูกตัดออกรวมตัวอยู่ที่ขอบและบริเวณสัญญาณรบกวน ค่าที่เหลือถูกเฉลี่ยทำให้เกิดการทำให้เรียบเฉพาะที่ พารามิเตอร์การยกเว้นควบคุมความคมชัดของขอบ: การยกเว้นค่าสุดขั้วค่าเดียวขจัดสัญญาณรบกวนแบบ salt-pepper การยกเว้นค่าสุดขั้วหลายค่าให้ผลลัพธ์ที่เรียบกว่าพร้อมการเปลี่ยนผ่านของขอบที่นุ่มนวลกว่า ช่วงผลลัพธ์ยังคงอยู่ภายในช่วงข้อมูลนำเข้า สถิติเลื่อนเข้าหาค่าเฉลี่ยของค่าที่ไม่ผิดปกติ ติดตามความแตกต่างระหว่างผลลัพธ์กับข้อมูลนำเข้าเพื่อระบุบริเวณที่ถูกกรอง (โดยทั่วไปเป็นพื้นที่ความแปรปรวนสูง) คุณภาพการคงขอบขึ้นกับความถูกต้องของการระบุค่าผิดปกติ ตรวจสอบด้วยสายตาว่าลักษณะยังคงคมชัด สิ่งแปลกปลอมที่พบบ่อยได้แก่ การทำให้เรียบไม่เพียงพอหากค่าเกณฑ์เข้มงวดเกินไป และการกรองมากเกินไปหากจำนวนที่ยกเว้นสูงเกินไป จำนวนรอบทำให้กรองแบบต่อเนื่องได้ รอบเดียวให้การทำให้เรียบอย่างนุ่มนวล ใช้ก่อนการจำแนกแบบอิงค่าเกณฑ์เพื่อลดการจำแนกหมวดหมู่ผิดที่เกิดจากสัญญาณรบกวนขณะคงขอบเขตของลักษณะไว้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดเพื่อนบ้านทรงสี่เหลี่ยมจัตุรัสเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ผลต่างสัมบูรณ์สูงสุดของเพื่อนบ้านที่จะรวมในค่าเฉลี่ยเฉพาะที่ (ค่าเริ่มต้น 15.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "emboss_filter": {
            "name": "ตัวกรองนูน",
            "description": "ตัวกรอง emboss เสริมลักษณะขอบผ่านการแรเงาตามทิศทาง สร้างลักษณะนูนต่ำสามมิติที่โดดเด่นซึ่งขอบปรากฏเป็นพื้นผิวนูนขึ้นหรือยุบลงขึ้นกับการจำลองแสงตามทิศทาง ตัวกรองนี้ใช้เคอร์เนล 3×3 ที่รวมการตรวจจับขอบกับการส่องสว่างทิศทางเดียว โดยทั่วไปจำลองแสงจากจตุภาคซ้ายบน สร้างคอนทราสต์ทางสายตาที่ชัดเจนที่ขอบเขตขณะคงบริเวณเรียบไว้ การแปลง emboss ลบค่าเพื่อนบ้านแบบถ่วงน้ำหนักในทิศทางเฉพาะ ให้ผลลัพธ์ที่ไฮไลต์และเงาเน้นความไม่ต่อเนื่องของภูมิประเทศและลักษณะ คุณสมบัติหลักได้แก่ การควบคุมทิศทางที่ใช้งานง่ายซึ่งปรับทิศทางแสงจำลองได้ (รูปแบบแปดทิศทาง) การผสานการรับรู้สามมิติโดยธรรมชาติที่ช่วยเพิ่มการแปลตีความด้วยสายตา และประสิทธิภาพที่ทนทานภายใต้สภาวะแสงที่หลากหลายในภาพต้นฉบับ ตัวกรอง emboss ใช้ในการประกันคุณภาพ การแสดงผลเพื่อการแปลตีความ และการเน้นขอบเขตของลักษณะ กรณีการใช้งานได้แก่ การเสริมภาพเพื่อการแปลตีความทางธรณีวิทยาที่ขอบเขตแร่มองเห็นได้เป็นรูปแบบนูนต่ำ การแปลตีความภาพถ่ายทางอากาศที่ช่วยให้มองเห็นขอบเขตที่ละเอียดอ่อนได้ดีขึ้น การผลิตแผนที่ที่แบบจำลองระดับความสูงเชิงเลขที่ทำ emboss แล้วสร้างแผนที่ภูมิประเทศนูนต่ำที่น่าสนใจ และการตรวจจับลักษณะทางโบราณคดีที่โครงสร้างที่ถูกฝังปรากฏเป็นความแปรผันของภูมิประเทศที่ละเอียดอ่อน การตีความผลลัพธ์ถือว่าค่าสูงเป็นพื้นผิวที่ได้รับแสงและค่าต่ำเป็นเงา สร้างความลึกเชิงการรับรู้ที่ตามนุษย์ตีความเป็นภูมิประเทศนูนต่ำโดยธรรมชาติ ผลลัพธ์ emboss โดยทั่วไปต้องปรับมาตราส่วนเป็นช่วงการแสดงผล 0-255 ผลลัพธ์ดิบมักมีค่าลบที่แทนพื้นที่เงา ผลนี้เป็นเพียงทางสายตาเท่านั้น—emboss ไม่ได้คำนวณการส่องสว่างจริงหรือสร้างอนุพันธ์ของระดับความสูง สำหรับภาพหลายสเปกตรัม ให้ใช้กับองค์ประกอบหลักหรือแบนด์ที่เลือกตามวัตถุประสงค์การวิเคราะห์ การประมวลผลภายหลังมักรวมถึงการเสริมคอนทราสต์หรือการจับคู่โทนสีเพื่อให้ได้ผลทางสายตาที่ดีที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "direction": {
                "label": "ทิศทาง",
                "description": "ทิศทางการนูน: n,s,e,w,ne,nw,se,sw."
              },
              "clip_amount": {
                "label": "ปริมาณการตัด",
                "description": "ร้อยละการตัดปลายแบบสมมาตรเป็นตัวเลือก (0-40)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "fast_almost_gaussian_filter": {
            "name": "ตัวกรองเกาส์เซียนแบบเร็วโดยประมาณ",
            "description": "ตัวกรอง Fast Almost Gaussian ให้การทำให้เรียบแบบประมาณ Gaussian อย่างรวดเร็วผ่านการกรองแบบกล่อง (การเฉลี่ย) ที่แยกได้แบบวนซ้ำ ให้การตอบสนองการเบลอใกล้เคียง Gaussian ด้วยความซับซ้อนเชิงคำนวณ O(N) ไม่ว่ารัศมีการเบลอจะเป็นเท่าใด การดำเนินการใช้คอนโวลูชันแบบกล่องต่อเนื่องกัน (แต่ละครั้งคำนวณค่าเฉลี่ยพิกเซลเฉพาะที่) เพื่อประมาณการกระจาย Gaussian สะสม N รอบประมาณเคอร์เนล Gaussian ที่ใหญ่ขึ้นเรื่อย ๆ พื้นฐานทางคณิตศาสตร์ใช้ทฤษฎีบทขีดจำกัดกลาง: คอนโวลูชันซ้ำของฟังก์ชันกล่องเข้าใกล้การกระจาย Gaussian เชิงเส้นกำกับ คุณสมบัติหลักได้แก่ ความเร็วในการคำนวณที่ทำให้ทำให้เรียบด้วยเคอร์เนลขนาดใหญ่บนภาพขนาดใหญ่ได้ การดำเนินการแบบแยกได้ที่ลดความต้องการหน่วยความจำ การควบคุมพารามิเตอร์ผ่านจำนวนรอบ (ควบคุมรัศมีการเบลอ) และประสิทธิผลกับข้อมูลทุกประเภท การกรองแบบ Fast Almost Gaussian ทำงานได้ดีเยี่ยมในการสร้างพีระมิดภาพอย่างรวดเร็วสำหรับการวิเคราะห์หลายมาตราส่วน การเรียกดูภาพดาวเทียมแบบเวลาจริง การประมวลผลเบื้องต้นของชุดข้อมูลการสำรวจระยะไกลขนาดมหึมาก่อนการจำแนก และโปรแกรมดูภาพแบบโต้ตอบที่ต้องการการทำให้เรียบที่ตอบสนองรวดเร็ว การตีความผลลัพธ์แสดงว่าจำนวนรอบสัมพันธ์โดยตรงกับรัศมีการเบลอ: N=1 ให้การทำให้เรียบน้อยที่สุด N=3-5 ให้การเบลอปานกลาง N>10 สร้างการทำให้เรียบอย่างมากที่ประมาณ Gaussian เคอร์เนลใหญ่ ค่าผลลัพธ์ค่อย ๆ เลื่อนเข้าหาค่าเฉลี่ยเฉพาะที่เมื่อจำนวนรอบเพิ่มขึ้น การลดความแปรปรวนเป็นไปตามรูปแบบที่คาดการณ์ได้ ค่าที่เหลือยังคงอยู่ในช่วงข้อมูลนำเข้า การเปรียบเทียบกับการกรอง Gaussian จริงแสดงการประมาณที่ยอมรับได้ภายในความคลาดเคลื่อน 2-5% สำหรับการประยุกต์ใช้ส่วนใหญ่ ความเร็วที่เหนือกว่าการกรอง Gaussian จริงเพิ่มขึ้นอย่างมากที่รัศมีใหญ่: เร็วขึ้น 5-20× สำหรับรัศมี >20 พิกเซล สิ่งแปลกปลอมเล็กน้อยได้แก่ ความเป็นคลื่นเล็กน้อยตามขอบ (สิ่งแปลกปลอมจากกล่องที่สะสมข้ามรอบ) และการจัดการขอบเขตที่ต่างจาก Gaussian เล็กน้อย ติดตามฮิสโทแกรมผลลัพธ์เพื่อดูการกระจายแบบหลายฐานนิยมที่บ่งบอกการทำให้เรียบที่เพียงพอ ใช้ในไปป์ไลน์การประมวลผลภาพเบื้องต้นที่ความเร็วคุ้มค่ากับความคลาดเคลื่อนจากการประมาณเล็กน้อย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "sigma": {
                "label": "Sigma",
                "description": "ค่าซิกมาแบบเกาส์เซียนโดยประมาณ (แนะนำ >=1.8 ค่าเริ่มต้น 1.8)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "flip_image": {
            "name": "พลิกภาพ",
            "description": "พลิกภาพในแนวตั้ง แนวนอน หรือทั้งสองแนว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "direction": {
                "label": "ทิศทาง",
                "description": "ทิศทางการพลิก: vertical (ค่าเริ่มต้น), horizontal หรือ both."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "frangi_filter": {
            "name": "ตัวกรอง Frangi",
            "description": "ทำการเสริมความเป็นหลอด (vesselness) แบบ Frangi หลายมาตราส่วนเพื่อตรวจจับโครงสร้างคล้ายหลอด (ทรงท่อ) ที่หลายมาตราส่วน อิงการวิเคราะห์ค่าลักษณะเฉพาะของเมทริกซ์ Hessian ตอบสนองอย่างมากต่อลักษณะคล้ายเส้น (หลอด ถนน แม่น้ำ) และตอบสนองอย่างอ่อนต่อโครงสร้างคล้ายก้อน การวิเคราะห์หลายมาตราส่วน (ลองใช้ค่า sigma หลายค่า) ตรวจจับหลอดที่มีความกว้างต่างกันโดยอัตโนมัติ ใช้กันอย่างแพร่หลายในการถ่ายภาพทางการแพทย์และการสำรวจระยะไกลสำหรับการตรวจจับลักษณะเชิงเส้น Frangi vesselness ใช้ความโค้งหลัก (ค่าลักษณะเฉพาะของ Hessian) เพื่อจำแนกโครงสร้างเฉพาะที่: vesselness สูงสำหรับลักษณะเชิงเส้น ต่ำสำหรับที่ราบสูงหรือก้อน การดำเนินการหลายมาตราส่วนใช้ที่ค่า sigma (ความกว้าง) หลายค่าแล้วรวมการตอบสนอง ยอดเยี่ยมสำหรับการตรวจจับถนน แม่น้ำ และโครงข่ายหลอด ใช้การคำนวณปานกลางสำหรับหลายมาตราส่วน ผลลัพธ์ตีความได้ง่ายมาก—ตอบสนองต่อลักษณะที่จดจำได้ การประยุกต์ใช้: (1) การตรวจจับถนนในภาพดาวเทียม (2) การสกัดโครงข่ายแม่น้ำ/ลำน้ำ (3) การตรวจจับลักษณะเชิงเส้นโดยทั่วไป (4) การตรวจจับหลอดเลือด (การถ่ายภาพทางการแพทย์) (5) การตรวจจับโครงสร้างหลายมาตราส่วน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "scales": {
                "label": "มาตราส่วน",
                "description": "รายการมาตราส่วนแบบเกาส์เซียนเป็นพิกเซล (ค่าเริ่มต้น [1.0, 2.0, 3.0])."
              },
              "beta": {
                "label": "Beta",
                "description": "พารามิเตอร์ beta ของ Frangi สำหรับการกดทอนวัตถุก้อนกลม (ค่าเริ่มต้น 0.5)."
              },
              "c": {
                "label": "C",
                "description": "พารามิเตอร์ c ของ Frangi สำหรับความไวต่อโครงสร้าง (ค่าเริ่มต้น 15.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "gabor_filter_bank": {
            "name": "ชุดตัวกรอง Gabor",
            "description": "ทำการกรองการตอบสนอง Gabor หลายทิศทาง—การวิเคราะห์เนื้อสัมผัสตามทิศทาง ใช้ชุดตัวกรอง Gabor ที่หลายทิศทาง (โดยทั่วไป 0°, 45°, 90°, 135°) เพื่อสกัดคุณลักษณะเนื้อสัมผัสตามทิศทาง การตอบสนอง Gabor บ่งบอกความแรงและทิศทางของเนื้อสัมผัส มีประโยชน์สำหรับการตรวจจับลักษณะตามทิศทาง การอธิบายลักษณะเนื้อสัมผัส และการวิเคราะห์รูปแบบที่มีทิศทาง แต่ละทิศทางถูกส่งออกแยกกัน การกรอง Gabor สกัดเนื้อสัมผัสตามทิศทางโดยคอนโวลูชันกับเวฟเล็ตเฉพาะทิศทาง แต่ละทิศทางเผยให้เห็นลักษณะที่จัดแนวตามทิศทางนั้น ส่งออกหลายแบนด์ (หนึ่งแบนด์ต่อทิศทาง) ที่เผยให้เห็นทิศทางและความแรงของเนื้อสัมผัสเฉพาะที่ การตอบสนอง Gabor เป็นพื้นฐานสำหรับการสกัดคุณลักษณะเนื้อสัมผัสและการตรวจจับวัตถุในคอมพิวเตอร์วิทัศน์ ชุดตัวกรองทำให้วิเคราะห์ตามทิศทางได้อย่างครอบคลุม การประยุกต์ใช้: (1) การวิเคราะห์เนื้อสัมผัสตามทิศทาง (2) การตรวจจับลักษณะที่มีทิศทาง (สัน หุบ โครงสร้างเชิงเส้น) (3) การทำแผนที่การกัดเซาะ/การทับถมตามทิศทาง (4) การตรวจจับถนน/ลำน้ำ (ลักษณะเชิงเส้น) (5) การจำแนกโดยอิงเนื้อสัมผัส",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "sigma": {
                "label": "Sigma",
                "description": "ซิกมาของเอนเวโลป Gaussian ในหน่วยพิกเซล (ค่าเริ่มต้น 2.0)."
              },
              "frequency": {
                "label": "ความถี่",
                "description": "ความถี่เชิงพื้นที่ของไซนูซอยด์ในหน่วยรอบ/พิกเซล (ค่าเริ่มต้น 0.2)."
              },
              "orientations": {
                "label": "แนวการวางตัว",
                "description": "จำนวนทิศทางในชุดตัวกรอง (ค่าเริ่มต้น 6)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "gaussian_filter": {
            "name": "ตัวกรองเกาส์เซียน",
            "description": "การทำให้เรียบแบบ Gaussian ที่เหมาะสมที่สุดทางคณิตศาสตร์ด้วยเคอร์เนลถ่วงน้ำหนักตามระยะทาง เป็นพื้นฐานสำหรับการวิเคราะห์หลายมาตราส่วน การตรวจจับขอบ และการกรองแถบผ่าน พารามิเตอร์ sigma ควบคุมความเข้มของการทำให้เรียบ รองรับ RGB",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "sigma": {
                "label": "Sigma",
                "description": "ส่วนเบี่ยงเบนมาตรฐานแบบ Gaussian ในหน่วยพิกเซล (0.5-20.0, ค่าเริ่มต้น 0.75)."
              },
              "treat_as_rgb": {
                "label": "ถือว่าเป็น RGB",
                "description": "ตั้งเป็น true เพื่อบังคับให้ทำงานในปริภูมิความเข้ม RGB."
              },
              "assume_three_band_rgb": {
                "label": "ถือว่าเป็น RGB สามแบนด์",
                "description": "เมื่อเป็น true (ค่าเริ่มต้น) แรสเตอร์ uint8/uint16 แบบ 3 แบนด์อาจถูกถือว่าเป็น RGB หากไม่มีเมทาดาทาที่ระบุไว้อย่างชัดเจน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "glcm_texture": {
            "name": "พื้นผิว GLCM",
            "description": "ตัววิเคราะห์เนื้อสัมผัสแบบเมทริกซ์การเกิดร่วมของระดับสีเทา (GLCM) สกัดตัววัดเนื้อสัมผัสเชิงสถิติอันดับสองที่วัดความสัมพันธ์เชิงพื้นที่ระหว่างค่าระดับสีเทาของพิกเซลที่ระยะการเลื่อนและทิศทางที่กำหนด ทำให้จำแนกเนื้อสัมผัสได้อย่างซับซ้อนเพื่อแยกแยะรูปแบบพืชพรรณทางการเกษตร โครงสร้างสิ่งปลูกสร้าง และหมวดหินทางธรณีวิทยา GLCM คำนวณเมทริกซ์ความน่าจะเป็นที่จับความถี่ที่คู่ระดับสีเทาเกิดขึ้นที่ระยะเลื่อนคงที่ และคำนวณสถิติ Haralick มาตรฐานสี่ตัว: คอนทราสต์ (วัดความแปรผันเฉพาะที่) สหสัมพันธ์ (วัดการพึ่งพาเชิงเส้น) ความเป็นเนื้อเดียวกัน (วัดความใกล้แนวทแยงมุม) และพลังงาน (วัดความสม่ำเสมอ) เครื่องมือรองรับระยะเลื่อนแปดทิศทาง (0°, 45°, 90°, 135° และทิศตรงข้าม) ทำให้ไวต่อเนื้อสัมผัสตามทิศทาง—ตรวจจับรูปแบบที่มีทิศทาง เช่น แถวในแปลง การจัดแนวอาคาร หรือโครงสร้างทางธรณีวิทยา คุณสมบัติหลักได้แก่ การวิเคราะห์หลายทิศทางที่เผยให้เห็นคุณสมบัติเนื้อสัมผัสแบบแอนไอโซทรอปิก การปรับพารามิเตอร์ระยะเลื่อนเพื่อความไวต่อมาตราส่วนที่เหมาะสม การคำนวณตัววัดเนื้อสัมผัสหลายตัวพร้อมกันเพื่อลดภาระการประมวลผล และความสามารถโดยธรรมชาติในการแยกแยะคุณสมบัติพื้นผิวที่ละเอียดอ่อนทางสายตา กรณีการใช้งานครอบคลุมเกษตรแม่นยำ (การจำแนกประเภทพืชผล การตรวจจับขอบเขตแปลง การประเมินความเครียดของพืชผล) การวิเคราะห์เมือง (การทำแผนที่ความหนาแน่นของอาคาร การสกัดพื้นผิวทึบน้ำ) และการสำรวจระยะไกลทางธรณีวิทยา (การแยกแยะชนิดหิน การรู้จำรูปแบบโครงสร้าง) การประยุกต์ใช้ได้แก่ การจำแนกสิ่งปกคลุมดินที่รวมคุณลักษณะเชิงสเปกตรัมและเนื้อสัมผัส การวิเคราะห์ภาพเชิงวัตถุที่ปรับปรุงความถูกต้องของการจำแนก การควบคุมคุณภาพเพื่อตรวจจับสิ่งแปลกปลอมจากเครื่องมือในภาพดาวเทียม และการตรวจหาการเปลี่ยนแปลงที่แยกการเปลี่ยนแปลงที่มีความหมายออกจากสัญญาณรบกวนของเซนเซอร์ การตีความผลลัพธ์ต้องเข้าใจความหมายของแต่ละสถิติ: คอนทราสต์สูงบ่งบอกเนื้อสัมผัสขรุขระ/หลากหลาย สหสัมพันธ์สูงบ่งบอกรูปแบบเชิงเส้น ความเป็นเนื้อเดียวกันสูงบ่งบอกเนื้อสัมผัสสม่ำเสมอ พลังงานสูงบ่งบอกรูปแบบซ้ำที่เป็นระเบียบ แบนด์ผลลัพธ์สามารถรวมเป็นดัชนีเนื้อสัมผัสได้ (เช่น GLCM Homogeneity หารด้วย Contrast เพื่อเน้นพื้นที่ที่เป็นเนื้อเดียวกัน) โหมดการรวมตามทิศทาง (mean/min/max/separate) ส่งผลต่อจำนวนมิติของผลลัพธ์และการตีความ การวิเคราะห์เนื้อสัมผัสโดยทั่วไปใช้ตัววัด GLCM หลายตัวพร้อมกันเพื่อการจำแนกที่ทนทาน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์แบนด์เดียวที่นำเข้า."
              },
              "window_size": {
                "label": "ขนาดหน้าต่าง",
                "description": "ขนาดหน้าต่างเคลื่อนที่แบบเลขคี่ในหน่วยพิกเซล (ค่าเริ่มต้น 7)."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ระยะพิกเซลสำหรับออฟเซ็ตของคู่การเกิดร่วม (ค่าเริ่มต้น 1)."
              },
              "angles": {
                "label": "มุม",
                "description": "มุมที่คั่นด้วยเครื่องหมายจุลภาคจาก 0,45,90,135 (ค่าเริ่มต้น '0,45,90,135')."
              },
              "features": {
                "label": "ฟีเจอร์",
                "description": "ฟีเจอร์ที่คั่นด้วยเครื่องหมายจุลภาค: contrast,dissimilarity,homogeneity,asm,energy,entropy,mean,variance,correlation."
              },
              "direction_aggregation": {
                "label": "การรวมทิศทาง",
                "description": "โหมดการรวมทิศทาง: mean (ค่าเริ่มต้น), min, max, range, separate."
              },
              "levels": {
                "label": "ระดับ",
                "description": "จำนวนระดับการควอนไทซ์ (ค่าเริ่มต้น 32; ช่วง 8-128)."
              },
              "symmetric": {
                "label": "สมมาตร",
                "description": "หากเป็น true (ค่าเริ่มต้น) จะสร้าง GLCM แบบสมมาตร."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ที่เป็นตัวเลือก (GeoTIFF หลายแบนด์)."
              }
            }
          },
          "guided_filter": {
            "name": "ตัวกรองแบบมีตัวนำ",
            "description": "ตัวกรอง guided ทำการทำให้เรียบแบบคงขอบโดยจำกัดผลลัพธ์ของตัวกรองให้มีความสัมพันธ์เชิงเส้นเฉพาะที่กับภาพนำทาง ซึ่งโดยทั่วไปคือภาพต้นฉบับหรือเลเยอร์อ้างอิงที่เกี่ยวข้อง การดำเนินการแบ่งภาพเป็นบริเวณสี่เหลี่ยมที่ซ้อนทับกัน คำนวณพารามิเตอร์การถดถอยเชิงเส้นภายในแต่ละบริเวณเพื่อบังคับความเรียบของผลลัพธ์ขณะคำนึงถึงโครงสร้างของภาพนำทาง สูตรทางคณิตศาสตร์ทำให้ ||Fᵢ - a·Gᵢ - b||² + ε||a||² มีค่าน้อยที่สุด โดย Fᵢ คือผลลัพธ์ที่กรองแล้ว Gᵢ คือภาพนำทาง และ (a, b) คือพารามิเตอร์เชิงเส้นเฉพาะที่ คุณสมบัติหลักได้แก่ ความยืดหยุ่น (ภาพนำทางอาจเป็นอิสระจากภาพที่ถูกกรอง) ประสิทธิภาพเชิงคำนวณผ่านการดำเนินการแบบแยกได้ O(N) การควบคุมพารามิเตอร์ที่ปรับความแรงของการคงขอบได้ และประสิทธิผลกับการนำทางแบบแบนด์เดียวหรือหลายสเปกตรัม การกรองแบบ guided ทำงานได้ดีเยี่ยมในเวิร์กโฟลว์การหลอมรวมหลายเซนเซอร์ที่ข้อมูลเชิงแสงนำทางการลดสัญญาณรบกวนของ SAR การปรับปรุงการจำแนก LiDAR โดยใช้ภาพออร์โทที่ตรงกัน การขจัดเงา/เมฆในโมเสกดาวเทียมโดยใช้ภาพอ้างอิงตามเวลา และการเสริมรายละเอียดในงานการทำให้แผนที่เป็นระเบียบ การตีความผลลัพธ์แสดงว่าบริเวณที่ถูกกรองยังคงคล้ายกับโครงสร้างของภาพนำทางเฉพาะที่ ขณะที่การเฉลี่ยความเข้มดำเนินไปภายในบริเวณที่เป็นเนื้อเดียวกัน รัศมีการทำให้เรียบควบคุมขอบเขตเชิงพื้นที่ (รัศมีใหญ่ = ทำให้เรียบมากขึ้น) พารามิเตอร์ regularization ε สร้างสมดุลระหว่างความเรียบกับความเที่ยงตรงของโครงสร้าง (ε ใหญ่ = เรียบกว่า ε เล็ก = รายละเอียดมากกว่า) ช่วงผลลัพธ์ตรงกับข้อมูลนำเข้า การเปรียบเทียบด้วยสายตากับภาพนำทางช่วยยืนยันความเที่ยงตรงของการคงขอบ สิ่งแปลกปลอมที่พบบ่อยได้แก่ การทำให้เรียบมากเกินไปที่ความไม่ต่อเนื่องที่แรง (เลือกพารามิเตอร์ที่เหมาะสม) และการทำให้เรียบไม่เพียงพอในบริเวณที่ภาพนำทางมีคุณภาพต่ำ (ตรวจสอบคุณภาพภาพนำทาง) ติดตามสหสัมพันธ์ไขว้ระหว่างผลลัพธ์ที่กรองแล้วกับภาพนำทางเพื่อประเมินคุณภาพการจัดแนว ใช้อย่างมีกลยุทธ์ในเวิร์กโฟลว์การหลอมรวมภาพ การเพิ่มความคมชัด และการสร้างใหม่ ที่ข้อมูลขอบจากแหล่งหนึ่งนำทางการกรองของอีกแหล่งหนึ่ง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีหน้าต่างของตัวกรองแบบชี้นำในหน่วยพิกเซล (ค่าเริ่มต้น 4)."
              },
              "epsilon": {
                "label": "Epsilon",
                "description": "พารามิเตอร์เรกูลาไรเซชันสำหรับความแปรปรวนเฉพาะที่ (ค่าเริ่มต้น 0.01)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "high_pass_bilateral_filter": {
            "name": "ตัวกรอง Bilateral ผ่านสูง",
            "description": "คำนวณส่วนเหลือความถี่สูง (high-pass residual) โดยลบผลการทำให้เรียบแบบ bilateral ออกจากแรสเตอร์นำเข้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "sigma_dist": {
                "label": "Sigma ระยะทาง",
                "description": "ส่วนเบี่ยงเบนมาตรฐานของเคอร์เนล Gaussian เชิงพื้นที่ (ระยะทาง) ในหน่วยพิกเซล (0.5–20.0, ค่าเริ่มต้น 0.75)."
              },
              "sigma_int": {
                "label": "Sigma ความเข้ม",
                "description": "ส่วนเบี่ยงเบนมาตรฐานของเคอร์เนล Gaussian ด้านความเข้ม ในหน่วยค่าแรสเตอร์ (ค่าเริ่มต้น 1.0)."
              },
              "treat_as_rgb": {
                "label": "ถือว่าเป็น RGB",
                "description": "ตั้งเป็น true เพื่อบังคับการกรองด้วยความเข้ม HSI สำหรับแรสเตอร์ RGB แบบรวมแบนด์ ก่อนการหาผลต่างแบบไฮพาส."
              },
              "assume_three_band_rgb": {
                "label": "ถือว่าเป็น RGB สามแบนด์",
                "description": "เมื่อเป็น true (ค่าเริ่มต้น) และไม่มีเมทาดาทาสีที่ระบุไว้อย่างชัดเจน จะอนุญาตให้ตีความแรสเตอร์ uint8/uint16 แบบ 3 แบนด์เป็น RGB."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ผลลัพธ์ที่เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "high_pass_filter": {
            "name": "ตัวกรองผ่านสูง",
            "description": "ตัวกรองความถี่สูง (high-pass) แยกองค์ประกอบเชิงพื้นที่ความถี่สูงในภาพโดยลบภาพเวอร์ชันความถี่ต่ำ (ที่ทำให้เรียบแล้ว) ออกจากภาพต้นฉบับ ในทางคณิตศาสตร์ทำได้โดยคอนโวลูชันภาพกับเคอร์เนลที่ออกแบบมาเพื่อเน้นเกรเดียนต์และกดความแปรผันของโทนสีกว้าง การดำเนินการใช้คอนโวลูชันโดยตรงหรือการประมวลผลในโดเมนความถี่ขึ้นกับขนาดเคอร์เนลและขนาดภาพ ตัวกรองเสริมขอบ รายละเอียดเนื้อสัมผัสละเอียด และความแปรผันระดับเล็ก ขณะขจัดแนวโน้มแสงระดับใหญ่ คุณสมบัติที่โดดเด่นได้แก่ การคงคอนทราสต์ของขอบโดยไม่มีสิ่งแปลกปลอมที่ขอบเขต การลดทอนความถี่แบบเลือกตามรัศมีเคอร์เนล และใช้ได้โดยตรงกับทั้งภาพระดับสีเทาและภาพหลายสเปกตรัม การกรองความถี่สูงมีคุณค่าอย่างยิ่งสำหรับการวิเคราะห์ภูมิประเทศที่ต้องเสริมลักษณะภูมิประเทศที่ละเอียดอ่อน การเพิ่มความคมชัดภาพดาวเทียมเพื่อการแปลตีความด้วยสายตา การตรวจจับโครงสร้างทางธรณีวิทยาระดับเล็ก และการประมวลผลข้อมูลเบื้องต้นสำหรับการจำแนกด้วยการเรียนรู้ของเครื่อง นอกจากนี้ยังจำเป็นสำหรับการเตรียมภาพออร์โทสำหรับการตรวจหาการเปลี่ยนแปลงและการเสริมผลิตภัณฑ์ที่ได้จาก LiDAR การตีความผลลัพธ์ต้องเข้าใจว่าค่าบวกบ่งบอกจุดสูงสุดเฉพาะที่ (ขอบสว่าง) และค่าลบบ่งบอกจุดต่ำสุดเฉพาะที่ (ขอบมืด) ช่วงโดยทั่วไปคือ ±100 สำหรับภาพ 8 บิต ผลลัพธ์ที่มีค่าเฉลี่ยศูนย์บ่งบอกการสกัดความถี่สูงที่สำเร็จ สิ่งแปลกปลอมที่พบบ่อยได้แก่ ริงกิงที่ความไม่ต่อเนื่องที่แรงและสัญญาณรบกวนที่ถูกขยายหากภาพต้นฉบับมีสัญญาณรบกวน การตีความมาตราส่วนขึ้นกับรัศมีเคอร์เนล: เคอร์เนลเล็กเสริมเนื้อสัมผัสละเอียด (พิกเซลเดี่ยว) ขณะที่เคอร์เนลใหญ่เน้นลักษณะระดับปานกลาง (ความแปรผันของภูมิประเทศข้ามหลายสิบพิกเซล) ติดตามสถิติผลลัพธ์ การมีศูนย์กลางที่ศูนย์มากเกินไปบ่งบอกการประมวลผลมากเกินไป ใช้ร่วมกับผลลัพธ์ความถี่ต่ำเพื่อสร้างภาพต้นฉบับขึ้นใหม่หรือสำหรับเวิร์กโฟลว์การแยกหลายมาตราส่วน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "high_pass_median_filter": {
            "name": "ตัวกรองมัธยฐานผ่านสูง",
            "description": "ทำการกรองความถี่สูงโดยลบค่ามัธยฐานเฉพาะที่ออกจากค่ากึ่งกลาง: output = pixel - median_neighborhood รวมการกรองความถี่สูง (เสริมรายละเอียด) กับความทนทานของมัธยฐาน (ขจัดสัญญาณรบกวน) ผลลัพธ์มีศูนย์กลางรอบศูนย์ (ลบ = มืดกว่าสิ่งรอบข้าง บวก = สว่างกว่า) ทนทานต่อค่าผิดปกติเมื่อเทียบกับการกรองความถี่สูงแบบอิง Gaussian ส่วนเหลือความถี่สูงเผยให้เห็นการเบี่ยงเบนเฉพาะที่จากแนวโน้มมัธยฐาน ทนทานเป็นพิเศษสำหรับข้อมูลที่มีสัญญาณรบกวน—มัธยฐานมีเสถียรภาพกว่าค่าเฉลี่ยสำหรับค่าผิดปกติ ผลลัพธ์เน้นความแปรผันระดับละเอียด มักใช้กับภาพที่ทำให้เรียบด้วย Gaussian แล้ว (สร้างตัวกรองแถบผ่าน) มีประโยชน์สำหรับการเสริมเนื้อสัมผัสและการสกัดลักษณะจากภาพที่มีสัญญาณรบกวน การประยุกต์ใช้: (1) การเสริมเนื้อสัมผัสจากข้อมูลที่มีสัญญาณรบกวน (2) การสกัดรายละเอียดก่อนการจำแนก (3) การตรวจจับลักษณะที่ทนทาน (4) การประมวลผลเบื้องต้นสำหรับการแบ่งส่วนตามเนื้อสัมผัส (5) การประมวลผลเบื้องต้นของ SAR",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "sig_digits": {
                "label": "จำนวนเลขนัยสำคัญ",
                "description": "จำนวนเลขนัยสำคัญที่ใช้ในการแบ่งช่วงฮิสโทแกรม (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "integral_image_transform": {
            "name": "การแปลงภาพอินทิกรัล",
            "description": "คำนวณการแปลงผลรวมพื้นที่ (summed-area หรือ integral image) สำหรับแต่ละแบนด์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "k_nearest_mean_filter": {
            "name": "ตัวกรองค่าเฉลี่ย K จุดใกล้ที่สุด",
            "description": "ทำการทำให้เรียบด้วยค่าเฉลี่ย k-nearest neighbor แบบคงขอบ: เรียงลำดับย่านใกล้เคียงตามระยะห่างจากค่ากึ่งกลาง แล้วเฉลี่ยค่าที่ใกล้ที่สุด k ค่า เป็นแนวทางแบบผสมที่คงขอบผ่านการถ่วงน้ำหนักความคล้ายคลึง พิกเซลกึ่งกลางและเพื่อนบ้านที่คล้ายที่สุด k-1 ตัวถูกนำมาเฉลี่ย ซับซ้อนกว่า k-NN อย่างง่าย (พิจารณาทั้งความคล้ายคลึงเชิงพื้นที่และความเข้ม) มีประสิทธิภาพเชิงคำนวณเมื่อเทียบกับ bilateral แนวทาง k-nearest เลือกเพื่อนบ้านแบบปรับตัว: ค่าพิกเซลที่ใกล้ค่ากึ่งกลางถูกนำมาเฉลี่ย พิกเซลที่ไม่คล้ายถูกละเว้น พารามิเตอร์ K ควบคุมการทำให้เรียบ: k=1 (ไม่ทำให้เรียบ) k=n (เพื่อนบ้านทั้งหมด = ตัวกรองค่าเฉลี่ย) โดยทั่วไป k=n/2 (ครึ่งหนึ่งของย่านใกล้เคียง) เป็นทางเลือกที่มีประสิทธิภาพแทนตัวกรอง bilateral—คงขอบได้ใกล้เคียงกันด้วยต้นทุนการคำนวณที่ต่ำกว่า มีประโยชน์เป็นพิเศษสำหรับภาพที่มีความไม่ต่อเนื่องของความเข้มที่แรง การประยุกต์ใช้: (1) การทำให้เรียบแบบคงขอบ (ทางเลือกแทน bilateral) (2) การประมวลผลเบื้องต้นอย่างรวดเร็วสำหรับการจำแนก (3) การประมวลผลเบื้องต้นที่ประสิทธิภาพมีความสำคัญ (4) การกรองภาพหลายแบนด์ พารามิเตอร์ทั่วไป: k=neighborhood_size/2 ถึง 3/4",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 3)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 3)."
              },
              "k": {
                "label": "K",
                "description": "จำนวนเพื่อนบ้านใกล้สุดที่นำมาเฉลี่ย (ค่าเริ่มต้น 5)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "kuwahara_filter": {
            "name": "ตัวกรอง Kuwahara",
            "description": "ตัวกรอง Kuwahara ทำการทำให้เรียบแบบคงขอบแบบไม่เชิงเส้นโดยแบ่งย่านใกล้เคียงของแต่ละพิกเซลออกเป็นสี่จตุภาค คำนวณสถิติภายในแต่ละจตุภาค และเลือกจตุภาคที่มีความแปรปรวนต่ำที่สุดเป็นค่าผลลัพธ์ การดำเนินการแบ่งหน้าต่าง (2k+1)×(2k+1) เป็นหน้าต่างย่อย k×k สี่หน้าต่างที่ซ้อนทับกัน คำนวณค่าเฉลี่ยและความแปรปรวนของแต่ละจตุภาค และส่งออกค่าเฉลี่ยจากจตุภาคที่มีความแปรปรวนต่ำสุด แนวทางที่อิงอันดับนี้ทำให้บริเวณที่เป็นเนื้อเดียวกันเรียบและทำให้ขอบคมชัดขึ้นพร้อมกัน คุณสมบัติหลักได้แก่ การคงขอบที่แท้จริงผ่านการเลือกจตุภาค (ขอบระหว่างจตุภาคป้องกันผลลัพธ์พร่ามัว) ความเรียบง่ายเชิงคำนวณที่ต้องการเพียงการคำนวณค่าเฉลี่ย/ความแปรปรวน การควบคุมพารามิเตอร์ผ่านขนาดจตุภาค k และประสิทธิผลกับภาพเชิงแสง เรดาร์ และความร้อน การกรองด้วย Kuwahara ทำงานได้ดีเยี่ยมในการทำให้ DEM ที่ได้จาก LiDAR เรียบโดยคงผาชันและขั้นบันได การสกัดโครงข่ายถนนจากภาพความละเอียดสูงโดยคงความคมชัดของเส้นกึ่งกลาง การกำหนดขอบเขตรอยเท้าอาคารจากภาพถ่ายทางอากาศ และการตรวจจับขอบเขตคราบน้ำมันในภาพ SAR การตีความผลลัพธ์แสดงว่าบริเวณที่เป็นเนื้อเดียวกันส่งออกจตุภาคที่เฉลี่ยตามธรรมชาติ (ความแปรปรวนต่ำสุด) ขอบส่งออกจตุภาคที่มีโครงสร้างสม่ำเสมอใกล้ขอบที่สุด ซึ่งยึดผลลัพธ์ไว้กับด้านที่สะอาดกว่าอย่างมีประสิทธิผล ขนาดจตุภาค k ควบคุมการคงรายละเอียด: k=1 (ทำให้เรียบน้อยที่สุด) คงขอบละเอียด k=3-4 ให้ความสมดุลระหว่างการทำให้เรียบและการคงขอบ k>5 เสี่ยงต่อการสูญเสียรายละเอียด ค่าผลลัพธ์ตรงกับค่าพิกเซลนำเข้าจากจตุภาคที่เลือกพอดี (ไม่มีการประมาณค่าในช่วง) ติดตามฮิสโทแกรมผลลัพธ์เพื่อดูการกระจายแบบสองฐานนิยม (ขอบและบริเวณที่เป็นเนื้อเดียวกันแยกกันชัดเจน) การกระจายแบบฐานนิยมเดียวบ่งชี้ขอบพร่ามัว ใช้การเพิ่มความคมชัดเสริมหากเกิดการทำให้เรียบมากเกินไป สิ่งแปลกปลอมที่พบบ่อยได้แก่ ความเอนเอียงตามทิศทางขึ้นกับการจัดแนวจตุภาคและความเป็นบล็อกใกล้ขอบที่อ่อน ใช้ในการประมวลผลเบื้องต้นสำหรับการแบ่งส่วนที่การคงขอบช่วยให้สกัดขอบเขตได้อย่างแม่นยำ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีควอดแรนต์ของ Kuwahara ในหน่วยพิกเซล (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "lee_filter": {
            "name": "ตัวกรอง Lee",
            "description": "ตัวกรอง Lee ทำการลด speckle ของ SAR โดยใช้แบบจำลองการคูณของ Lee ซึ่งสมมติว่าสัญญาณสะท้อนเรดาร์เป็นไปตามสัญญาณรบกวนแบบคูณ: I = S·N โดย S คือสัญญาณและ N คือสัญญาณรบกวนแบบคูณ การดำเนินการคำนวณค่าเฉลี่ยและความแปรปรวนเฉพาะที่ ประมาณความแปรปรวนของ speckle แล้วกรองผ่าน: F = μ + (1 - σₙ²/σ_I²)·(I - μ) โดย σₙ² คือความแปรปรวนของ speckle และ σ_I² คือความแปรปรวนรวม แนวทางที่อิงแบบจำลองนี้คงลักษณะที่มีความสอดคล้องสูงไว้ขณะกด speckle คุณสมบัติหลักได้แก่ แบบจำลองสัญญาณรบกวนเฉพาะ SAR (แบบคูณแทนแบบ Gaussian) การคงเป้าหมายจุดและขอบ การตีความพารามิเตอร์ที่ตรงไปตรงมา (ขนาดหน้าต่างควบคุมการวัดความสอดคล้อง) และประสิทธิผลที่พิสูจน์แล้วกับ SAR แบบโพลาไรซ์เดียวและหลายโพลาไรซ์ การกรองด้วย Lee ทำงานได้ดีเยี่ยมในการประมวลผลเบื้องต้นของ SAR สำหรับการติดตามการเกษตร การจำแนกป่า การติดตามผิวมหาสมุทร และเวิร์กโฟลว์การทำแผนที่น้ำท่วม การตีความผลลัพธ์แสดงว่าบริเวณที่มีความสอดคล้องสูง (เป้าหมายจุด ขอบที่แรง) ถูกกรองน้อยที่สุด บริเวณที่มีความสอดคล้องต่ำ (สัญญาณรบกวน speckle ขอบเขตที่อ่อน) ถูกกรองอย่างเข้มข้น การประมาณความแปรปรวนของ speckle ส่งผลต่อผลลัพธ์: การประมาณที่แม่นยำต้องมีพิกเซลที่เป็นเนื้อเดียวกันเพียงพอ ความแปรปรวนที่ประมาณต่ำเกินไปทำให้เรียบไม่พอ ความแปรปรวนที่ประมาณสูงเกินไปทำให้เรียบมากเกินไป ขนาดหน้าต่างควบคุมความละเอียดของการวัดความสอดคล้อง: หน้าต่างเล็ก (3×3) คงรายละเอียดละเอียด หน้าต่างใหญ่ (7×7) ปรับปรุงการประมาณความแปรปรวนแต่เสี่ยงต่อการสูญเสียรายละเอียด มาตราส่วนผลลัพธ์ตรงกับข้อมูลนำเข้า การแสดงผลแบบลอการิทึมช่วยเพิ่มการมองเห็น การลดสัญญาณรบกวนโดยทั่วไปลดความแปรปรวนได้ 5-10 dB ขึ้นกับจำนวน look ติดตามฮิสโทแกรมผลลัพธ์เพื่อดูลายเซ็น speckle ที่เหลืออยู่ การกระจายที่เรียบบ่งชี้การกรองที่เพียงพอ สิ่งแปลกปลอมได้แก่ ขอบที่อาจพร่ามัวในบริเวณที่มีความสอดคล้องอ่อนและความเอนเอียงตามทิศทางในลักษณะเชิงเส้น ใช้อย่างมีกลยุทธ์ในการจำแนก SAR ที่ต้องการการกด speckle ขณะคงความสมบูรณ์ของคุณลักษณะสำหรับการจำแนก",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "sigma": {
                "label": "Sigma",
                "description": "ครึ่งความกว้างของช่วงความเข้มที่นำมารวมรอบค่ากลาง (ค่าเริ่มต้น 10.0)."
              },
              "m_value": {
                "label": "ค่า M",
                "description": "จำนวนตัวอย่างในช่วงขั้นต่ำก่อนใช้การเฉลี่ยสำรอง (ค่าเริ่มต้น 5.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "line_detection_filter": {
            "name": "ตัวกรองตรวจจับเส้น",
            "description": "ตัวกรองการตรวจจับเส้นเป็นตัวตรวจจับขอบเฉพาะทางที่ออกแบบมาเพื่อเสริมลักษณะเชิงเส้น—ถนน แม่น้ำ สายไฟฟ้า และแนวเส้นทางธรณีวิทยา—ในสี่ทิศทางหลัก (แนวนอน แนวตั้ง และแนวทแยงทั้งสอง) โดยใช้เคอร์เนลคอนโวลูชันตามทิศทางที่ปรับให้เหมาะกับความเชื่อมต่อและความต่อเนื่องของเส้น ตัวกรองนี้ใช้เคอร์เนล 3×3 ที่เน้นโครงสร้างเชิงเส้นที่จัดแนวตามแต่ละทิศทางหลักขณะกดสัญญาณรบกวนในแนวตั้งฉากและความแปรผันของลักษณะแบบสุ่ม แนวทางตามทิศทางแยกการตรวจจับตามการวางแนว ทำให้การประยุกต์ใช้ในขั้นตอนถัดไปแยกแยะโครงสร้างพื้นฐานแนวนอน (ท่อส่ง ขอบเขตแปลง) ออกจากโครงสร้างแนวตั้ง (แถวต้นไม้ แนวสาธารณูปโภค) ได้ คุณสมบัติหลักได้แก่ การแยกหลายทิศทางที่สร้างแบนด์ขนาดและทิศทางแยกกัน การปรับความไวแบบปรับตัวสำหรับความกว้างของเส้นและความแปรผันของคอนทราสต์ และประสิทธิภาพที่โดดเด่นกับลักษณะเชิงเส้นที่ละเอียดอ่อนซึ่งแฝงอยู่ในภูมิประเทศที่ซับซ้อน กรณีการใช้งานครอบคลุมการทำแผนที่โครงสร้างพื้นฐาน (ถนน ทางรถไฟ สายไฟฟ้า) การสกัดลักษณะทางธรรมชาติ (ลำน้ำ สันเขา รอยเลื่อน) และการกำหนดขอบเขตการใช้ประโยชน์ที่ดิน การประยุกต์ใช้ได้แก่ การประมวลผลเบื้องต้นสำหรับการแปลงเป็นเวกเตอร์ในการดิจิไทซ์แปลงที่ดิน การสกัดโครงข่ายการขนส่งจากภาพถ่ายออร์โท การทำแผนที่โครงสร้างทางธรณีวิทยาจากภาพดาวเทียม และการรู้จำรูปแบบในการวิเคราะห์การสำรวจระยะไกล การตีความผลลัพธ์ต้องเข้าใจว่าแต่ละองค์ประกอบตามทิศทางเผยให้เห็นความแรงของเส้นในการวางแนวเฉพาะนั้น—ตรวจสอบผลลัพธ์ทั้งสี่ทิศทางหลักเพื่อระบุทิศทางของลักษณะที่เด่น ค่าขนาดที่สูงกว่าบ่งบอกความต่อเนื่องของเส้นที่แรงกว่า ค่าต่ำบ่งชี้สัญญาณรบกวนหรือจุดขาด ผลลัพธ์มีความเบาบางโดยธรรมชาติ เน้นเฉพาะพิกเซลที่แทนลักษณะเชิงเส้น พื้นที่พื้นหลังยังคงใกล้ศูนย์ ผลลัพธ์หลายทิศทางทำให้จำแนกภายหลังได้ โดยแยกถนน (โดยทั่วไปแนวนอน/แนวตั้งในพื้นที่สิ่งปลูกสร้าง) ออกจากแนวเส้นทางธรรมชาติ (การวางแนวใดก็ได้) รวมองค์ประกอบตามทิศทางเพื่อสร้างแผนที่เส้นแบบรวม หรือวิเคราะห์แต่ละทิศทางแยกกันสำหรับการทำแผนที่โครงสร้างที่มีทิศทาง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "variant": {
                "label": "รูปแบบย่อย",
                "description": "รูปแบบทิศทางของเส้น: v, h, 45 หรือ 135."
              },
              "abs_values": {
                "label": "ค่าสัมบูรณ์",
                "description": "หากเป็น true จะให้ผลลัพธ์เป็นค่าการตอบสนองสัมบูรณ์."
              },
              "clip_tails": {
                "label": "ตัดส่วนปลาย",
                "description": "ร้อยละการตัดปลายแบบสมมาตรเป็นตัวเลือก (0-40)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "line_thinning": {
            "name": "การทำเส้นให้บาง",
            "description": "ลดลักษณะแรสเตอร์ไบนารีที่เชื่อมต่อกันให้เป็นเส้นโครงร่าง (skeleton) กว้างหนึ่งเซลล์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "lidar_ground_point_filter": {
            "name": "ตัวกรองจุดพื้นดิน LiDAR",
            "description": "แยกภูมิประเทศออกจากจุดที่ไม่ใช่พื้นดิน: การจำแนก/การกรองตามความลาดชันโดยใช้เรขาคณิตระนาบเฉพาะที่และค่าเกณฑ์ความสูง การแบ่งส่วนพื้นดินที่มีประสิทธิภาพ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีค้นหาในย่านใกล้เคียง (ค่าเริ่มต้น 2.0)."
              },
              "min_neighbours": {
                "label": "จำนวนเพื่อนบ้านต่ำสุด",
                "description": "จำนวนเพื่อนบ้านขั้นต่ำที่ต้องการ (ค่าเริ่มต้น 0)."
              },
              "slope_threshold": {
                "label": "ค่าเกณฑ์ความลาดชัน",
                "description": "ค่าเกณฑ์ความลาดชันในหน่วยองศา (ค่าเริ่มต้น 45.0, สูงสุด 88)."
              },
              "height_threshold": {
                "label": "ค่าเกณฑ์ความสูง",
                "description": "ระยะแยกในแนวดิ่งขั้นต่ำสำหรับทำเครื่องหมายว่าไม่ใช่ภูมิประเทศ (ค่าเริ่มต้น 1.0)."
              },
              "classify": {
                "label": "จำแนก",
                "description": "หากเป็น true จะจำแนกจุด (พื้นดิน=2, ไม่ใช่ภูมิประเทศ=1) มิฉะนั้นจะกรองจุดที่ไม่ใช่ภูมิประเทศออก."
              },
              "slope_norm": {
                "label": "ปรับมาตรฐานความลาดชัน",
                "description": "หากเป็น true จะใช้การปรับมาตรฐานภูมิประเทศแบบ top-hat ก่อนการทดสอบความลาดชัน (ค่าเริ่มต้น true)."
              },
              "height_above_ground": {
                "label": "ความสูงเหนือพื้นดิน",
                "description": "หากเป็น true จะให้ค่า z เป็นความสูงเฉพาะที่เหนือเพื่อนบ้านที่ต่ำกว่าซึ่งใกล้ที่สุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือกสำหรับโหมดข้อมูลนำเข้าเดียว."
              }
            }
          },
          "majority_filter": {
            "name": "ตัวกรองค่าส่วนใหญ่",
            "description": "คำนวณฐานนิยม (ค่า/คลาสที่พบบ่อยที่สุด) ในหน้าต่างเคลื่อนที่สำหรับแต่ละพิกเซล ตัวกรองไม่เชิงเส้นที่คงขอบเขตหมวดหมู่และรูปแบบที่เด่นไว้ มีประโยชน์เป็นพิเศษสำหรับภาพที่จำแนกแล้วซึ่งผลลัพธ์ต้องอยู่ภายในชุดคลาสเดิม (ต่างจากตัวกรองค่าเฉลี่ยที่สร้างค่าที่ประมาณค่าในช่วง) จำเป็นสำหรับการทำความสะอาดเชิงสัณฐานของผลการจำแนก\n\nการกรองเสียงข้างมากเป็นรูปแบบที่อิงฐานนิยมซึ่งเทียบเท่ากับการกรองมัธยฐาน สำหรับข้อมูลหมวดหมู่ (ภาพที่จำแนกแล้ว สิ่งปกคลุมดิน) เสียงข้างมากคงนิยามของคลาสไว้ขณะทำให้สัญญาณรบกวนเรียบ สำหรับข้อมูลต่อเนื่อง เสียงข้างมากสามารถเผยให้เห็นจุดสูงสุดเฉพาะที่ในการกระจายของค่า มักตามด้วยการกำจัดคลาสส่วนน้อย (การทำความสะอาดหลังการจำแนก) เพื่อขจัดสิ่งแปลกปลอมจากการจำแนกแบบ \"salt-and-pepper\"\n\nการประยุกต์ใช้: (1) การทำให้เรียบหลังการจำแนก (ขจัดหย่อมคลาสขนาดเล็กที่ไม่พึงประสงค์) (2) แผนที่คลาสเสียงข้างมากจากผลลัพธ์การจำแนกหลายชุด (3) การทำความสะอาดข้อมูลเวกเตอร์ (การแยกคลาส) (4) การกดสัญญาณรบกวนในภาพที่กำหนดค่าเกณฑ์แล้ว (5) การทำให้แอตทริบิวต์เรียบในผลลัพธ์การแบ่งส่วน เวิร์กโฟลว์ทั่วไป: จำแนก→ตัวกรองเสียงข้างมาก→กำจัดคลาสส่วนน้อย→แผนที่ที่ทำความสะอาดขั้นสุดท้าย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "maximum_filter": {
            "name": "ตัวกรองค่าสูงสุด",
            "description": "คำนวณค่าสูงสุดในหน้าต่างเคลื่อนที่ เผยให้เห็นจุดสูงสุดและสันเฉพาะที่ เป็นตัวดำเนินการขยาย (dilation) ในการประมวลผลภาพเชิงสัณฐาน มีประโยชน์สำหรับการตรวจจับยอด แนวสันเขา และลักษณะที่มีแอมพลิจูดสูงสุด ไวต่อค่าผิดปกติค่าเดียว (ค่าสูงหนึ่งค่าในหน้าต่างทำให้ผลลัพธ์สูง)\n\nตัวกรองค่าสูงสุดคือตัวดำเนินการ \"dilation\" เชิงสัณฐาน—ขยายบริเวณสว่างและหดบริเวณมืด เมื่อใช้ซ้ำ (dilation หลายรอบ) จะสร้างยอดที่เรียบและลักษณะที่แยกตัวจะขยายจนเต็มย่านใกล้เคียง เมื่อรวมกับตัวกรองค่าต่ำสุดจะทำให้ทำ closing (dilation แล้ว erosion) และ opening (erosion แล้ว dilation) ได้ จำเป็นสำหรับการตรวจจับลักษณะเชิงสัณฐานและการวิเคราะห์หลายมาตราส่วน\n\nการประยุกต์ใช้: (1) dilation เชิงสัณฐานสำหรับการกรองตามขนาด (2) closing ผ่าน dilation→erosion เพื่อเติมรูขนาดเล็ก (3) การระบุยอด/สันในภูมิประเทศและภาพ (4) ระดับเพดานเฉพาะที่ในข้อมูลความลึกท้องน้ำ/DEM (5) การวิเคราะห์ลักษณะหลายมาตราส่วน (เปรียบเทียบ dilation ข้ามมาตราส่วน) เวิร์กโฟลว์ทั่วไป: ค่าสูงสุด→เปรียบเทียบกับค่าต่ำสุด→closing หรือ opening ขึ้นกับประเภทของลักษณะ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "mean_filter": {
            "name": "ตัวกรองค่าเฉลี่ย",
            "description": "คำนวณค่าเฉลี่ยในหน้าต่างเคลื่อนที่สำหรับแต่ละพิกเซล เป็นการดำเนินการทำให้เรียบพื้นฐานที่ลดสัญญาณรบกวนเฉพาะที่ขณะทำให้การเปลี่ยนผ่านที่คมชัดพร่ามัว ผลลัพธ์แทนแนวโน้มเข้าสู่ส่วนกลางเฉพาะที่ ใช้กันอย่างแพร่หลายสำหรับการประมวลผลเบื้องต้น การลดสัญญาณรบกวน และการวิเคราะห์หลายมาตราส่วน\n\nการกรองค่าเฉลี่ยเป็นการดำเนินการทำให้เรียบความถี่ต่ำที่พบบ่อยที่สุด ไวต่อค่าผิดปกติสูง (ค่าสุดขั้วอาจบิดเบือนผลลัพธ์) ทำให้ตัวกรองมัธยฐานเหมาะกว่าสำหรับข้อมูลที่มีสัญญาณรบกวน มีประสิทธิภาพเชิงคำนวณ ขนาดตัวกรองควบคุมระดับการทำให้เรียบ: เล็ก (3×3) คงรายละเอียด ใหญ่ (31×31+) สร้างพื้นผิวที่เรียบมาก มักใช้แบบวนซ้ำหรือที่หลายมาตราส่วนสำหรับการวิเคราะห์หลายความละเอียด\n\nการประยุกต์ใช้: (1) การลดสัญญาณรบกวนพื้นฐาน (2) การประมวลผลเบื้องต้นก่อนการตรวจจับลักษณะ (ทำให้ผลบวกลวงเรียบ) (3) การวิเคราะห์หลายมาตราส่วน (ใช้ที่ 3×3, 11×11, 31×31) (4) การทำให้เรียบตามเวลา (การรวมฉาก) (5) เส้นฐานสำหรับการดำเนินการเชิงสถิติอื่น ๆ เปรียบเทียบกับมัธยฐาน (ไม่เชิงเส้น คงขอบ) เพื่อการคงขอบที่ดีขึ้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "median_filter": {
            "name": "ตัวกรองค่ามัธยฐาน",
            "description": "คำนวณค่ามัธยฐานในหน้าต่างเคลื่อนที่สำหรับแต่ละพิกเซล โดยแทนที่ด้วยเปอร์เซ็นไทล์ที่ 50 ของย่านใกล้เคียง ตัวกรองสัญญาณรบกวนที่ทนทานซึ่งคงขอบไว้ (ไม่เชิงเส้น) มีประสิทธิผลเป็นพิเศษในการขจัดสัญญาณรบกวนแบบอิมพัลส์ (salt-and-pepper) ขณะคงขอบเขตที่คมชัด ค่าผลลัพธ์เป็นค่าพิกเซลจริงจากย่านใกล้เคียง (ไม่ได้ประมาณค่าในช่วง)\n\nการกรองมัธยฐานเป็นแบบไม่เชิงเส้น—ข้อได้เปรียบสำคัญเหนือการกรองค่าเฉลี่ยในการลดสัญญาณรบกวน เพราะไม่สร้างค่าใหม่หรือทำให้ขอบพร่ามัว ขนาดตัวกรองใหญ่ทำให้เรียบมากขณะคงการเปลี่ยนผ่านที่คมชัด ใช้กันอย่างแพร่หลายในการสำรวจระยะไกล การถ่ายภาพทางการแพทย์ และการประมวลผลภาพ SAR ต้นทุนการคำนวณเพิ่มขึ้นตามขนาดตัวกรองแต่โดยทั่วไปเร็วกว่าตัวกรอง bilateral หรือ guided\n\nการประยุกต์ใช้: (1) การลด speckle ในภาพ SAR (มีประสิทธิผลเป็นพิเศษสำหรับความสอดคล้องของเฟส) (2) การขจัดสัญญาณรบกวนแบบ salt-and-pepper (3) การประมวลผลเบื้องต้นก่อนการตรวจจับขอบ (ลดขอบเท็จ) (4) การคงขอบเขตในการประมวลผลเบื้องต้นสำหรับการจำแนก (5) การแก้ไขเชิงรังสีสำหรับค่าผิดปกติ เวิร์กโฟลว์ทั่วไป: ใช้มัธยฐาน→ผลลัพธ์ที่เสริมขอบ→กำหนดค่าเกณฑ์เพื่อสกัดลักษณะ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "sig_digits": {
                "label": "จำนวนเลขนัยสำคัญ",
                "description": "จำนวนเลขนัยสำคัญที่ใช้ในการกรองอันดับแบบควอนไทซ์ (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "minimum_filter": {
            "name": "ตัวกรองค่าต่ำสุด",
            "description": "คำนวณค่าต่ำสุดในหน้าต่างเคลื่อนที่ เผยให้เห็นจุดต่ำและร่องเฉพาะที่ เป็นตัวดำเนินการกร่อน (erosion) ในการประมวลผลภาพเชิงสัณฐาน มีประโยชน์สำหรับการตรวจจับพื้นหุบเขา แอ่ง และลักษณะที่มีระดับความสูงต่ำสุด ไวต่อค่าผิดปกติค่าเดียว (ค่าต่ำหนึ่งค่าในหน้าต่างทำให้ผลลัพธ์ต่ำ)\n\nตัวกรองค่าต่ำสุดคือตัวดำเนินการ \"erosion\" เชิงสัณฐาน—หดบริเวณสว่างและขยายบริเวณมืด เมื่อใช้ซ้ำ (erosion หลายรอบ) จะสร้างหุบที่เรียบและลักษณะที่แยกตัวจะหายไป เมื่อรวมกับตัวกรองค่าสูงสุด (dilation) จะทำให้ทำ opening (erosion แล้ว dilation) และ closing (dilation แล้ว erosion) ได้ มักใช้ในการแยกหลายมาตราส่วน: เปรียบเทียบค่าต่ำสุดที่ 3×3, 11×11, 31×31 เพื่อระบุมาตราส่วนของลักษณะ\n\nการประยุกต์ใช้: (1) erosion เชิงสัณฐานสำหรับการกรองตามขนาด (2) opening ผ่าน erosion→dilation เพื่อขจัดวัตถุสัญญาณรบกวนขนาดเล็ก (3) การระบุแอ่ง/หุบเขาในภูมิประเทศ (4) ระดับพื้นเฉพาะที่ในข้อมูลความลึกท้องน้ำ/DEM (5) การวิเคราะห์ลักษณะหลายมาตราส่วน (เปรียบเทียบ erosion ข้ามมาตราส่วน) เวิร์กโฟลว์ทั่วไป: ค่าต่ำสุด→เปรียบเทียบกับค่าสูงสุด→opening หรือ closing ขึ้นกับประเภทของลักษณะ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "non_local_means_filter": {
            "name": "ตัวกรอง Non-Local Means",
            "description": "การกรองแบบ Non-local means ทำการลดสัญญาณรบกวนอย่างมีประสิทธิภาพโดยเฉลี่ยแพตช์ที่คล้ายกันซึ่งระบุได้ทั่วทั้งภาพแทนพิกเซลข้างเคียง อาศัยความคล้ายตนเองของภาพเพื่อกดสัญญาณรบกวนขณะคงโครงสร้างไว้ การดำเนินการระบุแพตช์ที่คล้ายกับแพตช์เป้าหมายแต่ละแพตช์ผ่านระยะทาง Euclidean ในปริภูมิแพตช์ ถ่วงน้ำหนักแพตช์ที่คล้ายกันแบบเอกซ์โพเนนเชียลตามความคล้ายคลึง และเฉลี่ยแพตช์ที่ถ่วงน้ำหนักแล้ว อัลกอริทึมคำนวณ: Fᵢ = (1/Z) Σⱼ exp(-d(Pᵢ, Pⱼ)²/h²) · Iⱼ โดย d วัดระยะทางของแพตช์ h ควบคุมแบนด์วิดท์ Z ทำหน้าที่ปรับมาตรฐาน คุณสมบัติหลักได้แก่ การลดสัญญาณรบกวนที่เหนือกว่าผ่านการค้นหาความคล้ายคลึงแทนการใช้ความใกล้เชิงพื้นที่เพียงอย่างเดียว ประสิทธิผลกับเนื้อสัมผัสที่ซับซ้อนและรายละเอียดละเอียด ใช้ได้กับข้อมูลทุกประเภท และประสิทธิภาพที่พิสูจน์แล้วกับภาพทางการแพทย์ ภาพดาวเทียม และภาพถ่าย การกรองแบบ Non-local means ทำงานได้ดีเยี่ยมในการฟื้นฟูภาพดาวเทียมอย่างละเอียดที่คงเนื้อสัมผัสและโครงสร้างละเอียด การเฉลี่ยสแตกหลายช่วงเวลาเพื่อเตรียมการตรวจหาการเปลี่ยนแปลง การลดสัญญาณรบกวนในข้อมูลสำรวจที่มีสัญญาณรบกวนมาก (อัลตราโซนิก ไฮเปอร์สเปกตรัม) และการเสริมภาพสำรวจทางโบราณคดี/ทางอากาศ การตีความผลลัพธ์ต้องเข้าใจว่าบริเวณที่คล้ายกันทั่วทั้งภาพมีส่วนร่วมกับแต่ละพิกเซลผลลัพธ์ บริเวณที่ไม่คล้ายกันเฉพาะที่มีส่วนร่วมน้อยมาก ขนาดแพตช์ควบคุมการคงลักษณะ (แพตช์ใหญ่ = ผลลัพธ์เรียบกว่า แพตช์ละเอียด = รายละเอียดมากกว่า) แบนด์วิดท์ h ควบคุมการถ่วงน้ำหนักความคล้ายคลึง (h ใหญ่ = รวมแพตช์มากขึ้น h เล็ก = ข้อกำหนดความคล้ายคลึงเข้มงวดขึ้น) ช่วงผลลัพธ์ตรงกับข้อมูลนำเข้า สถิติเลื่อนเข้าหาค่าเฉลี่ยของบริเวณขณะที่โครงสร้างละเอียดยังคงอยู่ ต้นทุนการคำนวณเพิ่มตามขนาดภาพและรัศมีแพตช์ การทำงานโดยทั่วไปต้องใช้เวลาประมวลผลมากสำหรับภาพขนาดใหญ่ ติดตามความคืบหน้าของการกรองผ่าน PSNR หรือการตรวจด้วยสายตา สิ่งแปลกปลอมที่พบบ่อยได้แก่ การทำให้เนื้อสัมผัสละเอียดเรียบมากเกินไป (เพิ่มขนาดแพตช์อย่างระมัดระวัง) และการทำให้เรียบไม่เพียงพอในบริเวณที่มีสัญญาณรบกวนสูง (เพิ่มแบนด์วิดท์) ใช้อย่างมีกลยุทธ์ในเวิร์กโฟลว์ที่ต้องการลดสัญญาณรบกวนให้มากที่สุดขณะคงลักษณะระดับละเอียด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีหน้าต่างค้นหาในหน่วยพิกเซล (ค่าเริ่มต้น 5)."
              },
              "patch_radius": {
                "label": "รัศมีแพตช์",
                "description": "รัศมีแพตช์ในหน่วยพิกเซล (ค่าเริ่มต้น 1)."
              },
              "h": {
                "label": "H",
                "description": "พารามิเตอร์ความแรงของการกรอง (ค่าเริ่มต้น 10.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "opening": {
            "name": "การเปิด",
            "description": "ทำการดำเนินการเปิดเชิงสัณฐาน (morphological opening) โดยใช้องค์ประกอบโครงสร้างรูปสี่เหลี่ยมผืนผ้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นจำนวนคี่ (ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นจำนวนคี่ (ค่าเริ่มต้นเท่ากับ filter_size_x)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "olympic_filter": {
            "name": "ตัวกรองโอลิมปิก",
            "description": "Olympic Filter ทำการทำให้เรียบแบบอิงอันดับโดยตัดค่าสูงสุดหนึ่งค่าและค่าต่ำสุดหนึ่งค่าออกจากย่านใกล้เคียงของแต่ละพิกเซล แล้วเฉลี่ยพิกเซลที่เหลือ แนวทางการกรองที่ทนทานนี้กำจัดค่าผิดปกติสุดขั้ว (น่าจะเป็นสัญญาณรบกวนหรือค่าที่ไม่พึงประสงค์) ขณะคงแนวโน้มเข้าสู่ส่วนกลางไว้ สูตรทางคณิตศาสตร์: F = (1/(N-2)) Σ(I_sorted[2:N-1]) โดยค่าย่านใกล้เคียงที่เรียงลำดับแล้วไม่รวมค่าสูงสุดและต่ำสุด การดำเนินการต้องเรียงลำดับย่านใกล้เคียงขนาดเล็ก (มีประสิทธิภาพเชิงคำนวณ) แต่ให้การลดสัญญาณรบกวนที่มีประสิทธิผล คุณสมบัติหลักได้แก่ กลยุทธ์การขจัดค่าผิดปกติที่เรียบง่าย การลดสัญญาณรบกวนแบบ salt-pepper ที่มีประสิทธิผล การกรองที่คำนึงถึงขอบ (ขอบมักปรากฏเป็นค่าสุดขั้ว) และใช้ได้กับข้อมูลทุกประเภท การกรองแบบ Olympic ทำงานได้ดีเยี่ยมในการประมวลผลเบื้องต้นของภาพดาวเทียมเชิงแสง (ขจัดพิกเซลเมฆสว่างที่แยกตัวและเงามืด) การทำให้ DEM เรียบเพื่อลดสิ่งแปลกปลอมจากสัญญาณรบกวนของการสำรวจ การลดสัญญาณรบกวนในภาพความร้อน (ขจัดค่าผิดปกติของเซนเซอร์) และการประมวลผลเบื้องต้นของภาพเรดาร์ การตีความผลลัพธ์แสดงว่าการกระจายสัญญาณรบกวนแบบสมมาตร (จำนวนค่าผิดปกติสูง/ต่ำเท่ากัน) ถูกกรองอย่างสมมาตร การกระจายแบบเบ้ (ค่าสูงหรือค่าต่ำมากกว่า) ให้การกรองแบบมีทิศทาง ขนาดย่านใกล้เคียงควบคุมระดับการทำให้เรียบ: หน้าต่าง 3×3 ตัดค่าสุดขั้ว 2 ค่าจาก 9 พิกเซล (การกรองเล็กน้อย) หน้าต่างที่ใหญ่กว่ากรองอย่างเข้มข้นกว่า ค่าผลลัพธ์ยังคงอยู่ภายในช่วงข้อมูลนำเข้า (ผลลัพธ์คือค่าเฉลี่ยของค่าจริงในย่านใกล้เคียง) สถิติแสดงการลดความแปรปรวนที่ควบคุมได้ซึ่งมุ่งเป้าไปที่ค่าผิดปกติโดยเฉพาะ ภาพผลต่าง (ต้นฉบับ - ที่กรองแล้ว) เน้นค่าผิดปกติที่ถูกขจัด บริเวณค่าสูงที่รวมตัวกันบ่งบอกการแยกสัญญาณรบกวนที่มีประสิทธิผล สิ่งแปลกปลอมที่พบบ่อยได้แก่ การทำให้เรียบไม่เพียงพอหากความถี่ของค่าผิดปกติต่ำ และขอบพร่ามัวหากพิกเซลขอบถูกจัดอันดับเป็นค่าสุดขั้วอย่างสม่ำเสมอ การทำหลายรอบทำให้ทำให้เรียบแบบต่อเนื่องได้: รอบเดียวให้การลดสัญญาณรบกวน การทำซ้ำเพิ่มความเข้มของการทำให้เรียบ ใช้ในเวิร์กโฟลว์การลดสัญญาณรบกวนอย่างรวดเร็วที่ต้องการการกรองที่เรียบง่ายและตีความได้ มีประสิทธิผลเป็นพิเศษสำหรับสัญญาณรบกวนแบบ salt-pepper ในโมเสกหลายเซนเซอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "percentile_filter": {
            "name": "ตัวกรองเปอร์เซ็นไทล์",
            "description": "คำนวณอันดับเปอร์เซ็นไทล์เฉพาะที่ของระดับความสูง/ค่าของเซลล์กึ่งกลางภายในหน้าต่างเคลื่อนที่ (0-100%) คล้ายกับ Elevation Percentile สำหรับข้อมูลแรสเตอร์ทั่วไป วัดตำแหน่งสัมพัทธ์: output=0 บ่งบอกจุดต่ำสุดเฉพาะที่ output=100 บ่งบอกจุดสูงสุดเฉพาะที่ output=50 บ่งบอกค่ามัธยฐาน เผยให้เห็นตำแหน่งเฉพาะที่ในการกระจายโดยไม่ขึ้นกับค่าสัมบูรณ์\n\nการกรองเปอร์เซ็นไทล์ทำให้วิเคราะห์ตามตำแหน่งสัมพัทธ์ได้ มีประโยชน์สำหรับการวิเคราะห์แบบซ้อนชั้น: เซลล์ที่มีอันดับเปอร์เซ็นไทล์สูง (>80) ในทุกแบนด์บ่งบอกลักษณะ \"สว่าง\" เปอร์เซ็นไทล์ต่ำ (<20) บ่งบอกลักษณะ \"มืด\" มีประโยชน์เป็นพิเศษสำหรับการประมวลผลเบื้องต้นก่อนการจำแนก—แยกตำแหน่งของภูมิประเทศ/เนื้อสัมผัสแทนที่จะเป็นเพียงขนาด มักใช้ร่วมกับตัวกรองเชิงสถิติเพื่ออธิบายลักษณะด้วยตัวชี้วัดหลายตัว\n\nการประยุกต์ใช้: (1) การจำแนกความสว่าง/ความมืดสัมพัทธ์ (2) การอธิบายลักษณะเนื้อสัมผัส (ความแปรปรวนของเปอร์เซ็นไทล์สูง = ขรุขระ ความแปรปรวนต่ำ = เรียบ) (3) การเสริมคอนทราสต์เฉพาะที่ (การปรับมาตรฐานแบบอิงเปอร์เซ็นไทล์) (4) การระบุธรณีสัณฐานคล้ายกับ elevation percentile (5) การวิเคราะห์เนื้อสัมผัสหลายแบนด์ (ใช้เปอร์เซ็นไทล์กับแต่ละแบนด์แล้วเปรียบเทียบรูปแบบ)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "sig_digits": {
                "label": "จำนวนเลขนัยสำคัญ",
                "description": "จำนวนเลขนัยสำคัญที่ใช้ในการกรองอันดับแบบควอนไทซ์ (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "range_filter": {
            "name": "ตัวกรองพิสัย",
            "description": "คำนวณพิสัย (ค่าสูงสุด - ค่าต่ำสุด) ในหน้าต่างเคลื่อนที่ เผยให้เห็นการกระจายของค่าเฉพาะที่โดยไม่ขึ้นกับระดับค่าเฉลี่ย เป็นตัวชี้วัดความไม่เป็นเนื้อเดียวกันอย่างง่าย: พิสัยสูง = ค่าหลากหลาย พิสัยต่ำ = ค่าสม่ำเสมอ ง่ายกว่าส่วนเบี่ยงเบนมาตรฐานแต่ให้ข้อมูลได้เท่ากันสำหรับการประยุกต์ใช้หลายอย่าง และทนทานต่อรูปร่างการกระจายมากกว่า\n\nพิสัยมีประสิทธิภาพเชิงคำนวณ (ต้องการการเปรียบเทียบเพียงสองครั้ง) มีประโยชน์เป็นพิเศษสำหรับการตรวจจับการเปลี่ยนผ่าน/ขอบเขตที่พิสัยพุ่งสูงบ่งบอกโซนคอนทราสต์ ไวต่อรูปร่างการกระจายน้อยกว่าส่วนเบี่ยงเบนมาตรฐาน (ส่วนเบี่ยงเบนมาตรฐานเน้นค่าผิดปกติ พิสัยใช้เฉพาะค่าสุดขั้ว) พิสัยปรับมาตรฐาน (range/mean) ทำให้เปรียบเทียบข้ามแบนด์ได้ เช่นเดียวกับที่สัมประสิทธิ์ความแปรผันทำให้เปรียบเทียบข้ามมาตราส่วนได้\n\nการประยุกต์ใช้: (1) การทำแผนที่เนื้อสัมผัส/คอนทราสต์ (ตีความง่าย: พิสัยสูง = ขรุขระ/มีคอนทราสต์) (2) การตรวจจับขอบเขตผ่านจุดสูงสุดของพิสัย (3) ทางเลือกที่มีประสิทธิภาพเชิงคำนวณแทนส่วนเบี่ยงเบนมาตรฐาน (4) การควบคุมคุณภาพ (พื้นหลังสม่ำเสมอพิสัยต่ำ พื้นที่ที่มีลักษณะพิสัยสูง) (5) ความขรุขระ/ความแปรผันในข้อมูลทั่วไป เวิร์กโฟลว์ทั่วไป: คำนวณพิสัย→กำหนดค่าเกณฑ์เพื่อระบุโซนเปลี่ยนผ่าน→แปลงขอบเขตพิสัยสูงเป็นเวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "remove_spurs": {
            "name": "ลบเดือยแหลม",
            "description": "ขจัดสิ่งแปลกปลอมกิ่งสั้น (spur) ออกจากลักษณะแรสเตอร์ไบนารีด้วยการตัดแต่งแบบวนซ้ำ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "max_iterations": {
                "label": "จำนวนรอบวนซ้ำสูงสุด",
                "description": "จำนวนรอบวนซ้ำสูงสุดของการตัดแต่ง (ค่าเริ่มต้น 10)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "savitzky_golay_2d_filter": {
            "name": "ตัวกรอง Savitzky-Golay 2 มิติ",
            "description": "ทำการทำให้เรียบแบบ Savitzky-Golay 2 มิติ—ตัวกรองที่อิงการปรับพหุนามซึ่งคงลักษณะพหุนามเฉพาะที่ไว้ ปรับพหุนามเฉพาะที่ให้พอดีกับย่านใกล้เคียง แล้วแทนที่ค่ากึ่งกลางด้วยค่าที่ปรับได้ คงยอด/หุบได้ดีกว่า Gaussian มีประโยชน์สำหรับข้อมูลที่มีสัญญาณรบกวนซึ่งการคงลักษณะมีความสำคัญ พร่ามัวน้อยกว่า Gaussian สำหรับพหุนามอันดับต่ำ การทำให้เรียบเพิ่มขึ้นตามอันดับพหุนาม การกรองแบบ Savitzky-Golay ปรับพหุนามเฉพาะที่ (โดยทั่วไปกำลังสอง/กำลังสาม) ด้วยวิธีกำลังสองน้อยที่สุดให้พอดีกับย่านใกล้เคียง ค่ากึ่งกลางถูกแทนที่ด้วยค่าพหุนาม ต่างจากมัธยฐาน/Gaussian—คงลักษณะที่ปรากฏเป็นโครงสร้างพหุนาม (ยอด หุบ สัน) คำนวณได้ตรงไปตรงมาแต่ช้ากว่าคอนโวลูชันอย่างง่าย อันดับพหุนามควบคุมการแลกเปลี่ยนระหว่างการทำให้เรียบกับการคงลักษณะ การประยุกต์ใช้: (1) ทำให้ข้อมูลที่มีสัญญาณรบกวนเรียบขณะคงโครงสร้างยอด (2) การประมวลผลกริดระดับความสูง (คงภูมิประเทศสัน/หุบ) (3) การทำให้ข้อมูลสเปกตรัมเรียบ (คงลักษณะการดูดกลืน) (4) การประมวลผลเบื้องต้นที่คงลักษณะ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "window_size": {
                "label": "ขนาดหน้าต่าง",
                "description": "ขนาดหน้าต่างเลขคี่ (ค่าเริ่มต้น 5) ปัจจุบันรองรับค่า 5 สำหรับพหุนามอันดับ 2."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "scharr_filter": {
            "name": "ตัวกรอง Scharr",
            "description": "ตัวกรอง Scharr เป็นตัวดำเนินการตรวจจับขอบที่ปรับปรุงจากตัวกรอง Sobel โดยใช้สัมประสิทธิ์เคอร์เนลที่ปรับให้เหมาะสมซึ่งออกแบบมาเพื่อลดความเอนเอียงตามทิศทางและให้ความไม่แปรเปลี่ยนต่อการหมุนที่ดีกว่า ตัวดำเนินการ Scharr ใช้เคอร์เนลคอนโวลูชัน 3×3 ที่มีสัมประสิทธิ์จำนวนเต็ม (3, 10, 3) ซึ่งปรับให้เหมาะสมเชิงประจักษ์สำหรับทิศทางขอบ 0°, 45°, 90° และ 135° ให้การประมาณเกรเดียนต์ที่แม่นยำกว่าตัวกรอง Sobel แบบดั้งเดิม โดยเฉพาะสำหรับลักษณะวงกลมและขอบที่หมุน ตัวกรองคำนวณทั้งเกรเดียนต์แนวนอนและขนาดเกรเดียนต์พร้อมกัน ทำให้ระบุตำแหน่งขอบได้อย่างทนทาน ข้อได้เปรียบหลักได้แก่ ความแม่นยำที่เหนือกว่าสำหรับเกรเดียนต์ตามทิศทาง ความเอนเอียงจากการหมุนที่ลดลงเมื่อเทียบกับ Sobel และการคำนวณเคอร์เนล 3×3 ที่มีประสิทธิภาพซึ่งต้องการหน่วยความจำน้อยที่สุด ผลลัพธ์ประกอบด้วยทั้งขนาดและองค์ประกอบตามทิศทาง (ถ้าเลือก) ตัวกรอง Scharr ทำงานได้ดีเยี่ยมในเวิร์กโฟลว์การสกัดลักษณะ การตรวจจับขอบเขต และการประกันคุณภาพที่ต้องการความแม่นยำตามทิศทางสูง กรณีการใช้งานได้แก่ การสกัดรอยเท้าอาคารจากภาพถ่ายทางอากาศ การตรวจจับโครงข่ายถนน การกำหนดขอบเขตน้ำโดยมีการบิดเบือนน้อยที่สุด และการระบุแนวเส้นทางธรณีวิทยาในข้อมูลดาวเทียม ตัวกรองทำงานได้ดีเป็นพิเศษในการทำแผนที่เมือง การตรวจจับขอบเขตทางการเกษตร และการประยุกต์ใช้การนำทางอัตโนมัติ การตีความผลลัพธ์ต้องเข้าใจว่าค่าขนาดแทนความแรงของขอบ—ค่าที่สูงกว่าบ่งบอกการเปลี่ยนผ่านที่คมชัดกว่าระหว่างคลาสเชิงสเปกตรัมที่แตกต่างกัน องค์ประกอบตามทิศทางเผยให้เห็นการวางแนวของขอบที่เด่น (แนวนอน แนวทแยง หรือแนวตั้ง) ซึ่งมีประโยชน์สำหรับการวิเคราะห์แนวเส้น สำหรับแรสเตอร์หลายแบนด์ ให้ใช้กับแต่ละแบนด์แยกกันหรือใช้ดัชนีที่คำนวณแล้ว ค่าพื้นหลังปรากฏมืดในผลลัพธ์ ขอบที่แรงปรากฏสว่าง การเปรียบเทียบ RMSE กับขอบอ้างอิงช่วยยืนยันประสิทธิภาพของตัวกรอง ปรับมาตราส่วนผลลัพธ์เป็น 0-255 สำหรับการแสดงผลมาตรฐาน หรือคงค่าทศนิยมไว้สำหรับการวิเคราะห์เชิงปริมาณ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "clip_tails": {
                "label": "ตัดส่วนปลาย",
                "description": "ร้อยละการตัดปลายแบบสมมาตรเป็นตัวเลือก (0-40)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "standard_deviation_filter": {
            "name": "ตัวกรองส่วนเบี่ยงเบนมาตรฐาน",
            "description": "คำนวณส่วนเบี่ยงเบนมาตรฐานในหน้าต่างเคลื่อนที่ วัดความแปรผัน/การกระจายของค่าเฉพาะที่ ส่วนเบี่ยงเบนมาตรฐานสูง = ค่าหลากหลาย (ขรุขระ/ไม่เป็นเนื้อเดียวกัน) ต่ำ = ค่าสม่ำเสมอ (เรียบ/เป็นเนื้อเดียวกัน) เผยให้เห็นรูปแบบเนื้อสัมผัส ความขรุขระ และความแปรผัน สำคัญอย่างยิ่งสำหรับการวัดปริมาณความไม่แน่นอนและการประเมินคุณภาพ\n\nส่วนเบี่ยงเบนมาตรฐานทนทานกว่าพิสัยในการอธิบายความแปรผันเฉพาะที่ (ไม่เอนเอียงจากค่าผิดปกติค่าเดียว) ทำให้จำแนกพื้นที่ตามเนื้อสัมผัสได้: ลาดชัน (ส่วนเบี่ยงเบนมาตรฐานสูง) ลาดเอียงน้อย (ต่ำ) ป่า (สูง) ทุ่งหญ้า (ต่ำ) มักถูกปรับมาตรฐาน (สัมประสิทธิ์ความแปรผัน = stdev/mean) เพื่อให้เปรียบเทียบข้อมูลที่มีช่วงค่าต่างกันได้ สามารถคำนวณจากฮิสโทแกรมได้ (variance = mean_of_squares - square_of_mean)\n\nการประยุกต์ใช้: (1) การทำแผนที่เนื้อสัมผัส (การวิเคราะห์ความขรุขระ/ความไม่เป็นเนื้อเดียวกัน) (2) การวัดปริมาณความไม่แน่นอนในข้อมูลที่มีสัญญาณรบกวน (3) การประเมินคุณภาพ (พื้นหลังสม่ำเสมอ = ต่ำ พื้นที่ที่มีลักษณะมาก = สูง) (4) ความเชื่อมั่นของการจำแนก (สูง = คลาสผสม/ไม่แน่นอน) (5) ความไม่เป็นเนื้อเดียวกันหลายแบนด์ (ซ้อนส่วนเบี่ยงเบนมาตรฐานจากแต่ละแบนด์) เวิร์กโฟลว์ทั่วไป: คำนวณส่วนเบี่ยงเบนมาตรฐานที่หลายมาตราส่วน→เปรียบเทียบการเปลี่ยนแปลงรูปแบบข้ามมาตราส่วน→ระบุมาตราส่วนที่เป็นลักษณะเฉพาะ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "thicken_raster_line": {
            "name": "ทำเส้นแรสเตอร์ให้หนา",
            "description": "ทำให้ส่วนของเส้นแรสเตอร์แนวทแยงหนาขึ้นเพื่อป้องกันการรั่วผ่านในแนวทแยง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "tophat_transform": {
            "name": "การแปลง Tophat",
            "description": "ทำการแปลง top-hat เชิงสัณฐานแบบขาวหรือดำ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นจำนวนคี่ (ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นจำนวนคี่ (ค่าเริ่มต้นเท่ากับ filter_size_x)."
              },
              "variant": {
                "label": "รูปแบบย่อย",
                "description": "รูปแบบ top-hat: white (ค่าเริ่มต้น) หรือ black."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "total_filter": {
            "name": "ตัวกรองผลรวม",
            "description": "คำนวณผลรวมในหน้าต่างเคลื่อนที่ของค่าพิกเซลในย่านใกล้เคียง รวมความแรงของสัญญาณเฉพาะที่ การประยุกต์ใช้ขึ้นกับความหมายของข้อมูล: สำหรับจำนวน/ความหนาแน่น ผลรวมเผยให้เห็นรูปแบบความหนาแน่นเฉพาะที่ สำหรับหยาดน้ำฟ้า ผลรวมเผยให้เห็นการสะสมระดับแอ่ง สำหรับค่าการสะท้อน ผลรวมเป็นสัดส่วนกับขนาดเป้าหมายเฉพาะที่\n\nการกรองผลรวมมีการตีความต่างกันตามโดเมน ในข้อมูลจำนวน/ประชากร ผลรวมเผยให้เห็นการเกาะกลุ่มและจุดร้อน ในข้อมูลระดับความสูง ผลรวมไม่ค่อยถูกใช้ (ผลรวมไม่มีความหมายทางธรณีสัณฐาน) ในการวิเคราะห์เชิงสเปกตรัม ผลรวมสามารถเผยให้เห็นความแรงของสัญญาณหลายแบนด์ มักใช้เป็นขั้นตอนระหว่างกลาง (เช่น หารด้วยจำนวนเซลล์ในย่านใกล้เคียงเพื่อคำนวณค่าเฉลี่ย หรือเปรียบเทียบกับผลรวมข้างเคียงเพื่อตรวจหาความไม่เป็นเนื้อเดียวกันเฉพาะที่)\n\nการประยุกต์ใช้: (1) การตรวจหาจุดร้อนในข้อมูลจำนวน (ผลรวมสูง = กลุ่ม) (2) แบบจำลองการสะสมระดับแอ่ง/ลุ่มน้ำ (3) การรวมค่าการวัดที่กระจายตัว (4) การคำนวณระหว่างกลาง (total/N = mean) (5) การรวมความแรงของสัญญาณในโมเสกหลายเซนเซอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11) ชื่ออื่น: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของหน้าต่างเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น = filter_size_x) ชื่ออื่น: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "unsharp_masking": {
            "name": "การมาสก์เพิ่มความคม",
            "description": "Unsharp masking ทำการเพิ่มความคมชัดของภาพโดยลบภาพเวอร์ชันที่ทำให้เรียบ (ความถี่ต่ำ) ออกจากภาพต้นฉบับ เพื่อเสริมขอบและรายละเอียดละเอียด การแปลงทางคณิตศาสตร์คือ I_sharp = I_original + w·(I_original - I_smooth) โดย w คือน้ำหนักการเพิ่มความคมชัดที่ควบคุมความแรงของการเสริม กระบวนการแยกองค์ประกอบความถี่สูงและขยาย ซึ่งแยกรายละเอียดออกจากความแปรผันของโทนสีกว้างได้อย่างมีประสิทธิผล คุณสมบัติหลักได้แก่ การควบคุมพารามิเตอร์ที่ยืดหยุ่น (รัศมีการเบลอและน้ำหนักช่วยควบคุมรายละเอียด) ประสิทธิภาพเชิงคำนวณผ่านการนำการทำให้เรียบแบบ Gaussian มาใช้ซ้ำ การเสริมที่ตีความได้ (weight=0 ได้ภาพต้นฉบับ weight=1 ได้ high-pass แท้ weight>1 ให้การเพิ่มความคมชัดอย่างเข้มข้น) และประสิทธิผลกับข้อมูลหลายสเปกตรัม Unsharp masking ทำงานได้ดีเยี่ยมในการเตรียมภาพดาวเทียมสำหรับการแปลตีความด้วยมือ (เสริมภูมิประเทศ พืชพรรณ และโครงสร้างพื้นฐานที่ละเอียดอ่อน) การเสริมผลิตภัณฑ์ที่ได้จาก LiDAR (เพิ่มความคมชัดของ DEM ดัชนีพืชพรรณ) การปรับปรุงคุณภาพภาพออร์โทเพื่อให้มองเห็นลักษณะ และการเสริมภาพสำรวจทางโบราณคดี/การสำรวจ การตีความผลลัพธ์ต้องเข้าใจว่าค่าที่เพิ่มความคมชัดแล้วรวมตัวอยู่ที่ขอบ บริเวณที่เป็นเนื้อเดียวกันยังคงไม่เปลี่ยนแปลง พารามิเตอร์น้ำหนักควบคุมขนาดของการเสริม: w=0.5-1.0 ให้การเสริมเล็กน้อย w=1.0-2.0 ให้การเพิ่มความคมชัดปานกลาง w>2.0 ให้ผลลัพธ์ที่เข้มข้นซึ่งอาจมีสิ่งแปลกปลอม รัศมีการเบลอควบคุมมาตราส่วนของลักษณะ: รัศมีเล็ก (3-5 พิกเซล) เสริมเนื้อสัมผัสละเอียด รัศมีใหญ่ (10-20 พิกเซล) เสริมลักษณะระดับปานกลาง ค่าผลลัพธ์อาจเกินช่วงข้อมูลนำเข้า โดยทั่วไปจำเป็นต้องตัดค่า สิ่งแปลกปลอมได้แก่ รัศมีเรือง (halo) รอบขอบที่แรง (น้ำหนักหรือรัศมีใหญ่ = ชัดเจนขึ้น) สัญญาณรบกวนที่ถูกขยายหากภาพต้นฉบับมีสัญญาณรบกวน และสีเท็จที่อาจเกิดขึ้นในการเพิ่มความคมชัดหลายสเปกตรัม ตรวจสอบการเสริมผ่านภาพผลต่าง ใช้อย่างเลือกสรรในเวิร์กโฟลว์การแสดงผล หลีกเลี่ยงการใช้ก่อนการวิเคราะห์อัตโนมัติที่ไวต่อการเปลี่ยนแปลงช่วงของผลลัพธ์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "sigma": {
                "label": "Sigma",
                "description": "ซิกมา Gaussian ที่ใช้โดยมาสก์เบลอ (0.5-20.0, ค่าเริ่มต้น 0.75)."
              },
              "amount": {
                "label": "ปริมาณ",
                "description": "ตัวคูณปริมาณการเพิ่มความคมชัดที่ใช้กับค่าคงเหลือ (ค่าเริ่มต้น 100.0)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าคงเหลือสัมบูรณ์ขั้นต่ำที่จะเพิ่มความคมชัด (ค่าเริ่มต้น 0.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "user_defined_weights_filter": {
            "name": "ตัวกรองน้ำหนักที่ผู้ใช้กำหนด",
            "description": "ตัวกรองน้ำหนักที่ผู้ใช้กำหนดให้ความยืดหยุ่นสูงสุดสำหรับการวิเคราะห์คอนโวลูชันแบบกำหนดเอง โดยรับสัมประสิทธิ์ถ่วงน้ำหนักใด ๆ สำหรับพิกเซลในย่านใกล้เคียง ทำให้สามารถใช้งานตัวดำเนินการเฉพาะทาง เคอร์เนลเฉพาะโดเมน และอัลกอริทึมระดับงานวิจัยได้โดยไม่ต้องแก้ไขเครื่องมือหรือใช้ซอฟต์แวร์เฉพาะทาง ผู้ใช้กำหนดขนาดเคอร์เนล (โดยทั่วไป 3×3 หรือ 5×5) กำหนดน้ำหนักทศนิยมให้แต่ละตำแหน่ง และกำหนดวิธีการจัดการขอบ (สะท้อน วนรอบ เติมค่าคงที่) ได้ตามต้องการ ตัวกรองนี้ใช้เคอร์เนลที่กำหนดเองทั่วทั้งแรสเตอร์ผ่านคณิตศาสตร์คอนโวลูชันมาตรฐาน: แต่ละพิกเซลผลลัพธ์เท่ากับผลรวมของเพื่อนบ้านที่ถ่วงน้ำหนัก ทำให้ใช้ได้ทั้งตัวกรองการประมวลผลภาพแบบดั้งเดิมและเคอร์เนลเชิงวิเคราะห์ที่กำหนดเอง คุณสมบัติหลักได้แก่ การปรับแต่งได้อย่างสมบูรณ์สำหรับการประยุกต์ใช้ในงานวิจัย การรองรับทั้งการดำเนินการเสริมภาพและการวิเคราะห์ ความเข้ากันได้กับเคอร์เนลทั้งแบบปรับมาตรฐานและไม่ปรับมาตรฐาน และการคงความแม่นยำแบบทศนิยมตลอดการคำนวณ กรณีการใช้งานครอบคลุมการกรองเชิงพื้นที่ขั้นสูงสำหรับดัชนีเชิงสเปกตรัมเฉพาะทาง การใช้งานตัวดำเนินการทดลองเพื่อตรวจสอบความถูกต้องของอัลกอริทึม เคอร์เนลการวิเคราะห์เนื้อสัมผัสที่กำหนดเอง การรวมย่านใกล้เคียงแบบถ่วงน้ำหนักสำหรับการวิเคราะห์หลายเกณฑ์ และการใช้เคอร์เนลมาตรฐานกับชุดข้อมูลที่หลากหลาย การประยุกต์ใช้ได้แก่ การสร้างต้นแบบงานวิจัยทางวิชาการ การประเมินอัลกอริทึมในอุตสาหกรรม การปรับแต่งไปป์ไลน์การประมวลผลตามภูมิภาค และการศึกษาเปรียบเทียบประสิทธิภาพ การตีความผลลัพธ์ขึ้นกับสัมประสิทธิ์ที่ผู้ใช้กำหนดทั้งหมด เคอร์เนลที่ต่างกันให้ผลลัพธ์ที่แตกต่างกันโดยพื้นฐาน เคอร์เนลที่ปรับมาตรฐานแล้ว (ผลรวมน้ำหนักเท่ากับ 1.0) คงช่วงค่าไว้ซึ่งมีประโยชน์สำหรับการทำให้เรียบ เคอร์เนลที่ไม่ปรับมาตรฐาน (โดยทั่วไปผลรวมเป็นศูนย์) เน้นความแตกต่างซึ่งมีประโยชน์สำหรับการตรวจจับขอบ/อนุพันธ์ ผู้ใช้ต้องตรวจสอบคุณสมบัติของเคอร์เนล—เครื่องหมาย ขนาด และผลรวมของสัมประสิทธิ์—ก่อนนำไปใช้งานจริง การบันทึกข้อกำหนดของเคอร์เนลมีความสำคัญอย่างยิ่งสำหรับเวิร์กโฟลว์ที่ทำซ้ำได้ ช่วงค่าผลลัพธ์ขึ้นกับการออกแบบเคอร์เนล เอกสารควรระบุลักษณะผลลัพธ์ที่คาดหวังและข้อกำหนดการปรับมาตราส่วน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "น้ำหนักเคอร์เนล 2 มิติในรูปอาร์เรย์ซ้อน."
              },
              "kernel_center": {
                "label": "จุดศูนย์กลางเคอร์เนล",
                "description": "โหมดจุดศูนย์กลางเคอร์เนล: center, upper-left, upper-right, lower-left, lower-right."
              },
              "normalize_weights": {
                "label": "ปรับมาตรฐานน้ำหนัก",
                "description": "หากเป็น true จะปรับให้เป็นบรรทัดฐานด้วยผลรวมเฉพาะที่ของน้ำหนักที่ใช้งาน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "wiener_filter": {
            "name": "ตัวกรอง Wiener",
            "description": "ตัวกรอง Wiener ทำการลดสัญญาณรบกวนแบบปรับตัวโดยลดความคลาดเคลื่อนกำลังสองเฉลี่ยระหว่างผลลัพธ์ที่กรองแล้วกับสัญญาณจริงให้น้อยที่สุด โดยสมมติว่าทราบคุณสมบัติเชิงสถิติของสัญญาณและสัญญาณรบกวน การดำเนินการประมาณความแปรปรวนของสัญญาณและสัญญาณรบกวนเฉพาะที่ภายในหน้าต่างเคลื่อนที่ คำนวณสัมประสิทธิ์ตัวกรองที่สร้างสมดุลระหว่างการกดสัญญาณรบกวนกับการคงรายละเอียด: F = μ + (σ² - σₙ²)/σ² · (I - μ) โดย μ คือค่าเฉลี่ยเฉพาะที่ σ² คือความแปรปรวนของสัญญาณ σₙ² คือความแปรปรวนของสัญญาณรบกวน การปรับตัวที่ขับเคลื่อนด้วยข้อมูลนี้ทำให้ความแรงของการกรองตอบสนองต่อลักษณะเฉพาะที่ของภาพ คุณสมบัติหลักได้แก่ การปรับตัวอัตโนมัติตามสถิติเฉพาะที่ (บริเวณราบทำให้เรียบอย่างเข้มข้น บริเวณที่มีรายละเอียดคงโครงสร้าง) ประสิทธิผลที่พิสูจน์แล้วกับภาพเชิงแสงและ SAR พารามิเตอร์ที่ตีความได้ตามสมมติฐานแบบจำลองสัญญาณรบกวน และความเป็นไปได้เชิงคำนวณผ่านการประมาณแบบแยกได้ การกรองแบบ Wiener ทำงานได้ดีเยี่ยมในการประมวลผลเบื้องต้นของภาพดาวเทียมที่สัญญาณรบกวนแปรผันเชิงพื้นที่ การลด speckle ของ SAR ขณะคงเป้าหมายจุด ข้อมูลหลายสเปกตรัมที่ลด speckle แล้วสำหรับการทำแผนที่พืชพรรณ และการลดสัญญาณรบกวนในการหลอมรวมเรดาร์-เชิงแสง การตีความผลลัพธ์แสดงว่าบริเวณที่มีความแปรปรวนสูง (มีรายละเอียด) ถูกกรองน้อยที่สุด ขณะที่บริเวณที่มีความแปรปรวนต่ำ (มีสัญญาณรบกวน) ถูกกรองอย่างเข้มข้น การประมาณความแปรปรวนของสัญญาณรบกวนส่งผลต่อผลลัพธ์: ความแปรปรวนของสัญญาณรบกวนที่ประมาณต่ำเกินไปทำให้เรียบไม่พอ ความแปรปรวนที่ประมาณสูงเกินไปทำให้เรียบมากเกินไปและสูญเสียรายละเอียด ช่วงผลลัพธ์ใกล้เคียงกับช่วงข้อมูลนำเข้า ตรวจสอบภาพผลต่าง (ต้นฉบับ - ที่กรองแล้ว) เพื่อยืนยันการลดสัญญาณรบกวน Peak Signal-to-Noise Ratio (PSNR) และ Structural Similarity Index (SSIM) วัดประสิทธิผลของการกรอง ค่าเกณฑ์ความแปรปรวนเฉพาะที่บ่งบอกผลกระทบของการประมวลผล: บริเวณที่ตรวจพบอัตราส่วนความแปรปรวน > 5 ถูกกรองอย่างมาก อัตราส่วน < 1 ถูกกรองน้อยที่สุด ข้อผิดพลาดที่พบบ่อยได้แก่ การประมาณความแปรปรวนของสัญญาณรบกวนไม่แม่นยำ (ทำการวิเคราะห์ dark-frame หรือบริเวณที่เป็นเนื้อเดียวกันเพื่อการประมาณ) และการเลือกขนาดหน้าต่างที่ส่งผลต่อการระบุตำแหน่ง ใช้ก่อนการจำแนกหรือการสกัดลักษณะเพื่อลดการจำแนกหมวดหมู่ผิดที่เกิดจากสัญญาณรบกวน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีหน้าต่างเฉพาะที่ของ Wiener ในหน่วยพิกเซล (ค่าเริ่มต้น 2)."
              },
              "noise_variance": {
                "label": "ความแปรปรวนของสัญญาณรบกวน",
                "description": "ความแปรปรวนของสัญญาณรบกวนแบบบวกที่เป็นตัวเลือก หากไม่ระบุ จะประมาณจากแผนที่ความแปรปรวนเฉพาะที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "cloude_pottier_decomposition": {
            "name": "การแยกองค์ประกอบแบบ Cloude-Pottier",
            "description": "การแยกองค์ประกอบแบบ Cloude-Pottier ทำให้เมทริกซ์ coherency จากข้อมูล SAR แบบโพลาริเมตริกสี่ช่องเป็นเมทริกซ์ทแยงมุม สกัดค่าลักษณะเฉพาะและเวกเตอร์ลักษณะเฉพาะที่อธิบายกลไกการกระเจิง เอนโทรปี แอนไอโซทรอปี และมุม alpha เฉลี่ยที่คำนวณจากเวกเตอร์ลักษณะเฉพาะอธิบายความไร้ระเบียบของการกระเจิง ความเด่นของกลไก และประเภทการกระเจิงตามลำดับ ปริภูมิพารามิเตอร์ H-alpha ทำให้จำแนกกลไกการกระเจิงทางกายภาพได้โดยไม่ขึ้นกับความแปรผันของแอมพลิจูด โดยอาศัยข้อมูลเฟสเชิงโพลาริเมตริก คุณสมบัติหลัก: การแยกองค์ประกอบ SAR แบบโพลาริเมตริกสี่ช่อง; การใช้ประโยชน์จากข้อมูลเฟส; พารามิเตอร์การกระเจิงที่มีความหมายทางกายภาพ; แยกกลไกการกระเจิง; ทนทานต่อ speckle ของแอมพลิจูด; ทำให้จำแนกและแปลตีความเป้าหมายได้ กรณีการใช้งาน: การรู้จำเป้าหมาย SAR; การประมาณมวลชีวภาพป่าไม้; การอธิบายลักษณะพื้นที่ชุ่มน้ำ; การตรวจจับเรือ/ยานพาหนะ; การจำแนกสิ่งปกคลุมดิน; การแปลตีความข้อมูล SAR เชิงโพลาริเมตริก การตีความผลลัพธ์: ผลลัพธ์ประกอบด้วยเอนโทรปี (ระดับความไร้ระเบียบ 0=การกระเจิงเป็นระเบียบ 1=สุ่ม) แอนไอโซทรอปี (ความเด่นของกลไก 0-1) และมุม alpha (ประเภทการกระเจิง: ~45°=ไดโพล ~30°=พื้นผิว ~60°=ปริมาตร) แผนภาพกระจาย H-alpha เผยให้เห็นรูปแบบการเกาะกลุ่มที่บ่งบอกประเภทการกระเจิง การสะท้อนสองครั้ง (เมือง) มีค่า alpha สูง การกระเจิงพื้นผิว (น้ำ) มีค่า alpha ต่ำ การกระเจิงเชิงปริมาตร (ป่า) มีค่าระดับกลาง",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เมทริกซ์: diag3 [m11,m22,m33], full3x3 แบบกระชับ [m11,m22,m33,m12,m13,m23] หรือแรสเตอร์เต็ม 9 ชั้นเรียงตามแถว."
              },
              "matrix_format": {
                "label": "รูปแบบเมทริกซ์",
                "description": "รูปแบบเมทริกซ์ที่นำเข้า: diag3 (ค่าเริ่มต้นเมื่อมีแรสเตอร์ 3 ชั้น) หรือ full3x3."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ 3 แบนด์ที่เป็นตัวเลือก [H, A, alpha_deg]."
              }
            }
          },
          "enhanced_lee_filter": {
            "name": "ตัวกรอง Lee ขั้นสูง",
            "description": "ตัวกรอง Enhanced Lee รวมแบบจำลองการคูณของ Lee เข้ากับการประมาณความแปรปรวนที่ปรับปรุงแล้วและการประมวลผลหลายมาตราส่วน ให้การลด speckle ที่เหนือกว่าขณะคงรายละเอียดละเอียดและขอบในภาพ SAR การดำเนินการใช้สถิติเฉพาะที่ที่คำนวณผ่านหน้าต่างขนาดปรับตัว รวมการตรวจจับขอบแบบอิง Laplacian และใช้พารามิเตอร์ตัวกรองที่แปรผันเชิงพื้นที่ สูตรที่ปรับปรุงใช้: F = μ + w·(I - μ) โดย w ปรับตามความใกล้ขอบ: w→0 ใกล้ขอบ (กรองน้อยที่สุด) w→1 ในบริเวณที่เป็นเนื้อเดียวกัน (กรองอย่างเข้มข้น) คุณสมบัติหลักได้แก่ การประมวลผลที่ปรับตามขอบ (คงขอบเขต) การปรับพารามิเตอร์หลายมาตราส่วน การคงเป้าหมายที่ดีขึ้นเมื่อเทียบกับ Lee มาตรฐาน และประสิทธิผลกับ SAR ที่มีสัญญาณรบกวนสูง การกรองแบบ Enhanced Lee ทำงานได้ดีเยี่ยมในฉาก SAR ที่ซับซ้อนซึ่งมีลักษณะจำนวนมาก การประยุกต์ใช้การทำแผนที่น้ำท่วมที่การระบุตำแหน่งขอบมีความสำคัญ การตรวจจับอาคารจาก SAR ในเมือง และการวิเคราะห์การเปลี่ยนแปลงหลายช่วงเวลา การตีความผลลัพธ์เผยให้เห็นการคงขอบผ่านการกรองที่ลดลงใกล้การเปลี่ยนผ่าน: พิกเซลขอบเขตคงความแปรปรวนไว้มากกว่าพิกเซลที่อยู่ไกล การปรับตัวหลายมาตราส่วนเห็นได้ชัดผ่านการวิเคราะห์ฮิสโทแกรมที่แสดงจุดสูงสุดชัดเจนซึ่งสอดคล้องกับคลาสของฉาก ช่วงผลลัพธ์ตรงกับข้อมูลนำเข้า การเปรียบเทียบกับ Lee มาตรฐานแสดงขอบพร่ามัวน้อยลงและคงความคมชัดของเป้าหมาย คุณภาพการตรวจจับขอบส่งผลโดยตรงต่อผลลัพธ์: ขอบที่แรงทำให้คงขอบเขตได้ดี ขอบที่อ่อนอาจทำให้เรียบมากเกินไป สถิติแสดงการลดความแปรปรวนที่ควบคุมได้ซึ่งสมดุลระหว่างการกดสัญญาณรบกวนกับการคงรายละเอียด สิ่งแปลกปลอมที่พบบ่อยได้แก่ ลักษณะเป็นบล็อกหากการเปลี่ยนผ่านหลายมาตราส่วนมองเห็นได้ และการคงไว้มากเกินไปหากการตรวจจับขอบเข้มข้นเกินไป ติดตามคุณภาพของแผนที่ขอบเพื่อยืนยันพฤติกรรมการกรอง ใช้ในไปป์ไลน์การวิเคราะห์ SAR ที่ครอบคลุมซึ่งต้องคงลักษณะหลายอย่างและขอบต้องคมชัด มีความสำคัญเป็นพิเศษสำหรับการประมวลผลเบื้องต้นสำหรับการเรียนรู้ของเครื่องที่ต้องการข้อมูลฝึกที่มีขอบเขตลักษณะชัดเจน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "enl": {
                "label": "ENL",
                "description": "พารามิเตอร์จำนวนลุคสมมูลสำหรับการถ่วงน้ำหนักด้วยอัตราส่วนซิกมา (ค่าเริ่มต้น 4.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "freeman_durden_decomposition": {
            "name": "การแยกองค์ประกอบแบบ Freeman-Durden",
            "description": "การแยกองค์ประกอบแบบ Freeman-Durden วัดปริมาณการมีส่วนร่วมของกลไกการกระเจิงจาก SAR แบบโพลาริเมตริกสี่ช่องผ่านการแยกฐานตั้งฉากเป็นองค์ประกอบการสะท้อนพื้นผิว การสะท้อนสองครั้ง (เมือง/ไดฮีดรัล) และปริมาตร (พืชพรรณ/ตัวกลางสุ่ม) การหาค่าเหมาะที่สุดแบบกำลังสองน้อยที่สุดไม่เป็นลบจำกัดสัดส่วนกำลังเพื่อให้เป็นไปได้ทางกายภาพและตีความได้ แผนที่กำลังในผลลัพธ์เชื่อมโยงโดยตรงกับคุณสมบัติของภูมิประเทศ: ความเด่นของพื้นผิวสูงบ่งบอกดินเปล่า/น้ำ การสะท้อนสองครั้งสูงบ่งบอกโครงสร้างเมือง ปริมาตรสูงบ่งบอกป่า/พืชพรรณ คุณสมบัติหลัก: องค์ประกอบการกระเจิงที่ตีความได้ทางกายภาพ; ลายเซ็นเฉพาะภูมิประเทศ; การหาค่าเหมาะที่สุดแบบมีเงื่อนไข; รองรับ SAR แบบโพลาริเมตริกสี่ช่อง; ทนทานต่อ speckle; ทำให้จำแนกเฉพาะเป้าหมายได้ กรณีการใช้งาน: การจำแนกเมือง-ชนบท; การประมาณมวลชีวภาพป่าไม้; การตรวจหาความชื้นในดิน; การตรวจหาน้ำท่วม; การติดตามฟีโนโลยีของพืชผล; การทำแผนที่สิ่งปกคลุมดิน การตีความผลลัพธ์: กำลังพื้นผิวบ่งบอกการสะท้อนแบบกระจกจากภูมิประเทศแห้ง/น้ำ กำลังการสะท้อนสองครั้งบ่งบอกโครงสร้างที่มนุษย์สร้าง/พื้นที่เมือง กำลังปริมาตรบ่งบอกพืชพรรณ/ป่า การรวมองค์ประกอบทำให้แยกแยะสิ่งปกคลุมดินได้: ปริมาตรสูง + การสะท้อนสองครั้งต่ำบ่งบอกป่า การสะท้อนสองครั้งสูง + ปริมาตรต่ำบ่งบอกเมือง พื้นผิว/ปริมาตรที่สมดุลบ่งบอกภูมิประเทศผสม",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เมทริกซ์: diag3 [m11,m22,m33], full3x3 แบบกระชับ [m11,m22,m33,m12,m13,m23] หรือแรสเตอร์เต็ม 9 ชั้นเรียงตามแถว."
              },
              "matrix_format": {
                "label": "รูปแบบเมทริกซ์",
                "description": "รูปแบบเมทริกซ์ที่นำเข้า: diag3 (ค่าเริ่มต้นเมื่อมีแรสเตอร์ 3 ชั้น) หรือ full3x3."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ 3 แบนด์ที่เป็นตัวเลือก [surface, double_bounce, volume]."
              },
              "output_clip_mask": {
                "label": "ผลลัพธ์มาสก์การตัด",
                "description": "แรสเตอร์มาสก์การตัดค่าที่เป็นตัวเลือก (ค่า 1 ในตำแหน่งที่เกิดการตัดค่า/การปรับบรรทัดฐานที่ไม่เป็นไปตามหลักฟิสิกส์)."
              }
            }
          },
          "frost_filter": {
            "name": "ตัวกรอง Frost",
            "description": "ตัวกรอง Frost ทำการลด speckle ของ SAR โดยใช้แบบจำลองสัญญาณรบกวนแบบคูณและสถิติเฉพาะที่แบบปรับตัว ออกแบบมาโดยเฉพาะสำหรับภาพเรดาร์ที่ speckle เป็นไปตามการกระจาย Gamma แทนสัญญาณรบกวนแบบ Gaussian การดำเนินการคำนวณค่าเฉลี่ยและความแปรปรวนเฉพาะที่ แล้วใช้การถ่วงน้ำหนักแบบคูณที่ปรับตัว: F = I · exp(-variance/(2·mean²)·distance²) โดย distance วัดการเบี่ยงเบนของพิกเซลจากค่าเฉลี่ยเฉพาะที่ สูตรนี้ลดความเข้มของ speckle แบบผกผันกับความสอดคล้องที่ประมาณได้ คุณสมบัติหลักได้แก่ การปรับตัวเฉพาะ SAR (แบบจำลองสัญญาณรบกวนแบบคูณแทนแบบบวก) การคงเป้าหมายจุดและขอบ (ลักษณะที่สอดคล้อง) การปรับตัวที่ขับเคลื่อนด้วยความแปรปรวนเฉพาะที่ซึ่งปรับความแรงได้ และประสิทธิผลที่พิสูจน์แล้วกับข้อมูล SAR แบบโพลาไรซ์เดียวและหลายโพลาไรซ์ การกรองแบบ Frost ทำงานได้ดีเยี่ยมในการประมวลผลเบื้องต้นของภาพ SAR สำหรับการจำแนก (การติดตามการเกษตร การทำแผนที่การใช้ประโยชน์ที่ดิน) การหลอมรวม SAR-เชิงแสงที่ถ่วงน้ำหนักด้วยความสอดคล้อง การทำแผนที่น้ำท่วมจากเรดาร์ระหว่างที่มีเมฆปกคลุม และเวิร์กโฟลว์การตรวจหาการเปลี่ยนแปลงด้วยเรดาร์ช่องเปิดสังเคราะห์ การตีความผลลัพธ์แสดงว่าบริเวณที่มีความแปรปรวนสูง (อาจเป็นเป้าหมายที่สอดคล้อง) ถูกกรองน้อยที่สุด บริเวณที่มีความแปรปรวนต่ำ (speckle เด่น) ถูกกรองอย่างเข้มข้น ช่วงผลลัพธ์โดยทั่วไปตรงกับข้อมูลนำเข้า มักใช้การปรับมาตราส่วนแบบลอการิทึม (เดซิเบล) ก่อนหรือหลังการกรองเพื่อการแสดงผล อัตราส่วนความแปรปรวนต่อค่าเฉลี่ยควบคุมความแรงของตัวกรองโดยตรง: อัตราส่วน > 0.5 บ่งบอกว่าน่าจะเป็น speckle อัตราส่วน < 0.1 บ่งชี้เป้าหมายที่สอดคล้อง สิ่งแปลกปลอมในผลลัพธ์ได้แก่ การสูญเสียรายละเอียดหากการประมาณความแปรปรวนไม่น่าเชื่อถือและความเอนเอียงตามทิศทางในลักษณะที่มีทิศทาง การตรวจสอบผ่านแผนที่ความสอดคล้องยืนยันการคงขอบในโซนที่มีความสอดคล้องสูง ติดตามสถิติผลลัพธ์: ค่าเฉลี่ยควรคงที่ตลอดรอบการกรอง ความแปรปรวนควรลดลงอย่างมาก ใช้ก่อนการจำแนกเพื่อปรับปรุงความถูกต้องของหมวดหมู่ ใช้ร่วมกับการประมวลผลภายหลังเชิงสัณฐานเพื่อปรับปรุงขอบเขตวัตถุและขจัดเศษ speckle ที่เหลืออยู่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีหน้าต่างเฉพาะที่ในหน่วยพิกเซล (ค่าเริ่มต้น 2)."
              },
              "damping_factor": {
                "label": "ตัวประกอบการหน่วง",
                "description": "ตัวคูณการหน่วงของ Frost ที่ควบคุมการลดลงแบบเอกซ์โพเนนเชียล (ค่าเริ่มต้น 2.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "gamma_map_filter": {
            "name": "ตัวกรอง Gamma MAP",
            "description": "ตัวกรอง Gamma Map ทำการลด speckle ของ SAR โดยใช้แบบจำลองเชิงสถิติการกระจาย Gamma ซึ่งคำนึงถึงลักษณะ speckle แบบคูณของสัญญาณเรดาร์อย่างชัดเจนผ่านการปรับตัวเชิงพาราเมตริก การดำเนินการประมาณพารามิเตอร์การกระจาย Gamma เฉพาะที่ (รูปร่าง α และมาตราส่วน β) จากสถิติของภาพ แล้วกรองผ่านฟังก์ชันถ่วงน้ำหนักที่สอดคล้องกับการกระจาย: F = I · [1 - (1-L/N)/(1 + L/N)·√(1 + N/L²)] โดย L คือจำนวน look สมมูล (ตัววัดความสอดคล้อง) และ N คือพารามิเตอร์ที่ประมาณได้ คุณสมบัติหลักได้แก่ สถิติ SAR ที่เข้มงวดทางทฤษฎี (การกระจาย Gamma เป็นมาตรฐานสำหรับเรดาร์) การประมาณจำนวน look อัตโนมัติที่ต้องการข้อมูลจากผู้ใช้น้อยที่สุด การคงขอบที่เหนือกว่าตัวกรองแบบสม่ำเสมอ และใช้ได้กับ SAR แบบ look เดียวและหลาย look การกรองแบบ Gamma Map ทำงานได้ดีเยี่ยมในการลดสัญญาณรบกวนในสแตก SAR หลายช่วงเวลาสำหรับการตรวจหาการเปลี่ยนแปลงแบบอนุกรมเวลา การเสริมความสอดคล้องของเฟสใน SAR แบบอินเตอร์เฟอโรเมตริก (InSAR) การประมวลผลเบื้องต้นสำหรับการแยกองค์ประกอบ SAR เชิงโพลาริเมตริก และการปรับมาตรฐานสัญญาณกระเจิงกลับของ SAR ด้านป่าไม้ การตีความผลลัพธ์เผยให้เห็นว่าความแรงของตัวกรองปรับตามความสอดคล้องของฉาก: บริเวณที่มีความสอดคล้องสูง (α ใหญ่) ถูกกรองอย่างนุ่มนวลเพื่อคงเป้าหมาย บริเวณที่มีความสอดคล้องต่ำ (α เล็ก) ถูกกรองอย่างเข้มข้นเพื่อกด speckle จำนวน look สมมูล L บ่งบอกประสิทธิผลของการกรอง: L=1 (กรองน้อยที่สุด) คงรายละเอียดทั้งหมด L>5 ให้การทำให้เรียบอย่างมาก มาตราส่วนผลลัพธ์ยังคงอยู่ในหน่วยของข้อมูลนำเข้า การแปลงแบบลอการิทึมช่วยในการแสดงผล การลดความแปรปรวนของผลลัพธ์โดยทั่วไปอยู่ในช่วง 50-80% ขึ้นกับลักษณะของฉากและการเลือกจำนวน look ติดตามฮิสโทแกรมผลลัพธ์เพื่อดูลายเซ็น speckle ที่เหลืออยู่ การกระจายแบบสองฐานนิยมบ่งชี้การแยกองค์ประกอบของฉากได้ดี สิ่งแปลกปลอมได้แก่ ริ้วลายในลักษณะที่มีทิศทางหรือเนื้อสัมผัสเสื่อมเล็กน้อยหากประมาณ L สูงเกินไป ตรวจสอบความถูกต้องของการกรองเทียบกับข้อมูลจริงภาคพื้นดินในพื้นที่ฝึก ใช้อย่างมีกลยุทธ์ในการจำแนก SAR เชิงโพลาริเมตริกหรือการกรองเฟส InSAR ที่ต้องการการเสริมแบบถ่วงน้ำหนักด้วยความสอดคล้อง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีหน้าต่างเฉพาะที่ในหน่วยพิกเซล (ค่าเริ่มต้น 2)."
              },
              "enl": {
                "label": "ENL",
                "description": "จำนวนลุคสมมูล (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "h_alpha_wisart_classification": {
            "name": "การจำแนกแบบ H-Alpha Wishart",
            "description": "การจำแนกแบบ H/α/A-Wisart รวมการแบ่งโซนแบบไม่มีผู้สอนผ่านการแบ่งปริภูมิพารามิเตอร์ H/α/A เข้ากับการจัดกลุ่มเชิงสถิติแบบ Wishart เพื่อจำแนกข้อมูล SAR เชิงโพลาริเมตริกโดยอัตโนมัติเป็น 9 โซนที่มีความหมายทางกายภาพซึ่งสอดคล้องกับคลาสกลไกการกระเจิง อัลกอริทึมรับพารามิเตอร์เอนโทรปี (H) แอนไอโซทรอปี (A) และ alpha (α) จากการแยกองค์ประกอบแบบ Cloude-Pottier และแบ่งปริภูมิคุณลักษณะ 3 มิติ (H,A,α) เป็น 9 บริเวณโดยใช้ค่าเกณฑ์คงที่: โซน 1 (H ต่ำ α~20°) แทนการสะท้อนแบบ Bragg บนพื้นผิวแห้ง โซน 5 (H~0.7 α~45°) บ่งบอกการกระเจิงเชิงปริมาตรแบบไอโซทรอปิกในป่า โซน 9 (H สูง α~80°) แทนการกระเจิงแบบไดฮีดรัล (สะท้อนสองครั้ง) จากโครงสร้างเมือง ภายในแต่ละโซน การจัดกลุ่ม Wishart (ถ้าเลือก) ปรับปรุงการจำแนกโดยคำนวณระยะทางเชิงสถิติในปริภูมิโพลาริเมตริกหลายตัวแปร ช่วยปรับปรุงการแยกแยะกลไกที่คล้ายกัน คุณสมบัติหลักได้แก่ การจำแนกอัตโนมัติแบบไม่มีผู้สอนที่ไม่ต้องใช้ตัวอย่างฝึก 9 คลาสที่ตีความได้ทางกายภาพพร้อมนิยามมาตรฐานที่ทำให้เปรียบเทียบได้ทั่วโลก การทำงานสองโหมดที่เลือกได้ (เฉพาะค่าเกณฑ์เพื่อความเร็ว ค่าเกณฑ์+Wishart เพื่อความถูกต้อง) และตัวชี้วัดความเชื่อมั่นในตัวที่อิงระยะทางถึงขอบเขตโซนและความควรจะเป็นของ Wishart เครื่องมือรับภาพ (H,A,α) ที่คำนวณไว้ล่วงหน้า หรือเรียกการแยกองค์ประกอบแบบ Cloude-Pottier โดยอัตโนมัติหากได้รับเมทริกซ์ดิบ กรณีการใช้งานหลักครอบคลุมการแบ่งส่วนภาพ SAR และการสร้างแผนที่จากข้อมูลเชิงโพลาริเมตริก การจำแนกประเภทสิ่งปกคลุมดินแบบไม่มีผู้สอน (น้ำ เกษตรกรรม ป่าไม้ เมือง) โดยตรงจากเมทริกซ์ coherency ของ SAR การประเมินคุณภาพข้อมูลเชิงโพลาริเมตริกอย่างรวดเร็วผ่านการกระจายการครอบครองโซน และการตรวจหาการเปลี่ยนแปลงที่เผยให้เห็นการเปลี่ยนผ่านของกลไกการกระเจิงซึ่งบ่งบอกการเปลี่ยนแปลงสิ่งปกคลุมดิน การตีความผลลัพธ์: แผนที่ 9 คลาสสอดคล้องโดยตรงกับประเภทภูมิประเทศ โซนสามารถรวมเป็นหมวดหมู่ที่กว้างขึ้นได้ (น้ำ/แบบกระจก = โซน 1-2 พืชพรรณ/ปริมาตร = โซน 4-6 เมือง/ไดฮีดรัล = โซน 7-9) พิกเซลที่ไม่ได้จำแนก (คลาส 0) บ่งบอกลายเซ็นเชิงโพลาริเมตริกที่ผิดปกติซึ่งต้องตรวจสอบ",
            "params": {
              "h_raster": {
                "label": "แรสเตอร์ H",
                "description": "แรสเตอร์เอนโทรปี (H) ที่นำเข้าจากการแยกองค์ประกอบ Cloude-Pottier (ช่วง 0-1)."
              },
              "alpha_raster": {
                "label": "แรสเตอร์ Alpha",
                "description": "แรสเตอร์อัลฟา (α) ที่นำเข้าจากการแยกองค์ประกอบ Cloude-Pottier (องศา, 0-90)."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็น true (ค่าเริ่มต้น) จะแปลงระบบพิกัดของอัลฟาให้ตรงกับ H เมื่อ CRS ต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การกำหนดวิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดซึ่งเป็นตัวเลือก: nearest, bilinear, cubic, lanczos."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ที่เป็นตัวเลือกพร้อมป้ายกำกับ 9 คลาส (1-9)."
              }
            }
          },
          "kuan_filter": {
            "name": "ตัวกรอง Kuan",
            "description": "ทำการกรอง speckle แบบ Kuan สำหรับภาพ SAR/เรดาร์โดยใช้แนวทางเชิงพาราเมตริกที่ประมาณค่าเฉลี่ยและความแปรปรวนเฉพาะที่ การถ่วงน้ำหนักแบบปรับตัวตามความแปรปรวนของสัญญาณรบกวนและความแปรปรวนเฉพาะที่ของภาพ คล้ายกับ Lee แต่มีสมมติฐานเชิงสถิติต่างกัน เป็นวิธีการประมวลผล SAR เชิงปฏิบัติการที่ใช้กันอย่างแพร่หลาย สมดุลระหว่างประสิทธิภาพเชิงคำนวณกับผลลัพธ์ที่ดีกับข้อมูล SAR ที่หลากหลาย การกรองแบบ Kuan สมมติสถิติแบบ Gaussian กับแบบจำลอง speckle แบบคูณ ปรับตามความแปรปรวนเฉพาะที่—แยกแยะระหว่างความแปรผันของสัญญาณกับ speckle มีประสิทธิผลเป็นพิเศษสำหรับภาพ SAR ที่ไม่เป็นเนื้อเดียวกัน (ลักษณะสว่างและมืดผสมกัน) ใช้การคำนวณในระดับที่สมเหตุสมผล เป็นจุดประนีประนอมเชิงปฏิบัติระหว่างความซับซ้อนกับต้นทุนการคำนวณ เป็นมาตรฐานในระบบประมวลผล SAR หลายระบบ การประยุกต์ใช้: (1) การลด speckle ของ SAR เชิงปฏิบัติการ (2) การประมวลผลเบื้องต้นของ SAR ที่มีสัญญาณกระเจิงกลับผสม (3) การประมวลผลเบื้องต้นของ RadarSat/Sentinel-1 (4) การประมวลผล SAR ตามปกติ พารามิเตอร์ทั่วไป: filter_size=5×7 ถึง 7×7",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีหน้าต่างเฉพาะที่ในหน่วยพิกเซล (ค่าเริ่มต้น 2)."
              },
              "enl": {
                "label": "ENL",
                "description": "จำนวนลุคสมมูล (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "refined_lee_filter": {
            "name": "ตัวกรอง Refined Lee",
            "description": "ตัวกรอง Refined Lee ปรับปรุงจากการกรอง Lee มาตรฐานผ่านการประมาณความสอดคล้องที่ดีขึ้นและการปรับตัวเพื่อคงขอบ โดยใช้สถิติเฉพาะที่ที่ปรับปรุงแล้วและการวิเคราะห์ตามทิศทางเพื่อการลด speckle ที่เหนือกว่า การดำเนินการขยายแบบจำลองของ Lee โดยตรวจจับการวางแนวของขอบ ใช้หน้าต่างตามทิศทางที่จัดแนวกับขอบเขต และคำนวณค่าประมาณความสอดคล้องที่ปรับปรุงแล้ว ในทางคณิตศาสตร์: F = μ + √(σ_p²/(σ_I²))·(I - μ) พร้อมการคำนวณความแปรปรวนที่จัดแนวตามทิศทาง การปรับปรุงนี้ช่วยให้คงขอบได้ดีขึ้นขณะคงการกด speckle ไว้ คุณสมบัติหลักได้แก่ ความไวต่อทิศทาง (ปรับทิศทางการกรองตามโครงสร้างของภาพ) การประมาณความสอดคล้องที่ดีขึ้น (ใช้หน้าต่างแบบแอนไอโซทรอปิก) การคงขอบที่เหนือกว่า Lee มาตรฐาน และประสิทธิผลกับฉาก SAR ที่ซับซ้อน การกรองแบบ Refined Lee ทำงานได้ดีเยี่ยมในการตรวจหาการเปลี่ยนแปลงที่ต้องการขอบเขตคมชัด การเตรียมแผนที่ความสอดคล้อง InSAR การประมวลผล SAR เชิงโพลาริเมตริกที่การคงเป้าหมายมีความสำคัญ และการวิเคราะห์ SAR ด้านป่าไม้ที่แยกแยะต้นไม้ออกจากพื้นหลัง การตีความผลลัพธ์เผยให้เห็นว่าการกรองคำนึงถึงการวางแนวของขอบ: ขอบแนวนอนกรองในแนวนอน ขอบแนวตั้งกรองในแนวตั้ง ขอบแนวทแยงกรองในแนวทแยง การปรับตามทิศทางนี้ลดการกรองข้ามขอบเขตจริงให้น้อยที่สุด ค่าประมาณความสอดคล้องโดยทั่วไปแม่นยำกว่า Lee มาตรฐาน ช่วยลดสิ่งแปลกปลอมจากการกรอง ช่วงผลลัพธ์ตรงกับข้อมูลนำเข้า การปรับตามทิศทางเห็นได้ชัดผ่านการตรวจด้วยสายตา (ขอบยังคงคมชัดกว่า Lee มาตรฐาน) สถิติแสดงการคงบริเวณที่มีคอนทราสต์สูงได้มากกว่า องค์ประกอบตามทิศทางเผยให้เห็นการวางแนวของโครงสร้างในฉาก ความเอนเอียงตามทิศทางที่แรงบ่งบอกการวางแนวของลักษณะที่เด่น สิ่งแปลกปลอมทั่วไปลดลงเมื่อเทียบกับ Lee มาตรฐาน โดยเฉพาะใกล้ขอบและลักษณะที่ซับซ้อน สิ่งแปลกปลอมได้แก่ การปรับตัวมากเกินไปหากการประมาณทิศทางล้มเหลวและสิ่งแปลกปลอมจากหน้าต่างตามทิศทางที่ขอบเขตที่อ่อน ติดตามแผนที่ความสอดคล้องเพื่อยืนยันความถูกต้องของการตรวจจับขอบ ใช้อย่างมีกลยุทธ์ในการจำแนก SAR ที่ต้องคงโครงสร้างที่มีทิศทาง (เช่น ป่า แปลงเกษตรที่จัดแนว)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงของเพื่อนบ้านเป็นพิกเซล (จำนวนเต็มคี่ ค่าเริ่มต้น 11)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "wisart_iterative_clustering": {
            "name": "การจัดกลุ่มแบบวนซ้ำ Wishart",
            "description": "การจัดกลุ่มแบบวนซ้ำ Wishart ทำการจำแนกข้อมูล SAR เชิงโพลาริเมตริกแบบไม่มีผู้สอนโดยปรับปรุงจุดศูนย์กลางคลัสเตอร์แบบวนซ้ำด้วยตัววัดระยะทางเชิงสถิติ Wishart แบบเชิงซ้อน ซึ่งวัดความคล้ายคลึงในการแจกแจงความน่าจะเป็นเชิงโพลาริเมตริกหลายตัวแปร อัลกอริทึมเริ่มต้นจากโซนการแยกองค์ประกอบ H/α (ให้คลัสเตอร์เริ่มต้น 9 กลุ่มที่มีการตีความทางกายภาพที่ทราบ) แล้วเข้าสู่ลูปคล้าย expectation-maximization: (1) คำนวณระยะทาง Wishart จากเมทริกซ์ coherency ที่ประมาณได้ของแต่ละพิกเซลไปยังต้นแบบคลัสเตอร์แต่ละกลุ่ม (2) กำหนดพิกเซลใหม่ให้กับคลัสเตอร์ที่ใกล้ที่สุด (3) ปรับปรุงต้นแบบคลัสเตอร์โดยเฉลี่ยเมทริกซ์ของพิกเซลที่ได้รับการกำหนด (4) วนซ้ำจนกว่าจะลู่เข้า (อัตราการกำหนดพิกเซลใหม่ <convergence_threshold) หรือถึง max_iterations คุณสมบัติหลักได้แก่ กรอบสถิติค่าเชิงซ้อนที่จัดการโครงสร้างข้อมูลเชิงโพลาริเมตริกได้อย่างเหมาะสมต่างจากระยะทาง Euclidean การเริ่มต้นอัตโนมัติจากโซน H/α ที่ตีความได้ซึ่งลดการพึ่งพาค่าเริ่มต้นแบบสุ่ม การติดตามการลู่เข้ารายพิกเซลที่ช่วยกำหนดจำนวนรอบแบบปรับตัว การรับข้อมูล (H,α) ที่คำนวณไว้ล่วงหน้าหรือคำนวณเมทริกซ์อัตโนมัติจากข้อมูล coherency ดิบ (ถ้าเลือก) และความทนทานต่อ speckle แบบ look เดียวในตัวผ่านความเข้ากันได้กับการประมวลผลแบบหลาย look เครื่องมือรองรับทั้งรูปแบบเมทริกซ์แบบดั้งเดิมและแบบกะทัดรัด กรณีการใช้งานหลักครอบคลุมการจำแนกภาพ SAR เชิงโพลาริเมตริกที่ให้แผนที่สิ่งปกคลุมดินที่ละเอียดกว่าการแบ่ง 9 โซนของ H/α การปรับปรุงการจำแนกแบบไม่มีผู้สอนเริ่มต้นแบบวนซ้ำสำหรับการทำแผนที่ การประเมินคุณภาพข้อมูลเชิงโพลาริเมตริกอัตโนมัติผ่านตัวชี้วัดเสถียรภาพของคลัสเตอร์ และการจำแนก SAR แบบอนุกรมเวลาที่ทำให้ตรวจหาการเปลี่ยนแปลงตามเวลาได้ผ่านการวิเคราะห์การเปลี่ยนผ่านของคลัสเตอร์ การตีความผลลัพธ์: แผนที่คลัสเตอร์ที่ปรับปรุงแล้ว (โดยทั่วไป 3-9 คลาสขึ้นกับการลู่เข้า) แสดงกลุ่มกลไกการกระเจิงที่แยกกันชัดเจน ประวัติการลู่เข้าให้ตัวชี้วัดความเชื่อมั่น—การลู่เข้าเร็วในช่วงแรกบ่งบอกการแยกคลาสที่เสถียร การลู่เข้าช้าบ่งชี้พิกเซลกำกวมที่ได้ประโยชน์จากการวิเคราะห์หลายมุมมองหรือการตรวจหาการเปลี่ยนแปลง การผสานกับโซน H/α ช่วยในการพัฒนาคำอธิบายสัญลักษณ์: คงความสอดคล้องกับโซน H/α เท่าที่เป็นไปได้เพื่อรักษาความสามารถในการตีความ",
            "params": {
              "h_raster": {
                "label": "แรสเตอร์ H",
                "description": "แรสเตอร์เอนโทรปี (H) ที่นำเข้า (ช่วง 0-1)."
              },
              "alpha_raster": {
                "label": "แรสเตอร์ Alpha",
                "description": "แรสเตอร์อัลฟา (α) ที่นำเข้า (องศา, 0-90)."
              },
              "max_iterations": {
                "label": "จำนวนรอบวนซ้ำสูงสุด",
                "description": "จำนวนรอบวนซ้ำสูงสุดของการจัดกลุ่มคลัสเตอร์ (ค่าเริ่มต้น 10)."
              },
              "convergence_threshold": {
                "label": "ค่าเกณฑ์การลู่เข้า",
                "description": "เกณฑ์การลู่เข้า: สัดส่วนของพิกเซลที่ไม่เปลี่ยนแปลง (ค่าเริ่มต้น 0.99)."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็น true (ค่าเริ่มต้น) จะแปลงระบบพิกัดของอัลฟาให้ตรงกับ H เมื่อ CRS ต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การกำหนดวิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดซึ่งเป็นตัวเลือก: nearest, bilinear, cubic, lanczos."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ป้ายกำกับคลัสเตอร์ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "yamaguchi_4component_decomposition": {
            "name": "การแยกองค์ประกอบแบบ Yamaguchi 4 องค์ประกอบ",
            "description": "การแยกองค์ประกอบ SAR 4 องค์ประกอบแบบ Yamaguchi แยกข้อมูลเรดาร์ช่องเปิดสังเคราะห์แบบสองโพลาไรเซชันเป็นองค์ประกอบที่ตีความได้ทางกายภาพ ซึ่งแทนการกระเจิงพื้นผิว การกระเจิงสะท้อนสองครั้ง (ปริมาตร) การกระเจิงแบบเกลียว และการกระเจิงเชิงปริมาตร โดยใช้การวิเคราะห์เชิงโพลาริเมตริกแบบอิงแบบจำลองพร้อมการรวม DEM (ถ้าเลือก) การแยกองค์ประกอบแยกกลไกการกระเจิงกลับต่าง ๆ ผ่านการวิเคราะห์ค่าลักษณะเฉพาะของเมทริกซ์ความแปรปรวนร่วมเชิงโพลาริเมตริก โดยตีความองค์ประกอบเป็นการสะท้อนพื้นผิว (การกระเจิงแบบ Bragg) การสะท้อนสองครั้งจากตัวสะท้อนมุม การหมุนโพลาไรเซชันแบบเกลียว (พบไม่บ่อย) และการกระเจิงเชิงปริมาตรแบบกระจายจากพืชพรรณหรือพื้นผิวขรุขระ การรวม DEM ภายนอกช่วยประมาณการมีส่วนร่วมของการกระเจิงจากภูมิประเทศ ทำให้แยกแยะการกระเจิงเชิงปริมาตรจริงออกจากผลของภูมิประเทศได้ดีขึ้น คุณสมบัติหลักได้แก่ การตีความทางกายภาพแบบอิงแบบจำลองที่ทำให้สกัดพารามิเตอร์ทางธรณีฟิสิกส์ที่มีความหมายได้ การแก้ไขภูมิประเทศจาก DEM (ถ้าเลือก) ที่ปรับปรุงความถูกต้องขององค์ประกอบบนภูมิประเทศ เงื่อนไของค์ประกอบไม่เป็นลบที่ป้องกันผลการแยกที่ไม่เป็นไปตามหลักกายภาพ และการจัดการช่องว่างของข้อมูลและบริเวณ layover โดยอัตโนมัติ การประยุกต์ใช้ได้แก่ การประมาณมวลชีวภาพป่าไม้จากองค์ประกอบการกระเจิงเชิงปริมาตร การทำแผนที่เมืองโดยอาศัยความเด่นของการสะท้อนสองครั้งในพื้นที่สิ่งปลูกสร้าง การประมาณความชื้นในดินจากพฤติกรรมการกระเจิงพื้นผิว และการตรวจหาดินถล่ม/การเปลี่ยนแปลงผ่านการเปลี่ยนแปลงอัตราส่วนขององค์ประกอบ ผลลัพธ์การแยกองค์ประกอบแบบ Yamaguchi ทำให้แปลตีความทางธรณีฟิสิกส์ได้ ผลลัพธ์ประกอบด้วยภาพสี่องค์ประกอบ (กำลังการกระเจิงพื้นผิว สะท้อนสองครั้ง เกลียว ปริมาตร) ตัวชี้วัดคุณภาพการแยกองค์ประกอบที่วัดความถูกต้องของการปรับ ดัชนีประเภทการกระเจิงเฉลี่ยที่ช่วยอธิบายลักษณะสิ่งปกคลุมดิน และค่าวินิจฉัย coherency/เอนโทรปี (ถ้าเลือก) ที่ช่วยชี้แนะการประเมินคุณภาพข้อมูล",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เมทริกซ์: แบบกระชับ 6 ชั้น [m11,m22,m33,m12,m13,m23] หรือ 9 ชั้นเรียงตามแถวขององค์ประกอบเมทริกซ์เชิงซ้อน 3x3 แบบเต็ม."
              },
              "matrix_format": {
                "label": "รูปแบบเมทริกซ์",
                "description": "รูปแบบเมทริกซ์ที่นำเข้า: full3x3 (ค่าเริ่มต้น) สำหรับเมทริกซ์เฮอร์มิเชียนที่มีส่วนจริง/ส่วนจินตภาพ."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] เมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ 4 แบนด์ที่เป็นตัวเลือก [surface, double_bounce, volume, helix]."
              }
            }
          },
          "ascii_to_las": {
            "name": "ASCII เป็น LAS",
            "description": "การแปลงรูปแบบ: การประมวลผลแบบแบตช์ CSV→LAS แยกวิเคราะห์ไฟล์ข้อความที่คั่นด้วยช่องว่าง/จุลภาค/แท็บ (x,y,z,intensity,class,returns,angle,time) เป็น LAS พร้อมเมทาดาทา EPSG",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของพาธไฟล์ ASCII ที่นำเข้า."
              },
              "pattern": {
                "label": "รูปแบบ",
                "description": "รูปแบบฟิลด์ เช่น 'x,y,z,i,c,rn,nr,sa'."
              },
              "epsg_code": {
                "label": "รหัส EPSG",
                "description": "รหัส EPSG สำหรับเมทาดาทา CRS ของ LAS ผลลัพธ์."
              },
              "output_directory": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ผลลัพธ์ที่เป็นตัวเลือกสำหรับไฟล์ LAS ที่สร้างขึ้น."
              }
            }
          },
          "las_to_ascii": {
            "name": "LAS เป็น ASCII",
            "description": "การแปลงรูปแบบ: ส่งออก LAS→CSV ส่งออกแอตทริบิวต์ของจุดทั้งหมดเป็นข้อความแบบคั่นเพื่อนำเข้าสเปรดชีต/ฐานข้อมูลหรือใช้ในสคริปต์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิดซึ่งเป็นตัวเลือก หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV ผลลัพธ์ที่เป็นตัวเลือก (เฉพาะโหมดข้อมูลนำเข้าเดียว)."
              }
            }
          },
          "las_to_shapefile": {
            "name": "LAS เป็น Shapefile",
            "description": "แปลงกลุ่มจุด LAS/LAZ เป็นเชปไฟล์จุดแบบเวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิดซึ่งเป็นตัวเลือก หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ที่เป็นตัวเลือกสำหรับโหมดข้อมูลนำเข้าเดียว."
              },
              "output_multipoint": {
                "label": "ผลลัพธ์แบบหลายจุด",
                "description": "หากเป็น true จะให้ผลลัพธ์เป็นเรขาคณิตแบบหลายจุดในฟีเจอร์เดียว มิฉะนั้นจะให้ฟีเจอร์จุดหนึ่งฟีเจอร์ต่อหนึ่งจุด."
              }
            }
          },
          "lidar_colourize": {
            "name": "ระบายสี LiDAR",
            "description": "กำหนดสีของจุดจากภาพ: สุ่มค่าจากภาพออร์โท/ภาพที่อ้างอิงพิกัดทางภูมิศาสตร์ที่ซ้อนทับ ณ ตำแหน่งของแต่ละจุด แล้วจัดเก็บเป็น RGB เพื่อการเรนเดอร์กลุ่มจุดที่สมจริง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "image": {
                "label": "ภาพ",
                "description": "พาธแรสเตอร์ภาพที่นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_join": {
            "name": "รวม LiDAR",
            "description": "ผสานไฟล์ LiDAR หลายไฟล์: ต่อกลุ่มจุดเข้าด้วยกันพร้อมคงแอตทริบิวต์และความสอดคล้องของส่วนหัวไฟล์ ประมวลผลแบบแบตช์ข้ามชุดไทล์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของพาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_shift": {
            "name": "เลื่อน LiDAR",
            "description": "เลื่อนพิกัดของกลุ่มจุด: ค่าชดเชย x/y/z สำหรับการเลื่อนพื้นหลักฐาน การแก้ไขการลงทะเบียน หรือการแปลงระบบพิกัด ปรับพิกัดแบบกลุ่ม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "x_shift": {
                "label": "การเลื่อน X",
                "description": "ค่าเลื่อนที่จะบวกเข้ากับพิกัด x."
              },
              "y_shift": {
                "label": "การเลื่อน Y",
                "description": "ค่าเลื่อนที่จะบวกเข้ากับพิกัด y."
              },
              "z_shift": {
                "label": "การเลื่อน Z",
                "description": "ค่าเลื่อนที่จะบวกเข้ากับพิกัด z."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_tile": {
            "name": "แบ่งไทล์ LiDAR",
            "description": "แบ่งกลุ่มจุดเป็นไทล์กริดปกติ: แบ่งตามขอบเขต x/y ด้วยขนาดที่กำหนดได้และค่าเกณฑ์จำนวนจุดขั้นต่ำ สำหรับการแจกจ่ายและประมวลผลข้อมูลมาตรฐาน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "tile_width": {
                "label": "ความกว้างไทล์",
                "description": "ความกว้างของไทล์ในหน่วยแกน x (ค่าเริ่มต้น 1000)."
              },
              "tile_height": {
                "label": "ความสูงไทล์",
                "description": "ความสูงของไทล์ในหน่วยแกน y (ค่าเริ่มต้น 1000)."
              },
              "origin_x": {
                "label": "จุดกำเนิด X",
                "description": "พิกัด x ของจุดกำเนิดกริด (ค่าเริ่มต้น 0)."
              },
              "origin_y": {
                "label": "จุดกำเนิด Y",
                "description": "พิกัด y ของจุดกำเนิดกริด (ค่าเริ่มต้น 0)."
              },
              "min_points_in_tile": {
                "label": "จำนวนจุดต่ำสุดในไทล์",
                "description": "จำนวนจุดขั้นต่ำที่ต้องมีสำหรับการเขียนไทล์ (ค่าเริ่มต้น 2)."
              },
              "output_laz_format": {
                "label": "ผลลัพธ์รูปแบบ LAZ",
                "description": "หากเป็น true จะเขียนผลลัพธ์เป็น .laz มิฉะนั้นเป็น .las (ค่าเริ่มต้น true)."
              },
              "output_directory": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ที่เป็นตัวเลือกสำหรับเขียนผลลัพธ์ไทล์ ค่าเริ่มต้นคือ <input_dir>/<input_stem>/."
              }
            }
          },
          "lidar_tophat_transform": {
            "name": "การแปลง Tophat ของ LiDAR",
            "description": "สกัดความสูงเหนือพื้นดินผ่าน white top-hat เชิงสัณฐาน: erosion + dilation ประมาณพื้นดินเฉพาะที่ ส่วนเหลือ = ความสูง การปรับมาตรฐานโดยไม่ต้องใช้พื้นดิน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงที่ใช้สำหรับการกร่อนและการขยาย."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "recover_flightline_info": {
            "name": "กู้คืนข้อมูลแนวบิน",
            "description": "สร้างรหัสแนวบินขึ้นใหม่จากช่องว่างของเวลา GPS: อนุมานขอบเขตแนวบิน แล้วระบุใน point-source-ID/user-data/RGB เพื่อกู้คืนเส้นทางการบิน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "max_time_diff": {
                "label": "ผลต่างเวลาสูงสุด",
                "description": "ช่วงเวลา GPS ที่ห่างสูงสุดภายในแนวบินก่อนเริ่มแนวบินใหม่."
              },
              "pt_src_id": {
                "label": "รหัสแหล่งที่มาของจุด",
                "description": "หากเป็น true จะเขียนรหัสแนวบินที่อนุมานได้ลงใน point_source_id."
              },
              "user_data": {
                "label": "ข้อมูลผู้ใช้",
                "description": "หากเป็น true จะเขียนรหัสแนวบินที่อนุมานได้ลงใน user_data (มอดุโล 256)."
              },
              "rgb": {
                "label": "RGB",
                "description": "หากเป็น true จะกำหนดสีแบบสุ่มให้แต่ละแนวบินที่อนุมานได้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "select_tiles_by_polygon": {
            "name": "เลือกไทล์ด้วยโพลิกอน",
            "description": "การเลือกไทล์แบบแบตช์: คัดลอกไทล์ LAS/LAZ จากไดเรกทอรีไปยังผลลัพธ์เมื่อจุดตัวอย่างของไทล์ตัดกับขอบเขตโพลิกอน การสกัดข้อมูลตามพื้นที่สนใจ (AOI)",
            "params": {
              "input_directory": {
                "label": "โฟลเดอร์นำเข้า",
                "description": "โฟลเดอร์นำเข้าที่มีไทล์ LiDAR."
              },
              "output_directory": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ผลลัพธ์สำหรับไทล์ LiDAR ที่เลือก."
              },
              "polygons": {
                "label": "โพลิกอน",
                "description": "พาธเวกเตอร์โพลิกอนที่นำเข้าหรืออ็อบเจกต์เวกเตอร์แบบมีชนิด."
              }
            }
          },
          "sort_lidar": {
            "name": "เรียงลำดับ LiDAR",
            "description": "เรียงลำดับจุดตามเกณฑ์หลายข้อ: x/y/z พร้อมขนาดถัง รวมถึงแอตทริบิวต์ที่คำนวณได้ ปรับความสอดคล้องเชิงพื้นที่ให้เหมาะสมสำหรับการบีบอัดและการประมวลผลไทล์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "sort_criteria": {
                "label": "เกณฑ์การเรียงลำดับ",
                "description": "นิพจน์เกณฑ์การเรียงลำดับ เช่น 'x 100, y 100, z 10, scan_angle'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "split_lidar": {
            "name": "แยก LiDAR",
            "description": "แบ่งจุดเป็นไฟล์แยกตามแอตทริบิวต์: จัดกลุ่มตามคลาส source-id ช่วงเวลา ถังเชิงพื้นที่ หรือจำนวนจุด เพื่อการแบ่งชั้นและแจกจ่ายข้อมูล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "split_criterion": {
                "label": "เกณฑ์การแยก",
                "description": "เกณฑ์การจัดกลุ่ม: num_pts, x, y, z, intensity, class, user_data, point_source_id, scan_angle หรือ time."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ขนาดช่วงสำหรับเกณฑ์เชิงตัวเลข สำหรับ num_pts ค่านี้คือจำนวนจุดต่อไฟล์ผลลัพธ์."
              },
              "min_pts": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "จำนวนจุดขั้นต่ำที่ต้องมีก่อนเขียนไฟล์ผลลัพธ์ที่แยกออกมา (ค่าเริ่มต้น 5)."
              },
              "output_directory": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ที่เป็นตัวเลือกสำหรับผลลัพธ์ที่แยกออกมา."
              }
            }
          },
          "classify_buildings_in_lidar": {
            "name": "จำแนกอาคารใน LiDAR",
            "description": "ระบุจุดที่อยู่ภายในรอยเท้าอาคาร: กำหนดคลาส 6 ให้กับจุดทั้งหมดที่อยู่ภายในขอบเขตโพลิกอนเชิงพื้นที่ การสกัดอาคารโดยอิงเวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "buildings": {
                "label": "อาคาร",
                "description": "พาธเวกเตอร์โพลิกอนขอบเขตอาคารที่นำเข้าหรืออ็อบเจกต์เวกเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "classify_lidar": {
            "name": "จำแนก LiDAR",
            "description": "การจำแนกจุดอัตโนมัติ: พื้นดิน พืชพรรณ อาคาร ผ่านเรขาคณิตเฉพาะที่ (ความเป็นเส้นตรง ความเป็นระนาบ) และการปรับระนาบด้วย RANSAC การแบ่งส่วนแบบอิงเรขาคณิต",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียง (ค่าเริ่มต้น 2.5)."
              },
              "grd_threshold": {
                "label": "ค่าเกณฑ์พื้นดิน",
                "description": "ความสูงเหนือค่าต่ำสุดเฉพาะที่ซึ่งถือว่าเป็นพื้นดิน (ค่าเริ่มต้น 0.1)."
              },
              "oto_threshold": {
                "label": "ค่าเกณฑ์ OTO",
                "description": "ความสูงเหนือค่าต่ำสุดเฉพาะที่ซึ่งถือว่าเป็นวัตถุที่ไม่ใช่ภูมิประเทศ (ค่าเริ่มต้น 1.0)."
              },
              "linearity_threshold": {
                "label": "ค่าเกณฑ์ความเป็นเส้นตรง",
                "description": "ค่าเกณฑ์ความเป็นเส้นที่ใช้ในการคัดกรองจุดที่ยังไม่จำแนกขั้นสุดท้าย (ค่าเริ่มต้น 0.5)."
              },
              "planarity_threshold": {
                "label": "ค่าเกณฑ์ความเป็นระนาบ",
                "description": "ค่าเกณฑ์ความเป็นระนาบที่ใช้ในการแบ่งเซกเมนต์และการปรับละเอียด (ค่าเริ่มต้น 0.85)."
              },
              "num_iter": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำ RANSAC เฉพาะที่สำหรับการประมาณความเป็นระนาบ/ความเป็นเส้น (ค่าเริ่มต้น 30)."
              },
              "facade_threshold": {
                "label": "ค่าเกณฑ์ด้านหน้าอาคาร",
                "description": "ระยะเพื่อนบ้านที่ใช้เมื่อกำกับป้ายผนังอาคาร (ค่าเริ่มต้น 0.5)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "classify_overlap_points": {
            "name": "จำแนกจุดซ้อนทับ",
            "description": "ระบุการซ้อนทับของแนวบิน: ตรวจหาเซลล์กริดที่มีรหัส point-source หลายรหัส แล้วติดแฟล็กหรือขจัดจุดที่ซ้อนทับ การควบคุมคุณภาพเพื่อตรวจสอบความถูกต้องของการเก็บข้อมูล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์กริดที่ใช้ในการวิเคราะห์การซ้อนทับ."
              },
              "overlap_criterion": {
                "label": "เกณฑ์การซ้อนทับ",
                "description": "มุมสแกนสูงสุด ไม่ใช่รหัสแหล่งจุดต่ำสุด ไม่ใช่เวลาต่ำสุด หรือรหัสแหล่งจุดหลายค่า."
              },
              "filter": {
                "label": "ตัวกรอง",
                "description": "หากเป็น true จะลบจุดที่ซ้อนทับออก มิฉะนั้นจะจำแนกจุดที่ซ้อนทับเป็นคลาส 12."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "clip_lidar_to_polygon": {
            "name": "ตัด LiDAR ด้วยโพลิกอน",
            "description": "ชุดย่อยเชิงพื้นที่ของกลุ่มจุด: เก็บไว้เฉพาะจุดที่อยู่ภายในขอบเขตโพลิกอน การเลือกจุดโดยอิงเวกเตอร์เพื่อสกัดพื้นที่ศึกษา",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "polygons": {
                "label": "โพลิกอน",
                "description": "พาธเวกเตอร์โพลิกอนที่นำเข้าหรืออ็อบเจกต์เวกเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "erase_polygon_from_lidar": {
            "name": "ลบโพลิกอนออกจาก LiDAR",
            "description": "ขจัดจุด LiDAR ที่อยู่ภายในเรขาคณิตโพลิกอน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "polygons": {
                "label": "โพลิกอน",
                "description": "พาธเวกเตอร์โพลิกอนที่นำเข้าหรืออ็อบเจกต์เวกเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "filter_lidar": {
            "name": "กรอง LiDAR",
            "description": "ขจัดจุดผ่านนิพจน์: ตรรกะบูลีนบนแอตทริบิวต์ (class, elevation, return_number, scan_angle, noise_flag เป็นต้น) การเลือกจุดที่ยืดหยุ่น",
            "params": {
              "statement": {
                "label": "คำสั่ง",
                "description": "นิพจน์บูลีน เช่น '!is_noise && class == 2' หรือ 'NOT is_noise AND class == 2'."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือกสำหรับโหมดข้อมูลนำเข้าเดียว."
              }
            }
          },
          "filter_lidar_by_percentile": {
            "name": "กรอง LiDAR ด้วยเปอร์เซ็นไทล์",
            "description": "เลือกจุดตามอันดับเปอร์เซ็นไทล์ต่อเซลล์: เก็บหนึ่งจุดต่อบล็อกกริดที่เปอร์เซ็นไทล์ระดับความสูงที่กำหนด การลดจำนวนจุดด้วยตัวอย่างตัวแทน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "percentile": {
                "label": "เปอร์เซ็นไทล์",
                "description": "เปอร์เซ็นไทล์ในช่วง [0, 100] (0=ต่ำสุด, 100=สูงสุด)."
              },
              "block_size": {
                "label": "ขนาดบล็อก",
                "description": "ขนาดบล็อกกริดสำหรับการเลือกเปอร์เซ็นไทล์เฉพาะที่ (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "filter_lidar_by_reference_surface": {
            "name": "กรอง LiDAR ด้วยพื้นผิวอ้างอิง",
            "description": "สกัดจุดโดยเทียบกับพื้นผิวอ้างอิง: z<surface, z>surface หรือภายในค่าเกณฑ์ ระบุพืชพรรณเหนือ DTM หรือจุดใต้พื้นผิว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "ref_surface": {
                "label": "พื้นผิวอ้างอิง",
                "description": "พาธแรสเตอร์อ้างอิงหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "query": {
                "label": "คำค้น",
                "description": "ชนิดการสอบถาม: within, <, <=, >, >= (ค่าเริ่มต้น within)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ระยะ z สัมบูรณ์ที่ใช้โดย query=within."
              },
              "classify": {
                "label": "จำแนก",
                "description": "หากเป็น true จะจำแนกจุด มิฉะนั้นจะกรองและเก็บเฉพาะจุดที่ตรงกัน."
              },
              "true_class_value": {
                "label": "ค่าคลาสเมื่อจริง",
                "description": "ค่าคลาสที่กำหนดให้จุดที่ตรงกันในโหมดจำแนก."
              },
              "false_class_value": {
                "label": "ค่าคลาสเมื่อเท็จ",
                "description": "ค่าคลาสที่กำหนดให้จุดที่ไม่ตรงกันในโหมดจำแนก."
              },
              "preserve_classes": {
                "label": "คงคลาสเดิม",
                "description": "หากเป็น true จะคงคลาสของจุดที่ไม่ตรงกันไว้ในโหมดจำแนก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "filter_lidar_classes": {
            "name": "กรองคลาส LiDAR",
            "description": "ขจัดจุดตามการจำแนก: กรองคลาส LAS ที่ไม่ต้องการออก (สัญญาณรบกวน น้ำ อาคาร เป็นต้น) การประมวลผลเบื้องต้นที่จำเป็นสำหรับเวิร์กโฟลว์การปรับสภาพภูมิประเทศ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "filter_lidar_noise": {
            "name": "กรองสัญญาณรบกวน LiDAR",
            "description": "ขจัดคลาสสัญญาณรบกวนตาม ASPRS: กรองคลาส 7 (สัญญาณรบกวนต่ำ) และคลาส 18 (สัญญาณรบกวนสูง) การทำความสะอาดกลุ่มจุดมาตรฐานสำหรับข้อมูลที่เป็นไปตาม LAS 1.4",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "filter_lidar_scan_angles": {
            "name": "กรองมุมสแกน LiDAR",
            "description": "ขจัดสัญญาณสะท้อน LiDAR ที่เฉียง: กรองจุดตามค่าเกณฑ์มุมสแกน ปรับปรุงความถูกต้องทางดิ่งโดยขจัดสัญญาณสะท้อนที่มุมเฉียดซึ่งมีความคลาดเคลื่อนทางตำแหน่ง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "มุมสแกนสัมบูรณ์สูงสุด (หน่วยจำนวนเต็มของ LAS; 1 หน่วย = 0.006°) จำเป็นต้องระบุ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "height_above_ground": {
            "name": "ความสูงเหนือพื้นดิน",
            "description": "ปรับมาตรฐานผ่านเรขาคณิตของกลุ่มจุด: คำนวณความสูงของแต่ละจุดเหนือเพื่อนบ้านคลาสพื้นดินที่ต่ำกว่าที่ใกล้ที่สุด พื้นผิวภูมิประเทศเฉพาะที่โดยไม่ต้องใช้แรสเตอร์อ้างอิง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "improved_ground_point_filter": {
            "name": "ตัวกรองจุดพื้นดินแบบปรับปรุง",
            "description": "ไปป์ไลน์การกรองจุดพื้นดินแบบหลายขั้นตอน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้า."
              },
              "block_size": {
                "label": "ขนาดบล็อก",
                "description": "ขนาดเซลล์กริดในหน่วยแกน xy."
              },
              "max_building_size": {
                "label": "ขนาดอาคารสูงสุด",
                "description": "ความกว้างอาคารสูงสุดที่คาดไว้ในหน่วยแกน xy."
              },
              "slope_threshold": {
                "label": "ค่าเกณฑ์ความลาดชัน",
                "description": "ความลาดชันขั้นต่ำของขอบในหน่วยองศา."
              },
              "elev_threshold": {
                "label": "ค่าเกณฑ์ระดับความสูง",
                "description": "ค่าเกณฑ์ระยะห่างของระดับความสูง."
              },
              "classify": {
                "label": "จำแนก",
                "description": "จำแนกจุดแทนการกรองจุด."
              },
              "preserve_classes": {
                "label": "คงคลาสเดิม",
                "description": "คงคลาสที่มีอยู่เดิมไว้ในโหมดจำแนก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "individual_tree_segmentation": {
            "name": "การแบ่งส่วนต้นไม้รายต้น",
            "description": "แบ่งส่วนจุดพืชพรรณเป็นเรือนยอดต้นไม้: การจัดกลุ่มแบบ mean-shift ด้วยแบนด์วิดท์ที่ปรับตัวตามเรขาคณิตของเรือนยอดเฉพาะที่ การกำหนดขอบเขตต้นไม้ระดับการสำรวจทรัพยากร",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "only_use_veg": {
                "label": "ใช้เฉพาะพืชพรรณ",
                "description": "หากเป็น true จะประมวลผลเฉพาะคลาสพืชพรรณ (ค่าเริ่มต้น true)."
              },
              "veg_classes": {
                "label": "คลาสพืชพรรณ",
                "description": "คลาสพืชพรรณในรูปข้อความที่คั่นด้วยเครื่องหมายจุลภาคหรืออาร์เรย์จำนวนเต็ม (ค่าเริ่มต้น '3,4,5')."
              },
              "min_height": {
                "label": "ความสูงต่ำสุด",
                "description": "ความสูงของจุดขั้นต่ำสำหรับการแบ่งเซกเมนต์ (ค่าเริ่มต้น 2.0)."
              },
              "max_height": {
                "label": "ความสูงสูงสุด",
                "description": "ความสูงของจุดสูงสุดที่เป็นตัวเลือก."
              },
              "bandwidth_min": {
                "label": "แบนด์วิดท์ต่ำสุด",
                "description": "แบนด์วิดท์แนวราบต่ำสุด (ค่าเริ่มต้น 1.0)."
              },
              "bandwidth_max": {
                "label": "แบนด์วิดท์สูงสุด",
                "description": "แบนด์วิดท์แนวราบสูงสุด (ค่าเริ่มต้น 6.0)."
              },
              "adaptive_bandwidth": {
                "label": "แบนด์วิดท์แบบปรับตัว",
                "description": "ประมาณแบนด์วิดท์แนวราบต่อหนึ่งจุดตั้งต้นจากเรขาคณิตของเรือนยอดเฉพาะที่ (ค่าเริ่มต้น true)."
              },
              "adaptive_neighbors": {
                "label": "จำนวนเพื่อนบ้านแบบปรับตัว",
                "description": "จำนวนเพื่อนบ้านที่ใช้สำหรับสเกลความหนาแน่นเฉพาะที่แบบปรับตัว (ค่าเริ่มต้น 24)."
              },
              "adaptive_sector_count": {
                "label": "จำนวนเซกเตอร์แบบปรับตัว",
                "description": "จำนวนเซกเตอร์เชิงมุมสำหรับการประมาณรัศมีเรือนยอดเฉพาะที่ (ค่าเริ่มต้น 8)."
              },
              "grid_acceleration": {
                "label": "เร่งความเร็วด้วยกริด",
                "description": "ใช้การประมาณด้วยกริดแบบ MeanShift++ เพื่อการอัปเดตโหมดที่เร็วขึ้น (ค่าเริ่มต้น false)."
              },
              "grid_cell_size": {
                "label": "ขนาดเซลล์กริด",
                "description": "ขนาดเซลล์กริดสำหรับการอัปเดตโหมดแบบเร่งความเร็ว (ค่าเริ่มต้น 0.5)."
              },
              "grid_refine_exact": {
                "label": "ปรับละเอียดกริดแบบแม่นยำ",
                "description": "เรียกใช้การปรับละเอียดด้วยเพื่อนบ้านแบบแม่นยำช่วงสั้นหลังการเร่งความเร็วด้วยกริด (ค่าเริ่มต้น false)."
              },
              "grid_refine_iterations": {
                "label": "จำนวนรอบปรับละเอียดกริด",
                "description": "ขีดจำกัดจำนวนรอบวนซ้ำของการปรับละเอียดแบบแม่นยำหลังการอัปเดตโหมดด้วยกริด (ค่าเริ่มต้น 2)."
              },
              "tile_size": {
                "label": "ขนาดไทล์",
                "description": "ขนาดไทล์ที่เป็นตัวเลือกสำหรับการจัดคิวจุดตั้งต้น; ค่า <=0 จะปิดการแบ่งไทล์ (ค่าเริ่มต้น 0.0)."
              },
              "tile_overlap": {
                "label": "การซ้อนทับไทล์",
                "description": "ความกว้างของการซ้อนทับไทล์สำหรับการจัดคิวจุดตั้งต้นแบบแบ่งไทล์ (ค่าเริ่มต้น 0.0)."
              },
              "vertical_bandwidth": {
                "label": "แบนด์วิดท์แนวดิ่ง",
                "description": "แบนด์วิดท์เคอร์เนลแนวดิ่ง (ค่าเริ่มต้น 5.0)."
              },
              "max_iterations": {
                "label": "จำนวนรอบวนซ้ำสูงสุด",
                "description": "จำนวนรอบวนซ้ำ mean-shift สูงสุดต่อหนึ่งจุดตั้งต้น (ค่าเริ่มต้น 30)."
              },
              "convergence_tol": {
                "label": "ค่าเผื่อการลู่เข้า",
                "description": "ค่าเผื่อการลู่เข้าสำหรับขนาดของการเลื่อน (ค่าเริ่มต้น 0.05)."
              },
              "min_cluster_points": {
                "label": "จำนวนจุดต่ำสุดต่อกลุ่ม",
                "description": "จำนวนจุดขั้นต่ำต่อคลัสเตอร์ต้นไม้ที่เก็บไว้ (ค่าเริ่มต้น 50)."
              },
              "mode_merge_dist": {
                "label": "ระยะทางรวมโหมด",
                "description": "ค่าเกณฑ์ระยะทางสำหรับการรวมโหมดที่ลู่เข้าแล้ว (ค่าเริ่มต้น 0.8)."
              },
              "threads": {
                "label": "จำนวนเธรด",
                "description": "การกำหนดจำนวนเธรด (0 ใช้พูล Rayon ค่าเริ่มต้น)."
              },
              "simd": {
                "label": "SIMD",
                "description": "เปิดใช้การคำนวณด้วย SIMD ในลูปการถ่วงน้ำหนัก (ค่าเริ่มต้น true)."
              },
              "output_id_mode": {
                "label": "โหมดรหัสผลลัพธ์",
                "description": "การเข้ารหัสรหัสเซกเมนต์ผลลัพธ์ {rgb|user_data|point_source_id|rgb+user_data|rgb+point_source_id} (ค่าเริ่มต้น rgb)."
              },
              "output_sidecar_csv": {
                "label": "ผลลัพธ์ CSV ประกอบ",
                "description": "หากเป็น true จะเขียนไฟล์ CSV point_index,segment_id ไว้ข้างผลลัพธ์ LiDAR."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มแบบกำหนดได้สำหรับการจับคู่สี (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_classify_subset": {
            "name": "จำแนกชุดย่อย LiDAR",
            "description": "ถ่ายโอนการจำแนก: ระบุจุดฐานที่ตรงกับตำแหน่งในกลุ่มจุดชุดย่อย ทำให้จำแนกใหม่เชิงพื้นที่ได้ตามชุดจุดเสริม",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "พาธ LiDAR ฐานหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "subset": {
                "label": "ชุดย่อย",
                "description": "พาธ LiDAR ชุดย่อยหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "subset_class_value": {
                "label": "ค่าคลาสของชุดย่อย",
                "description": "ค่าการจำแนกที่กำหนดให้จุดชุดย่อยที่จับคู่ได้ (0-18)."
              },
              "nonsubset_class_value": {
                "label": "ค่าคลาสนอกชุดย่อย",
                "description": "คลาสที่เป็นตัวเลือกสำหรับจุดที่ไม่ตรงกัน (0-18) ใช้ค่า 255 เพื่อคงคลาสที่มีอยู่เดิมไว้."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อการจับคู่เพื่อนบ้านใกล้สุดแบบ 3 มิติในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_elevation_slice": {
            "name": "แบ่งชั้นความสูง LiDAR",
            "description": "สกัดจุดตามแถบระดับความสูง: กรองหรือจำแนกใหม่ให้กับจุดภายในช่วง z แยกชั้นเฉพาะ (พื้นดิน ไม้พื้นล่าง เรือนยอด) หรือโซนระดับความสูง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "minz": {
                "label": "Z ต่ำสุด",
                "description": "ขอบล่างของชั้นระดับความสูง (ค่าเริ่มต้น -infinity)."
              },
              "maxz": {
                "label": "Z สูงสุด",
                "description": "ขอบบนของชั้นระดับความสูง (ค่าเริ่มต้น +infinity)."
              },
              "classify": {
                "label": "จำแนก",
                "description": "หากเป็น true จะจำแนกจุดใหม่แทนการกรองออก (ค่าเริ่มต้น false)."
              },
              "in_class_value": {
                "label": "ค่าคลาสเข้า",
                "description": "การจำแนกที่กำหนดให้จุดภายในชั้นเมื่อ classify=true (ค่าเริ่มต้น 2)."
              },
              "out_class_value": {
                "label": "ค่าคลาสออก",
                "description": "การจำแนกที่กำหนดให้จุดนอกชั้นเมื่อ classify=true (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_remove_outliers": {
            "name": "ลบค่าผิดปกติของ LiDAR",
            "description": "ตรวจหาจุดค่าผิดปกติผ่านส่วนเหลือของระดับความสูงเฉพาะที่: เปรียบเทียบจุดกับค่าเฉลี่ย/มัธยฐานของย่านใกล้เคียง แล้วติดแฟล็กความผิดปกติ ขจัดความผิดพลาดที่ไม่แน่นอนและสัญญาณรบกวน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการคำนวณค่าคงเหลือเฉพาะที่ (ค่าเริ่มต้น 2.0)."
              },
              "elev_diff": {
                "label": "ผลต่างระดับความสูง",
                "description": "ค่าเกณฑ์ค่าคงเหลือของระดับความสูงแบบสัมบูรณ์สำหรับการตรวจหาค่าผิดปกติ (ค่าเริ่มต้น 50.0)."
              },
              "use_median": {
                "label": "ใช้ค่ามัธยฐาน",
                "description": "ใช้ค่ามัธยฐานแทนค่าเฉลี่ยของระดับความสูงในย่านใกล้เคียง."
              },
              "classify": {
                "label": "จำแนก",
                "description": "หากเป็น true จะจำแนกค่าผิดปกติเป็นคลาส 7/18 แทนการลบออก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_segmentation": {
            "name": "การแบ่งส่วน LiDAR",
            "description": "แบ่งกลุ่มจุด: การปรับระนาบด้วย RANSAC + การขยายบริเวณสร้างองค์ประกอบที่เชื่อมต่อกัน กำหนดรหัสเซกเมนต์ที่จัดเก็บใน RGB การจัดกลุ่มจุดตามรูปร่าง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการขยายพื้นที่."
              },
              "num_iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำ RANSAC ที่ใช้ตรวจหาแบบจำลองระนาบเฉพาะที่."
              },
              "num_samples": {
                "label": "จำนวนตัวอย่าง",
                "description": "จำนวนจุดที่สุ่มตัวอย่างต่อการปรับพอดีแบบจำลอง RANSAC เฉพาะที่หนึ่งครั้ง."
              },
              "inlier_threshold": {
                "label": "ค่าเกณฑ์จุดในกลุ่ม",
                "description": "ค่าเกณฑ์ค่าคงเหลือที่ใช้จำแนกจุดว่าเป็นอินไลเออร์ของระนาบเฉพาะที่."
              },
              "acceptable_model_size": {
                "label": "ขนาดโมเดลที่ยอมรับได้",
                "description": "จำนวนอินไลเออร์ขั้นต่ำที่ต้องมีสำหรับแบบจำลองระนาบเฉพาะที่ที่ยอมรับได้."
              },
              "max_planar_slope": {
                "label": "ความลาดชันระนาบสูงสุด",
                "description": "ความลาดชันของระนาบสูงสุดที่ยอมรับได้ในหน่วยองศา."
              },
              "norm_diff_threshold": {
                "label": "ค่าเกณฑ์ผลต่างเวกเตอร์แนวฉาก",
                "description": "ผลต่างเชิงมุมสูงสุด (องศา) ระหว่างเวกเตอร์ตั้งฉากของระนาบข้างเคียงระหว่างการขยาย."
              },
              "max_z_diff": {
                "label": "ผลต่าง Z สูงสุด",
                "description": "ผลต่างค่า Z สูงสุดที่ยอมให้ได้ขณะขยายเซกเมนต์."
              },
              "classes": {
                "label": "คลาส",
                "description": "หากเป็น true จะไม่ข้ามขอบเขตคลาสขณะขยายเซกเมนต์."
              },
              "ground": {
                "label": "พื้นดิน",
                "description": "หากเป็น true จะกำหนด class=2 ให้เซกเมนต์ที่ใหญ่ที่สุด และ class=1 ให้จุดอื่นที่แบ่งเซกเมนต์แล้ว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_segmentation_based_filter": {
            "name": "ตัวกรองตามการแบ่งส่วน LiDAR",
            "description": "การกรองพื้นดินผ่านการแบ่งส่วนภูมิประเทศความสูงต่ำ: ขยายองค์ประกอบที่เชื่อมต่อกันจากบริเวณที่ราบเฉพาะที่ แยกภูมิประเทศออกจากพืชพรรณ การแยกพื้นดินที่ทนทาน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการขยายองค์ประกอบที่เชื่อมต่อกัน."
              },
              "norm_diff_threshold": {
                "label": "ค่าเกณฑ์ผลต่างเวกเตอร์แนวฉาก",
                "description": "พารามิเตอร์เพื่อความเข้ากันได้สำหรับการตรวจสอบมุมเวกเตอร์ตั้งฉากแบบเดิม."
              },
              "max_z_diff": {
                "label": "ผลต่าง Z สูงสุด",
                "description": "ผลต่างระดับความสูงสูงสุดสำหรับการขยายแบบเชื่อมต่อ."
              },
              "classify_points": {
                "label": "จำแนกจุด",
                "description": "หากเป็น true จะจำแนกจุดแทนการกรอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "modify_lidar": {
            "name": "แก้ไข LiDAR",
            "description": "ปรับปรุงแอตทริบิวต์ของจุดผ่านการกำหนดค่า: z=z+offset, class=reclassify_expr, intensity=scale_factor การแปลงระดับจุดที่ยืดหยุ่น",
            "params": {
              "statement": {
                "label": "คำสั่ง",
                "description": "นิพจน์การกำหนดค่าหนึ่งรายการขึ้นไปคั่นด้วยเครื่องหมายอัฒภาค เช่น 'z = z + 1; class = if(z > 5, 2, class)'."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือกสำหรับโหมดข้อมูลนำเข้าเดียว."
              }
            }
          },
          "normalize_lidar": {
            "name": "ปรับมาตรฐาน LiDAR",
            "description": "แปลงระดับความสูงสัมบูรณ์ของ LiDAR เป็นความสูงเหนือพื้นดิน: ลบ DTM (แรสเตอร์ DEM) ออกจากค่า z ของจุด สร้างกลุ่มจุดที่ปรับมาตรฐานแล้วสำหรับการวิเคราะห์โครงสร้าง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "dtm": {
                "label": "DTM",
                "description": "พาธแรสเตอร์ DTM ที่นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "no_negatives": {
                "label": "ไม่มีค่าติดลบ",
                "description": "ตรึงค่าความสูงที่ปรับมาตรฐานแล้วซึ่งติดลบให้เป็นศูนย์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "remove_duplicates": {
            "name": "ลบจุดซ้ำ",
            "description": "ขจัดจุดซ้ำในกลุ่มจุด: ขจัดจุดที่มี x/y เหมือนกัน (และ z ถ้าเลือก) จัดการการซ้อนทับจากการสแกนหลายครั้งและปรับปรุงประสิทธิภาพการประมวลผล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "include_z": {
                "label": "รวม Z",
                "description": "หากเป็น true การตรวจหาจุดซ้ำจะรวมค่า z ด้วย มิฉะนั้นจะใช้เฉพาะ x/y."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "flightline_overlap": {
            "name": "การซ้อนทับของแนวบิน",
            "description": "ตรวจหาการซ้อนทับของการเก็บข้อมูล: นับรหัส point-source ที่แตกต่างกันต่อเซลล์ การแสดงผลการซ้อนทับแบบกริดเพื่อประเมินความครอบคลุมของแนวบิน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิดซึ่งเป็นตัวเลือก หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียดของกริดที่ใช้นับจำนวนแนวบินที่แตกต่างกันในแต่ละเซลล์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_block_maximum": {
            "name": "ค่าสูงสุดรายบล็อกของ LiDAR",
            "description": "แรสเตอร์จากแอตทริบิวต์ LiDAR สูงสุด: ค่าเซลล์ = สัญญาณสะท้อนของจุดที่สูงที่สุด (ระดับความสูง ความเข้ม คลาส เป็นต้น) การสร้าง DSM การสกัดยอดเรือนยอด สถิติพัลส์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "interpolation_parameter": {
                "label": "พารามิเตอร์การประมาณค่า",
                "description": "แอตทริบิวต์ของจุด (elevation/intensity/class/return_number/number_of_returns/scan_angle/time/rgb/user_data)."
              },
              "returns_included": {
                "label": "การสะท้อนกลับที่รวม",
                "description": "โหมดการกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_block_minimum": {
            "name": "ค่าต่ำสุดรายบล็อกของ LiDAR",
            "description": "แรสเตอร์จากแอตทริบิวต์ LiDAR ต่ำสุด: ค่าเซลล์ = สัญญาณสะท้อนของจุดที่ต่ำที่สุด (ระดับความสูง ความเข้ม คลาส) การสร้าง DEM การสกัดพื้นผิวพื้นดิน การกำหนดเส้นฐานภูมิประเทศ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "interpolation_parameter": {
                "label": "พารามิเตอร์การประมาณค่า",
                "description": "แอตทริบิวต์ของจุด (elevation/intensity/class/return_number/number_of_returns/scan_angle/time/rgb/user_data)."
              },
              "returns_included": {
                "label": "การสะท้อนกลับที่รวม",
                "description": "โหมดการกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_construct_vector_tin": {
            "name": "สร้าง TIN เวกเตอร์จาก LiDAR",
            "description": "สร้างเมช 3 มิติ: การสร้างสามเหลี่ยม Delaunay จากจุดที่กรองแล้ว ส่งออกเป็นเลเยอร์โพลิกอนเวกเตอร์ สำหรับการแทนพื้นผิวและการวิเคราะห์ภูมิประเทศ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิดซึ่งเป็นตัวเลือก หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ที่เป็นตัวเลือก; ในโหมดชุด ข้อมูลนำเข้าแต่ละรายการจะเขียนไฟล์ _tin.shp คู่กัน."
              },
              "returns": {
                "label": "การสะท้อนกลับ",
                "description": "ตัวกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "ค่าคลาสที่ต้องการยกเว้นซึ่งเป็นตัวเลือก."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ระดับความสูงต่ำสุดของจุดที่อนุญาต."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ระดับความสูงสูงสุดของจุดที่อนุญาต."
              },
              "max_triangle_edge_length": {
                "label": "ความยาวขอบสามเหลี่ยมสูงสุด",
                "description": "ความยาวขอบสามเหลี่ยมสูงสุดที่อนุญาตซึ่งเป็นตัวเลือก."
              }
            }
          },
          "lidar_contour": {
            "name": "เส้นชั้นความสูงจาก LiDAR",
            "description": "สกัดเส้นชั้นความสูงแบบเวกเตอร์: การสร้างเส้นชั้นความสูงแบบอิง TIN พร้อมการประมาณค่าในช่วงสำหรับระดับความสูง ความเข้ม และเวลา ช่วงชั้นและการกรองความยาวขอบที่กำหนดได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิดซึ่งเป็นตัวเลือก หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ที่เป็นตัวเลือก (.shp/.geojson) ในโหมดชุด ข้อมูลนำเข้าแต่ละรายการจะเขียนไฟล์ .shp คู่กัน."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ช่วงห่างเส้นชั้นความสูง (ต้องมากกว่า 0)."
              },
              "base_contour": {
                "label": "เส้นชั้นความสูงฐาน",
                "description": "ค่าออฟเซ็ตของเส้นชั้นความสูงฐาน."
              },
              "smooth": {
                "label": "ทำให้เรียบ",
                "description": "พารามิเตอร์การทำให้เรียบเพื่อความเข้ากันได้ (รับไว้เพื่อความสอดคล้องของรูปแบบการเรียกใช้)."
              },
              "interpolation_parameter": {
                "label": "พารามิเตอร์การประมาณค่า",
                "description": "หนึ่งใน elevation, intensity, scan_angle, time หรือ user_data."
              },
              "returns": {
                "label": "การสะท้อนกลับ",
                "description": "ตัวกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "ค่าคลาสที่ต้องการยกเว้นซึ่งเป็นตัวเลือก."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ระดับความสูงต่ำสุดของจุดที่อนุญาต."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ระดับความสูงสูงสุดของจุดที่อนุญาต."
              },
              "max_triangle_edge_length": {
                "label": "ความยาวขอบสามเหลี่ยมสูงสุด",
                "description": "ความยาวขอบสามเหลี่ยมสูงสุดที่เป็นตัวเลือก; สามเหลี่ยมที่ยาวกว่านี้จะถูกข้าม."
              }
            }
          },
          "lidar_digital_surface_model": {
            "name": "แบบจำลองพื้นผิวเชิงเลขจาก LiDAR",
            "description": "สร้าง DSM จากสัญญาณสะท้อนพื้นผิวด้านบนของ LiDAR ผ่าน TIN: ใช้จุดที่สูงที่สุดเฉพาะที่ที่เป็นตัวเลือกภายในรัศมี แล้วสร้างสามเหลี่ยม เพื่อแทนเรือนยอดพืชพรรณและยอดของลักษณะต่าง ๆ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการเลือกจุดที่อาจเป็นพื้นผิวด้านบน."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_triangle_edge_length": {
                "label": "ความยาวขอบสามเหลี่ยมสูงสุด",
                "description": "ความยาวขอบสามเหลี่ยมสูงสุดที่เป็นตัวเลือกเพื่อกดหน้าสามเหลี่ยมที่มีขอบยาว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_hex_bin": {
            "name": "กริดหกเหลี่ยม LiDAR",
            "description": "รวมจุดเป็นหกเหลี่ยม: กริดการจัดถังพร้อมสรุปรายเซลล์ (จำนวน ค่าเฉลี่ย z ความเข้ม) การสุ่มตัวอย่างแบบสม่ำเสมอและการจัดถังเชิงสถิติ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของหกเหลี่ยม (ระยะระหว่างด้านตรงข้าม)."
              },
              "orientation": {
                "label": "แนวการวางตัว",
                "description": "ทิศทางการวางกริด: h (ปลายแหลมขึ้น) หรือ v (ด้านแบนขึ้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_hillshade": {
            "name": "แรเงาภูมิประเทศจาก LiDAR",
            "description": "เรนเดอร์พื้นผิว LiDAR ผ่านการแรเงาภูมิประเทศ: คำนวณเวกเตอร์ตั้งฉากพื้นผิวรายจุดจากการปรับระนาบเฉพาะที่ แล้วแรเงาตามมุมการส่องสว่าง จัดเก็บเป็น RGB สำหรับการแสดงผล 3 มิติ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการประมาณเวกเตอร์ตั้งฉากเฉพาะที่ ค่า <= 0 จะใช้ระยะห่างเล็กน้อยที่ประมาณได้."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมอะซิมุทของการส่องสว่างในหน่วยองศา."
              },
              "altitude": {
                "label": "มุมเงย",
                "description": "มุมเงยของการส่องสว่างในหน่วยองศา."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_idw_interpolation": {
            "name": "การประมาณค่าแบบ IDW ของ LiDAR",
            "description": "การสร้างกริด LiDAR แบบถ่วงน้ำหนักด้วยระยะทาง: กำหนดค่าเซลล์จากค่าเฉลี่ยถ่วงน้ำหนักของจุดโดยรอบ (กำลังของระยะทางผกผัน) ให้พื้นผิวที่เรียบ ควบคุมผ่านพารามิเตอร์เลขชี้กำลัง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "เลขชี้กำลัง IDW (กำลัง)."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียง; ค่า <=0 จะสลับไปใช้โหมดเพื่อนบ้านใกล้สุด k ตัว."
              },
              "interpolation_parameter": {
                "label": "พารามิเตอร์การประมาณค่า",
                "description": "แอตทริบิวต์ของจุดที่จะประมาณค่า (elevation, intensity, class, return_number, number_of_returns, scan_angle, time, rgb, user_data)."
              },
              "returns_included": {
                "label": "การสะท้อนกลับที่รวม",
                "description": "โหมดการกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "min_points": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "จำนวนจุดขั้นต่ำสำหรับการใช้โหมดเพื่อนบ้านใกล้สุด k ตัวเป็นทางเลือกสำรอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_nearest_neighbour_gridding": {
            "name": "การสร้างกริดแบบเพื่อนบ้านใกล้ที่สุดของ LiDAR",
            "description": "การสร้างกริด LiDAR แบบรวดเร็ว: กำหนดค่าเซลล์จากจุดที่ใกล้ที่สุดภายในรัศมีค้นหา มีความเอนเอียงจากการประมาณค่าในช่วงน้อยที่สุด มีประสิทธิภาพสำหรับกลุ่มจุดความหนาแน่นสูง สร้าง DSM/DEM ได้อย่างรวดเร็ว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "ระยะทางถึงเพื่อนบ้านใกล้สุดสูงสุด; เซลล์ที่ไกลกว่านี้จะกลายเป็น NoData."
              },
              "interpolation_parameter": {
                "label": "พารามิเตอร์การประมาณค่า",
                "description": "แอตทริบิวต์ของจุดที่จะประมาณค่า (elevation, intensity, class, return_number, number_of_returns, scan_angle, time, rgb, user_data)."
              },
              "returns_included": {
                "label": "การสะท้อนกลับที่รวม",
                "description": "โหมดการกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_radial_basis_function_interpolation": {
            "name": "การประมาณค่าแบบ Radial Basis Function ของ LiDAR",
            "description": "พื้นผิว LiDAR ที่เรียบผ่าน RBF: ฟังก์ชันพื้นฐานแบบรัศมีจับความโค้งเฉพาะที่และภูมิประเทศขนาดเล็ก การสร้างกริดคุณภาพสูงที่มีอนุพันธ์ต่อเนื่องข้ามขอบเขต",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "num_points": {
                "label": "จำนวนจุด",
                "description": "จำนวนเพื่อนบ้านขั้นต่ำที่ใช้ในการประมาณค่าเฉพาะที่."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียง; ค่า <=0 จะใช้เฉพาะโหมดเพื่อนบ้านใกล้สุด k ตัว."
              },
              "func_type": {
                "label": "ชนิดฟังก์ชัน",
                "description": "ชนิดฟังก์ชันฐาน RBF (thinplatespline, polyharmonic, gaussian, multiquadric, inversemultiquadric)."
              },
              "poly_order": {
                "label": "อันดับพหุนาม",
                "description": "อันดับพหุนามของแนวโน้มที่ใช้ในการแก้ไขเฉพาะที่ (none, constant, quadratic)."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "พารามิเตอร์รูปร่าง/เลขชี้กำลังของฟังก์ชันฐาน ขึ้นอยู่กับ func_type."
              },
              "interpolation_parameter": {
                "label": "พารามิเตอร์การประมาณค่า",
                "description": "แอตทริบิวต์ของจุดที่จะประมาณค่า (elevation, intensity, class, return_number, number_of_returns, scan_angle, time, rgb, user_data)."
              },
              "returns_included": {
                "label": "การสะท้อนกลับที่รวม",
                "description": "โหมดการกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_sibson_interpolation": {
            "name": "การประมาณค่าแบบ Sibson ของ LiDAR",
            "description": "การสร้างกริด LiDAR แบบเพื่อนบ้านธรรมชาติ: การประมาณค่าในช่วงแบบอิง Voronoi โดยใช้น้ำหนักเพื่อนบ้านธรรมชาติ ให้พื้นผิวที่เรียบและดูเป็นธรรมชาติโดยไม่มีสิ่งแปลกปลอมของความลาดชันที่ตำแหน่งจุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "interpolation_parameter": {
                "label": "พารามิเตอร์การประมาณค่า",
                "description": "แอตทริบิวต์ของจุดที่จะประมาณค่า (elevation, intensity, class, return_number, number_of_returns, scan_angle, time, rgb, user_data)."
              },
              "returns_included": {
                "label": "การสะท้อนกลับที่รวม",
                "description": "โหมดการกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_thin": {
            "name": "ลดความหนาแน่น LiDAR",
            "description": "ลดความหนาแน่นของกลุ่มจุด: เก็บ ≤1 จุดต่อเซลล์กริดโดยใช้กลยุทธ์ first/last/lowest/highest/nearest ลดพื้นที่จัดเก็บพร้อมคงความครอบคลุมและความซับซ้อนของภูมิประเทศ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์กริดสำหรับการลดความหนาแน่นของจุด (ค่าเริ่มต้น 1.0)."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีเลือกจุดในแต่ละเซลล์: first, last, lowest, highest, nearest (ค่าเริ่มต้น 'first')."
              },
              "save_filtered": {
                "label": "บันทึกจุดที่ถูกกรอง",
                "description": "หากเป็น true จะเขียนจุดที่ถูกกรองออกด้วย และคืนค่าตำแหน่งไฟล์ใน outputs.filtered_path."
              },
              "filtered_output": {
                "label": "ผลลัพธ์ที่ถูกกรอง",
                "description": "พาธผลลัพธ์ที่เป็นตัวเลือกสำหรับจุดที่ถูกกรองออก (โหมดข้อมูลนำเข้าเดียว)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_thin_high_density": {
            "name": "ลดความหนาแน่น LiDAR ในบริเวณหนาแน่นสูง",
            "description": "การลดความหนาแน่นแบบปรับตัว: ลดจำนวนจุดในโซนที่หนาแน่นเกินไปพร้อมคงบริเวณที่เบาบาง ทำให้การสุ่มตัวอย่างเท่าเทียมกันข้ามรูปแบบการซ้อนทับของแนวบินที่แปรผัน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "density": {
                "label": "ความหนาแน่น",
                "description": "ค่าเกณฑ์ความหนาแน่นของจุดเป้าหมายในหน่วยจุดต่อตารางหน่วย."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียดของกริดที่ใช้ในการแบ่งช่วง x/y และ z (ค่าเริ่มต้น 1.0)."
              },
              "save_filtered": {
                "label": "บันทึกจุดที่ถูกกรอง",
                "description": "หากเป็น true จะเขียนจุดที่ถูกกรองออกและคืนค่า outputs.filtered_path."
              },
              "filtered_output": {
                "label": "ผลลัพธ์ที่ถูกกรอง",
                "description": "พาธผลลัพธ์ที่เป็นตัวเลือกสำหรับจุดที่ถูกกรองออกในโหมดข้อมูลนำเข้าเดียว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_tile_footprint": {
            "name": "ขอบเขตไทล์ LiDAR",
            "description": "สร้างขอบเขต (footprint): กรอบสี่เหลี่ยมที่จัดแนวตามแกนหรือคอนเวกซ์ฮัลล์ต่อกลุ่มจุด ผลลัพธ์เป็นโพลิกอนเวกเตอร์สำหรับการทำดัชนีเชิงพื้นที่และแคตตาล็อกข้อมูล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิดซึ่งเป็นตัวเลือก หากไม่ระบุ จะทำงานกับไฟล์ LiDAR ทั้งหมดในโฟลเดอร์ปัจจุบัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ที่เป็นตัวเลือกสำหรับขอบเขตพื้นที่."
              },
              "output_hulls": {
                "label": "ผลลัพธ์ฮัลล์",
                "description": "หากเป็น true จะเขียนขอบเขตพื้นที่แบบคอนเวกซ์ฮัลล์ มิฉะนั้นจะเขียนกรอบสี่เหลี่ยมที่ขนานกับแกน."
              }
            }
          },
          "lidar_tin_gridding": {
            "name": "การสร้างกริดแบบ TIN ของ LiDAR",
            "description": "การประมาณค่าในช่วง LiDAR แบบแม่นตรงผ่าน TIN: สร้างสามเหลี่ยม Delaunay จากจุด แล้วประมาณค่าเซลล์จากระนาบสามเหลี่ยม คำนึงถึงความสูงของจุด เหมาะอย่างยิ่งสำหรับความครอบคลุมที่ไม่สม่ำเสมอ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "max_triangle_edge_length": {
                "label": "ความยาวขอบสามเหลี่ยมสูงสุด",
                "description": "ความยาวขอบสามเหลี่ยมสูงสุดที่เป็นตัวเลือกเพื่อกดหน้าสามเหลี่ยมที่มีขอบยาว."
              },
              "interpolation_parameter": {
                "label": "พารามิเตอร์การประมาณค่า",
                "description": "แอตทริบิวต์ของจุดที่จะประมาณค่า (elevation, intensity, class, return_number, number_of_returns, scan_angle, time, rgb, user_data)."
              },
              "returns_included": {
                "label": "การสะท้อนกลับที่รวม",
                "description": "โหมดการกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              },
              "triangulation_backend": {
                "label": "แบ็กเอนด์การสร้างสามเหลี่ยม",
                "description": "การเลือกแบ็กเอนด์การสร้างสามเหลี่ยม: auto, delaunator หรือ wbtopology."
              },
              "triangulation_auto_threshold": {
                "label": "ค่าเกณฑ์อัตโนมัติการสร้างสามเหลี่ยม",
                "description": "เมื่อ backend=auto จะสลับไปใช้ wbtopology ที่จำนวนตัวอย่างนี้ (ค่าเริ่มต้นคือปิดใช้งาน; ต้องระบุอย่างชัดเจนเพื่อเปิดใช้งาน)."
              },
              "triangulation_epsilon": {
                "label": "Epsilon การสร้างสามเหลี่ยม",
                "description": "เอปไซลอนที่ใช้ในการจัดการค่าซ้ำของแบ็กเอนด์ wbtopology (ค่าเริ่มต้น 1e-12)."
              },
              "triangulation_thin_cell_size": {
                "label": "ขนาดเซลล์ลดความหนาแน่นการสร้างสามเหลี่ยม",
                "description": "ขนาดเซลล์สำหรับการลดความหนาแน่นล่วงหน้าของตัวอย่างการสร้างสามเหลี่ยมซึ่งเป็นตัวเลือก; ค่า > 0 จะเปิดใช้งานการลดความหนาแน่น และ 0 จะปิดใช้งาน."
              },
              "triangulation_thin_method": {
                "label": "วิธีลดความหนาแน่นการสร้างสามเหลี่ยม",
                "description": "วิธีเลือกจุดตัวแทนสำหรับการลดความหนาแน่น: nearest_center, min_value หรือ max_value."
              }
            }
          },
          "colourize_based_on_class": {
            "name": "ระบายสีตามคลาส",
            "description": "กำหนดสีจุดตามคลาส: สีมาตรฐาน ASPRS (เขียว=พืชพรรณ น้ำตาล=พื้นดิน เทา=อาคาร เป็นต้น) ผสมกับความเข้มเพื่อคอนทราสต์ การแสดงผลการจำแนก",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "intensity_blending_amount": {
                "label": "ปริมาณการผสมความเข้ม",
                "description": "ร้อยละการผสม [0,100] ระหว่างสีของคลาสกับความเข้ม."
              },
              "clr_str": {
                "label": "สตริงสี",
                "description": "การกำหนดสีของคลาสทับค่าเดิมซึ่งเป็นตัวเลือก เช่น '2:(184,167,108);5:#9ab86c'."
              },
              "use_unique_clrs_for_buildings": {
                "label": "ใช้สีเฉพาะสำหรับอาคาร",
                "description": "หากเป็น true จะกำหนดสีที่ไม่ซ้ำกันให้คลัสเตอร์อาคารที่เชื่อมต่อกัน."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงที่ใช้ในการลงสีคลัสเตอร์อาคาร."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "colourize_based_on_point_returns": {
            "name": "ระบายสีตามการสะท้อนกลับของจุด",
            "description": "กำหนดสีจุดตามลำดับสัญญาณสะท้อน: สัญญาณสะท้อนแรก/ระหว่างกลาง/สุดท้ายใช้สีต่างกัน การแสดงผลโครงสร้างพัลส์หลายสัญญาณสะท้อนเพื่อตรวจสอบความถูกต้องของการประมวลผล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "intensity_blending_amount": {
                "label": "ปริมาณการผสมความเข้ม",
                "description": "ร้อยละการผสม [0,100] ระหว่างสีของรีเทิร์นกับความเข้ม."
              },
              "only_ret_colour": {
                "label": "สีการสะท้อนกลับเดียว",
                "description": "สีสำหรับจุดที่มีรีเทิร์นเดียว."
              },
              "first_ret_colour": {
                "label": "สีการสะท้อนกลับแรก",
                "description": "สีสำหรับจุดรีเทิร์นแรกในพัลส์ที่มีหลายรีเทิร์น."
              },
              "intermediate_ret_colour": {
                "label": "สีการสะท้อนกลับกลาง",
                "description": "สีสำหรับจุดรีเทิร์นระหว่างกลาง."
              },
              "last_ret_colour": {
                "label": "สีการสะท้อนกลับสุดท้าย",
                "description": "สีสำหรับจุดรีเทิร์นสุดท้ายในพัลส์ที่มีหลายรีเทิร์น."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "find_flightline_edge_points": {
            "name": "ค้นหาจุดขอบแนวบิน",
            "description": "กรองจุดที่ขอบแนวบิน: สกัดเฉพาะจุดที่ขอบเขตแนวกวาดของการเก็บข้อมูล การประกันคุณภาพสำหรับการซ้อนทับของแถบและผลกระทบที่ขอบ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "individual_tree_detection": {
            "name": "การตรวจจับต้นไม้รายต้น",
            "description": "ระบุยอดต้นไม้: จุดสูงสุดเฉพาะที่ในกลุ่มจุดที่กรองตามความสูงด้วยรัศมีค้นหาแบบปรับตัว ส่งคืนเชปไฟล์จุดแบบเวกเตอร์ของตำแหน่งลำต้นที่เป็นไปได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "min_search_radius": {
                "label": "รัศมีค้นหาต่ำสุด",
                "description": "รัศมีค้นหาต่ำสุดในหน่วยแผนที่ (ค่าเริ่มต้น 1.0)."
              },
              "min_height": {
                "label": "ความสูงต่ำสุด",
                "description": "ความสูงต่ำสุดที่จะนำจุดมาพิจารณา (ค่าเริ่มต้น 0.0)."
              },
              "max_search_radius": {
                "label": "รัศมีค้นหาสูงสุด",
                "description": "รัศมีค้นหาสูงสุด; หากไม่กำหนดจะใช้ min_search_radius."
              },
              "max_height": {
                "label": "ความสูงสูงสุด",
                "description": "ความสูงสูงสุด; หากไม่กำหนดจะใช้ min_height."
              },
              "only_use_veg": {
                "label": "ใช้เฉพาะพืชพรรณ",
                "description": "หากเป็น true จะประมวลผลเฉพาะคลาสพืชพรรณ (ค่าเริ่มต้น true)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ shapefile เวกเตอร์ผลลัพธ์."
              }
            }
          },
          "lidar_eigenvalue_features": {
            "name": "คุณลักษณะค่าไอเกนของ LiDAR",
            "description": "คำนวณคุณลักษณะ PCA: ค่าลักษณะเฉพาะ/เวกเตอร์ลักษณะเฉพาะจากย่านใกล้เคียง ตัวอธิบายรูปร่าง (ความเป็นระนาบ ความเป็นเส้นตรง ความแปรปรวนของความสูง) สำหรับการวิเคราะห์กลุ่มจุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิดซึ่งเป็นตัวเลือก หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "num_neighbours": {
                "label": "จำนวนเพื่อนบ้าน",
                "description": "ขนาดย่านใกล้เคียงเป้าหมายที่เป็นตัวเลือก (ไม่นับตัวจุดเอง)."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีค้นหาสูงสุดสำหรับการเก็บย่านใกล้เคียงซึ่งเป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ .eigen ผลลัพธ์ที่เป็นตัวเลือกในโหมดข้อมูลนำเข้าเดียว."
              }
            }
          },
          "lidar_histogram": {
            "name": "ฮิสโทแกรม LiDAR",
            "description": "คำนวณการกระจายของแอตทริบิวต์: ฮิสโทแกรมความถี่สำหรับระดับความสูง ความเข้ม มุมสแกน และคลาส ตัดเปอร์เซ็นไทล์เพื่อกดค่าผิดปกติ แสดงผลเป็น HTML",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ HTML ผลลัพธ์ที่เป็นตัวเลือกสำหรับรายงานฮิสโทแกรม."
              },
              "parameter": {
                "label": "พารามิเตอร์",
                "description": "หนึ่งใน elevation, intensity, scan angle, class หรือ time."
              },
              "clip_percent": {
                "label": "ร้อยละการตัด",
                "description": "ปริมาณการตัดเปอร์เซ็นไทล์ในช่วง [0,50] สำหรับหางล่าง/หางบน."
              }
            }
          },
          "lidar_info": {
            "name": "ข้อมูล LiDAR",
            "description": "สร้างรายงานสรุปเมทาดาทา: จำนวนจุด ขอบเขต ช่วงความเข้ม ฮิสโทแกรมคลาส การกระจายของสัญญาณสะท้อน ผลลัพธ์เป็น HTML/ข้อความสำหรับการจัดทำเอกสารข้อมูล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธรายงานผลลัพธ์ที่เป็นตัวเลือก (.html/.txt)."
              },
              "show_point_density": {
                "label": "แสดงความหนาแน่นจุด",
                "description": "หากเป็น true จะรวมเมตริกความหนาแน่นของจุดโดยประมาณในกรอบขอบเขต."
              },
              "show_vlrs": {
                "label": "แสดง VLR",
                "description": "แฟล็กเพื่อความเข้ากันได้; สงวนไว้สำหรับผลลัพธ์เมทาดาทาแบบละเอียดในอนาคต."
              },
              "show_geokeys": {
                "label": "แสดง GeoKey",
                "description": "แฟล็กเพื่อความเข้ากันได้; สงวนไว้สำหรับผลลัพธ์คีย์ CRS แบบละเอียดในอนาคต."
              }
            }
          },
          "lidar_kappa": {
            "name": "ค่า Kappa ของ LiDAR",
            "description": "คำนวณรายงานความสอดคล้อง kappa ระหว่างกลุ่มจุด LiDAR ที่จำแนกแล้วสองชุด และเขียนแรสเตอร์ความสอดคล้องของคลาส",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธ LiDAR ที่จำแนกแล้วหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธ LiDAR อ้างอิงหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "report": {
                "label": "รายงาน",
                "description": "พาธรายงาน HTML ผลลัพธ์."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียดของกริดสำหรับผลลัพธ์ความสอดคล้องของคลาสเชิงพื้นที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              },
              "output_class_accuracy": {
                "label": "ผลลัพธ์ความถูกต้องรายคลาส",
                "description": "แฟล็กเพื่อความเข้ากันได้ที่คงไว้เพื่อความสอดคล้องกับรุ่นเดิม แรสเตอร์ความสอดคล้องจะถูกสร้างขึ้นเสมอ."
              }
            }
          },
          "lidar_point_density": {
            "name": "ความหนาแน่นจุด LiDAR",
            "description": "ทำแผนที่ความเข้มของการสุ่มตัวอย่าง LiDAR: จำนวนจุดต่อหน่วยพื้นที่ (จำนวนภายในรัศมีต่อเซลล์) การประเมินคุณภาพข้อมูล การวิเคราะห์ความครอบคลุม การแสดงผลรูปแบบการเก็บข้อมูล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดเซลล์ผลลัพธ์."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการนับจุด."
              },
              "returns_included": {
                "label": "การสะท้อนกลับที่รวม",
                "description": "โหมดการกรองรีเทิร์น: all, first หรือ last."
              },
              "excluded_classes": {
                "label": "คลาสที่ยกเว้น",
                "description": "คลาสที่ต้องการยกเว้น (อาร์เรย์หรือข้อความที่คั่นด้วยเครื่องหมายจุลภาค)."
              },
              "min_elev": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ค่าเกณฑ์ระดับความสูงต่ำสุดที่ใช้ในการกรองการรวมจุด."
              },
              "max_elev": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ค่าเกณฑ์ระดับความสูงสูงสุดที่ใช้ในการกรองการรวมจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "lidar_point_return_analysis": {
            "name": "การวิเคราะห์การสะท้อนกลับของจุด LiDAR",
            "description": "เครื่องมือประกันคุณภาพ: ตรวจสอบความถูกต้องของลำดับสัญญาณสะท้อน (ความสอดคล้องของ multi/first/last) สร้างรายงาน + ผลลัพธ์ที่จำแนกซึ่งระบุความผิดปกติของสัญญาณสะท้อน การตรวจสอบความสมบูรณ์ของข้อมูล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "create_output": {
                "label": "สร้างผลลัพธ์",
                "description": "หากเป็น true จะเขียนผลลัพธ์ QC ของ LiDAR ที่จำแนกแล้ว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ LiDAR ที่เป็นตัวเลือกซึ่งใช้เมื่อ create_output=true."
              },
              "report": {
                "label": "รายงาน",
                "description": "พาธผลลัพธ์รายงานข้อความที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_point_stats": {
            "name": "สถิติจุด LiDAR",
            "description": "สร้างกริดสถิติแรสเตอร์: จำนวนจุด จำนวนพัลส์ จำนวนจุดเฉลี่ย/พัลส์ ช่วง z/ความเข้ม คลาสที่เด่นต่อเซลล์ การวิเคราะห์หลายผลลัพธ์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิดซึ่งเป็นตัวเลือก หากไม่ระบุ จะทำงานในโหมดชุดกับไฟล์ LiDAR ในโฟลเดอร์ปัจจุบัน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียดของกริดผลลัพธ์."
              },
              "num_points": {
                "label": "จำนวนจุด",
                "description": "สร้างแรสเตอร์จำนวนจุด."
              },
              "num_pulses": {
                "label": "จำนวนพัลส์",
                "description": "สร้างแรสเตอร์จำนวนพัลส์ของรีเทิร์นช่วงต้น."
              },
              "avg_points_per_pulse": {
                "label": "จำนวนจุดเฉลี่ยต่อพัลส์",
                "description": "สร้างแรสเตอร์ค่าเฉลี่ยจำนวนจุดต่อพัลส์."
              },
              "z_range": {
                "label": "พิสัย Z",
                "description": "สร้างแรสเตอร์ช่วงระดับความสูง."
              },
              "intensity_range": {
                "label": "พิสัยความเข้ม",
                "description": "สร้างแรสเตอร์ช่วงความเข้ม."
              },
              "predominant_class": {
                "label": "คลาสเด่น",
                "description": "สร้างแรสเตอร์คลาสที่พบมากที่สุด."
              },
              "output_directory": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ผลลัพธ์ที่เป็นตัวเลือกสำหรับแรสเตอร์ที่สร้างขึ้น."
              }
            }
          },
          "lidar_ransac_planes": {
            "name": "ระนาบ RANSAC จาก LiDAR",
            "description": "ระบุจุด LiDAR ที่เป็นระนาบเฉพาะที่โดยใช้การปรับระนาบด้วย RANSAC ในย่านใกล้เคียง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการปรับพอดีระนาบเฉพาะที่."
              },
              "num_iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำ RANSAC ต่อหนึ่งจุด."
              },
              "num_samples": {
                "label": "จำนวนตัวอย่าง",
                "description": "จำนวนจุดเพื่อนบ้านที่สุ่มตัวอย่างต่อหนึ่งรอบวนซ้ำ RANSAC."
              },
              "inlier_threshold": {
                "label": "ค่าเกณฑ์จุดในกลุ่ม",
                "description": "ค่าคงเหลือจากจุดถึงระนาบสูงสุดสำหรับอินไลเออร์."
              },
              "acceptable_model_size": {
                "label": "ขนาดโมเดลที่ยอมรับได้",
                "description": "จำนวนจุดอินไลเออร์ขั้นต่ำที่ต้องมีสำหรับแบบจำลองระนาบ."
              },
              "max_planar_slope": {
                "label": "ความลาดชันระนาบสูงสุด",
                "description": "ความลาดชันของระนาบสูงสุดที่ยอมรับได้ในหน่วยองศา."
              },
              "classify": {
                "label": "จำแนก",
                "description": "หากเป็น true จะจำแนกจุดว่าเป็นระนาบหรือไม่เป็นระนาบแทนการกรอง."
              },
              "only_last_returns": {
                "label": "เฉพาะการสะท้อนกลับสุดท้าย",
                "description": "หากเป็น true จะใช้เฉพาะรีเทิร์นช่วงท้ายในการปรับพอดีแบบจำลอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "lidar_rooftop_analysis": {
            "name": "การวิเคราะห์หลังคาจาก LiDAR",
            "description": "ระบุส่วนหลังคาที่เป็นระนาบภายในรอยเท้าอาคาร และส่งออกโพลิกอนของส่วนต่าง ๆ พร้อมแอตทริบิวต์หลังคา",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "building_footprints": {
                "label": "ขอบเขตอาคาร",
                "description": "เลเยอร์โพลิกอนขอบเขตอาคาร."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการวิเคราะห์หลังคาเฉพาะที่."
              },
              "inlier_threshold": {
                "label": "ค่าเกณฑ์จุดในกลุ่ม",
                "description": "ค่าคงเหลือสูงสุดสำหรับการรองรับระนาบเฉพาะที่."
              },
              "acceptable_model_size": {
                "label": "ขนาดโมเดลที่ยอมรับได้",
                "description": "ขนาดเซกเมนต์ต่ำสุด."
              },
              "max_planar_slope": {
                "label": "ความลาดชันระนาบสูงสุด",
                "description": "ความลาดชันสูงสุดของหน้าหลังคาในหน่วยองศา."
              },
              "norm_diff_threshold": {
                "label": "ค่าเกณฑ์ผลต่างเวกเตอร์แนวฉาก",
                "description": "ผลต่างเชิงมุมสูงสุดระหว่างเวกเตอร์ตั้งฉากข้างเคียงในหน่วยองศา."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมอะซิมุทของการส่องสว่างสำหรับการให้แสงหน้าสามเหลี่ยมแบบ hillshade."
              },
              "altitude": {
                "label": "มุมเงย",
                "description": "มุมเงยของการส่องสว่างสำหรับการให้แสงหน้าสามเหลี่ยมแบบ hillshade."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "normal_vectors": {
            "name": "เวกเตอร์แนวฉาก",
            "description": "คำนวณเวกเตอร์ตั้งฉากพื้นผิวรายจุด: PCA บนย่านใกล้เคียงเฉพาะที่ประมาณการวางแนวของระนาบ เวกเตอร์ตั้งฉากจัดเก็บในระเบียนจุดและการแสดงผล RGB",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ LiDAR ที่นำเข้าหรืออ็อบเจกต์ LiDAR แบบมีชนิด."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีย่านใกล้เคียงสำหรับการปรับพอดีระนาบเฉพาะที่ ค่า <= 0 จะใช้ระยะห่างเล็กน้อยที่ประมาณได้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "snap_events_to_routes": {
            "name": "สแนปเหตุการณ์ไปยังเส้นทาง",
            "description": "สแนปจุดเหตุการณ์ไปยังเส้นทาง และรายงานค่าวินิจฉัยค่าวัด/ระยะเยื้องบนเส้นทาง",
            "params": {
              "routes": {
                "label": "เส้นทาง",
                "description": "เลเยอร์เส้นเส้นทางที่นำเข้า."
              },
              "events": {
                "label": "เหตุการณ์",
                "description": "เลเยอร์จุดเหตุการณ์ที่นำเข้า."
              },
              "max_offset_distance": {
                "label": "ระยะทางออฟเซ็ตสูงสุด",
                "description": "ระยะออฟเซ็ตจากเส้นทางสูงสุดในหน่วยแผนที่ซึ่งเป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดเหตุการณ์ที่สแนปแล้วเป็นผลลัพธ์."
              }
            }
          },
          "locate_points_along_routes": {
            "name": "ระบุตำแหน่งจุดตามเส้นทาง",
            "description": "ระบุตำแหน่งฟีเจอร์จุดตามแนวเส้นทาง และเขียนแอตทริบิวต์ค่าวัดบนเส้นทาง",
            "params": {
              "routes": {
                "label": "เส้นทาง",
                "description": "เลเยอร์เส้นเส้นทางที่นำเข้า."
              },
              "points": {
                "label": "จุด",
                "description": "เลเยอร์จุดที่นำเข้าเพื่อระบุตำแหน่งตามแนวเส้นทาง."
              },
              "max_offset_distance": {
                "label": "ระยะทางออฟเซ็ตสูงสุด",
                "description": "ระยะออฟเซ็ตจากจุดถึงเส้นทางสูงสุดซึ่งเป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "points_along_lines": {
            "name": "จุดตามแนวเส้น",
            "description": "สร้างฟีเจอร์จุดที่มีระยะห่างสม่ำเสมอตามแนวเส้นหลายส่วนนำเข้า สำหรับการติดตามโครงสร้างพื้นฐาน การสุ่มตัวอย่างสิ่งแวดล้อม และการวิเคราะห์เชิงพื้นที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นที่นำเข้า."
              },
              "spacing": {
                "label": "ระยะห่าง",
                "description": "ระยะห่างระหว่างจุด."
              },
              "include_end": {
                "label": "รวมจุดปลาย",
                "description": "รวมจุดปลายของเส้น (ค่าเริ่มต้น true)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "route_calibrate": {
            "name": "ปรับเทียบเส้นทาง",
            "description": "ปรับเทียบค่าวัดเริ่มต้น/สิ้นสุดของเส้นทางจากจุดควบคุมที่ทราบค่าวัด",
            "params": {
              "routes": {
                "label": "เส้นทาง",
                "description": "เลเยอร์เส้นเส้นทางที่นำเข้า."
              },
              "control_points": {
                "label": "จุดควบคุม",
                "description": "เลเยอร์จุดควบคุมที่นำเข้า."
              },
              "control_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดควบคุม",
                "description": "ฟิลด์ของจุดควบคุมที่มีค่าการวัดที่ทราบ."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์รหัสเส้นทางในเลเยอร์เส้นทางซึ่งเป็นตัวเลือก ค่าเริ่มต้นคือ FID ของฟีเจอร์."
              },
              "control_route_id_field": {
                "label": "ฟิลด์รหัสเส้นทางควบคุม",
                "description": "ฟิลด์รหัสเส้นทางในจุดควบคุมซึ่งเป็นตัวเลือก ค่าเริ่มต้นคือ FID ของฟีเจอร์."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ฟิลด์ผลลัพธ์สำหรับค่าการวัดเริ่มต้นของเส้นทาง (ค่าเริ่มต้น 'from_measure')."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ฟิลด์ผลลัพธ์สำหรับค่าการวัดสิ้นสุดของเส้นทาง (ค่าเริ่มต้น 'to_measure')."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ระยะออฟเซ็ตสูงสุดของจุดควบคุมจากเรขาคณิตของเส้นทาง (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เส้นทางที่ปรับเทียบแล้วเป็นผลลัพธ์."
              }
            }
          },
          "route_event_lines_from_layer": {
            "name": "เส้นเหตุการณ์บนเส้นทางจากเลเยอร์",
            "description": "สร้างเหตุการณ์เส้นบนเส้นทางจากเลเยอร์เวกเตอร์เหตุการณ์โดยใช้ค่าวัด from/to",
            "params": {
              "routes": {
                "label": "เส้นทาง",
                "description": "เลเยอร์เส้นเส้นทางที่นำเข้า."
              },
              "events": {
                "label": "เหตุการณ์",
                "description": "เลเยอร์เวกเตอร์เหตุการณ์ที่นำเข้า."
              },
              "event_route_field": {
                "label": "ฟิลด์เส้นทางของเหตุการณ์",
                "description": "ฟิลด์ในเลเยอร์เหตุการณ์ที่มีรหัสเส้นทาง."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ฟิลด์ในเลเยอร์เหตุการณ์ที่มีค่าการวัดเริ่มต้น."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ฟิลด์ในเลเยอร์เหตุการณ์ที่มีค่าการวัดสิ้นสุด."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์ในเลเยอร์เส้นทางที่มีรหัสเส้นทางซึ่งเป็นตัวเลือก ค่าเริ่มต้นคือ FID ของฟีเจอร์."
              },
              "write_event_fid": {
                "label": "เขียน FID ของเหตุการณ์",
                "description": "เขียน EVENT_FID เพื่อคงรหัสฟีเจอร์เหตุการณ์ต้นทางไว้ (ค่าเริ่มต้น true)."
              },
              "write_event_xy": {
                "label": "เขียนพิกัด XY ของเหตุการณ์",
                "description": "เขียนแอตทริบิวต์ X/Y ของเรขาคณิตเหตุการณ์ต้นทาง (ค่าเริ่มต้น false)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์."
              }
            }
          },
          "route_event_lines_from_table": {
            "name": "เส้นเหตุการณ์บนเส้นทางจากตาราง",
            "description": "สร้างเหตุการณ์เส้นบนเส้นทางจากตารางเหตุการณ์ CSV และเลเยอร์เส้นทางโดยใช้ค่าวัด from/to",
            "params": {
              "routes": {
                "label": "เส้นทาง",
                "description": "เลเยอร์เส้นเส้นทางที่นำเข้า."
              },
              "events": {
                "label": "เหตุการณ์",
                "description": "พาธตาราง CSV เหตุการณ์ที่นำเข้า."
              },
              "event_route_field": {
                "label": "ฟิลด์เส้นทางของเหตุการณ์",
                "description": "ฟิลด์ใน CSV ที่มีรหัสเส้นทาง."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ฟิลด์ใน CSV ที่มีค่าการวัดเริ่มต้น."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ฟิลด์ใน CSV ที่มีค่าการวัดสิ้นสุด."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์ในเลเยอร์เส้นทางที่มีรหัสเส้นทางซึ่งเป็นตัวเลือก ค่าเริ่มต้นคือ FID ของฟีเจอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์."
              }
            }
          },
          "route_event_merge": {
            "name": "รวมเหตุการณ์บนเส้นทาง",
            "description": "ผสานเหตุการณ์บนเส้นทางที่อยู่ติดกันและเข้ากันได้",
            "params": {
              "events": {
                "label": "เหตุการณ์",
                "description": "เลเยอร์เหตุการณ์ที่นำเข้าซึ่งมีช่วงระยะบนเส้นทาง."
              },
              "event_route_field": {
                "label": "ฟิลด์เส้นทางของเหตุการณ์",
                "description": "ฟิลด์รหัสเส้นทางในเลเยอร์เหตุการณ์."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ฟิลด์จุดเริ่มต้นของช่วงในเลเยอร์เหตุการณ์."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ฟิลด์จุดสิ้นสุดของช่วงในเลเยอร์เหตุการณ์."
              },
              "group_fields": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "ฟิลด์ที่คั่นด้วยเครื่องหมายจุลภาคซึ่งใช้ตรวจความเข้ากันได้ในการรวมและเป็นตัวเลือก ค่าเริ่มต้นคือฟิลด์ทั้งหมดที่ไม่ใช่ฟิลด์การวัด."
              },
              "gap_tolerance": {
                "label": "ค่าเผื่อช่องว่าง",
                "description": "ช่วงห่างสูงสุดที่ยอมให้ได้สำหรับการรวมแบบประชิดกัน (ค่าเริ่มต้น 0.0)."
              },
              "conflict_mode": {
                "label": "โหมดความขัดแย้ง",
                "description": "โหมดการจัดการการซ้อนทับ: error|skip (ค่าเริ่มต้น error)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เหตุการณ์ที่รวมแล้วเป็นผลลัพธ์."
              }
            }
          },
          "route_event_overlay": {
            "name": "ซ้อนทับเหตุการณ์บนเส้นทาง",
            "description": "ซ้อนทับเลเยอร์เหตุการณ์บนเส้นทางสองชุดตามการซ้อนทับของช่วง",
            "params": {
              "primary_events": {
                "label": "เหตุการณ์หลัก",
                "description": "เลเยอร์เหตุการณ์หลัก."
              },
              "overlay_events": {
                "label": "เหตุการณ์ซ้อนทับ",
                "description": "เลเยอร์เหตุการณ์ที่นำมาซ้อนทับ."
              },
              "primary_route_field": {
                "label": "ฟิลด์เส้นทางหลัก",
                "description": "ฟิลด์รหัสเส้นทางในเลเยอร์หลัก."
              },
              "primary_from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้นหลัก",
                "description": "ฟิลด์จุดเริ่มต้นของช่วงในเลเยอร์หลัก."
              },
              "primary_to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุดหลัก",
                "description": "ฟิลด์จุดสิ้นสุดของช่วงในเลเยอร์หลัก."
              },
              "overlay_route_field": {
                "label": "ฟิลด์เส้นทางซ้อนทับ",
                "description": "ฟิลด์รหัสเส้นทางในเลเยอร์ซ้อนทับ."
              },
              "overlay_from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้นซ้อนทับ",
                "description": "ฟิลด์จุดเริ่มต้นของช่วงในเลเยอร์ซ้อนทับ."
              },
              "overlay_to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุดซ้อนทับ",
                "description": "ฟิลด์จุดสิ้นสุดของช่วงในเลเยอร์ซ้อนทับ."
              },
              "min_overlap_length": {
                "label": "ความยาวซ้อนทับต่ำสุด",
                "description": "ความยาวการซ้อนทับขั้นต่ำที่จะเก็บไว้ (ค่าเริ่มต้น 0.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ซ้อนทับผลลัพธ์."
              }
            }
          },
          "route_event_points_from_layer": {
            "name": "จุดเหตุการณ์บนเส้นทางจากเลเยอร์",
            "description": "สร้างเหตุการณ์จุดบนเส้นทางจากเลเยอร์เวกเตอร์เหตุการณ์และเลเยอร์เส้นทาง",
            "params": {
              "routes": {
                "label": "เส้นทาง",
                "description": "เลเยอร์เส้นเส้นทางที่นำเข้า."
              },
              "events": {
                "label": "เหตุการณ์",
                "description": "เลเยอร์เวกเตอร์เหตุการณ์ที่นำเข้า."
              },
              "event_route_field": {
                "label": "ฟิลด์เส้นทางของเหตุการณ์",
                "description": "ฟิลด์ในเลเยอร์เหตุการณ์ที่มีรหัสเส้นทาง."
              },
              "measure_field": {
                "label": "ฟิลด์ค่าระยะวัด",
                "description": "ฟิลด์ในเลเยอร์เหตุการณ์ที่มีค่าการวัดของเหตุการณ์แบบจุด."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์ในเลเยอร์เส้นทางที่มีรหัสเส้นทางซึ่งเป็นตัวเลือก ค่าเริ่มต้นคือ FID ของฟีเจอร์."
              },
              "write_event_fid": {
                "label": "เขียน FID ของเหตุการณ์",
                "description": "เขียน EVENT_FID เพื่อคงรหัสฟีเจอร์เหตุการณ์ต้นทางไว้ (ค่าเริ่มต้น true)."
              },
              "write_event_xy": {
                "label": "เขียนพิกัด XY ของเหตุการณ์",
                "description": "เขียนแอตทริบิวต์ X/Y ของเรขาคณิตเหตุการณ์ต้นทาง (ค่าเริ่มต้น false)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "route_event_points_from_table": {
            "name": "จุดเหตุการณ์บนเส้นทางจากตาราง",
            "description": "สร้างเหตุการณ์จุดบนเส้นทางจากตารางเหตุการณ์ CSV และเลเยอร์เส้นทาง",
            "params": {
              "routes": {
                "label": "เส้นทาง",
                "description": "เลเยอร์เส้นเส้นทางที่นำเข้า."
              },
              "events": {
                "label": "เหตุการณ์",
                "description": "พาธตาราง CSV เหตุการณ์ที่นำเข้า."
              },
              "event_route_field": {
                "label": "ฟิลด์เส้นทางของเหตุการณ์",
                "description": "ฟิลด์ใน CSV ที่มีรหัสเส้นทาง."
              },
              "measure_field": {
                "label": "ฟิลด์ค่าระยะวัด",
                "description": "ฟิลด์ใน CSV ที่มีค่าการวัดของเหตุการณ์แบบจุด."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์ในเลเยอร์เส้นทางที่มีรหัสเส้นทางซึ่งเป็นตัวเลือก ค่าเริ่มต้นคือ FID ของฟีเจอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "route_event_split": {
            "name": "แยกเหตุการณ์บนเส้นทาง",
            "description": "แบ่งเหตุการณ์บนเส้นทางตามค่าวัดขอบเขตรายเส้นทาง",
            "params": {
              "events": {
                "label": "เหตุการณ์",
                "description": "เลเยอร์เหตุการณ์ที่นำเข้าซึ่งมีช่วงระยะบนเส้นทาง."
              },
              "boundaries": {
                "label": "ขอบเขต",
                "description": "เลเยอร์ขอบเขตนำเข้าที่มีจุดแบ่งค่าระยะบนเส้นทาง."
              },
              "event_route_field": {
                "label": "ฟิลด์เส้นทางของเหตุการณ์",
                "description": "ฟิลด์รหัสเส้นทางในเลเยอร์เหตุการณ์."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ฟิลด์จุดเริ่มต้นของช่วงในเลเยอร์เหตุการณ์."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ฟิลด์จุดสิ้นสุดของช่วงในเลเยอร์เหตุการณ์."
              },
              "boundary_route_field": {
                "label": "ฟิลด์เส้นทางของขอบเขต",
                "description": "ฟิลด์รหัสเส้นทางของเลเยอร์ขอบเขต."
              },
              "boundary_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดของขอบเขต",
                "description": "ฟิลด์ค่าระยะของเลเยอร์ขอบเขต."
              },
              "min_segment_length": {
                "label": "ความยาวเซกเมนต์ต่ำสุด",
                "description": "ความยาวขั้นต่ำของเซกเมนต์ที่แยกซึ่งจะเก็บไว้ เป็นตัวเลือก (ค่าเริ่มต้น 0.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์เหตุการณ์ที่แยกแล้ว."
              }
            }
          },
          "route_measure_qa": {
            "name": "ตรวจสอบคุณภาพค่าระยะวัดของเส้นทาง",
            "description": "วินิจฉัยช่องว่างของค่าวัด การซ้อนทับ ลำดับที่ไม่เป็นทางเดียว และค่าวัดที่ซ้ำกันของเหตุการณ์บนเส้นทาง",
            "params": {
              "events": {
                "label": "เหตุการณ์",
                "description": "เลเยอร์เหตุการณ์ที่นำเข้าซึ่งมีช่วงระยะบนเส้นทาง."
              },
              "route_field": {
                "label": "ฟิลด์เส้นทาง",
                "description": "ฟิลด์รหัสเส้นทาง."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ฟิลด์จุดเริ่มต้นของช่วง."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ฟิลด์จุดสิ้นสุดของช่วง."
              },
              "gap_tolerance": {
                "label": "ค่าเผื่อช่องว่าง",
                "description": "ค่าเผื่อช่องว่าง (ค่าเริ่มต้น 0.0)."
              },
              "overlap_tolerance": {
                "label": "ค่าเผื่อการซ้อนทับ",
                "description": "ค่าเผื่อการซ้อนทับ (ค่าเริ่มต้น 0.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์การวินิจฉัย QA."
              }
            }
          },
          "route_recalibrate": {
            "name": "ปรับเทียบเส้นทางใหม่",
            "description": "ปรับเทียบค่าวัดของเส้นทางที่แก้ไขแล้วใหม่จากเลเยอร์เส้นทางอ้างอิง พร้อมคงความต่อเนื่องของค่าวัดบนเส้นทาง",
            "params": {
              "original_routes": {
                "label": "เส้นทางเดิม",
                "description": "เส้นทางอ้างอิงที่มีค่าระยะซึ่งปรับเทียบไว้ก่อนหน้า."
              },
              "edited_routes": {
                "label": "เส้นทางที่แก้ไข",
                "description": "เส้นทางที่แก้ไขแล้วซึ่งต้องปรับเทียบใหม่."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์รหัสเส้นทางร่วม เป็นตัวเลือก ค่าเริ่มต้นใช้ FID ของฟีเจอร์."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ชื่อฟิลด์ค่าระยะเริ่มต้น (ค่าเริ่มต้น 'from_measure')."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ชื่อฟิลด์ค่าระยะสิ้นสุด (ค่าเริ่มต้น 'to_measure')."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์เส้นทางที่ปรับเทียบใหม่."
              }
            }
          },
          "build_network_topology": {
            "name": "สร้างทอพอโลยีโครงข่าย",
            "description": "สร้างโครงข่ายเส้นเชิงทอพอโลยีที่มีโหนด พร้อมผลลัพธ์เส้นเชื่อมและโหนดที่เสถียร",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ขณะตรวจหาและแยกจุดตัด เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ของขอบที่จัดโหนดตามโทโพโลยี."
              },
              "nodes_output": {
                "label": "ผลลัพธ์โหนด",
                "description": "พาธเวกเตอร์ผลลัพธ์ของโหนด เป็นตัวเลือก."
              }
            }
          },
          "closest_facility_network": {
            "name": "สิ่งอำนวยความสะดวกใกล้ที่สุดในโครงข่าย",
            "description": "ค้นหาเส้นทางโครงข่ายที่มีต้นทุนต่ำสุดจากแต่ละจุดเหตุการณ์ไปยังจุดสิ่งอำนวยความสะดวกที่เข้าถึงได้ใกล้ที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "incidents": {
                "label": "เหตุการณ์",
                "description": "เลเยอร์จุดเหตุการณ์/ความต้องการ."
              },
              "facilities": {
                "label": "สิ่งอำนวยความสะดวก",
                "description": "เลเยอร์จุดสถานบริการ/แหล่งจ่าย."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดเหตุการณ์/สถานบริการไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (true/1/yes หมายถึงจากจุดยอดแรกไปจุดยอดที่สองเท่านั้น)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์จุดกีดขวาง เป็นตัวเลือก โหนดโครงข่ายที่ใกล้ที่สุดจะถูกปิดกั้นไม่ให้ผ่าน."
              },
              "barrier_snap_distance": {
                "label": "ระยะทางสแนปสิ่งกีดขวาง",
                "description": "ระยะทางสูงสุดจากแต่ละจุดกีดขวางไปยังโหนดโครงข่ายสำหรับการปิดกั้น เป็นตัวเลือก."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "turn_penalty": {
                "label": "ค่าปรับการเลี้ยว",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการเลี้ยวที่ไม่ตรงไปที่โหนดโครงข่าย เป็นตัวเลือก."
              },
              "u_turn_penalty": {
                "label": "ค่าปรับการกลับรถ",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการกลับรถ เป็นตัวเลือก."
              },
              "forbid_u_turns": {
                "label": "ห้ามกลับรถ",
                "description": "หากเป็นจริง จะไม่อนุญาตให้กลับรถ."
              },
              "forbid_left_turns": {
                "label": "ห้ามเลี้ยวซ้าย",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวซ้าย."
              },
              "forbid_right_turns": {
                "label": "ห้ามเลี้ยวขวา",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวขวา."
              },
              "turn_restrictions_csv": {
                "label": "CSV ข้อจำกัดการเลี้ยว",
                "description": "ไฟล์ CSV ของการเลี้ยว เป็นตัวเลือก โดยใช้คอลัมน์ prev_x,prev_y,node_x,node_y,next_x,next_y คอลัมน์ที่เป็นตัวเลือก: forbidden (ค่าเริ่มต้นเป็น true เมื่อไม่ได้ระบุคอลัมน์ turn_cost) และ turn_cost (หรือ penalty/cost/extra_cost) สำหรับต้นทุนเพิ่มเติมต่อการเลี้ยวหนึ่งครั้ง."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลา เป็นตัวเลือก (ความครอบคลุม ขอบที่ไม่ตรงกัน การใช้ค่าสำรอง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ของเส้นทางไปยังสถานบริการที่ใกล้ที่สุด."
              }
            }
          },
          "generate_network_nodes": {
            "name": "สร้างโหนดโครงข่าย",
            "description": "สร้างโหนดโครงข่ายและค่าวินิจฉัยโหนดจากทอพอโลยีของเส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ของโหนด."
              }
            }
          },
          "k_shortest_paths_network": {
            "name": "เส้นทางสั้นที่สุด K เส้นทางในโครงข่าย",
            "description": "ค้นหาเส้นทางอย่างง่ายที่สั้นที่สุด k เส้นทางระหว่างพิกัดเริ่มต้นและสิ้นสุดบนโครงข่ายเส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "start_x": {
                "label": "X เริ่มต้น",
                "description": "พิกัด x เริ่มต้น."
              },
              "start_y": {
                "label": "Y เริ่มต้น",
                "description": "พิกัด y เริ่มต้น."
              },
              "end_x": {
                "label": "X สิ้นสุด",
                "description": "พิกัด x สิ้นสุด."
              },
              "end_y": {
                "label": "Y สิ้นสุด",
                "description": "พิกัด y สิ้นสุด."
              },
              "k": {
                "label": "K",
                "description": "จำนวนเส้นทางสั้นที่สุดที่จะส่งคืน."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากพิกัดเริ่มต้น/สิ้นสุดไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (true/1/yes หมายถึงจากจุดยอดแรกไปจุดยอดที่สองเท่านั้น)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์จุดกีดขวาง เป็นตัวเลือก โหนดโครงข่ายที่ใกล้ที่สุดจะถูกปิดกั้นไม่ให้ผ่าน."
              },
              "barrier_snap_distance": {
                "label": "ระยะทางสแนปสิ่งกีดขวาง",
                "description": "ระยะทางสูงสุดจากแต่ละจุดกีดขวางไปยังโหนดโครงข่ายสำหรับการปิดกั้น เป็นตัวเลือก."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "turn_penalty": {
                "label": "ค่าปรับการเลี้ยว",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการเลี้ยวที่ไม่ตรงไปที่โหนดโครงข่าย เป็นตัวเลือก."
              },
              "u_turn_penalty": {
                "label": "ค่าปรับการกลับรถ",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการกลับรถ เป็นตัวเลือก."
              },
              "forbid_u_turns": {
                "label": "ห้ามกลับรถ",
                "description": "หากเป็นจริง จะไม่อนุญาตให้กลับรถ."
              },
              "forbid_left_turns": {
                "label": "ห้ามเลี้ยวซ้าย",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวซ้าย."
              },
              "forbid_right_turns": {
                "label": "ห้ามเลี้ยวขวา",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวขวา."
              },
              "turn_restrictions_csv": {
                "label": "CSV ข้อจำกัดการเลี้ยว",
                "description": "ไฟล์ CSV ของการเลี้ยว เป็นตัวเลือก โดยใช้คอลัมน์ prev_x,prev_y,node_x,node_y,next_x,next_y คอลัมน์ที่เป็นตัวเลือก: forbidden (ค่าเริ่มต้นเป็น true เมื่อไม่ได้ระบุคอลัมน์ turn_cost) และ turn_cost (หรือ penalty/cost/extra_cost) สำหรับต้นทุนเพิ่มเติมต่อการเลี้ยวหนึ่งครั้ง."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลา เป็นตัวเลือก (ความครอบคลุม ขอบที่ไม่ตรงกัน การใช้ค่าสำรอง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์."
              }
            }
          },
          "location_allocation_network": {
            "name": "การจัดสรรตำแหน่งที่ตั้งในโครงข่าย",
            "description": "เลือกสิ่งอำนวยความสะดวก k แห่งและจัดสรรจุดอุปสงค์ตามต้นทุนโครงข่ายด้วยการแก้แบบ greedy หรือแบบแม่นตรง พร้อมความจุ (ถ้าเลือก) และข้อจำกัดของตัวเลือกที่จำเป็น/ต้องห้าม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "demand_points": {
                "label": "จุดอุปสงค์",
                "description": "เลเยอร์จุดความต้องการที่จะจัดสรร."
              },
              "facilities": {
                "label": "สิ่งอำนวยความสะดวก",
                "description": "เลเยอร์จุดสถานบริการที่เป็นตัวเลือกพิจารณา."
              },
              "facility_count": {
                "label": "จำนวนสิ่งอำนวยความสะดวก",
                "description": "จำนวนสถานบริการที่จะเลือก (k)."
              },
              "solver_mode": {
                "label": "โหมดตัวแก้ปัญหา",
                "description": "โหมดตัวแก้ปัญหา: auto, greedy หรือ exact (exact เหมาะสำหรับปัญหาขนาดเล็ก)."
              },
              "demand_weight_field": {
                "label": "ฟิลด์น้ำหนักอุปสงค์",
                "description": "ฟิลด์น้ำหนักความต้องการแบบตัวเลขใน demand_points เป็นตัวเลือก (ค่าเริ่มต้น weight=1)."
              },
              "facility_capacity_field": {
                "label": "ฟิลด์ความจุสิ่งอำนวยความสะดวก",
                "description": "ฟิลด์ความจุแบบตัวเลขใน facilities เป็นตัวเลือก ความจุจะถูกใช้ไปตามค่าของ demand_weight_field."
              },
              "required_facility_field": {
                "label": "ฟิลด์สิ่งอำนวยความสะดวกที่บังคับ",
                "description": "ฟิลด์บูลีนของสถานบริการที่ระบุตัวเลือกซึ่งต้องถูกเลือก เป็นตัวเลือก."
              },
              "forbidden_facility_field": {
                "label": "ฟิลด์สิ่งอำนวยความสะดวกที่ห้าม",
                "description": "ฟิลด์บูลีนของสถานบริการที่ระบุตัวเลือกซึ่งต้องไม่ถูกเลือก เป็นตัวเลือก."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดความต้องการ/สถานบริการไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (true/1/yes หมายถึงจากจุดยอดแรกไปจุดยอดที่สองเท่านั้น)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์จุดกีดขวาง เป็นตัวเลือก โหนดโครงข่ายที่ใกล้ที่สุดจะถูกปิดกั้นไม่ให้ผ่าน."
              },
              "barrier_snap_distance": {
                "label": "ระยะทางสแนปสิ่งกีดขวาง",
                "description": "ระยะทางสูงสุดจากแต่ละจุดกีดขวางไปยังโหนดโครงข่ายสำหรับการปิดกั้น เป็นตัวเลือก."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "turn_penalty": {
                "label": "ค่าปรับการเลี้ยว",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการเลี้ยวที่ไม่ตรงไปที่โหนดโครงข่าย เป็นตัวเลือก."
              },
              "u_turn_penalty": {
                "label": "ค่าปรับการกลับรถ",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการกลับรถ เป็นตัวเลือก."
              },
              "forbid_u_turns": {
                "label": "ห้ามกลับรถ",
                "description": "หากเป็นจริง จะไม่อนุญาตให้กลับรถ."
              },
              "forbid_left_turns": {
                "label": "ห้ามเลี้ยวซ้าย",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวซ้าย."
              },
              "forbid_right_turns": {
                "label": "ห้ามเลี้ยวขวา",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวขวา."
              },
              "turn_restrictions_csv": {
                "label": "CSV ข้อจำกัดการเลี้ยว",
                "description": "ไฟล์ CSV ของการเลี้ยว เป็นตัวเลือก โดยใช้คอลัมน์ prev_x,prev_y,node_x,node_y,next_x,next_y คอลัมน์ที่เป็นตัวเลือก: forbidden (ค่าเริ่มต้นเป็น true เมื่อไม่ได้ระบุคอลัมน์ turn_cost) และ turn_cost (หรือ penalty/cost/extra_cost) สำหรับต้นทุนเพิ่มเติมต่อการเลี้ยวหนึ่งครั้ง."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลา เป็นตัวเลือก (ความครอบคลุม ขอบที่ไม่ตรงกัน การใช้ค่าสำรอง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ของเส้นทางที่จัดสรรแล้ว."
              }
            }
          },
          "map_matching_v1": {
            "name": "การจับคู่แผนที่ V1",
            "description": "สแนปจุดวิถีการเคลื่อนที่ไปยังโครงข่ายเส้น และสร้างเส้นทางที่อนุมานได้ขึ้นใหม่พร้อมค่าวินิจฉัย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "trajectory_points": {
                "label": "จุดเส้นทางเคลื่อนที่",
                "description": "เลเยอร์จุดวิถีการเคลื่อนที่นำเข้า."
              },
              "timestamp_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ของวิถีที่ใช้เรียงลำดับตามเวลา."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีค้นหาเส้นทางที่เป็นไปได้รอบแต่ละจุดวิถี เป็นตัวเลือก."
              },
              "candidate_k": {
                "label": "จำนวนตัวเลือก K",
                "description": "จำนวนตัวเลือกที่ใกล้ที่สุดซึ่งเก็บไว้ต่อจุด เป็นตัวเลือก."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดสำหรับการสแนปจุดวิถีเข้ากับโหนดโครงข่าย เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์จุดกีดขวาง เป็นตัวเลือก โหนดโครงข่ายที่ใกล้ที่สุดจะถูกปิดกั้นไม่ให้ผ่าน."
              },
              "barrier_snap_distance": {
                "label": "ระยะทางสแนปสิ่งกีดขวาง",
                "description": "ระยะทางสูงสุดจากแต่ละจุดกีดขวางไปยังโหนดโครงข่ายสำหรับการปิดกั้น เป็นตัวเลือก."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "turn_penalty": {
                "label": "ค่าปรับการเลี้ยว",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการเลี้ยวที่ไม่ตรงไปที่โหนดโครงข่าย เป็นตัวเลือก."
              },
              "u_turn_penalty": {
                "label": "ค่าปรับการกลับรถ",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการกลับรถ เป็นตัวเลือก."
              },
              "forbid_u_turns": {
                "label": "ห้ามกลับรถ",
                "description": "หากเป็นจริง จะไม่อนุญาตให้กลับรถ."
              },
              "forbid_left_turns": {
                "label": "ห้ามเลี้ยวซ้าย",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวซ้าย."
              },
              "forbid_right_turns": {
                "label": "ห้ามเลี้ยวขวา",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวขวา."
              },
              "turn_restrictions_csv": {
                "label": "CSV ข้อจำกัดการเลี้ยว",
                "description": "ไฟล์ CSV ของการเลี้ยว เป็นตัวเลือก โดยใช้คอลัมน์ prev_x,prev_y,node_x,node_y,next_x,next_y คอลัมน์ที่เป็นตัวเลือก: forbidden (ค่าเริ่มต้นเป็น true เมื่อไม่ได้ระบุคอลัมน์ turn_cost) และ turn_cost (หรือ penalty/cost/extra_cost) สำหรับต้นทุนเพิ่มเติมต่อการเลี้ยวหนึ่งครั้ง."
              },
              "matched_points_output": {
                "label": "ผลลัพธ์จุดที่จับคู่",
                "description": "พาธเวกเตอร์ผลลัพธ์สำหรับการวินิจฉัยรายจุด เป็นตัวเลือก."
              },
              "match_report": {
                "label": "รายงานการจับคู่",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยแบบสรุป เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์สำหรับเส้นทางที่อนุมานได้."
              }
            }
          },
          "multimodal_od_cost_matrix": {
            "name": "เมทริกซ์ต้นทุน OD หลายรูปแบบการเดินทาง",
            "description": "คำนวณต้นทุน OD หลายรูปแบบการเดินทางแบบแบตช์และสรุปรูปแบบการเดินทางระหว่างชุดจุดต้นทางและปลายทาง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "origins": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดต้นทาง."
              },
              "destinations": {
                "label": "ปลายทาง",
                "description": "เลเยอร์จุดปลายทาง."
              },
              "mode_field": {
                "label": "ฟิลด์รูปแบบการเดินทาง",
                "description": "ฟิลด์แอตทริบิวต์ของเส้นที่ระบุรูปแบบการเดินทางของแต่ละเซกเมนต์."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดต้นทาง/ปลายทางไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "default_mode_speed": {
                "label": "ความเร็วเริ่มต้นของรูปแบบการเดินทาง",
                "description": "ความเร็วเริ่มต้นของรูปแบบการเดินทางในหน่วยพิกัดต่อหน่วยเวลา (ค่าเริ่มต้น: 1)."
              },
              "mode_speed_overrides": {
                "label": "ความเร็วกำหนดเองต่อรูปแบบการเดินทาง",
                "description": "ค่าแทนที่ mode:speed คั่นด้วยจุลภาค เป็นตัวเลือก (ตัวอย่าง: walk:1.4,drive:12,transit:8)."
              },
              "allowed_modes": {
                "label": "รูปแบบการเดินทางที่อนุญาต",
                "description": "รายการรูปแบบการเดินทางที่อนุญาตให้ใช้ในการหาเส้นทาง คั่นด้วยจุลภาค เป็นตัวเลือก."
              },
              "transfer_penalty": {
                "label": "ค่าปรับการเปลี่ยนรูปแบบการเดินทาง",
                "description": "ค่าปรับเพิ่มที่ใช้ทุกครั้งที่เส้นทางเปลี่ยนรูปแบบการเดินทาง เป็นตัวเลือก."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลาเมื่อใช้ข้อมูลนำเข้าเชิงเวลาโดยตรง เป็นตัวเลือก."
              },
              "scenario_bundle_csv": {
                "label": "CSV ชุดสถานการณ์",
                "description": "ไฟล์ CSV ที่ระบุสถานการณ์เชิงเวลาแบบมีชื่อ สำหรับผลลัพธ์ OD หลายสถานการณ์เพื่อการเปรียบเทียบ เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "multimodal_routes_from_od": {
            "name": "เส้นทางจาก OD หลายรูปแบบการเดินทาง",
            "description": "สร้างเรขาคณิตเส้นทางสำหรับคู่จุดต้นทาง-ปลายทางแบบหลายรูปแบบการเดินทาง พร้อมสรุปรูปแบบการเดินทางรายเส้นทาง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "origins": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดต้นทาง."
              },
              "destinations": {
                "label": "ปลายทาง",
                "description": "เลเยอร์จุดปลายทาง."
              },
              "mode_field": {
                "label": "ฟิลด์รูปแบบการเดินทาง",
                "description": "ฟิลด์แอตทริบิวต์ของเส้นที่ระบุรูปแบบการเดินทางของแต่ละเซกเมนต์."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดต้นทาง/ปลายทางไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "default_mode_speed": {
                "label": "ความเร็วเริ่มต้นของรูปแบบการเดินทาง",
                "description": "ความเร็วเริ่มต้นของรูปแบบการเดินทางในหน่วยพิกัดต่อหน่วยเวลา (ค่าเริ่มต้น: 1)."
              },
              "mode_speed_overrides": {
                "label": "ความเร็วกำหนดเองต่อรูปแบบการเดินทาง",
                "description": "ค่าแทนที่ mode:speed คั่นด้วยจุลภาค เป็นตัวเลือก (ตัวอย่าง: walk:1.4,drive:12,transit:8)."
              },
              "allowed_modes": {
                "label": "รูปแบบการเดินทางที่อนุญาต",
                "description": "รายการรูปแบบการเดินทางที่อนุญาตให้ใช้ในการหาเส้นทาง คั่นด้วยจุลภาค เป็นตัวเลือก."
              },
              "transfer_penalty": {
                "label": "ค่าปรับการเปลี่ยนรูปแบบการเดินทาง",
                "description": "ค่าปรับเพิ่มที่ใช้ทุกครั้งที่เส้นทางเปลี่ยนรูปแบบการเดินทาง เป็นตัวเลือก."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลาเมื่อใช้ข้อมูลนำเข้าเชิงเวลาโดยตรง เป็นตัวเลือก."
              },
              "scenario_bundle_csv": {
                "label": "CSV ชุดสถานการณ์",
                "description": "ไฟล์ CSV ที่ระบุสถานการณ์เชิงเวลาแบบมีชื่อ สำหรับผลลัพธ์เส้นทางหลายสถานการณ์เพื่อการเปรียบเทียบ เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ของเส้นทาง."
              }
            }
          },
          "multimodal_shortest_path": {
            "name": "เส้นทางสั้นที่สุดหลายรูปแบบการเดินทาง",
            "description": "ค้นหาเส้นทางที่สั้นที่สุดที่คำนึงถึงรูปแบบการเดินทางบนโครงข่ายเส้น พร้อมค่าปรับการเปลี่ยนต่อที่กำหนดได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "start_x": {
                "label": "X เริ่มต้น",
                "description": "พิกัด x เริ่มต้น."
              },
              "start_y": {
                "label": "Y เริ่มต้น",
                "description": "พิกัด y เริ่มต้น."
              },
              "end_x": {
                "label": "X สิ้นสุด",
                "description": "พิกัด x สิ้นสุด."
              },
              "end_y": {
                "label": "Y สิ้นสุด",
                "description": "พิกัด y สิ้นสุด."
              },
              "mode_field": {
                "label": "ฟิลด์รูปแบบการเดินทาง",
                "description": "ฟิลด์แอตทริบิวต์ของเส้นที่ระบุรูปแบบการเดินทางของแต่ละเซกเมนต์."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากพิกัดเริ่มต้น/สิ้นสุดไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "default_mode_speed": {
                "label": "ความเร็วเริ่มต้นของรูปแบบการเดินทาง",
                "description": "ความเร็วเริ่มต้นของรูปแบบการเดินทางในหน่วยพิกัดต่อหน่วยเวลา (ค่าเริ่มต้น: 1)."
              },
              "mode_speed_overrides": {
                "label": "ความเร็วกำหนดเองต่อรูปแบบการเดินทาง",
                "description": "ค่าแทนที่ mode:speed คั่นด้วยจุลภาค เป็นตัวเลือก (ตัวอย่าง: walk:1.4,drive:12,transit:8)."
              },
              "allowed_modes": {
                "label": "รูปแบบการเดินทางที่อนุญาต",
                "description": "รายการรูปแบบการเดินทางที่อนุญาตให้ใช้ในการหาเส้นทาง คั่นด้วยจุลภาค เป็นตัวเลือก."
              },
              "transfer_penalty": {
                "label": "ค่าปรับการเปลี่ยนรูปแบบการเดินทาง",
                "description": "ค่าปรับเพิ่มที่ใช้ทุกครั้งที่เส้นทางเปลี่ยนรูปแบบการเดินทาง เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์."
              }
            }
          },
          "network_accessibility_metrics": {
            "name": "ดัชนีการเข้าถึงของโครงข่าย",
            "description": "คำนวณดัชนีการเข้าถึงสำหรับจุดต้นทางตามความสามารถในการเข้าถึงปลายทาง พร้อมค่าตัดของอิมพีแดนซ์และฟังก์ชันการลดทอน (ถ้าเลือก)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "origins": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดต้นทาง."
              },
              "destinations": {
                "label": "ปลายทาง",
                "description": "เลเยอร์จุดปลายทาง."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดต้นทาง/ปลายทางไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "impedance_cutoff": {
                "label": "ค่าตัดอิมพีแดนซ์",
                "description": "ค่าเกณฑ์ระยะทางสูงสุดสำหรับการนับปลายทางที่เข้าถึงได้ เป็นตัวเลือก (ค่าเริ่มต้น: ไม่จำกัด)."
              },
              "decay_function": {
                "label": "ฟังก์ชันการลดทอน",
                "description": "ฟังก์ชันการลดทอน เป็นตัวเลือก: 'none' (ค่าเริ่มต้น), 'linear' หรือ 'exponential' สำหรับการเข้าถึงแบบถ่วงน้ำหนักตามระยะทาง."
              },
              "decay_parameter": {
                "label": "พารามิเตอร์การลดทอน",
                "description": "พารามิเตอร์การลดทอน เป็นตัวเลือก (lambda สำหรับ exponential, อัตราสำหรับ linear)."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "parallel_execution": {
                "label": "การประมวลผลแบบขนาน",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะประเมินจุดต้นทางแบบขนานเพื่อให้คำนวณการเข้าถึงได้เร็วขึ้น."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (จุดต้นทางพร้อมค่าชี้วัดการเข้าถึง)."
              }
            }
          },
          "network_centrality_metrics": {
            "name": "ดัชนีความเป็นศูนย์กลางของโครงข่าย",
            "description": "คำนวณตัวชี้วัดความเป็นศูนย์กลางพื้นฐานแบบ degree, closeness และ betweenness สำหรับโหนดโครงข่าย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการสร้างกราฟ เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "network_connected_components": {
            "name": "องค์ประกอบเชื่อมต่อของโครงข่าย",
            "description": "กำหนดรหัสองค์ประกอบที่เชื่อมต่อกันให้กับแต่ละฟีเจอร์เส้นในโครงข่าย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์."
              }
            }
          },
          "network_node_degree": {
            "name": "ดีกรีโหนดของโครงข่าย",
            "description": "สกัดโหนดโครงข่ายจากฟีเจอร์เส้น และคำนวณดีกรีของโหนดและประเภทโหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "network_od_cost_matrix": {
            "name": "เมทริกซ์ต้นทุน OD ของโครงข่าย",
            "description": "คำนวณต้นทุนเส้นทางที่สั้นที่สุดระหว่างต้นทาง-ปลายทางบนโครงข่ายเส้น และเขียนเป็นเมทริกซ์ CSV",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "origins": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดต้นทาง."
              },
              "destinations": {
                "label": "ปลายทาง",
                "description": "เลเยอร์จุดปลายทาง."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดต้นทาง/ปลายทางไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์จุดกีดขวาง เป็นตัวเลือก โหนดโครงข่ายที่ใกล้ที่สุดจะถูกปิดกั้นไม่ให้ผ่าน."
              },
              "barrier_snap_distance": {
                "label": "ระยะทางสแนปสิ่งกีดขวาง",
                "description": "ระยะทางสูงสุดจากแต่ละจุดกีดขวางไปยังโหนดโครงข่ายสำหรับการปิดกั้น เป็นตัวเลือก."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "turn_penalty": {
                "label": "ค่าปรับการเลี้ยว",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการเลี้ยวที่ไม่ตรงไปที่โหนดโครงข่าย เป็นตัวเลือก."
              },
              "u_turn_penalty": {
                "label": "ค่าปรับการกลับรถ",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการกลับรถ เป็นตัวเลือก."
              },
              "forbid_u_turns": {
                "label": "ห้ามกลับรถ",
                "description": "หากเป็นจริง จะไม่อนุญาตให้กลับรถ."
              },
              "forbid_left_turns": {
                "label": "ห้ามเลี้ยวซ้าย",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวซ้าย."
              },
              "forbid_right_turns": {
                "label": "ห้ามเลี้ยวขวา",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวขวา."
              },
              "turn_restrictions_csv": {
                "label": "CSV ข้อจำกัดการเลี้ยว",
                "description": "ไฟล์ CSV ของการเลี้ยว เป็นตัวเลือก โดยใช้คอลัมน์ prev_x,prev_y,node_x,node_y,next_x,next_y คอลัมน์ที่เป็นตัวเลือก: forbidden (ค่าเริ่มต้นเป็น true เมื่อไม่ได้ระบุคอลัมน์ turn_cost) และ turn_cost (หรือ penalty/cost/extra_cost) สำหรับต้นทุนเพิ่มเติมต่อการเลี้ยวหนึ่งครั้ง."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลา เป็นตัวเลือก (ความครอบคลุม ขอบที่ไม่ตรงกัน การใช้ค่าสำรอง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "network_routes_from_od": {
            "name": "เส้นทางจาก OD ของโครงข่าย",
            "description": "สร้างเรขาคณิตเส้นทางสำหรับคู่จุดต้นทาง-ปลายทางบนโครงข่ายเส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "origins": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดต้นทาง."
              },
              "destinations": {
                "label": "ปลายทาง",
                "description": "เลเยอร์จุดปลายทาง."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดต้นทาง/ปลายทางไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์จุดกีดขวาง เป็นตัวเลือก โหนดโครงข่ายที่ใกล้ที่สุดจะถูกปิดกั้นไม่ให้ผ่าน."
              },
              "barrier_snap_distance": {
                "label": "ระยะทางสแนปสิ่งกีดขวาง",
                "description": "ระยะทางสูงสุดจากแต่ละจุดกีดขวางไปยังโหนดโครงข่ายสำหรับการปิดกั้น เป็นตัวเลือก."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "turn_penalty": {
                "label": "ค่าปรับการเลี้ยว",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการเลี้ยวที่ไม่ตรงไปที่โหนดโครงข่าย เป็นตัวเลือก."
              },
              "u_turn_penalty": {
                "label": "ค่าปรับการกลับรถ",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการกลับรถ เป็นตัวเลือก."
              },
              "forbid_u_turns": {
                "label": "ห้ามกลับรถ",
                "description": "หากเป็นจริง จะไม่อนุญาตให้กลับรถ."
              },
              "forbid_left_turns": {
                "label": "ห้ามเลี้ยวซ้าย",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวซ้าย."
              },
              "forbid_right_turns": {
                "label": "ห้ามเลี้ยวขวา",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวขวา."
              },
              "turn_restrictions_csv": {
                "label": "CSV ข้อจำกัดการเลี้ยว",
                "description": "ไฟล์ CSV ของการเลี้ยว เป็นตัวเลือก โดยใช้คอลัมน์ prev_x,prev_y,node_x,node_y,next_x,next_y คอลัมน์ที่เป็นตัวเลือก: forbidden (ค่าเริ่มต้นเป็น true เมื่อไม่ได้ระบุคอลัมน์ turn_cost) และ turn_cost (หรือ penalty/cost/extra_cost) สำหรับต้นทุนเพิ่มเติมต่อการเลี้ยวหนึ่งครั้ง."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลา เป็นตัวเลือก (ความครอบคลุม ขอบที่ไม่ตรงกัน การใช้ค่าสำรอง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ของเส้นทาง."
              }
            }
          },
          "network_service_area": {
            "name": "พื้นที่ให้บริการของโครงข่าย",
            "description": "คำนวณโหนดโครงข่ายที่เข้าถึงได้จากจุดต้นทางภายในต้นทุนโครงข่ายสูงสุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "origins": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดต้นทาง."
              },
              "max_cost": {
                "label": "ต้นทุนสูงสุด",
                "description": "ต้นทุนเส้นทางสูงสุดที่เข้าถึงได้."
              },
              "ring_costs": {
                "label": "ต้นทุนของวง",
                "description": "ค่าเกณฑ์วงแหวนคั่นด้วยจุลภาคสำหรับผลลัพธ์แบบหลายวง เป็นตัวเลือก (ตัวอย่าง: 5,10,15)."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดต้นทางไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "output_mode": {
                "label": "โหมดผลลัพธ์",
                "description": "โหมดผลลัพธ์: 'nodes' (ค่าเริ่มต้น), 'edges' สำหรับเซกเมนต์ขอบที่เข้าถึงได้ซึ่งตัดตามต้นทุน หรือ 'polygons' สำหรับโพลิกอนคล้ายเส้นไอโซโครนของแต่ละจุดต้นทางจากกรอบขอบเขตของขอบที่เข้าถึงได้."
              },
              "polygon_merge_origins": {
                "label": "รวมโพลิกอนตามต้นทาง",
                "description": "หากเป็นจริงและ output_mode='polygons' จะยุบรวมโพลิกอนของจุดต้นทางที่ซ้อนทับกันเป็นพื้นที่ครอบคลุมเดียวต่อวง แทนการสร้างโพลิกอนหนึ่งรูปต่อจุดต้นทาง."
              },
              "mode_field": {
                "label": "ฟิลด์รูปแบบการเดินทาง",
                "description": "ฟิลด์แอตทริบิวต์ของเส้นที่ระบุรูปแบบการเดินทางต่อเซกเมนต์ เป็นตัวเลือก ช่วยให้คำนวณต้นทุนพื้นที่ให้บริการโดยคำนึงถึงรูปแบบการเดินทาง."
              },
              "default_mode_speed": {
                "label": "ความเร็วเริ่มต้นของรูปแบบการเดินทาง",
                "description": "ความเร็วเริ่มต้นของรูปแบบการเดินทางในหน่วยพิกัดต่อหน่วยเวลาเมื่อระบุ mode_field (ค่าเริ่มต้น: 1)."
              },
              "mode_speed_overrides": {
                "label": "ความเร็วกำหนดเองต่อรูปแบบการเดินทาง",
                "description": "ค่าแทนที่ mode:speed คั่นด้วยจุลภาค เป็นตัวเลือก (ตัวอย่าง: walk:1.4,drive:12)."
              },
              "allowed_modes": {
                "label": "รูปแบบการเดินทางที่อนุญาต",
                "description": "รายการรูปแบบการเดินทางที่อนุญาต คั่นด้วยจุลภาค เมื่อระบุ mode_field เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์จุดกีดขวาง เป็นตัวเลือก โหนดโครงข่ายที่ใกล้ที่สุดจะถูกปิดกั้นไม่ให้ผ่าน."
              },
              "barrier_snap_distance": {
                "label": "ระยะทางสแนปสิ่งกีดขวาง",
                "description": "ระยะทางสูงสุดจากแต่ละจุดกีดขวางไปยังโหนดโครงข่ายสำหรับการปิดกั้น เป็นตัวเลือก."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "turn_penalty": {
                "label": "ค่าปรับการเลี้ยว",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการเลี้ยวที่ไม่ตรงไปที่โหนดโครงข่าย เป็นตัวเลือก."
              },
              "u_turn_penalty": {
                "label": "ค่าปรับการกลับรถ",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการกลับรถ เป็นตัวเลือก."
              },
              "forbid_u_turns": {
                "label": "ห้ามกลับรถ",
                "description": "หากเป็นจริง จะไม่อนุญาตให้กลับรถ."
              },
              "forbid_left_turns": {
                "label": "ห้ามเลี้ยวซ้าย",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวซ้าย."
              },
              "forbid_right_turns": {
                "label": "ห้ามเลี้ยวขวา",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวขวา."
              },
              "turn_restrictions_csv": {
                "label": "CSV ข้อจำกัดการเลี้ยว",
                "description": "ไฟล์ CSV ของการเลี้ยว เป็นตัวเลือก โดยใช้คอลัมน์ prev_x,prev_y,node_x,node_y,next_x,next_y คอลัมน์ที่เป็นตัวเลือก: forbidden (ค่าเริ่มต้นเป็น true เมื่อไม่ได้ระบุคอลัมน์ turn_cost) และ turn_cost (หรือ penalty/cost/extra_cost) สำหรับต้นทุนเพิ่มเติมต่อการเลี้ยวหนึ่งครั้ง."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลา เป็นตัวเลือก (ความครอบคลุม ขอบที่ไม่ตรงกัน การใช้ค่าสำรอง)."
              },
              "snapped_origins_output": {
                "label": "ผลลัพธ์ต้นทางที่สแนปแล้ว",
                "description": "พาธเวกเตอร์ผลลัพธ์สำหรับจุดยึดต้นทางที่สแนปภายในซึ่งใช้เริ่มการค้นหา เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ของพื้นที่ให้บริการ."
              }
            }
          },
          "network_topology_audit": {
            "name": "ตรวจสอบทอพอโลยีโครงข่าย",
            "description": "ตรวจสอบโครงข่ายเส้นเพื่อหาความผิดปกติเชิงทอพอโลยี—องค์ประกอบที่ไม่เชื่อมต่อ ทางตัน และความผิดปกติของดีกรี—ซึ่งทำให้การหาเส้นทางล้มเหลว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียว เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้นเพื่อยกเว้นจากการวิเคราะห์ เป็นตัวเลือก."
              },
              "report": {
                "label": "รายงาน",
                "description": "พาธผลลัพธ์ JSON สำหรับรายงานสรุปการตรวจสอบ เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์สำหรับการวินิจฉัยรายโหนด."
              }
            }
          },
          "od_sensitivity_analysis": {
            "name": "การวิเคราะห์ความไวของ OD",
            "description": "คำนวณต้นทุนเส้นทางที่สั้นที่สุดระหว่าง OD พร้อมการรบกวนอิมพีแดนซ์ และส่งออกสถิติความไวผ่านการสุ่มตัวอย่างแบบ Monte Carlo",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "origins": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดต้นทาง."
              },
              "destinations": {
                "label": "ปลายทาง",
                "description": "เลเยอร์จุดปลายทาง."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่จำเป็นต้องระบุ ใช้เป็นตัวคูณความต้านทานสำหรับการวิเคราะห์การรบกวน."
              },
              "impedance_disturbance_range": {
                "label": "ช่วงการรบกวนอิมพีแดนซ์",
                "description": "ช่วงการรบกวนต้นทุนในรูปแบบ 'min_factor,max_factor' (เช่น '0.8,1.2' สำหรับความผันแปร ±20%)."
              },
              "monte_carlo_samples": {
                "label": "จำนวนตัวอย่าง Monte Carlo",
                "description": "จำนวนตัวอย่างมอนติคาร์โลสำหรับการวิเคราะห์การรบกวน (ค่าเริ่มต้น 1 สูงสุด 100)."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากจุดต้นทาง/ปลายทางไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งาน เป็นตัวเลือก."
              },
              "node_cost_points": {
                "label": "จุดต้นทุนโหนด",
                "description": "เลเยอร์จุดที่ให้ต้นทุนการเข้าสู่แต่ละโหนด เป็นตัวเลือก (เช่น ความล่าช้าที่ทางแยก)."
              },
              "node_cost_field": {
                "label": "ฟิลด์ต้นทุนโหนด",
                "description": "ฟิลด์ตัวเลขใน node_cost_points ที่มีต้นทุนต่อโหนดซึ่งไม่เป็นค่าลบ."
              },
              "node_cost_snap_distance": {
                "label": "ระยะทางสแนปต้นทุนโหนด",
                "description": "ระยะทางสูงสุดจากแต่ละจุดต้นทุนโหนดไปยังโหนดโครงข่ายสำหรับการกำหนดค่า เป็นตัวเลือก."
              },
              "parallel_execution": {
                "label": "การประมวลผลแบบขนาน",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะประเมินการค้นหาจากจุดต้นทางแบบขนานทั้งสำหรับการรัน OD แบบฐานและแบบถูกรบกวน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV ผลลัพธ์ที่มีคู่ OD และสถิติความอ่อนไหว."
              }
            }
          },
          "shortest_path_network": {
            "name": "เส้นทางสั้นที่สุดในโครงข่าย",
            "description": "ค้นหาเส้นทางที่สั้นที่สุดระหว่างพิกัดเริ่มต้นและสิ้นสุดบนโครงข่ายเส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า."
              },
              "start_x": {
                "label": "X เริ่มต้น",
                "description": "พิกัด x เริ่มต้น."
              },
              "start_y": {
                "label": "Y เริ่มต้น",
                "description": "พิกัด y เริ่มต้น."
              },
              "end_x": {
                "label": "X สิ้นสุด",
                "description": "พิกัด x สิ้นสุด."
              },
              "end_y": {
                "label": "Y สิ้นสุด",
                "description": "พิกัด y สิ้นสุด."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปโหนดสำหรับการสร้างกราฟ เป็นตัวเลือก."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสูงสุดจากพิกัดเริ่มต้น/สิ้นสุดไปยังโหนดโครงข่ายที่ใกล้ที่สุด เป็นตัวเลือก."
              },
              "edge_cost_field": {
                "label": "ฟิลด์ต้นทุนของเส้นเชื่อม",
                "description": "ฟิลด์ตัวเลขของเส้นที่ใช้เป็นตัวคูณความต้านทานต่อความยาวเซกเมนต์ เป็นตัวเลือก."
              },
              "one_way_field": {
                "label": "ฟิลด์ทางเดินรถทางเดียว",
                "description": "ฟิลด์ของเส้นที่ระบุขอบทางเดียวตามทิศการดิจิไทซ์ เป็นตัวเลือก (รองรับ FT/TF/B และค่าบูลีนแบบเดิม)."
              },
              "blocked_field": {
                "label": "ฟิลด์ปิดกั้น",
                "description": "ฟิลด์ของเส้นที่ระบุขอบที่ถูกปิดกั้น/ปิดใช้งานเพื่อยกเว้นจากการหาเส้นทาง เป็นตัวเลือก (true/1/yes คือปิดกั้น)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์จุดกีดขวาง เป็นตัวเลือก โหนดโครงข่ายที่ใกล้ที่สุดจะถูกปิดกั้นไม่ให้ผ่าน."
              },
              "barrier_snap_distance": {
                "label": "ระยะทางสแนปสิ่งกีดขวาง",
                "description": "ระยะทางสูงสุดจากแต่ละจุดกีดขวางไปยังโหนดโครงข่ายสำหรับการปิดกั้น เป็นตัวเลือก."
              },
              "turn_penalty": {
                "label": "ค่าปรับการเลี้ยว",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการเลี้ยวที่ไม่ตรงไปที่โหนดโครงข่าย เป็นตัวเลือก."
              },
              "u_turn_penalty": {
                "label": "ค่าปรับการกลับรถ",
                "description": "ต้นทุนเพิ่มเติมที่ใช้กับการกลับรถ เป็นตัวเลือก."
              },
              "forbid_u_turns": {
                "label": "ห้ามกลับรถ",
                "description": "หากเป็นจริง จะไม่อนุญาตให้กลับรถ."
              },
              "forbid_left_turns": {
                "label": "ห้ามเลี้ยวซ้าย",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวซ้าย."
              },
              "forbid_right_turns": {
                "label": "ห้ามเลี้ยวขวา",
                "description": "หากเป็นจริง จะไม่อนุญาตให้เลี้ยวขวา."
              },
              "turn_restrictions_csv": {
                "label": "CSV ข้อจำกัดการเลี้ยว",
                "description": "ไฟล์ CSV ของการเลี้ยว เป็นตัวเลือก โดยใช้คอลัมน์ prev_x,prev_y,node_x,node_y,next_x,next_y คอลัมน์ที่เป็นตัวเลือก: forbidden (ค่าเริ่มต้นเป็น true เมื่อไม่ได้ระบุคอลัมน์ turn_cost) และ turn_cost (หรือ penalty/cost/extra_cost) สำหรับต้นทุนเพิ่มเติมต่อการเลี้ยวหนึ่งครั้ง."
              },
              "temporal_cost_profile": {
                "label": "โปรไฟล์ต้นทุนตามเวลา",
                "description": "ไฟล์ CSV ที่กำหนดต้นทุนขอบตามช่วงเวลา เป็นตัวเลือก (คอลัมน์: edge_id,dow,start_minute,end_minute,value)."
              },
              "temporal_edge_id_field": {
                "label": "ฟิลด์รหัสเส้นเชื่อมตามเวลา",
                "description": "ฟิลด์โครงข่ายที่ใช้จับคู่ค่า edge_id ของ temporal_cost_profile เป็นตัวเลือก (ค่าเริ่มต้น EDGE_ID)."
              },
              "departure_time": {
                "label": "เวลาออกเดินทาง",
                "description": "เวลาออกเดินทางรูปแบบ RFC3339 ที่ใช้ค้นหาโปรไฟล์เชิงเวลา เป็นตัวเลือก."
              },
              "temporal_mode": {
                "label": "โหมดตามเวลา",
                "description": "โหมดการตีความเชิงเวลา เป็นตัวเลือก: multiplier หรือ absolute."
              },
              "temporal_fallback": {
                "label": "ค่าสำรองตามเวลา",
                "description": "ค่าสำรองเมื่อไม่พบแถวข้อมูลเชิงเวลา เป็นตัวเลือก: static_cost หรือ error."
              },
              "temporal_profile_report": {
                "label": "รายงานโปรไฟล์ตามเวลา",
                "description": "พาธผลลัพธ์ JSON สำหรับการวินิจฉัยโปรไฟล์เชิงเวลา เป็นตัวเลือก (ความครอบคลุม ขอบที่ไม่ตรงกัน การใช้ค่าสำรอง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์."
              }
            }
          },
          "split_lines_at_intersections": {
            "name": "แยกเส้นที่จุดตัด",
            "description": "แบ่งโครงข่ายเส้นทุกจุดที่ส่วนของเส้นตัดกัน รวมถึงการตัดกันเอง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นนำเข้าที่จะแยก ณ จุดตัด."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการแยก เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ที่แยกแล้ว."
              }
            }
          },
          "snap_points_to_network": {
            "name": "สแนปจุดไปยังโครงข่าย",
            "description": "สแนปฟีเจอร์จุดนำเข้าไปยังตำแหน่งที่ใกล้ที่สุดตามแนวเลเยอร์เส้นโครงข่าย",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์จุดนำเข้าที่จะสแนป."
              },
              "network": {
                "label": "โครงข่าย",
                "description": "เลเยอร์เส้นโครงข่ายนำเข้า."
              },
              "max_snap_distance": {
                "label": "ระยะทางสแนปสูงสุด",
                "description": "ระยะทางสแนปสูงสุดในหน่วยแผนที่ เป็นตัวเลือก."
              },
              "keep_unsnapped": {
                "label": "คงจุดที่ไม่ได้สแนป",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะเก็บจุดที่ไม่สามารถสแนปได้ภายในค่าเผื่อไว้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ที่สแนปแล้ว."
              }
            }
          },
          "transfer_attributes": {
            "name": "ถ่ายโอนแอตทริบิวต์",
            "description": "ถ่ายโอนแอตทริบิวต์ต้นทางไปยังฟีเจอร์เป้าหมายโดยใช้เงื่อนไขเชิงพื้นที่",
            "params": {
              "target": {
                "label": "เป้าหมาย",
                "description": "เลเยอร์เป้าหมายที่รับแอตทริบิวต์ที่ถ่ายโอนมา."
              },
              "source": {
                "label": "ต้นทาง",
                "description": "เลเยอร์ต้นทางที่ให้แอตทริบิวต์."
              },
              "predicate": {
                "label": "ภาคแสดง",
                "description": "เพรดิเคตเชิงพื้นที่: intersects, within, contains, touches, crosses, overlaps, within_distance."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทางเมื่อ predicate=within_distance."
              },
              "strategy": {
                "label": "กลยุทธ์",
                "description": "กลยุทธ์การถ่ายโอน: first, last, count, sum, mean, min, max."
              },
              "prefix": {
                "label": "คำนำหน้า",
                "description": "คำนำหน้าสำหรับฟิลด์ต้นทางที่ถ่ายโอนมา (ค่าเริ่มต้น SRC_)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "travelling_salesman_problem": {
            "name": "ปัญหาพนักงานขายเดินทาง",
            "description": "หาคำตอบโดยประมาณของปัญหาการเดินทางของพนักงานขาย (TSP) โดยใช้ฮิวริสติก 2-opt เมื่อกำหนดชุดตำแหน่งจุด จะระบุเส้นทางที่สั้นที่สุดที่เชื่อมต่อทุกจุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "duration": {
                "label": "ระยะเวลา",
                "description": "ระยะเวลาสูงสุดในการหาค่าเหมาะที่สุด หน่วยเป็นวินาที."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธโพลีไลน์ผลลัพธ์ เป็นตัวเลือก."
              }
            }
          },
          "vehicle_routing_cvrp": {
            "name": "การจัดเส้นทางยานพาหนะ CVRP",
            "description": "สร้างเส้นทางการจัดส่งหลายคลังสินค้าที่มีข้อจำกัดความจุ พร้อมการควบคุมกองยานพาหนะที่หลากหลาย โหมดวัตถุประสงค์ และการหาค่าเหมาะที่สุดเฉพาะที่ (ถ้าเลือก)",
            "params": {
              "network": {
                "label": "โครงข่าย",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า (ตรวจสอบความถูกต้องเพื่อความสอดคล้องของสัญญาการเรียกใช้)."
              },
              "depot_points": {
                "label": "จุดคลัง",
                "description": "เลเยอร์จุดคลังสินค้า แต่ละจุดสามารถมียานพาหนะได้ตั้งแต่หนึ่งคันขึ้นไป."
              },
              "stop_points": {
                "label": "จุดจอด",
                "description": "เลเยอร์จุดแวะส่งสินค้า."
              },
              "demand_field": {
                "label": "ฟิลด์อุปสงค์",
                "description": "ฟิลด์ความต้องการแบบตัวเลขใน stop_points (ค่าเริ่มต้น: demand)."
              },
              "priority_field": {
                "label": "ฟิลด์ลำดับความสำคัญ",
                "description": "ฟิลด์ลำดับความสำคัญของจุดแวะ เป็นตัวเลือก ใช้ค่าเช่น required/high/normal/low หรืออันดับแบบตัวเลข."
              },
              "allowed_vehicle_profiles_field": {
                "label": "ฟิลด์โปรไฟล์ยานพาหนะที่อนุญาต",
                "description": "ฟิลด์ของจุดแวะที่ระบุโปรไฟล์ยานพาหนะที่ใช้ร่วมกันได้ เป็นตัวเลือก (คั่นด้วยจุลภาค/อัฒภาค/ขีดตั้ง)."
              },
              "allowed_route_classes_field": {
                "label": "ฟิลด์คลาสเส้นทางที่อนุญาต",
                "description": "ชื่อเรียกอื่นของ allowed_vehicle_profiles_field สำหรับกฎความเข้ากันได้ของคลาสเส้นทาง เป็นตัวเลือก."
              },
              "depot_id_field": {
                "label": "ฟิลด์รหัสคลัง",
                "description": "ฟิลด์รหัสคลังสินค้าที่ใช้ในผลลัพธ์เส้นทาง/การมอบหมาย เป็นตัวเลือก."
              },
              "vehicle_count_field": {
                "label": "ฟิลด์จำนวนยานพาหนะ",
                "description": "ฟิลด์ของคลังสินค้าสำหรับจำนวนยานพาหนะที่ออกปฏิบัติงานจากแต่ละคลัง เป็นตัวเลือก."
              },
              "vehicle_capacity_field": {
                "label": "ฟิลด์ความจุยานพาหนะ",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ vehicle_capacity ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "vehicle_fixed_cost_field": {
                "label": "ฟิลด์ต้นทุนคงที่ยานพาหนะ",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ vehicle_fixed_cost ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "travel_speed_field": {
                "label": "ฟิลด์ความเร็วเดินทาง",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ travel_speed ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "max_route_distance_field": {
                "label": "ฟิลด์ระยะทางเส้นทางสูงสุด",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ max_route_distance ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "max_route_time_field": {
                "label": "ฟิลด์เวลาเส้นทางสูงสุด",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ max_route_time ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "vehicle_profile_field": {
                "label": "ฟิลด์โปรไฟล์ยานพาหนะ",
                "description": "ฟิลด์ของคลังสินค้าที่กำหนดโทเคนโปรไฟล์/หมวดหมู่ยานพาหนะซึ่งใช้ตรวจความเข้ากันได้กับจุดแวะ เป็นตัวเลือก."
              },
              "vehicle_route_class_field": {
                "label": "ฟิลด์คลาสเส้นทางยานพาหนะ",
                "description": "ชื่อเรียกอื่นของ vehicle_profile_field สำหรับกฎความเข้ากันได้ของคลาสเส้นทาง เป็นตัวเลือก."
              },
              "vehicle_capacity": {
                "label": "ความจุยานพาหนะ",
                "description": "ความจุต่อยานพาหนะหนึ่งคัน (> 0)."
              },
              "vehicle_fixed_cost": {
                "label": "ต้นทุนคงที่ยานพาหนะ",
                "description": "ต้นทุนคงที่ที่คิดต่อยานพาหนะ/เส้นทางที่ออกปฏิบัติงานหนึ่งหน่วย เป็นตัวเลือก (ค่าเริ่มต้น: 0)."
              },
              "max_vehicles": {
                "label": "จำนวนยานพาหนะสูงสุด",
                "description": "จำนวนยานพาหนะ/เส้นทางสูงสุดที่จะสร้าง เป็นตัวเลือก."
              },
              "max_route_distance": {
                "label": "ระยะทางเส้นทางสูงสุด",
                "description": "ระยะทางเดินทางสูงสุดต่อเส้นทาง รวมการเดินทางกลับคลังสินค้า เป็นตัวเลือก."
              },
              "travel_speed": {
                "label": "ความเร็วเดินทาง",
                "description": "ความเร็วในการเดินทางในหน่วยพิกัดต่อหน่วยเวลา (ค่าเริ่มต้น: 1)."
              },
              "max_route_time": {
                "label": "เวลาเส้นทางสูงสุด",
                "description": "ระยะเวลาสูงสุดของเส้นทางในหน่วยเวลาของแบบจำลอง รวมการเดินทางกลับคลังสินค้า เป็นตัวเลือก."
              },
              "max_stops_per_vehicle": {
                "label": "จำนวนจุดจอดสูงสุดต่อยานพาหนะ",
                "description": "จำนวนจุดแวะสูงสุดที่มอบหมายให้แต่ละเส้นทางของยานพาหนะ เป็นตัวเลือก."
              },
              "objective_mode": {
                "label": "โหมดวัตถุประสงค์",
                "description": "เป้าหมายของการสร้างเส้นทาง: minimize_distance, minimize_vehicles หรือ minimize_cost."
              },
              "apply_local_optimization": {
                "label": "ใช้การปรับให้เหมาะสมเฉพาะที่",
                "description": "เมื่อเป็นจริง จะใช้การปรับปรุงเฉพาะที่แบบ 2-opt ซึ่งให้ผลคงที่กับทุกเส้นทางที่สร้างขึ้น (ค่าเริ่มต้น: true)."
              },
              "apply_simulated_annealing": {
                "label": "ใช้ Simulated Annealing",
                "description": "เมื่อเป็นจริง จะใช้การปรับแต่งด้วย simulated annealing แบบกำหนดค่าเริ่มต้นสุ่มกับแต่ละเส้นทางหลังการหาค่าเหมาะที่สุดแบบละโมบ/เฉพาะที่ (ค่าเริ่มต้น: false)."
              },
              "sa_iterations": {
                "label": "จำนวนรอบ SA",
                "description": "จำนวนรอบวนซ้ำสูงสุดของ simulated annealing ต่อเส้นทางเมื่อ apply_simulated_annealing=true (ค่าเริ่มต้น: 1500)."
              },
              "sa_initial_temperature": {
                "label": "อุณหภูมิเริ่มต้น SA",
                "description": "อุณหภูมิเริ่มต้นของ simulated annealing (> 0, ค่าเริ่มต้น: 1.0)."
              },
              "sa_cooling_rate": {
                "label": "อัตราการเย็นตัว SA",
                "description": "ตัวคูณการลดอุณหภูมิของ simulated annealing ในช่วง (0, 1); ค่าเริ่มต้น 0.995."
              },
              "sa_seed": {
                "label": "ค่าเริ่มต้นสุ่ม SA",
                "description": "ค่าเริ่มต้นสุ่มแบบให้ผลคงที่สำหรับ simulated annealing เป็นตัวเลือก (ค่าเริ่มต้น: 42)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ของเส้นทาง."
              },
              "assignment_output": {
                "label": "ผลลัพธ์การมอบหมาย",
                "description": "ผลลัพธ์จุดการมอบหมายจุดแวะพร้อมการวินิจฉัยลำดับการเข้าเยี่ยม/ปริมาณบรรทุก เป็นตัวเลือก."
              }
            }
          },
          "vehicle_routing_pickup_delivery": {
            "name": "การจัดเส้นทางยานพาหนะแบบรับ-ส่ง",
            "description": "สร้างเส้นทางรับ-ส่งแบบจับคู่ที่มีข้อจำกัดลำดับก่อนหลังและความจุ โดยใช้เส้นฐานแบบเพื่อนบ้านใกล้ที่สุดที่กำหนดแน่นอน",
            "params": {
              "network": {
                "label": "โครงข่าย",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า (ตรวจสอบความถูกต้องเพื่อความสอดคล้องของสัญญาการเรียกใช้)."
              },
              "depot_points": {
                "label": "จุดคลัง",
                "description": "เลเยอร์จุดคลังสินค้า จุดแรกจะถูกใช้เป็นคลังสินค้าที่ใช้งานในการทำงานพื้นฐานนี้."
              },
              "stop_points": {
                "label": "จุดจอด",
                "description": "เลเยอร์จุดแวะที่มีระเบียนการรับและการส่งซึ่งจับคู่กัน."
              },
              "request_id_field": {
                "label": "ฟิลด์รหัสคำขอ",
                "description": "ฟิลด์รหัสคำขอใน stop_points ที่ใช้จับคู่ระเบียนการรับและการส่ง (ค่าเริ่มต้น: request_id)."
              },
              "stop_type_field": {
                "label": "ฟิลด์ชนิดจุดจอด",
                "description": "ฟิลด์ชนิดจุดแวะใน stop_points ที่มีป้ายกำกับ pickup/delivery (ค่าเริ่มต้น: stop_type)."
              },
              "demand_field": {
                "label": "ฟิลด์อุปสงค์",
                "description": "ฟิลด์ความต้องการแบบตัวเลขใน stop_points ความต้องการของการรับจะถูกบรรทุกและความต้องการที่ส่งแล้วจะถูกละเว้น (ค่าเริ่มต้น: demand)."
              },
              "vehicle_capacity": {
                "label": "ความจุยานพาหนะ",
                "description": "ความจุต่อยานพาหนะหนึ่งคัน (> 0)."
              },
              "max_vehicles": {
                "label": "จำนวนยานพาหนะสูงสุด",
                "description": "จำนวนยานพาหนะ/เส้นทางสูงสุดที่จะสร้าง เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ของเส้นทาง."
              },
              "assignment_output": {
                "label": "ผลลัพธ์การมอบหมาย",
                "description": "ผลลัพธ์จุดการมอบหมายจุดแวะพร้อมการวินิจฉัยคำขอและลำดับก่อนหลัง เป็นตัวเลือก."
              }
            }
          },
          "vehicle_routing_vrptw": {
            "name": "การจัดเส้นทางยานพาหนะ VRPTW",
            "description": "สร้างเส้นทาง VRPTW หลายคลังสินค้าที่มีข้อจำกัดความจุ พร้อมการตั้งค่ากองยานพาหนะที่หลากหลาย ช่วงเวลาพัก และการควบคุมโหมดวัตถุประสงค์",
            "params": {
              "network": {
                "label": "โครงข่าย",
                "description": "เลเยอร์โครงข่ายเส้นนำเข้า (ตรวจสอบความถูกต้องเพื่อความสอดคล้องของสัญญาการเรียกใช้)."
              },
              "depot_points": {
                "label": "จุดคลัง",
                "description": "เลเยอร์จุดคลังสินค้า แต่ละจุดสามารถมียานพาหนะได้ตั้งแต่หนึ่งคันขึ้นไป."
              },
              "stop_points": {
                "label": "จุดจอด",
                "description": "เลเยอร์จุดแวะส่งสินค้าที่มีฟิลด์ความต้องการและกรอบเวลา."
              },
              "demand_field": {
                "label": "ฟิลด์อุปสงค์",
                "description": "ฟิลด์ความต้องการแบบตัวเลขใน stop_points (ค่าเริ่มต้น: demand)."
              },
              "priority_field": {
                "label": "ฟิลด์ลำดับความสำคัญ",
                "description": "ฟิลด์ลำดับความสำคัญของจุดแวะ เป็นตัวเลือก ใช้ค่าเช่น required/high/normal/low หรืออันดับแบบตัวเลข."
              },
              "allowed_vehicle_profiles_field": {
                "label": "ฟิลด์โปรไฟล์ยานพาหนะที่อนุญาต",
                "description": "ฟิลด์ของจุดแวะที่ระบุโปรไฟล์ยานพาหนะที่ใช้ร่วมกันได้ เป็นตัวเลือก (คั่นด้วยจุลภาค/อัฒภาค/ขีดตั้ง)."
              },
              "allowed_route_classes_field": {
                "label": "ฟิลด์คลาสเส้นทางที่อนุญาต",
                "description": "ชื่อเรียกอื่นของ allowed_vehicle_profiles_field สำหรับกฎความเข้ากันได้ของคลาสเส้นทาง เป็นตัวเลือก."
              },
              "tw_start_field": {
                "label": "ฟิลด์เริ่มต้นกรอบเวลา",
                "description": "ฟิลด์ตัวเลขของจุดเริ่มต้นกรอบเวลาใน stop_points (ค่าเริ่มต้น: tw_start)."
              },
              "tw_end_field": {
                "label": "ฟิลด์สิ้นสุดกรอบเวลา",
                "description": "ฟิลด์ตัวเลขของจุดสิ้นสุดกรอบเวลาใน stop_points (ค่าเริ่มต้น: tw_end)."
              },
              "service_time_field": {
                "label": "ฟิลด์เวลาให้บริการ",
                "description": "ฟิลด์ตัวเลขของเวลาให้บริการต่อจุดแวะใน stop_points (ค่าเริ่มต้น: service_time)."
              },
              "depot_id_field": {
                "label": "ฟิลด์รหัสคลัง",
                "description": "ฟิลด์รหัสคลังสินค้าที่ใช้ในผลลัพธ์เส้นทาง/การมอบหมาย เป็นตัวเลือก."
              },
              "vehicle_count_field": {
                "label": "ฟิลด์จำนวนยานพาหนะ",
                "description": "ฟิลด์ของคลังสินค้าสำหรับจำนวนยานพาหนะที่ออกปฏิบัติงานจากแต่ละคลัง เป็นตัวเลือก."
              },
              "vehicle_capacity_field": {
                "label": "ฟิลด์ความจุยานพาหนะ",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ vehicle_capacity ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "vehicle_fixed_cost_field": {
                "label": "ฟิลด์ต้นทุนคงที่ยานพาหนะ",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ vehicle_fixed_cost ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "travel_speed_field": {
                "label": "ฟิลด์ความเร็วเดินทาง",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ travel_speed ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "max_route_distance_field": {
                "label": "ฟิลด์ระยะทางเส้นทางสูงสุด",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ max_route_distance ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "max_route_time_field": {
                "label": "ฟิลด์เวลาเส้นทางสูงสุด",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ max_route_time ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "vehicle_profile_field": {
                "label": "ฟิลด์โปรไฟล์ยานพาหนะ",
                "description": "ฟิลด์ของคลังสินค้าที่กำหนดโทเคนโปรไฟล์/หมวดหมู่ยานพาหนะซึ่งใช้ตรวจความเข้ากันได้กับจุดแวะ เป็นตัวเลือก."
              },
              "vehicle_route_class_field": {
                "label": "ฟิลด์คลาสเส้นทางยานพาหนะ",
                "description": "ชื่อเรียกอื่นของ vehicle_profile_field สำหรับกฎความเข้ากันได้ของคลาสเส้นทาง เป็นตัวเลือก."
              },
              "depot_close_time_field": {
                "label": "ฟิลด์เวลาปิดคลัง",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ depot_close_time ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "break_start_field": {
                "label": "ฟิลด์เริ่มพัก",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ break_start_time ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "break_end_field": {
                "label": "ฟิลด์สิ้นสุดพัก",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ break_end_time ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "break_duration_field": {
                "label": "ฟิลด์ระยะเวลาพัก",
                "description": "ฟิลด์ของคลังสินค้าที่ใช้แทนที่ break_duration ต่อเทมเพลตคลังสินค้า/ยานพาหนะ เป็นตัวเลือก."
              },
              "vehicle_capacity": {
                "label": "ความจุยานพาหนะ",
                "description": "ความจุต่อยานพาหนะหนึ่งคัน (> 0)."
              },
              "vehicle_fixed_cost": {
                "label": "ต้นทุนคงที่ยานพาหนะ",
                "description": "ต้นทุนคงที่ที่คิดต่อยานพาหนะ/เส้นทางที่ออกปฏิบัติงานหนึ่งหน่วย เป็นตัวเลือก (ค่าเริ่มต้น: 0)."
              },
              "start_time": {
                "label": "เวลาเริ่มต้น",
                "description": "เวลาเริ่มต้นเส้นทางในหน่วยเวลาของแบบจำลอง (ค่าเริ่มต้น: 0)."
              },
              "travel_speed": {
                "label": "ความเร็วเดินทาง",
                "description": "ความเร็วในการเดินทางในหน่วยพิกัดต่อหน่วยเวลา (ค่าเริ่มต้น: 1)."
              },
              "enforce_time_windows": {
                "label": "บังคับกรอบเวลา",
                "description": "เมื่อเป็นจริง เฉพาะจุดแวะที่มีความล่าช้า <= allowed_lateness เท่านั้นที่มีสิทธิ์ได้รับการมอบหมาย (ค่าเริ่มต้น: false)."
              },
              "allowed_lateness": {
                "label": "ความล่าช้าที่ยอมรับได้",
                "description": "ความล่าช้าสูงสุดที่ยอมรับได้เมื่อ enforce_time_windows=true (ค่าเริ่มต้น: 0)."
              },
              "depot_close_time": {
                "label": "เวลาปิดคลัง",
                "description": "เวลาปิดแบบเข้มงวดที่แต่ละเส้นทางต้องเดินทางกลับถึงคลังสินค้า เป็นตัวเลือก."
              },
              "break_start_time": {
                "label": "เวลาเริ่มพัก",
                "description": "เวลาเริ่มต้นของกรอบเวลาพักโดยรวมสำหรับยานพาหนะทั้งหมด เป็นตัวเลือก."
              },
              "break_end_time": {
                "label": "เวลาสิ้นสุดพัก",
                "description": "เวลาสิ้นสุดของกรอบเวลาพักโดยรวมสำหรับยานพาหนะทั้งหมด เป็นตัวเลือก."
              },
              "break_duration": {
                "label": "ระยะเวลาพัก",
                "description": "ระยะเวลาพักโดยรวมที่ใช้หนึ่งครั้งต่อเส้นทางเมื่อคาบเกี่ยวกับกรอบเวลาพัก เป็นตัวเลือก."
              },
              "use_priority_scoring": {
                "label": "ใช้คะแนนลำดับความสำคัญ",
                "description": "เมื่อเป็นจริง จะจัดอันดับตัวเลือกที่เป็นไปได้ตามความล่าช้า/เวลาเหลือที่คาดการณ์ไว้ก่อนพิจารณาระยะทางเดินทาง เมื่อเป็นเท็จ จะใช้วิธีเพื่อนบ้านใกล้ที่สุดเป็นเกณฑ์ฐาน (ค่าเริ่มต้น: true)."
              },
              "max_vehicles": {
                "label": "จำนวนยานพาหนะสูงสุด",
                "description": "จำนวนยานพาหนะ/เส้นทางสูงสุดที่จะสร้าง เป็นตัวเลือก."
              },
              "max_route_distance": {
                "label": "ระยะทางเส้นทางสูงสุด",
                "description": "ระยะทางเดินทางสูงสุดของเส้นทาง รวมการเดินทางกลับคลังสินค้า เป็นตัวเลือก."
              },
              "max_route_time": {
                "label": "เวลาเส้นทางสูงสุด",
                "description": "ระยะเวลาสูงสุดของเส้นทางในหน่วยเวลาของแบบจำลอง รวมการเดินทางกลับคลังสินค้า เป็นตัวเลือก."
              },
              "max_stops_per_vehicle": {
                "label": "จำนวนจุดจอดสูงสุดต่อยานพาหนะ",
                "description": "จำนวนจุดแวะสูงสุดที่มอบหมายให้แต่ละเส้นทางของยานพาหนะ เป็นตัวเลือก."
              },
              "objective_mode": {
                "label": "โหมดวัตถุประสงค์",
                "description": "เป้าหมายของการสร้างเส้นทาง: minimize_lateness, minimize_distance, minimize_vehicles หรือ minimize_cost."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ของเส้นทาง."
              },
              "assignment_output": {
                "label": "ผลลัพธ์การมอบหมาย",
                "description": "ผลลัพธ์จุดการมอบหมายจุดแวะพร้อมการวินิจฉัยกรอบเวลา เป็นตัวเลือก."
              }
            }
          },
          "clip": {
            "name": "ตัด",
            "description": "ตัดโพลิกอนนำเข้าตามขอบเขตโพลิกอนซ้อนทับโดยใช้การตัดกันแบบอิงทอพอโลยี",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์โพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางโทโพโลยี เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "difference": {
            "name": "ผลต่าง",
            "description": "ลบพื้นที่โพลิกอนซ้อนทับออกจากโพลิกอนนำเข้าโดยใช้ผลต่างแบบอิงทอพอโลยี",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์โพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางโทโพโลยี เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "dissolve": {
            "name": "ยุบรวม",
            "description": "ลบขอบเขตร่วมของโพลิกอนทั้งหมดหรือตามฟิลด์แอตทริบิวต์สำหรับการยุบรวม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "dissolve_field": {
                "label": "ฟิลด์ยุบรวม",
                "description": "ฟิลด์แอตทริบิวต์ที่ใช้ยุบรวมโพลิกอนภายในกลุ่ม เป็นตัวเลือก หากไม่ระบุ จะยุบรวมโพลิกอนทั้งหมด."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ระหว่างการดำเนินการทางโทโพโลยี เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "erase": {
            "name": "ลบออก",
            "description": "ลบพื้นที่โพลิกอนซ้อนทับออกจากโพลิกอนนำเข้าและคงแอตทริบิวต์นำเข้าไว้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์โพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางโทโพโลยี เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "identity": {
            "name": "ไอเดนทิตี",
            "description": "คงฟีเจอร์นำเข้าทั้งหมดไว้ ส่วนที่ซ้อนทับกับเลเยอร์ไอเดนทิตีจะได้รับแอตทริบิวต์ของไอเดนทิตีเพิ่มด้วย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์โพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางโทโพโลยี เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "intersect": {
            "name": "ตัดกัน",
            "description": "ตัดกันโพลิกอนนำเข้าและโพลิกอนซ้อนทับโดยใช้การซ้อนทับแบบอิงทอพอโลยี และติดตามรหัสฟีเจอร์ต้นทาง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์โพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางโทโพโลยี เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "line_intersections": {
            "name": "จุดตัดของเส้น",
            "description": "ค้นหาจุดตัดของเส้นระหว่างเลเยอร์นำเข้าและเลเยอร์ซ้อนทับ และเพิ่มรหัสแม่พร้อมแอตทริบิวต์ที่ผสานแล้ว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นหรือโพลิกอนนำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์เส้นหรือโพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางเรขาคณิต เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "line_polygon_clip": {
            "name": "ตัดเส้นด้วยโพลิกอน",
            "description": "ตัดฟีเจอร์เส้นให้อยู่ภายในโพลิกอน และส่งออกส่วนของเส้นที่ตัดแล้ว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นที่นำเข้า."
              },
              "clip": {
                "label": "ตัด",
                "description": "เลเยอร์โพลิกอนสำหรับตัด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "near": {
            "name": "ใกล้ที่สุด",
            "description": "เพิ่มแอตทริบิวต์ NEAR_FID และ NEAR_DIST ที่ระบุฟีเจอร์ที่ใกล้ที่สุดและระยะทางโดยใช้ดัชนีเชิงพื้นที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "near": {
                "label": "ใกล้ที่สุด",
                "description": "เลเยอร์เวกเตอร์ฟีเจอร์ใกล้เคียง."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาสูงสุด เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "select_by_location": {
            "name": "เลือกตามตำแหน่ง",
            "description": "กรองฟีเจอร์เป้าหมายตามเงื่อนไขเชิงพื้นที่ (intersects, within, contains, touches, overlaps เป็นต้น) เทียบกับฟีเจอร์สืบค้น",
            "params": {
              "target": {
                "label": "เป้าหมาย",
                "description": "เลเยอร์ฟีเจอร์เป้าหมายที่จะกรอง."
              },
              "query": {
                "label": "คำค้น",
                "description": "เลเยอร์ฟีเจอร์สำหรับสอบถาม."
              },
              "predicate": {
                "label": "ภาคแสดง",
                "description": "เพรดิเคตเชิงพื้นที่: intersects, within, contains, touches, crosses, overlaps, disjoint, within_distance."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทางสำหรับเพรดิเคต within_distance."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "spatial_join": {
            "name": "การเชื่อมเชิงพื้นที่",
            "description": "ถ่ายโอนแอตทริบิวต์จากฟีเจอร์ในเลเยอร์เชื่อมไปยังเป้าหมายโดยใช้เงื่อนไขเชิงพื้นที่ รองรับกลยุทธ์การรวม (count, sum, mean, min, max) สำหรับการจับคู่หลายรายการ",
            "params": {
              "target": {
                "label": "เป้าหมาย",
                "description": "เลเยอร์เป้าหมายที่รับแอตทริบิวต์ที่เชื่อมเข้ามา."
              },
              "join": {
                "label": "เชื่อม",
                "description": "เลเยอร์สำหรับเชื่อมที่ให้แอตทริบิวต์."
              },
              "predicate": {
                "label": "ภาคแสดง",
                "description": "เพรดิเคตเชิงพื้นที่: intersects, within, contains, touches, crosses, overlaps, within_distance."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทางสำหรับเพรดิเคต within_distance."
              },
              "strategy": {
                "label": "กลยุทธ์",
                "description": "กลยุทธ์การเชื่อม: first, last, count, sum, mean, min, max."
              },
              "prefix": {
                "label": "คำนำหน้า",
                "description": "คำนำหน้าสำหรับชื่อฟิลด์ที่เชื่อมเข้ามา (ค่าเริ่มต้น JOIN_)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "symmetrical_difference": {
            "name": "ผลต่างสมมาตร",
            "description": "คำนวณบริเวณโพลิกอนที่ไม่ซ้อนทับกันจากเลเยอร์นำเข้าและเลเยอร์ซ้อนทับ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์โพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางโทโพโลยี เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "union": {
            "name": "รวม",
            "description": "ยุบรวมโพลิกอนนำเข้าและโพลิกอนซ้อนทับที่รวมกันเป็นความครอบคลุมโพลิกอนแบบเดียว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์โพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางโทโพโลยี เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "update": {
            "name": "อัปเดต",
            "description": "แทนที่ฟีเจอร์นำเข้าด้วยฟีเจอร์อัปเดตในส่วนที่ซ้อนทับกัน ฟีเจอร์นำเข้าที่อยู่นอกเลเยอร์อัปเดตจะถูกคงไว้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "เลเยอร์โพลิกอนสำหรับการซ้อนทับ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการทางโทโพโลยี เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "centroid_vector": {
            "name": "เซนทรอยด์เวกเตอร์",
            "description": "คำนวณจุดศูนย์กลางทางภูมิศาสตร์ (พิกัดเฉลี่ยของมวล) สำหรับแต่ละฟีเจอร์เวกเตอร์ ได้เลเยอร์จุดสำหรับการวางป้ายชื่อ การจัดกลุ่ม และการวิเคราะห์เชิงพื้นที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "concave_hull": {
            "name": "คอนเคฟฮัลล์",
            "description": "สร้างโพลิกอนคอนเคฟฮัลล์รอบพิกัดของฟีเจอร์นำเข้าโดยใช้อัลกอริทึม concaveman",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "concavity": {
                "label": "ความเว้า",
                "description": "อัตราส่วนความเว้า (ค่าเริ่มต้น 2.0) ค่าที่สูงขึ้นจะให้ฮัลล์ที่เว้าน้อยลงและใกล้เคียงคอนเวกซ์ฮัลล์มากขึ้น ค่าที่ต่ำลงจะยอมให้เกิดความเว้าที่แคบกว่า."
              },
              "max_edge_length": {
                "label": "ความยาวขอบสูงสุด",
                "description": "ค่าเกณฑ์ความยาว: ขอบของฮัลล์ที่สั้นกว่าค่านี้จะไม่ถูกปรับละเอียดต่อไป ค่าเริ่มต้นคือไม่จำกัด (อนันต์)."
              },
              "epsilon": {
                "label": "Epsilon",
                "description": "ค่าเอปไซลอนเพื่อความทนทานเชิงตัวเลข (ค่าเริ่มต้น 1e-9)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "densify_features": {
            "name": "เพิ่มความหนาแน่นจุดของฟีเจอร์",
            "description": "เพิ่มจุดยอดตามแนวเส้นและขอบเขตโพลิกอนที่ระยะห่างที่กำหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "spacing": {
                "label": "ระยะห่าง",
                "description": "ระยะห่างสูงสุดระหว่างจุดยอดที่อยู่ติดกัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "eliminate_coincident_points": {
            "name": "กำจัดจุดที่ซ้อนกัน",
            "description": "ลบจุดที่ซ้อนกันหรือเกือบซ้อนกันภายในระยะทางความคลาดเคลื่อนที่ยอมรับได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "tolerance_dist": {
                "label": "ระยะค่าเผื่อ",
                "description": "ค่าเกณฑ์ระยะทางสำหรับการถือว่าจุดทับซ้อนกัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "extend_vector_lines": {
            "name": "ต่อขยายเส้นเวกเตอร์",
            "description": "ขยายจุดปลายของเส้นหลายส่วนตามระยะทางที่กำหนดที่จุดเริ่มต้น จุดสิ้นสุด หรือทั้งสอง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลีไลน์นำเข้า."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ระยะทางที่จะขยายจุดปลายของโพลีไลน์."
              },
              "extend_direction": {
                "label": "ทิศทางต่อขยาย",
                "description": "ทิศทางที่จะขยายจุดปลาย: both, start หรือ end."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "merge_line_segments": {
            "name": "รวมส่วนของเส้น",
            "description": "ผสานส่วนของเส้นที่เชื่อมต่อกันซึ่งพบกันที่จุดปลายที่ไม่แยกกิ่ง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลีไลน์นำเข้า."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปจุดปลายที่ใช้จับคู่ปลายเส้น เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "minimum_bounding_box": {
            "name": "กรอบสี่เหลี่ยมล้อมรอบเล็กสุด",
            "description": "คำนวณกรอบสี่เหลี่ยมล้อมรอบขนาดเล็กที่สุดแบบมีทิศทางรอบฟีเจอร์แต่ละรายการหรือทั้งเลเยอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "min_criteria": {
                "label": "เกณฑ์ขั้นต่ำ",
                "description": "เกณฑ์การทำให้น้อยที่สุด: area, perimeter, length หรือ width ค่าเริ่มต้นคือ area."
              },
              "individual_feature_hulls": {
                "label": "ฮัลล์รายฟีเจอร์",
                "description": "หากเป็นจริง จะสร้างกล่องหนึ่งกล่องต่อฟีเจอร์ มิฉะนั้นจะสร้างกล่องเดียวสำหรับทั้งเลเยอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "minimum_bounding_circle": {
            "name": "วงกลมล้อมรอบเล็กสุด",
            "description": "คำนวณวงกลมล้อมรอบขนาดเล็กที่สุดรอบฟีเจอร์แต่ละรายการหรือทั้งเลเยอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "individual_feature_hulls": {
                "label": "ฮัลล์รายฟีเจอร์",
                "description": "หากเป็นจริง จะสร้างวงกลมหนึ่งวงต่อฟีเจอร์ มิฉะนั้นจะสร้างวงกลมเดียวสำหรับทั้งเลเยอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "minimum_bounding_envelope": {
            "name": "กรอบล้อมรอบเล็กสุด",
            "description": "คำนวณกรอบล้อมรอบขนาดเล็กที่สุดที่จัดแนวตามแกนรอบฟีเจอร์แต่ละรายการหรือทั้งเลเยอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "individual_feature_hulls": {
                "label": "ฮัลล์รายฟีเจอร์",
                "description": "หากเป็นจริง จะสร้างกรอบขอบเขตหนึ่งกรอบต่อฟีเจอร์ มิฉะนั้นจะสร้างกรอบขอบเขตเดียวสำหรับทั้งเลเยอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "minimum_convex_hull": {
            "name": "คอนเวกซ์ฮัลล์เล็กสุด",
            "description": "สร้างโพลิกอนคอนเวกซ์ฮัลล์รอบฟีเจอร์แต่ละรายการหรือทั้งเลเยอร์นำเข้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "individual_feature_hulls": {
                "label": "ฮัลล์รายฟีเจอร์",
                "description": "หากเป็นจริง จะสร้างฮัลล์หนึ่งรูปต่อหนึ่งฟีเจอร์นำเข้า มิฉะนั้นจะสร้างฮัลล์เดียวสำหรับทั้งเลเยอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "polygonize": {
            "name": "สร้างโพลิกอน",
            "description": "สร้างโพลิกอนจากเส้นนำเข้า รวมถึงส่วนที่ตัดกัน/เปิดอยู่ซึ่งสามารถสร้างหน้าปิดล้อมได้",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นนำเข้าในรูปแบบอาร์เรย์หรือสตริงที่คั่นด้วยอัฒภาค/จุลภาค หากไม่ระบุ จะใช้ 'input'."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเลเยอร์เวกเตอร์เส้นนำเข้าเดี่ยว เป็นตัวเลือก."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการสร้างโพลิกอน เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "representative_point_vector": {
            "name": "จุดตัวแทนของเวกเตอร์",
            "description": "สร้างจุดภายในที่รับประกันว่าอยู่ภายในหรือบนแต่ละเรขาคณิตโดยใช้ pole-of-inaccessibility เหมาะสำหรับการวางป้ายชื่อในโพลิกอนเว้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "simplify_features": {
            "name": "ลดรูปฟีเจอร์",
            "description": "ลดความซับซ้อนของเรขาคณิตโดยใช้อัลกอริทึม Douglas-Peucker เพื่อลดขนาดไฟล์ ขจัดสัญญาณรบกวนจาก GPS และปรับประสิทธิภาพการเรนเดอร์ให้เหมาะสมพร้อมคงรูปร่างไว้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อการลดรูปในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "smooth_vectors": {
            "name": "ทำเวกเตอร์ให้เรียบ",
            "description": "ทำให้เรขาคณิตเส้นหลายส่วนหรือโพลิกอนเรียบโดยใช้การกรองค่าเฉลี่ยเคลื่อนที่ เพื่อลดสัญญาณรบกวนจากการดิจิไทซ์และความสั่นไหวของแนวเส้นทาง GPS",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นหรือโพลิกอนนำเข้า."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดหน้าต่างค่าเฉลี่ยเคลื่อนที่แบบเลขคี่ (>= 3) ค่าที่เป็นเลขคู่จะถูกเพิ่มเป็นเลขคี่ถัดไป."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "snap_endnodes": {
            "name": "สแนปโหนดปลาย",
            "description": "สแนปจุดปลายของเส้นหลายส่วนที่อยู่ใกล้กันไปยังตำแหน่งร่วมภายในค่าความคลาดเคลื่อนที่ยอมรับได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลีไลน์นำเข้า."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปจุดปลายในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลีไลน์ผลลัพธ์ที่สแนปแล้ว."
              }
            }
          },
          "split_vector_lines": {
            "name": "แยกเส้นเวกเตอร์",
            "description": "แบ่งฟีเจอร์เส้นหลายส่วนแต่ละรายการเป็นส่วนย่อยที่มีความยาวสูงสุดตามที่กำหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลีไลน์นำเข้า."
              },
              "segment_length": {
                "label": "ความยาวเซกเมนต์",
                "description": "ความยาวเซกเมนต์สูงสุดในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลีไลน์ผลลัพธ์."
              }
            }
          },
          "split_with_lines": {
            "name": "แยกด้วยเส้น",
            "description": "แบ่งเส้นหลายส่วนนำเข้าโดยใช้จุดตัดจากเลเยอร์เส้นแบ่ง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นนำเข้าที่จะแยก."
              },
              "split": {
                "label": "แยก",
                "description": "เลเยอร์เส้นสำหรับแยกที่ใช้สร้างจุดแบ่ง."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อการสแนปที่ใช้ในการดำเนินการแยก เป็นตัวเลือก ค่าเริ่มต้นคือ machine epsilon."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "compactness_ratio": {
            "name": "อัตราส่วนความกะทัดรัด",
            "description": "คำนวณอัตราส่วนความกะทัดรัด (พื้นที่ / เส้นรอบรูป) สำหรับฟีเจอร์โพลิกอน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์ความกระชับ."
              }
            }
          },
          "deviation_from_regional_direction": {
            "name": "ความเบี่ยงเบนจากทิศทางระดับภูมิภาค",
            "description": "คำนวณการเบี่ยงเบนทิศทางของโพลิกอนจากทิศทางเฉลี่ยของภูมิภาคแบบถ่วงน้ำหนัก และเพิ่ม DEV_DIR",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "elongation_threshold": {
                "label": "ค่าเกณฑ์ความยาวรี",
                "description": "ค่าความเรียวยาวขั้นต่ำที่ใช้รวมโพลิกอนเข้าในการประมาณทิศทางระดับภูมิภาค ค่าเริ่มต้น 0.75."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "elongation_ratio": {
            "name": "อัตราส่วนความยาวรี",
            "description": "คำนวณอัตราส่วนความยืด (แกนสั้น / แกนยาวของสี่เหลี่ยมล้อมรอบ) สำหรับฟีเจอร์โพลิกอน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์ความเรียวยาว."
              }
            }
          },
          "hole_proportion": {
            "name": "สัดส่วนของรู",
            "description": "คำนวณพื้นที่รูของโพลิกอนหารด้วยพื้นที่ฮัลล์ และเพิ่ม HOLE_PROP",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "linearity_index": {
            "name": "ดัชนีความเป็นเส้นตรง",
            "description": "คำนวณดัชนีความเป็นเส้นตรง (ค่า r-squared ของการถดถอย) สำหรับฟีเจอร์โพลิกอน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์ความเป็นเส้นตรง."
              }
            }
          },
          "narrowness_index_vector": {
            "name": "ดัชนีความแคบของเวกเตอร์",
            "description": "คำนวณดัชนีความแคบ (เส้นรอบรูป / sqrt(พื้นที่)) สำหรับฟีเจอร์โพลิกอน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์ความแคบ."
              }
            }
          },
          "patch_orientation": {
            "name": "การวางตัวของแพตช์",
            "description": "คำนวณการวางแนวของโพลิกอน (องศาจากทิศเหนือ) โดยใช้การถดถอยแบบ reduced major axis และเพิ่ม ORIENT",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "perimeter_area_ratio": {
            "name": "อัตราส่วนเส้นรอบรูปต่อพื้นที่",
            "description": "คำนวณอัตราส่วนเส้นรอบรูป/พื้นที่ของโพลิกอน และเพิ่ม P_A_RATIO",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "polygon_area": {
            "name": "พื้นที่โพลิกอน",
            "description": "คำนวณพื้นที่ของโพลิกอน และเพิ่มฟิลด์แอตทริบิวต์ AREA",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "polygon_long_axis": {
            "name": "แกนยาวของโพลิกอน",
            "description": "ทำแผนที่แกนยาวของกรอบล้อมรอบขนาดเล็กที่สุดของแต่ละฟีเจอร์โพลิกอนเป็นผลลัพธ์เส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลีไลน์ผลลัพธ์."
              }
            }
          },
          "polygon_perimeter": {
            "name": "เส้นรอบรูปโพลิกอน",
            "description": "คำนวณเส้นรอบรูปของโพลิกอน และเพิ่มฟิลด์แอตทริบิวต์ PERIMETER",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "polygon_short_axis": {
            "name": "แกนสั้นของโพลิกอน",
            "description": "ทำแผนที่แกนสั้นของกรอบล้อมรอบขนาดเล็กที่สุดของแต่ละฟีเจอร์โพลิกอนเป็นผลลัพธ์เส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลีไลน์ผลลัพธ์."
              }
            }
          },
          "related_circumscribing_circle": {
            "name": "วงกลมล้อมรอบสัมพัทธ์",
            "description": "คำนวณ 1 - (พื้นที่โพลิกอน / พื้นที่วงกลมล้อมรอบที่เล็กที่สุด) และเพิ่ม RC_CIRCLE",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "shape_complexity_index_vector": {
            "name": "ดัชนีความซับซ้อนรูปร่างของเวกเตอร์",
            "description": "คำนวณดัชนีความซับซ้อนของรูปร่างสำหรับฟีเจอร์โพลิกอนเวกเตอร์โดยใช้ตัวประกอบรูปทรงที่ปรับมาตรฐาน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์ดัชนีความซับซ้อน."
              }
            }
          },
          "global_morans_i": {
            "name": "Moran's I ระดับรวม",
            "description": "คำนวณ Global Moran's I เพื่อทดสอบสหสัมพันธ์เชิงพื้นที่: ว่าค่าที่คล้ายกันเกาะกลุ่มเชิงพื้นที่หรือไม่ เป็นพื้นฐานสำคัญสำหรับการวิเคราะห์ทางธรณีสถิติ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์แบบตัวเลขที่จะวิเคราะห์."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ข้างเคียง: queen, rook, k_nearest, distance_band."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับโหมด k_nearest."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทางสำหรับโหมด distance_band."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ใช้การทำมาตรฐานรายแถวกับน้ำหนัก (ค่าเริ่มต้น true)."
              },
              "inference": {
                "label": "การอนุมาน",
                "description": "โหมดการอนุมาน: asymptotic หรือ permutation (ค่าเริ่มต้น: asymptotic)."
              },
              "num_simulations": {
                "label": "จำนวนการจำลอง",
                "description": "จำนวนการสับเปลี่ยนสำหรับการทดสอบแบบสับเปลี่ยน (ค่าเริ่มต้น: 999)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการทดสอบแบบสับเปลี่ยนที่ทำซ้ำผลได้."
              },
              "island_policy": {
                "label": "นโยบายเกาะ",
                "description": "การจัดการหน่วยที่ไม่มีเพื่อนบ้าน: drop_with_warning, keep_zero_weight, error."
              },
              "output_json": {
                "label": "ผลลัพธ์ JSON",
                "description": "พาธผลลัพธ์รายงาน JSON เป็นตัวเลือก."
              },
              "output_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธไฟล์รายงาน HTML ผลลัพธ์เป็นตัวเลือก."
              },
              "output_csv": {
                "label": "ผลลัพธ์ CSV",
                "description": "พาธผลลัพธ์สรุปแบบ CSV เป็นตัวเลือก."
              },
              "output_distribution": {
                "label": "ผลลัพธ์การแจกแจง",
                "description": "พาธสำหรับบันทึกการแจกแจงแบบสับเปลี่ยนเป็น JSON เป็นตัวเลือก."
              }
            }
          },
          "getis_ord_gi_star": {
            "name": "Getis-Ord Gi*",
            "description": "คำนวณค่า z-score ของ Getis-Ord Gi/Gi* เพื่อระบุจุดร้อน/จุดเย็นเฉพาะที่ เป็นการวัดโดยตรงของการรวมตัวของค่าสูง/ต่ำ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์แบบตัวเลขที่จะวิเคราะห์."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ข้างเคียง: queen, rook, k_nearest, distance_band."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับโหมด k_nearest."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทางสำหรับโหมด distance_band."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ใช้การทำมาตรฐานรายแถวกับน้ำหนัก (ค่าเริ่มต้น true)."
              },
              "variant": {
                "label": "รูปแบบย่อย",
                "description": "รูปแบบ: gi หรือ gi_star (ค่าเริ่มต้น gi_star)."
              },
              "inference": {
                "label": "การอนุมาน",
                "description": "โหมดการอนุมาน: asymptotic หรือ permutation (ค่าเริ่มต้น: asymptotic)."
              },
              "num_simulations": {
                "label": "จำนวนการจำลอง",
                "description": "จำนวนการสับเปลี่ยนสำหรับการทดสอบแบบสับเปลี่ยน (ค่าเริ่มต้น: 999)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการทดสอบแบบสับเปลี่ยนที่ทำซ้ำผลได้."
              },
              "island_policy": {
                "label": "นโยบายเกาะ",
                "description": "การจัดการหน่วยที่ไม่มีเพื่อนบ้าน: drop_with_warning, keep_zero_weight, error."
              },
              "alpha": {
                "label": "Alpha",
                "description": "ค่าเกณฑ์นัยสำคัญในช่วง [0, 1]; ค่าเริ่มต้น 0.05."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์พร้อมฟิลด์ GI."
              },
              "output_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธไฟล์รายงาน HTML ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "local_morans_i_lisa": {
            "name": "Moran's I เฉพาะที่ (LISA)",
            "description": "คำนวณ Local Moran's I สำหรับแต่ละฟีเจอร์เพื่อระบุกลุ่มเชิงพื้นที่เฉพาะที่และค่าผิดปกติพร้อมการทดสอบนัยสำคัญทางสถิติ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์แบบตัวเลขที่จะวิเคราะห์."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ข้างเคียง: queen, rook, k_nearest, distance_band."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับโหมด k_nearest."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทางสำหรับโหมด distance_band."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ใช้การทำมาตรฐานรายแถวกับน้ำหนัก (ค่าเริ่มต้น true)."
              },
              "inference": {
                "label": "การอนุมาน",
                "description": "โหมดการอนุมาน: asymptotic หรือ permutation (ค่าเริ่มต้น: asymptotic)."
              },
              "num_simulations": {
                "label": "จำนวนการจำลอง",
                "description": "จำนวนการสับเปลี่ยนสำหรับการทดสอบแบบสับเปลี่ยน (ค่าเริ่มต้น: 999)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการทดสอบแบบสับเปลี่ยนที่ทำซ้ำผลได้."
              },
              "island_policy": {
                "label": "นโยบายเกาะ",
                "description": "การจัดการหน่วยที่ไม่มีเพื่อนบ้าน: drop_with_warning, keep_zero_weight, error."
              },
              "alpha": {
                "label": "Alpha",
                "description": "ค่าเกณฑ์นัยสำคัญในช่วง [0, 1]; ค่าเริ่มต้น 0.05."
              },
              "fdr_correction": {
                "label": "การแก้ไข FDR",
                "description": "ใช้การแก้ไขแบบ FDR-BH (ค่าเริ่มต้น true สำหรับวิธีสับเปลี่ยน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์พร้อมฟิลด์ LISA."
              },
              "output_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธไฟล์รายงาน HTML ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "nearest_neighbour_index": {
            "name": "ดัชนีเพื่อนบ้านใกล้ที่สุด",
            "description": "คำนวณดัชนีเพื่อนบ้านใกล้ที่สุดของ Clark-Evans เพื่อทดสอบความสุ่มเชิงพื้นที่โดยสมบูรณ์ ตรวจหาการเกาะกลุ่มเทียบกับการกระจายตัว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "study_area_mode": {
                "label": "โหมดพื้นที่ศึกษา",
                "description": "โหมดพื้นที่ศึกษา: hull, envelope, polygon_layer."
              },
              "study_area_polygon": {
                "label": "โพลิกอนพื้นที่ศึกษา",
                "description": "เลเยอร์โพลิกอนที่ใช้เมื่อ study_area_mode=polygon_layer."
              },
              "output_json": {
                "label": "ผลลัพธ์ JSON",
                "description": "พาธผลลัพธ์รายงาน JSON เป็นตัวเลือก."
              },
              "output_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธไฟล์รายงาน HTML ผลลัพธ์เป็นตัวเลือก."
              },
              "output_csv": {
                "label": "ผลลัพธ์ CSV",
                "description": "พาธผลลัพธ์สรุปแบบ CSV เป็นตัวเลือก."
              }
            }
          },
          "quadrat_count_test": {
            "name": "การทดสอบนับควอแดรต",
            "description": "ทำการทดสอบไคสแควร์ของความสุ่มของรูปแบบจุดโดยใช้การนับตามจตุรัส (quadrat) ทดสอบการเกาะกลุ่มเทียบกับการกระจายตัว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "grid_mode": {
                "label": "โหมดกริด",
                "description": "โหมดกริด: rows_cols หรือ cell_size."
              },
              "rows": {
                "label": "แถว",
                "description": "จำนวนแถวเมื่อ grid_mode=rows_cols."
              },
              "cols": {
                "label": "คอลัมน์",
                "description": "จำนวนคอลัมน์เมื่อ grid_mode=rows_cols."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์เมื่อ grid_mode=cell_size."
              },
              "study_area_mode": {
                "label": "โหมดพื้นที่ศึกษา",
                "description": "โหมดพื้นที่ศึกษา: hull, envelope, polygon_layer."
              },
              "study_area_polygon": {
                "label": "โพลิกอนพื้นที่ศึกษา",
                "description": "เลเยอร์โพลิกอนที่ใช้เมื่อ study_area_mode=polygon_layer."
              },
              "output_grid": {
                "label": "ผลลัพธ์กริด",
                "description": "พาธผลลัพธ์กริดโพลิกอนควอดแรต เป็นตัวเลือก."
              },
              "output_json": {
                "label": "ผลลัพธ์ JSON",
                "description": "พาธผลลัพธ์รายงาน JSON เป็นตัวเลือก."
              },
              "output_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธไฟล์รายงาน HTML ผลลัพธ์เป็นตัวเลือก."
              },
              "output_csv": {
                "label": "ผลลัพธ์ CSV",
                "description": "พาธผลลัพธ์สรุปแบบ CSV เป็นตัวเลือก."
              }
            }
          },
          "spatial_lag_regression": {
            "name": "การถดถอยแบบ Spatial Lag",
            "description": "ประมาณแบบจำลองการถดถอยในตัวเชิงพื้นที่ (spatial autoregressive) ที่จับผลกระทบล้นภายในซึ่งตัวแปรตามได้รับอิทธิพลจากเพื่อนบ้านเชิงพื้นที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "response_field": {
                "label": "ฟิลด์ตัวแปรตอบสนอง",
                "description": "ตัวแปรตอบสนอง (ตัวแปรตาม)."
              },
              "predictor_fields": {
                "label": "ฟิลด์ตัวแปรทำนาย",
                "description": "ชื่อฟิลด์ตัวแปรทำนายคั่นด้วยจุลภาค."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ข้างเคียงเชิงพื้นที่."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับ k_nearest."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทาง."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ทำมาตรฐานน้ำหนักรายแถว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์ผลลัพธ์."
              }
            }
          },
          "spatial_error_regression": {
            "name": "การถดถอยแบบ Spatial Error",
            "description": "ประมาณแบบจำลองความคลาดเคลื่อนเชิงพื้นที่ (spatial error) ที่จัดการการพึ่งพาเชิงพื้นที่จากภายนอกในส่วนเหลือซึ่งเกิดจากตัวแปรที่ละเว้นหรือความคลาดเคลื่อนจากการวัด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "response_field": {
                "label": "ฟิลด์ตัวแปรตอบสนอง",
                "description": "ตัวแปรตอบสนอง."
              },
              "predictor_fields": {
                "label": "ฟิลด์ตัวแปรทำนาย",
                "description": "ฟิลด์ตัวแปรทำนายคั่นด้วยจุลภาค."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ข้างเคียงเชิงพื้นที่."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับ k_nearest."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทาง."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ทำมาตรฐานน้ำหนักรายแถว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์ผลลัพธ์."
              }
            }
          },
          "geographically_weighted_regression": {
            "name": "การถดถอยถ่วงน้ำหนักเชิงภูมิศาสตร์",
            "description": "การถดถอยเชิงเส้นเฉพาะที่ด้วยน้ำหนักเคอร์เนลที่ลดทอนตามระยะทาง (GWR): สัมประสิทธิ์รายฟีเจอร์ R² เฉพาะที่ ส่วนเหลือและค่าทำนาย พร้อมค่าวินิจฉัย AICc / R² ระดับรวม แบนด์วิดท์คงที่หรือแบบปรับตัว หรือปรับให้เหมาะสมด้วย AICc (ถ้าเลือก)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์นำเข้า (จุด หรือเรขาคณิตอื่นผ่านจุดตัวแทนของฟีเจอร์นั้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "y_field": {
                "label": "ฟิลด์ Y",
                "description": "ฟิลด์ตัวเลขของตัวแปรตาม (ตัวแปรตอบสนอง)."
              },
              "x_fields": {
                "label": "ฟิลด์ X",
                "description": "ฟิลด์ตัวเลขของตัวแปรอธิบาย คั่นด้วยจุลภาค."
              },
              "kernel": {
                "label": "เคอร์เนล",
                "description": "เคอร์เนลการลดทอนตามระยะทาง: 'gaussian' (ค่าเริ่มต้น) หรือ 'bisquare'."
              },
              "bandwidth_type": {
                "label": "ชนิดแบนด์วิดท์",
                "description": "'adaptive' (ค่าเริ่มต้น; แบนด์วิดท์ = จำนวนเพื่อนบ้านใกล้ที่สุด k ตัว) หรือ 'fixed' (แบนด์วิดท์ = ระยะทาง)."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์: จำนวนเพื่อนบ้านสำหรับแบบ adaptive หรือระยะทางสำหรับแบบ fixed ไม่ต้องระบุเพื่อให้เลือกค่าโดยการทำให้ AICc น้อยที่สุด."
              }
            }
          },
          "ripleys_k_test": {
            "name": "การทดสอบ K ของ Ripley",
            "description": "คำนวณสถิติการเกาะกลุ่มหลายมาตราส่วน Ripley's K เผยให้เห็นการเกาะกลุ่ม/การกระจายตัวที่ขึ้นกับมาตราส่วนข้ามช่วงระยะทาง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางสูงสุดในการวิเคราะห์."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ขนาดขั้นของระยะทาง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์ผลลัพธ์พร้อมสถิติ K."
              }
            }
          },
          "envelope_test": {
            "name": "การทดสอบเอนเวโลป",
            "description": "ทำการทดสอบเอนเวโลปแบบ Monte Carlo โดยเปรียบเทียบรูปแบบที่สังเกตได้กับการแจกแจงสมมติฐานว่างแบบ CSR กำหนดนัยสำคัญของการเกาะกลุ่ม/การกระจายตัว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "num_simulations": {
                "label": "จำนวนการจำลอง",
                "description": "จำนวนการจำลองแบบมอนติคาร์โล."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางสูงสุดในการวิเคราะห์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์ผลลัพธ์พร้อมขอบเขตเอนเวโลป."
              }
            }
          },
          "point_process_residuals": {
            "name": "ค่าคงเหลือของกระบวนการจุด",
            "description": "คำนวณส่วนเหลือจากแบบจำลองกระบวนการจุดแบบ Poisson ที่ปรับแล้วเพื่อการวินิจฉัย ตรวจหาโครงสร้างเชิงพื้นที่ที่ไม่ได้รวมอยู่ในแบบจำลอง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "intensity_field": {
                "label": "ฟิลด์ความเข้ม",
                "description": "ฟิลด์ความเข้มที่ปรับพอดีแล้ว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์ผลลัพธ์พร้อมค่าคลาดเคลื่อน."
              }
            }
          },
          "ripleys_k_function": {
            "name": "ฟังก์ชัน K ของ Ripley",
            "description": "คำนวณ K(t) และ L(t) เพื่ออธิบายลักษณะรูปแบบการเกาะกลุ่มเชิงพื้นที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุด."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ค่าเกณฑ์ระยะทางสูงสุด."
              },
              "num_distances": {
                "label": "จำนวนระยะทาง",
                "description": "จำนวนขั้นของระยะทาง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "point_pattern_envelope": {
            "name": "เอนเวโลปของรูปแบบจุด",
            "description": "สร้างเอนเวโลปแถบวิกฤตสำหรับการทดสอบสมมติฐานเทียบกับ CSR",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุด."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางสูงสุด."
              },
              "num_distances": {
                "label": "จำนวนระยะทาง",
                "description": "ช่วงชั้นระยะทาง."
              },
              "num_simulations": {
                "label": "จำนวนการจำลอง",
                "description": "จำนวนครั้งการจำลองซ้ำแบบมอนติคาร์โล."
              },
              "alpha": {
                "label": "Alpha",
                "description": "ระดับนัยสำคัญ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "inhomogeneous_baseline": {
            "name": "ฐานไม่เป็นเอกพันธ์",
            "description": "ประมาณพื้นผิวความเข้มและคำนวณฟังก์ชัน K ที่แก้ไขด้วยความเข้ม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุด."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางสูงสุด."
              },
              "num_distances": {
                "label": "จำนวนระยะทาง",
                "description": "ช่วงชั้นระยะทาง."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์ KDE (เลือกอัตโนมัติหากไม่ระบุ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "hotspot_vs_process": {
            "name": "จุดร้อนเทียบกับกระบวนการ",
            "description": "เปรียบเทียบรูปแบบจุดร้อนกับความเข้มของกระบวนการจุดที่เป็นพื้นฐาน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุด."
              },
              "hotspot_field": {
                "label": "ฟิลด์จุดร้อน",
                "description": "ฟิลด์การจำแนกจุดร้อน."
              },
              "intensity_field": {
                "label": "ฟิลด์ความเข้ม",
                "description": "ฟิลด์ความเข้ม."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "point_process_residuals_comparison": {
            "name": "การเปรียบเทียบค่าคงเหลือของกระบวนการจุด",
            "description": "คำนวณค่าวินิจฉัยส่วนเหลือเพื่อตรวจสอบความเพียงพอของแบบจำลอง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุด."
              },
              "observed_field": {
                "label": "ฟิลด์ค่าสังเกต",
                "description": "ฟิลด์ค่าที่สังเกตได้."
              },
              "predicted_field": {
                "label": "ฟิลด์ค่าทำนาย",
                "description": "ฟิลด์ค่าที่ทำนายได้."
              },
              "residual_type": {
                "label": "ชนิดค่าคงเหลือ",
                "description": "ชนิดของค่าคลาดเคลื่อน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "construct_vector_tin": {
            "name": "สร้าง TIN เวกเตอร์",
            "description": "สร้างโครงข่ายสามเหลี่ยมไม่สม่ำเสมอ (TIN) จากชุดจุดนำเข้าโดยใช้การสร้างสามเหลี่ยม Delaunay",
            "params": {
              "input_points": {
                "label": "จุดนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดหรือมัลติพอยต์นำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ชื่อฟิลด์สำหรับความสูงของจุดยอด เป็นตัวเลือก (ฟิลด์ตัวเลข)."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "หากเป็นจริง จะใช้ค่า Z ของเรขาคณิตเป็นระดับความสูงของสามเหลี่ยม."
              },
              "max_triangle_edge_length": {
                "label": "ความยาวขอบสามเหลี่ยมสูงสุด",
                "description": "ความยาวขอบสามเหลี่ยมสูงสุดที่ยอมรับได้ (กรองขอบที่ยาวออก) ใช้ค่า 0 หรือค่าติดลบเพื่อไม่จำกัด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์โพลิกอนผลลัพธ์ (TIN)."
              }
            }
          },
          "contours_from_points": {
            "name": "เส้นชั้นความสูงจากจุด",
            "description": "สร้างเส้นชั้นความสูงแบบเส้นหลายส่วนจากระดับความสูงของจุดโดยใช้ TIN แบบ Delaunay",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์จุดหรือมัลติพอยต์นำเข้า."
              },
              "base": {
                "label": "ฐาน",
                "description": "ระดับความสูงฐานของเส้นชั้นความสูง (ค่าเริ่มต้น 0.0)."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์แบบตัวเลขที่มีค่าระดับความสูง (ถูกละเว้นเมื่อ use_z_values=true)."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ค่าช่วงห่างของเส้นชั้นความสูง (ค่าเริ่มต้น 10.0)."
              },
              "max_triangle_edge_length": {
                "label": "ความยาวขอบสามเหลี่ยมสูงสุด",
                "description": "ความยาวขอบสามเหลี่ยมสูงสุดที่จะรวมในการสร้างเส้นชั้นความสูง (หน่วยแผนที่)."
              },
              "smooth": {
                "label": "ทำให้เรียบ",
                "description": "ขนาดตัวกรองการทำให้เรียบ (จำนวนเต็มคี่ ค่าเริ่มต้น 9)."
              },
              "use_z_values": {
                "label": "ใช้ค่า Z",
                "description": "ใช้ค่า Z ของเรขาคณิตเป็นระดับความสูง (ค่าเริ่มต้น false)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "contours_from_raster": {
            "name": "เส้นชั้นความสูงจากแรสเตอร์",
            "description": "สร้างเส้นชั้นความสูงแบบเส้นหลายส่วนจากแบบจำลองพื้นผิวแรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธพื้นผิวแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่ระบุชนิดแล้ว."
              },
              "base": {
                "label": "ฐาน",
                "description": "ระดับความสูงฐานของเส้นชั้นความสูง (ค่าเริ่มต้น 0.0)."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ค่าช่วงห่างของเส้นชั้นความสูง (ค่าเริ่มต้น 10.0)."
              },
              "smooth": {
                "label": "ทำให้เรียบ",
                "description": "ขนาดตัวกรองการทำให้เรียบ (จำนวนเต็มคี่ ค่าเริ่มต้น 9)."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "มุมเบี่ยงเบนขั้นต่ำของเส้นเป็นองศาสำหรับการลดรูป (ค่าเริ่มต้น 10.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "extract_nodes": {
            "name": "สกัดโหนด",
            "description": "แปลงจุดยอดของเส้นหลายส่วนและโพลิกอนเป็นฟีเจอร์จุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลีไลน์หรือโพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "extract_raster_values_at_points": {
            "name": "สกัดค่าแรสเตอร์ที่จุด",
            "description": "สุ่มค่าจากแรสเตอร์หนึ่งชุดหรือมากกว่าที่ตำแหน่งจุด และเขียนค่าลงในแอตทริบิวต์ของจุด",
            "params": {
              "rasters": {
                "label": "แรสเตอร์",
                "description": "พาธแรสเตอร์นำเข้าในรูปแบบอาร์เรย์หรือสตริงที่มีตัวคั่น."
              },
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "find_lowest_or_highest_points": {
            "name": "ค้นหาจุดต่ำสุดหรือสูงสุด",
            "description": "ระบุตำแหน่งเซลล์แรสเตอร์ที่ต่ำที่สุดและ/หรือสูงที่สุด และส่งออกตำแหน่งเป็นจุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "ชนิดผลลัพธ์: lowest, highest หรือ both."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์."
              }
            }
          },
          "hexagonal_grid_from_raster_base": {
            "name": "กริดหกเหลี่ยมจากฐานแรสเตอร์",
            "description": "สร้างกริดโพลิกอนหกเหลี่ยมที่กำหนดความกว้างและการวางแนวได้ ให้การปูพื้นที่ไม่เอนเอียงสำหรับแผนที่ความร้อนและการรวมข้อมูล",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "แรสเตอร์ฐานที่ควบคุมขอบเขตของกริด."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของหกเหลี่ยมในหน่วยแผนที่."
              },
              "orientation": {
                "label": "แนวการวางตัว",
                "description": "ทิศทางการวางหกเหลี่ยม: แนวนอนหรือแนวตั้ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "hexagonal_grid_from_vector_base": {
            "name": "กริดหกเหลี่ยมจากฐานเวกเตอร์",
            "description": "สร้างกริดโพลิกอนหกเหลี่ยมที่จัดแนวตามขอบเขตของเลเยอร์เวกเตอร์ ทำให้รวมข้อมูลเชิงพื้นที่และแสดงผลความหนาแน่นได้อย่างไม่เอนเอียง",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "เลเยอร์เวกเตอร์ฐานที่ควบคุมขอบเขตของกริด."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของหกเหลี่ยมในหน่วยแผนที่."
              },
              "orientation": {
                "label": "แนวการวางตัว",
                "description": "ทิศทางการวางหกเหลี่ยม: แนวนอนหรือแนวตั้ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "layer_footprint_raster": {
            "name": "ขอบเขตเลเยอร์แรสเตอร์",
            "description": "สร้างโพลิกอนขอบเขตที่แทนขอบเขตทั้งหมดของแรสเตอร์นำเข้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "layer_footprint_vector": {
            "name": "ขอบเขตเลเยอร์เวกเตอร์",
            "description": "สร้างโพลิกอนขอบเขตที่แทนขอบเขตล้อมรอบทั้งหมดของเลเยอร์เวกเตอร์นำเข้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "medoid": {
            "name": "เมดอยด์",
            "description": "คำนวณจุดเมดอยด์จากเรขาคณิตเวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดมีดอยด์ผลลัพธ์."
              }
            }
          },
          "random_points_in_polygon": {
            "name": "จุดสุ่มในโพลิกอน",
            "description": "สร้างจุดสุ่มแบบสม่ำเสมอภายในเรขาคณิตโพลิกอนนำเข้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนนำเข้า."
              },
              "num_points": {
                "label": "จำนวนจุด",
                "description": "จำนวนจุดสุ่มที่จะสร้าง."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มของ RNG เพื่อให้ทำซ้ำผลได้ เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "rectangular_grid_from_raster_base": {
            "name": "กริดสี่เหลี่ยมจากฐานแรสเตอร์",
            "description": "สร้างกริดโพลิกอนสี่เหลี่ยมผืนผ้าที่ครอบคลุมขอบเขตของแรสเตอร์",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "แรสเตอร์ฐานที่ควบคุมขอบเขตของกริด."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของเซลล์กริดในหน่วยแผนที่."
              },
              "height": {
                "label": "ความสูง",
                "description": "ความสูงของเซลล์กริดในหน่วยแผนที่."
              },
              "x_origin": {
                "label": "จุดกำเนิด X",
                "description": "จุดกำเนิดแกน x สำหรับการจัดวางกริด เป็นตัวเลือก."
              },
              "y_origin": {
                "label": "จุดกำเนิด Y",
                "description": "จุดกำเนิดแกน y สำหรับการจัดวางกริด เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "rectangular_grid_from_vector_base": {
            "name": "กริดสี่เหลี่ยมจากฐานเวกเตอร์",
            "description": "สร้างกริดโพลิกอนสี่เหลี่ยมผืนผ้าที่ครอบคลุมขอบเขตล้อมรอบของเลเยอร์เวกเตอร์",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "เลเยอร์เวกเตอร์ฐานที่ควบคุมขอบเขตของกริด."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของเซลล์กริดในหน่วยแผนที่."
              },
              "height": {
                "label": "ความสูง",
                "description": "ความสูงของเซลล์กริดในหน่วยแผนที่."
              },
              "x_origin": {
                "label": "จุดกำเนิด X",
                "description": "จุดกำเนิดแกน x สำหรับการจัดวางกริด เป็นตัวเลือก."
              },
              "y_origin": {
                "label": "จุดกำเนิด Y",
                "description": "จุดกำเนิดแกน y สำหรับการจัดวางกริด เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์."
              }
            }
          },
          "vector_hex_binning": {
            "name": "การจัดกลุ่มกริดหกเหลี่ยมของเวกเตอร์",
            "description": "รวมฟีเจอร์จุดเป็นถังหกเหลี่ยม โดยนับจำนวนจุดต่อเซลล์หกเหลี่ยม",
            "params": {
              "vector_points": {
                "label": "จุดเวกเตอร์",
                "description": "เลเยอร์เวกเตอร์จุดหรือมัลติพอยต์นำเข้า."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของหกเหลี่ยม (ระยะระหว่างด้านที่อยู่ตรงข้ามกัน)."
              },
              "orientation": {
                "label": "แนวการวางตัว",
                "description": "ทิศทางการวางหกเหลี่ยม: 'h' สำหรับแนวนอน (ยอดแหลม) หรือ 'v' สำหรับแนวตั้ง (ยอดแบน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนหกเหลี่ยมผลลัพธ์พร้อมจำนวนนับ."
              }
            }
          },
          "voronoi_diagram": {
            "name": "แผนภาพ Voronoi",
            "description": "สร้างโพลิกอน Voronoi (Thiessen) จากตำแหน่งจุดนำเข้า",
            "params": {
              "input_points": {
                "label": "จุดนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดหรือมัลติพอยต์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอน Voronoi ผลลัพธ์."
              }
            }
          },
          "add_field": {
            "name": "เพิ่มฟิลด์",
            "description": "เพิ่มฟิลด์แอตทริบิวต์ใหม่พร้อมค่าเริ่มต้น (ถ้าเลือก)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ใหม่."
              },
              "field_type": {
                "label": "ชนิดฟิลด์",
                "description": "ชนิดฟิลด์: integer, float, text, boolean."
              },
              "default": {
                "label": "ค่าเริ่มต้น",
                "description": "ค่าเริ่มต้น เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "add_geometry_attributes": {
            "name": "เพิ่มแอตทริบิวต์เรขาคณิต",
            "description": "คำนวณคุณสมบัติเชิงเรขาคณิต (พื้นที่ ความยาว เส้นรอบรูป เซนทรอยด์) โดยอัตโนมัติและเพิ่มเป็นฟิลด์ใหม่ รองรับทั้งการวัดแบบระนาบและแบบจีโอเดสิก",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "measurement_mode": {
                "label": "โหมดการวัด",
                "description": "วิธีการวัด: auto (ค่าเริ่มต้น), planar หรือ geodesic."
              },
              "area": {
                "label": "พื้นที่",
                "description": "รวมฟิลด์พื้นที่ (AREA_M2 สำหรับ geodesic, AREA_MAP2 สำหรับ planar)."
              },
              "length": {
                "label": "ความยาว",
                "description": "รวมฟิลด์ความยาว (LENGTH_M สำหรับ geodesic, LENGTH_MAP สำหรับ planar)."
              },
              "perimeter": {
                "label": "เส้นรอบรูป",
                "description": "รวมฟิลด์เส้นรอบรูป (PERIM_M สำหรับ geodesic, PERIM_MAP สำหรับ planar)."
              },
              "centroid": {
                "label": "เซนทรอยด์",
                "description": "รวมฟิลด์ X/Y ของเซนทรอยด์ (ค่าเริ่มต้น true)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "attribute_correlation": {
            "name": "สหสัมพันธ์ของแอตทริบิวต์",
            "description": "ทำการวิเคราะห์สหสัมพันธ์แบบ Pearson บนฟิลด์แอตทริบิวต์เวกเตอร์ที่เป็นตัวเลข",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "attribute_histogram": {
            "name": "ฮิสโทแกรมของแอตทริบิวต์",
            "description": "สร้างฮิสโทแกรมสำหรับค่าฟิลด์ตัวเลขในตารางแอตทริบิวต์เวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์แอตทริบิวต์แบบตัวเลข."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "attribute_scattergram": {
            "name": "แผนภาพการกระจายของแอตทริบิวต์",
            "description": "คำนวณสถิติสรุปแผนภาพการกระจายระหว่างฟิลด์เวกเตอร์ตัวเลขสองฟิลด์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "fieldx": {
                "label": "ฟิลด์ X",
                "description": "ชื่อฟิลด์ตัวเลขสำหรับแกน x."
              },
              "fieldy": {
                "label": "ฟิลด์ Y",
                "description": "ชื่อฟิลด์ตัวเลขสำหรับแกน y."
              },
              "trendline": {
                "label": "เส้นแนวโน้ม",
                "description": "รวมสรุปเส้นแนวโน้ม (ค่าเริ่มต้น false)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "delete_field": {
            "name": "ลบฟิลด์",
            "description": "ลบฟิลด์แอตทริบิวต์หนึ่งฟิลด์หรือมากกว่าออกจากเลเยอร์เวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ที่จะลบ คั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "extract_by_attribute": {
            "name": "สกัดตามแอตทริบิวต์",
            "description": "สกัดฟีเจอร์เวกเตอร์ที่เป็นไปตามนิพจน์แอตทริบิวต์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "statement": {
                "label": "คำสั่ง",
                "description": "นิพจน์บูลีนที่ประเมินกับฟิลด์แอตทริบิวต์ รองรับชื่อเรียกแบบ SQL คือ AND/OR/NOT/XOR."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "field_calculator": {
            "name": "เครื่องคำนวณฟิลด์",
            "description": "คำนวณค่าฟิลด์จากนิพจน์โดยใช้แอตทริบิวต์ของฟีเจอร์และตัวแปรเรขาคณิต รองรับ CASE, CAST การตรวจสอบค่า null แบบ SQL และรูปแบบ UPDATE ... SET ... [WHERE ...]",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ผลลัพธ์."
              },
              "field_type": {
                "label": "ชนิดฟิลด์",
                "description": "ชนิดฟิลด์ผลลัพธ์: float, integer, text."
              },
              "expression": {
                "label": "นิพจน์",
                "description": "นิพจน์ที่ประเมินกับแต่ละฟีเจอร์ รองรับ CASE แบบ SQL, CAST(... AS type), IS NULL/IS NOT NULL และตัวครอบ UPDATE ... SET FIELD = ... [WHERE ...]."
              },
              "overwrite": {
                "label": "เขียนทับ",
                "description": "เขียนทับฟิลด์เดิมหากมีอยู่แล้ว (ค่าเริ่มต้น true)."
              },
              "preview_rows": {
                "label": "จำนวนแถวตัวอย่าง",
                "description": "จำนวนแถวตัวอย่างที่จะส่งคืนในผลลัพธ์ เป็นตัวเลือก เมื่อค่ามากกว่า 0 อาจไม่ต้องระบุ output สำหรับการประเมินแบบดูตัวอย่างเท่านั้น."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือกเมื่อ preview_rows > 0."
              }
            }
          },
          "filter_vector_features_by_area": {
            "name": "กรองฟีเจอร์เวกเตอร์ตามพื้นที่",
            "description": "กรองฟีเจอร์โพลิกอนที่มีพื้นที่ต่ำกว่าค่าเกณฑ์พื้นที่ขั้นต่ำ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "พื้นที่โพลิกอนขั้นต่ำที่จะเก็บไว้ ในหน่วยพิกัดของเลเยอร์ยกกำลังสอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "list_unique_values": {
            "name": "แสดงรายการค่าที่ไม่ซ้ำ",
            "description": "แสดงรายการค่าที่ไม่ซ้ำกันและความถี่ในฟิลด์แอตทริบิวต์เวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์แอตทริบิวต์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV ผลลัพธ์ เป็นตัวเลือก."
              }
            }
          },
          "rename_field": {
            "name": "เปลี่ยนชื่อฟิลด์",
            "description": "เปลี่ยนชื่อฟิลด์แอตทริบิวต์ในเลเยอร์เวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ที่มีอยู่เดิม."
              },
              "new_field": {
                "label": "ฟิลด์ใหม่",
                "description": "ชื่อฟิลด์ที่ใช้แทนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "download_osm_vector": {
            "name": "ดาวน์โหลดเวกเตอร์ OSM",
            "description": "ดาวน์โหลดฟีเจอร์ OpenStreetMap จาก Overpass API สำหรับกรอบล้อมรอบ และเขียนผลลัพธ์เป็นเลเยอร์เวกเตอร์",
            "params": {
              "west": {
                "label": "ตะวันตก",
                "description": "ลองจิจูดขอบเขตด้านตะวันตก (EPSG:4326)."
              },
              "south": {
                "label": "ใต้",
                "description": "ละติจูดขอบเขตด้านใต้ (EPSG:4326)."
              },
              "east": {
                "label": "ตะวันออก",
                "description": "ลองจิจูดขอบเขตด้านตะวันออก (EPSG:4326)."
              },
              "north": {
                "label": "เหนือ",
                "description": "ละติจูดขอบเขตด้านเหนือ (EPSG:4326)."
              },
              "input_extent_epsg": {
                "label": "EPSG ของขอบเขตนำเข้า",
                "description": "รหัส EPSG สำหรับขอบเขตนำเข้า west/south/east/north (ค่าเริ่มต้น 4326)."
              },
              "filter_preset": {
                "label": "ตัวกรองสำเร็จรูป",
                "description": "ชุดค่าคลาสฟีเจอร์สำเร็จรูป: all, roads, buildings, water, landuse, trails, parks, rail, amenities, boundaries, transit, poi (ค่าเริ่มต้น all)."
              },
              "include_tags": {
                "label": "รวมแท็ก",
                "description": "รายการตัวกรองคีย์แท็กคั่นด้วยเซมิโคลอน เช่น amenity;shop."
              },
              "include_key_values": {
                "label": "รวมคู่คีย์-ค่า",
                "description": "รายการตัวกรอง key=value คั่นด้วยเซมิโคลอน เช่น amenity=school;building=yes."
              },
              "filter_key": {
                "label": "คีย์ตัวกรอง",
                "description": "ตัวกรองคีย์แท็กเดี่ยวแบบเดิม (เลิกใช้แล้ว; ให้ใช้ include_tags)."
              },
              "filter_key_value": {
                "label": "ค่าคีย์ตัวกรอง",
                "description": "ตัวกรอง key=value เดี่ยวแบบเดิม (เลิกใช้แล้ว; ให้ใช้ include_key_values)."
              },
              "include_points": {
                "label": "รวมจุด",
                "description": "รวมฟีเจอร์โหนด OSM ที่มีแท็กเป็นเรขาคณิตแบบ Point (ค่าเริ่มต้น true)."
              },
              "include_lines": {
                "label": "รวมเส้น",
                "description": "รวมฟีเจอร์ way ของ OSM เป็นเรขาคณิตแบบ LineString (ค่าเริ่มต้น true)."
              },
              "include_polygons": {
                "label": "รวมโพลิกอน",
                "description": "รวม way ของ OSM ที่ปิดและมีแท็กพื้นที่เป็นเรขาคณิตแบบ Polygon (ค่าเริ่มต้น true)."
              },
              "clip_to_extent": {
                "label": "ตัดตามขอบเขต",
                "description": "ตัดเรขาคณิตผลลัพธ์ให้อยู่ในขอบเขต bbox ของการสืบค้น (ค่าเริ่มต้น true)."
              },
              "split_output_by_geometry": {
                "label": "แยกผลลัพธ์ตามชนิดเรขาคณิต",
                "description": "เขียนผลลัพธ์แยกตามชนิดเรขาคณิต (<output>_points|lines|polygons.ext)."
              },
              "output_epsg": {
                "label": "EPSG ผลลัพธ์",
                "description": "แปลงระบบพิกัดผลลัพธ์ไปยังรหัส EPSG นี้; หากไม่ระบุจะคง EPSG:4326 ไว้."
              },
              "overpass_profile": {
                "label": "โปรไฟล์ Overpass",
                "description": "โปรไฟล์ปลายทาง Overpass: main, kumi, fr หรือ custom (ค่าเริ่มต้น main)."
              },
              "overpass_url": {
                "label": "URL ของ Overpass",
                "description": "URL ปลายทางของ Overpass API (ค่าเริ่มต้น https://overpass-api.de/api/interpreter)."
              },
              "timeout_seconds": {
                "label": "หมดเวลา (วินาที)",
                "description": "เวลาหมดเขตของการสืบค้นเป็นวินาที (ค่าเริ่มต้น 25)."
              },
              "max_elements": {
                "label": "จำนวนองค์ประกอบสูงสุด",
                "description": "จำนวนสูงสุดขององค์ประกอบ Overpass ที่ส่งกลับก่อนจะเกิดข้อผิดพลาด (ค่าเริ่มต้น 50 000)."
              },
              "chunk_large_aoi": {
                "label": "แบ่ง AOI ขนาดใหญ่เป็นส่วน",
                "description": "แบ่งพื้นที่สนใจขนาดใหญ่ออกเป็นหลายคำขอ Overpass โดยอัตโนมัติ (ค่าเริ่มต้น true)."
              },
              "chunk_max_area_deg2": {
                "label": "พื้นที่สูงสุดต่อส่วน (ตารางองศา)",
                "description": "พื้นที่สูงสุดต่อชิ้นเป็นตารางองศาเมื่อมีการแบ่งชิ้น (ค่าเริ่มต้น 4.0)."
              },
              "max_chunk_count": {
                "label": "จำนวนส่วนสูงสุด",
                "description": "ขีดจำกัดสูงสุดของจำนวนชิ้นเมื่อแบ่งพื้นที่สนใจขนาดใหญ่ (ค่าเริ่มต้น 64)."
              },
              "chunk_parallel_requests": {
                "label": "จำนวนคำขอขนานต่อส่วน",
                "description": "จำนวนคำขอชิ้นแบบขนานสูงสุดสำหรับพื้นที่สนใจขนาดใหญ่ (ค่าเริ่มต้น 1 = ทำตามลำดับ)."
              },
              "cache_dir": {
                "label": "โฟลเดอร์แคช",
                "description": "โฟลเดอร์เป็นตัวเลือกสำหรับแคชการตอบกลับ JSON ของ Overpass ตามแฮชของปลายทาง+การสืบค้น."
              },
              "cache_ttl_hours": {
                "label": "อายุแคช (ชั่วโมง)",
                "description": "อายุของแคชเป็นชั่วโมง (ค่าเริ่มต้น 24; 0 หมายถึงไม่ตรวจสอบการหมดอายุ)."
              },
              "provenance_output": {
                "label": "ผลลัพธ์ที่มาของข้อมูล",
                "description": "พาธ JSON เป็นตัวเลือกสำหรับเขียนไฟล์ข้อมูลกำกับการสืบค้น/แหล่งที่มา."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์เป็นตัวเลือก; หากไม่ระบุจะใช้ผลลัพธ์ชั่วคราว."
              }
            }
          },
          "assign_projection_lidar": {
            "name": "กำหนดระบบพิกัดให้ LiDAR",
            "description": "กำหนดระบบพิกัดอ้างอิงให้กับกลุ่มจุด LiDAR โดยไม่ฉายพิกัดของจุดใหม่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์ LiDAR นำเข้า (LAS/LAZ/COPC หรือแฮนเดิลในหน่วยความจำ)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ของระบบพิกัดอ้างอิงที่จะกำหนด เช่น 4326 (WGS84) หรือ 3857 (Web Mercator). พิกัดจะไม่ถูกแปลง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ LiDAR ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "assign_projection_raster": {
            "name": "กำหนดระบบพิกัดให้แรสเตอร์",
            "description": "กำหนดระบบพิกัดอ้างอิงให้กับแรสเตอร์โดยไม่บิดเซลล์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ของระบบพิกัดอ้างอิงที่จะกำหนด เช่น 4326 (WGS84) หรือ 3857 (Web Mercator). พิกัดจะไม่ถูกแปลง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "assign_projection_vector": {
            "name": "กำหนดระบบพิกัดให้เวกเตอร์",
            "description": "กำหนดระบบพิกัดอ้างอิงให้กับเลเยอร์เวกเตอร์โดยไม่ฉายเรขาคณิตใหม่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ของระบบพิกัดอ้างอิงที่จะกำหนด เช่น 4326 (WGS84) หรือ 3857 (Web Mercator). พิกัดจะไม่ถูกแปลง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "georeference_raster_from_control_points": {
            "name": "อ้างอิงพิกัดแรสเตอร์จากจุดควบคุม",
            "description": "ปรับการแปลงจาก GCP และบิดแรสเตอร์ให้เป็นผลลัพธ์ที่อ้างอิงพิกัดทางภูมิศาสตร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "control_points": {
                "label": "จุดควบคุม",
                "description": "พาธ CSV ของจุดควบคุมที่มี pixel_x,pixel_y,map_x,map_y (และชื่อแทนที่ยอมรับได้)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG เป้าหมาย."
              },
              "transform_type": {
                "label": "ชนิดการแปลง",
                "description": "ชนิดการแปลง: affine, projective, polynomial หรือ thin_plate_spline."
              },
              "transform_order": {
                "label": "อันดับการแปลง",
                "description": "ลำดับพหุนามเมื่อ transform_type=polynomial."
              },
              "resample": {
                "label": "สุ่มตัวอย่างใหม่",
                "description": "วิธีสุ่มตัวอย่างใหม่; ค่าเริ่มต้น bilinear."
              },
              "allow_auto_downgrade": {
                "label": "อนุญาตให้ลดระดับอัตโนมัติ",
                "description": "อนุญาตให้ลดระดับไปใช้การแปลงที่ง่ายกว่าโดยอัตโนมัติเมื่อ GCP มีจำนวนน้อย."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ที่อ้างอิงพิกัดภูมิศาสตร์แล้ว."
              },
              "report": {
                "label": "รายงาน",
                "description": "พาธ JSON ของรายงานผลลัพธ์."
              }
            }
          },
          "reproject_lidar": {
            "name": "แปลงระบบพิกัด LiDAR",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ข้อมูลนำเข้า"
              },
              "dst_epsg": {
                "label": "EPSG ปลายทาง",
                "description": "EPSG ปลายทาง"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ผลลัพธ์"
              },
              "use_3d_transform": {
                "label": "ใช้การแปลง 3 มิติ",
                "description": "ใช้การแปลง 3 มิติ"
              },
              "failure_policy": {
                "label": "นโยบายเมื่อล้มเหลว",
                "description": "นโยบายเมื่อล้มเหลว"
              },
              "coordinate_epoch": {
                "label": "ยุคพิกัด",
                "description": "ยุคพิกัด"
              },
              "source_reference_epoch": {
                "label": "ยุคอ้างอิงต้นทาง",
                "description": "ยุคอ้างอิงต้นทาง"
              },
              "target_reference_epoch": {
                "label": "ยุคอ้างอิงปลายทาง",
                "description": "ยุคอ้างอิงปลายทาง"
              },
              "operation_code": {
                "label": "รหัสการดำเนินการ",
                "description": "รหัสการดำเนินการ"
              },
              "prefer_official_operation": {
                "label": "ใช้การดำเนินการทางการก่อน",
                "description": "ใช้การดำเนินการทางการก่อน"
              },
              "epoch_policy": {
                "label": "นโยบายยุค",
                "description": "นโยบายยุค"
              }
            }
          },
          "reproject_raster": {
            "name": "แปลงระบบพิกัดแรสเตอร์",
            "description": "ฉายใหม่ (บิด) แรสเตอร์ไปยังระบบพิกัดอ้างอิง EPSG เป้าหมาย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า. ต้องมีระบบพิกัดอ้างอิงต้นทาง (EPSG หรือ WKT)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ปลายทาง เช่น 3857 (Web Mercator) หรือ 4326 (WGS84)."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีสุ่มตัวอย่างใหม่: nearest (ค่าเริ่มต้น), bilinear, cubic, lanczos, average, min, max, mode, median."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "reproject_vector": {
            "name": "แปลงระบบพิกัดเวกเตอร์",
            "description": "ฉายเรขาคณิตเวกเตอร์ใหม่ไปยังเส้นโครงแผนที่ EPSG ปลายทาง พร้อมคงทอพอโลยีและแอตทริบิวต์ไว้ ทำให้ผสานข้อมูลหลายแหล่งได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ปลายทาง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "orthorectification": {
            "name": "การปรับแก้ออร์โท",
            "description": "การแก้ไขเชิงเรขาคณิตของภาพดิบโดยอิง DEM โดยใช้แบบจำลองกล้อง RPC ขจัดการเคลื่อนที่จากความสูงต่ำของภูมิประเทศเพื่อให้ได้ภาพออร์โทที่อ้างอิงพิกัดทางภูมิศาสตร์",
            "params": {
              "input_raster": {
                "label": "แรสเตอร์นำเข้า",
                "description": "พาธแรสเตอร์ภาพดิบ (ยังไม่ได้แก้ไข) นำเข้า. ข้อมูลกำกับ RPC ต้องฝังอยู่ในไฟล์หรือมีอยู่ในไฟล์ประกอบ .RPB ที่อยู่ข้างเคียง."
              },
              "input_dem": {
                "label": "DEM นำเข้า",
                "description": "แรสเตอร์ DEM ที่ใช้หาระดับความสูงของภูมิประเทศสำหรับแต่ละพิกเซลผลลัพธ์. ควรครอบคลุมขอบเขตทั้งหมดของฉากภาพ. หากไม่ได้อยู่ในพิกัดภูมิศาสตร์ เครื่องมือจะแปลงระบบพิกัดให้ตามความจำเป็น."
              },
              "output_epsg": {
                "label": "EPSG ผลลัพธ์",
                "description": "รหัส EPSG ของระบบพิกัดอ้างอิงผลลัพธ์ (ค่าเริ่มต้น 4326 แบบภูมิศาสตร์; ระบุระบบพิกัดแบบฉายเช่น 32617 สำหรับ UTM โซน 17N)."
              },
              "output_resolution": {
                "label": "ความละเอียดผลลัพธ์",
                "description": "ความละเอียดพิกเซลผลลัพธ์ในหน่วยของระบบพิกัดผลลัพธ์ (เช่น องศาสำหรับแบบภูมิศาสตร์ เมตรสำหรับแบบฉาย). ค่าเริ่มต้นคือ GSD โดยประมาณของภาพนำเข้า."
              },
              "resample_method": {
                "label": "วิธีสุ่มตัวอย่างใหม่",
                "description": "วิธีสุ่มตัวอย่างใหม่สำหรับผลลัพธ์: nearest, bilinear (ค่าเริ่มต้น), cubic."
              },
              "nodata_value": {
                "label": "ค่า NoData",
                "description": "ค่า NoData ที่จะกำหนดให้พิกเซลที่ไม่มีข้อมูลต้นทางที่ใช้ได้ (ค่าเริ่มต้นเหมือนกับข้อมูลนำเข้า)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ภาพออร์โทผลลัพธ์."
              }
            }
          },
          "average_flowpath_slope": {
            "name": "ความลาดชันเฉลี่ยของเส้นทางการไหล",
            "description": "คำนวณเกรเดียนต์ความลาดชันเฉลี่ยของเส้นทางการไหลที่ผ่านแต่ละเซลล์ DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ไม่มีแอ่ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "average_upslope_flowpath_length": {
            "name": "ความยาวเส้นทางการไหลเหนือลาดเฉลี่ย",
            "description": "คำนวณความยาวเส้นทางการไหลเหนือลาดเฉลี่ยที่ผ่านแต่ละเซลล์ DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ไม่มีแอ่ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "d8_flow_accum": {
            "name": "การสะสมการไหลแบบ D8",
            "description": "คำนวณการสะสมการไหลแบบ D8 จาก DEM หรือแรสเตอร์ตัวชี้ D8",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ DEM หรือแรสเตอร์พอยน์เตอร์ D8 นำเข้า"
              },
              "clip": {
                "label": "ตัด",
                "description": "ตัดค่าสูงสุดของการแสดงผล (รับไว้เพื่อความเข้ากันได้)"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ใช้การเข้ารหัสพอยน์เตอร์แบบ ESRI สำหรับข้อมูลพอยน์เตอร์นำเข้า"
              },
              "input_is_pointer": {
                "label": "ข้อมูลนำเข้าเป็นตัวชี้",
                "description": "ถือว่าข้อมูลนำเข้าเป็นแรสเตอร์พอยน์เตอร์ D8"
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "แปลงผลลัพธ์ด้วยลอการิทึม"
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "ชนิดผลลัพธ์: cells, ca หรือ sca"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "d8_mass_flux": {
            "name": "ฟลักซ์มวลแบบ D8",
            "description": "ทำการสะสมฟลักซ์มวลแบบอิง D8 โดยใช้แรสเตอร์ภาระ ประสิทธิภาพ และการดูดซับ",
            "params": {
              "absorption": {
                "label": "การดูดซับ",
                "description": "แรสเตอร์ของการสูญเสียมวลต่อเซลล์ในหน่วยการโหลด."
              },
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ไม่มีแอ่ง ใช้สำหรับหาทิศทางการไหลแบบ D8."
              },
              "efficiency": {
                "label": "ประสิทธิภาพ",
                "description": "แรสเตอร์ของค่าประสิทธิภาพการถ่ายเท ทั้งในช่วง `[0, 1]` หรือเป็นร้อยละ."
              },
              "loading": {
                "label": "ภาระ",
                "description": "แรสเตอร์ของค่าการโหลดมวลเริ่มต้น."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "d8_pointer": {
            "name": "ตัวชี้ทิศทางการไหลแบบ D8",
            "description": "ทิศทางการไหลตามความชันที่สุดไปยังเพื่อนบ้าน 8 ทิศ (N/NE/E/SE/S/SW/W/NW) เป็นพื้นฐานสำหรับการวิเคราะห์อุทกวิทยาแบบ D8 และการกำหนดขอบเขตลุ่มน้ำ",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ใช้การเข้ารหัสพอยน์เตอร์แบบ ESRI"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "dinf_flow_accum": {
            "name": "การสะสมการไหลแบบ D-infinity",
            "description": "คำนวณการสะสมการไหลแบบ D-Infinity จาก DEM หรือแรสเตอร์ตัวชี้ D-Infinity",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ DEM หรือแรสเตอร์พอยน์เตอร์ D-Infinity นำเข้า"
              },
              "clip": {
                "label": "ตัด",
                "description": "ตัดค่าสูงสุดของการแสดงผล (รับไว้เพื่อความเข้ากันได้)"
              },
              "convergence_threshold": {
                "label": "ค่าเกณฑ์การลู่เข้า",
                "description": "ค่าเกณฑ์ที่เมื่อเกินแล้วการไหลจะไม่ถูกกระจาย"
              },
              "input_is_pointer": {
                "label": "ข้อมูลนำเข้าเป็นตัวชี้",
                "description": "ถือว่าข้อมูลนำเข้าเป็นแรสเตอร์พอยน์เตอร์ D-Infinity"
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "แปลงผลลัพธ์ด้วยลอการิทึม"
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "ชนิดผลลัพธ์: cells, ca หรือ sca"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "dinf_mass_flux": {
            "name": "ฟลักซ์มวลแบบ D-infinity",
            "description": "ทำการสะสมฟลักซ์มวลแบบ D-Infinity โดยใช้แรสเตอร์ภาระ ประสิทธิภาพ และการดูดซับ",
            "params": {
              "absorption": {
                "label": "การดูดซับ",
                "description": "แรสเตอร์การดูดซับนำเข้าในหน่วยการโหลด."
              },
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "efficiency": {
                "label": "ประสิทธิภาพ",
                "description": "แรสเตอร์ประสิทธิภาพนำเข้า (ค่าในช่วง `0-1` หรือเป็นร้อยละ)."
              },
              "loading": {
                "label": "ภาระ",
                "description": "แรสเตอร์การโหลดนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "dinf_pointer": {
            "name": "ตัวชี้ทิศทางการไหลแบบ D-infinity",
            "description": "ทิศทางการไหลแบบต่อเนื่อง (0-2π เรเดียน) ที่ขจัดความเอนเอียงในแนวทแยงของ D8 เหมาะกว่าสำหรับการสร้างแบบจำลองการเคลื่อนย้ายตะกอนและการไหลแบบแยกทาง",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "downslope_flowpath_length": {
            "name": "ความยาวเส้นทางการไหลลงลาด",
            "description": "คำนวณความยาวเส้นทางการไหลลงลาดจากแต่ละเซลล์ไปยังทางออกในแรสเตอร์ตัวชี้ D8",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 นำเข้า"
              },
              "watersheds": {
                "label": "ลุ่มน้ำ",
                "description": "แรสเตอร์ลุ่มน้ำเป็นตัวเลือก"
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "แรสเตอร์ถ่วงน้ำหนักระยะทางต่อเซลล์เป็นตัวเลือก"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ใช้การเข้ารหัสพอยน์เตอร์แบบ ESRI"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "fd8_flow_accum": {
            "name": "การสะสมการไหลแบบ FD8",
            "description": "คำนวณการสะสมการไหลแบบ FD8 จาก DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "clip": {
                "label": "ตัด",
                "description": "ตัดค่าสูงสุดของการแสดงผล (รับไว้เพื่อความเข้ากันได้)"
              },
              "exponent": {
                "label": "เลขชี้กำลัง",
                "description": "เลขชี้กำลังถ่วงน้ำหนักความลาดชัน"
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "แปลงผลลัพธ์ด้วยลอการิทึม"
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "ชนิดผลลัพธ์: cells, ca หรือ sca"
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "fd8_pointer": {
            "name": "ตัวชี้ทิศทางการไหลแบบ FD8",
            "description": "การไหลแบบแบ่งสัดส่วนไปยังเพื่อนบ้านด้านล่างลาดหลายเซลล์โดยถ่วงน้ำหนักตามเกรเดียนต์ เหมาะกว่า D8 สำหรับกระบวนการกระจายตัว การแพร่ และการอนุรักษ์มวล",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "flow_accum_full_workflow": {
            "name": "กระบวนการสะสมการไหลแบบครบวงจร",
            "description": "เรียกใช้เวิร์กโฟลว์การสะสมการไหลแบบไม่แยกทางแบบเต็มรูปแบบ และส่งคืน DEM ที่เจาะทะลุแล้ว ตัวชี้ทิศทางการไหล และการสะสม",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "clip": {
                "label": "ตัด",
                "description": "หากเป็นจริง จะตัดค่าสูงสุดของการแสดงผลการสะสม (พฤติกรรมเพื่อความเข้ากันได้)."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "หากเป็นจริง จะเข้ารหัสผลลัพธ์ทิศทางการไหลในรูปแบบพอยน์เตอร์ของ Esri."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "หากเป็นจริง จะแปลงค่าการสะสมด้วยลอการิทึม."
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "หนึ่งใน `\"cells\"`, `\"ca\"`, `\"sca\"` (ค่าเริ่มต้น)."
              },
              "breached_dem_output": {
                "label": "ผลลัพธ์ DEM ที่เจาะทะลุแล้ว",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ DEM ที่ไม่มีแอ่ง."
              },
              "flow_dir_output": {
                "label": "ผลลัพธ์ทิศทางการไหล",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ทิศทางการไหล."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์การสะสมการไหล."
              },
              "output_pointer": {
                "label": "ผลลัพธ์ตัวชี้",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับพอยน์เตอร์ทิศทางการไหล D8 (ชื่อแทนของ flow_dir_output; เข้ารหัสแบบ ESRI เมื่อกำหนด esri_pntr)"
              }
            }
          },
          "flow_length_diff": {
            "name": "ผลต่างความยาวการไหล",
            "description": "คำนวณผลต่างสัมบูรณ์สูงสุดเฉพาะที่ของความยาวเส้นทางลงลาดจากแรสเตอร์ตัวชี้ D8",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 นำเข้า."
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "น้ำหนัก"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "หากเป็นจริง จะตีความค่าพอยน์เตอร์ด้วยการเข้ารหัส D8 แบบ ESRI."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "max_upslope_flowpath_length": {
            "name": "ความยาวเส้นทางการไหลเหนือลาดสูงสุด",
            "description": "คำนวณความยาวเส้นทางการไหลเหนือลาดสูงสุดที่ผ่านแต่ละเซลล์ DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ไม่มีแอ่ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "max_upslope_value": {
            "name": "ค่าสูงสุดเหนือลาด",
            "description": "ส่งต่อค่าเหนือลาดสูงสุดตามเส้นทางการไหล D8 บน DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "values": {
                "label": "ค่า",
                "description": "แรสเตอร์ค่านำเข้า"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "mdinf_flow_accum": {
            "name": "การสะสมการไหลแบบ MD-infinity",
            "description": "การสะสมการไหลแบบหลายทิศทางพร้อมการถ่วงน้ำหนักด้วยเกรเดียนต์ความลาดชัน (เลขชี้กำลัง 1.1) สมดุลระหว่างความสมจริงของการกระจายกับการระบุการไหลหลักที่รวมตัว ผลลัพธ์: cells, CA หรือ SCA",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "clip": {
                "label": "ตัด",
                "description": "แฟล็กความเข้ากันได้ที่ API ยอมรับ."
              },
              "convergence_threshold": {
                "label": "ค่าเกณฑ์การลู่เข้า",
                "description": "ค่าเกณฑ์ที่เมื่อเกินแล้วการไหลจะไม่ถูกกระจาย"
              },
              "exponent": {
                "label": "เลขชี้กำลัง",
                "description": "เลขชี้กำลังถ่วงน้ำหนักความลาดชัน (ค่าเริ่มต้น `1.1`)."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "แปลงผลลัพธ์ด้วยลอการิทึม"
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "หนึ่งใน `\"cells\"`, `\"ca\"`, `\"sca\"` (ค่าเริ่มต้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "minimal_dispersion_flow_algorithm": {
            "name": "อัลกอริทึมการไหลแบบกระจายน้อยที่สุด",
            "description": "สร้างแรสเตอร์ทิศทางการไหลและการสะสมการไหลแบบ MDFA จาก DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "clip": {
                "label": "ตัด",
                "description": "แฟล็กความเข้ากันได้ที่ API ยอมรับ."
              },
              "debug_stats": {
                "label": "สถิติดีบัก",
                "description": "แสดงข้อมูลวินิจฉัย MDFA แบบบรรทัดเดียว (จำนวนและค่าสูงสุดดิบ)"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "หากเป็นจริง จะเข้ารหัสผลลัพธ์ทิศทางการไหลในรูปแบบพอยน์เตอร์ของ Esri."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "หากเป็นจริง จะแปลงค่าการสะสมด้วยลอการิทึม."
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "หนึ่งใน `\"cells\"`, `\"ca\"`, `\"sca\"` (ค่าเริ่มต้น)."
              },
              "path_corrected_direction_preference": {
                "label": "ความชอบทิศทางที่แก้ไขตามเส้นทาง",
                "description": "พารามิเตอร์ความชอบ `p` ในช่วง `[0, 1]`; `1.0` คือไม่กระจายเลย."
              },
              "flow_dir_output": {
                "label": "ผลลัพธ์ทิศทางการไหล",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ทิศทางการไหล."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์การสะสมการไหล."
              }
            }
          },
          "num_inflowing_neighbours": {
            "name": "จำนวนเซลล์ข้างเคียงที่ไหลเข้า",
            "description": "นับจำนวนเพื่อนบ้าน D8 ที่ไหลเข้าสำหรับแต่ละเซลล์ DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "qin_flow_accumulation": {
            "name": "การสะสมการไหลแบบ Qin",
            "description": "คำนวณการสะสมการไหลแบบ Qin MFD จาก DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "clip": {
                "label": "ตัด",
                "description": "แฟล็กความเข้ากันได้ที่ API ยอมรับ."
              },
              "convergence_threshold": {
                "label": "ค่าเกณฑ์การลู่เข้า",
                "description": "ค่าเกณฑ์ที่เมื่อเกินแล้วการไหลจะไม่ถูกกระจาย"
              },
              "exponent": {
                "label": "เลขชี้กำลัง",
                "description": "พารามิเตอร์เลขชี้กำลังขอบเขตบน (ค่าเริ่มต้น `10.0`)."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "แปลงผลลัพธ์ด้วยลอการิทึม"
              },
              "max_slope": {
                "label": "ความลาดชันสูงสุด",
                "description": "ความลาดชันขอบเขตบนเป็นองศาที่ใช้โดยฟังก์ชันเลขชี้กำลังแบบพลวัต (ค่าเริ่มต้น `45.0`)."
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "หนึ่งใน `\"cells\"`, `\"ca\"`, `\"sca\"` (ค่าเริ่มต้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "quinn_flow_accumulation": {
            "name": "การสะสมการไหลแบบ Quinn",
            "description": "คำนวณการสะสมการไหลแบบ Quinn MFD จาก DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "clip": {
                "label": "ตัด",
                "description": "แฟล็กความเข้ากันได้ที่ API ยอมรับ."
              },
              "convergence_threshold": {
                "label": "ค่าเกณฑ์การลู่เข้า",
                "description": "ค่าเกณฑ์ที่เมื่อเกินแล้วการไหลจะไม่ถูกกระจาย"
              },
              "exponent": {
                "label": "เลขชี้กำลัง",
                "description": "พารามิเตอร์เลขชี้กำลัง (ค่าเริ่มต้น `1.1`)."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "แปลงผลลัพธ์ด้วยลอการิทึม"
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "หนึ่งใน `\"cells\"`, `\"ca\"`, `\"sca\"` (ค่าเริ่มต้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "rho8_flow_accum": {
            "name": "การสะสมการไหลแบบ Rho8",
            "description": "คำนวณการสะสมการไหลแบบ Rho8 จาก DEM หรือแรสเตอร์ตัวชี้ Rho8",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "DEM"
              },
              "clip": {
                "label": "ตัด",
                "description": "ตัดค่าสูงสุดของการแสดงผล (รับไว้เพื่อความเข้ากันได้)"
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "แปลงผลลัพธ์ด้วยลอการิทึม"
              },
              "out_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "ชนิดผลลัพธ์: cells, ca หรือ sca"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "rho8_pointer": {
            "name": "ตัวชี้ทิศทางการไหลแบบ Rho8",
            "description": "ทิศทางการไหลเดี่ยวแบบสุ่มที่ถ่วงน้ำหนักด้วยเกรเดียนต์ความลาดชัน เรียกใช้หลายครั้งเพื่อการวิเคราะห์แบบกลุ่มที่ลดสิ่งแปลกปลอมการเกิดร่องน้ำของ D8",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "trace_downslope_flowpaths": {
            "name": "ติดตามเส้นทางการไหลลงลาด",
            "description": "ระบุเส้นทางการไหล D8 ที่เริ่มจากจุดเริ่มต้นจนถึงจุดที่ไม่มีการไหลหรือขอบกริด",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 นำเข้า."
              },
              "seed_points": {
                "label": "จุดเริ่มต้น",
                "description": "เวกเตอร์จุดนำเข้าของตำแหน่งเริ่มต้น."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "หากเป็นจริง จะตีความพอยน์เตอร์ D8 ด้วยการเข้ารหัสแบบ ESRI."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง พื้นหลังจะเป็น `0`; มิฉะนั้นพื้นหลังจะเป็น NoData."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "breach_depressions_least_cost": {
            "name": "เจาะทะลุแอ่งแบบต้นทุนต่ำสุด",
            "description": "เจาะทะลุแอ่งใน DEM โดยใช้การค้นหาเส้นทางต้นทุนต่ำสุดแบบมีข้อจำกัด",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "fill_deps": {
                "label": "เติมแอ่ง",
                "description": "หากเป็นจริง จะเติมแอ่งที่ยังแก้ไม่ได้หลังจากการเจาะทะลุ."
              },
              "flat_increment": {
                "label": "ค่าเพิ่มพื้นที่ราบ",
                "description": "ค่าลดลงแบบโมโนโทนิกเป็นตัวเลือก."
              },
              "max_cost": {
                "label": "ต้นทุนสูงสุด",
                "description": "ต้นทุนการเจาะทะลุสูงสุดที่อนุญาต."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางค้นหาสูงสุดเป็นจำนวนเซลล์."
              },
              "minimize_dist": {
                "label": "ลดระยะทางให้น้อยที่สุด",
                "description": "หากเป็นจริง จะถ่วงน้ำหนักต้นทุนการเจาะทะลุตามระยะทาง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "breach_single_cell_pits": {
            "name": "เจาะทะลุหลุมเซลล์เดียว",
            "description": "เจาะทะลุหลุมเซลล์เดียวใน DEM โดยขุดร่องน้ำกว้างหนึ่งเซลล์",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกคืนค่าในหน่วยความจำเมื่อรองรับ."
              }
            }
          },
          "burn_streams": {
            "name": "ฝังลำน้ำ",
            "description": "ฝังโครงข่ายลำน้ำลงใน DEM โดยลดระดับความสูงของเซลล์ลำน้ำ",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "เวกเตอร์ลำน้ำนำเข้า."
              },
              "decrement_value": {
                "label": "ค่าที่ลด",
                "description": "ค่าลดระดับความสูงที่ใช้กับเซลล์ลำน้ำ (ค่าเริ่มต้น 5.0)."
              },
              "gradient_distance": {
                "label": "ระยะทางเกรเดียนต์",
                "description": "ระยะทางความชันเป็นจำนวนเซลล์กริด (0 = ลดค่าคงที่เท่านั้น; ค่าเริ่มต้น 5)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ DEM ผลลัพธ์ที่ฝังลำน้ำแล้ว."
              }
            }
          },
          "burn_streams_at_roads": {
            "name": "ฝังลำน้ำที่ถนน",
            "description": "ลดระดับความสูงของลำน้ำใกล้จุดตัดระหว่างลำน้ำกับถนน เพื่อเจาะทะลุคันทางถนนใน DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "roads": {
                "label": "ถนน",
                "description": "เลเยอร์เวกเตอร์ถนน."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "เลเยอร์เวกเตอร์ลำน้ำ."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธี"
              },
              "road_width": {
                "label": "ความกว้างถนน",
                "description": "ความกว้างคันดินสูงสุดในหน่วยแผนที่ที่ใช้กำหนดระยะการฝังตามแนวลำน้ำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "depth_in_sink": {
            "name": "ความลึกในแอ่งปิด",
            "description": "วัดความลึกที่แต่ละเซลล์ DEM อยู่ต่ำกว่าพื้นผิวที่เติมแอ่งแล้ว",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง จะกำหนด `0.0` ให้เซลล์ที่อยู่นอกแอ่ง; มิฉะนั้นจะกำหนด NoData."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "fill_burn": {
            "name": "เติมและฝัง",
            "description": "บังคับเชิงอุทกวิทยาให้ DEM โดยฝังลำน้ำแล้วเติมแอ่ง",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "เลเยอร์เวกเตอร์ลำน้ำนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "fill_depressions": {
            "name": "เติมแอ่ง",
            "description": "เติมแอ่งใน DEM โดยใช้กลยุทธ์ priority-flood พร้อมการแก้พื้นที่ราบแบบ Garbrecht-Martz เป็นค่าเริ่มต้น และการแก้พื้นที่ราบแบบเส้นทางธรรมชาติแบบเดิม (ถ้าเลือก)",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "fix_flats": {
                "label": "แก้ไขพื้นที่ราบ",
                "description": "หากเป็นจริง จะกำหนดความชันเล็กน้อยข้ามพื้นที่ราบที่ถูกเติม."
              },
              "flat_increment": {
                "label": "ค่าเพิ่มพื้นที่ราบ",
                "description": "ค่าเพิ่มสำหรับพื้นที่ราบ (ค่าเริ่มต้น `0.0001`)."
              },
              "flat_resolution": {
                "label": "ความละเอียดพื้นที่ราบ",
                "description": "โหมดการแก้ไขพื้นที่ราบ. หนึ่งใน `\"garbrecht_martz\"` หรือ `\"natural\"`."
              },
              "max_depth": {
                "label": "ความลึกสูงสุด",
                "description": "ความลึกการเติมสูงสุดที่อนุญาต."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "fill_depressions_planchon_and_darboux": {
            "name": "เติมแอ่งแบบ Planchon และ Darboux",
            "description": "เติมแอ่งใน DEM ด้วยส่วนติดต่อที่เข้ากันได้กับ Planchon-and-Darboux",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "fix_flats": {
                "label": "แก้ไขพื้นที่ราบ",
                "description": "หากเป็นจริง จะกำหนดความชันเล็กน้อยข้ามพื้นที่ราบที่ถูกเติม."
              },
              "flat_increment": {
                "label": "ค่าเพิ่มพื้นที่ราบ",
                "description": "ค่าเพิ่มสำหรับพื้นที่ราบ (ค่าเริ่มต้น `0.0001`)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "fill_depressions_wang_and_liu": {
            "name": "เติมแอ่งแบบ Wang และ Liu",
            "description": "เติมแอ่งใน DEM ด้วยส่วนติดต่อที่เข้ากันได้กับ Wang-and-Liu",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "fix_flats": {
                "label": "แก้ไขพื้นที่ราบ",
                "description": "หากเป็นจริง จะกำหนดความชันเล็กน้อยข้ามพื้นที่ราบที่ถูกเติม."
              },
              "flat_increment": {
                "label": "ค่าเพิ่มพื้นที่ราบ",
                "description": "ค่าเพิ่มสำหรับพื้นที่ราบ (ค่าเริ่มต้น `0.0001`)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "fill_pits": {
            "name": "เติมหลุม",
            "description": "เติมหลุมเซลล์เดียวใน DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกคืนค่าในหน่วยความจำเมื่อรองรับ."
              }
            }
          },
          "flatten_lakes": {
            "name": "ปรับทะเลสาบให้ราบ",
            "description": "ปรับระดับความสูงของทะเลสาบให้ราบโดยใช้ระดับความสูงต่ำสุดตามเส้นรอบรูปของแต่ละโพลิกอน",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "lakes": {
                "label": "ทะเลสาบ",
                "description": "เวกเตอร์โพลิกอนนำเข้าของฟีเจอร์ทะเลสาบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "impoundment_size_index": {
            "name": "ดัชนีขนาดอ่างกักเก็บ",
            "description": "คำนวณตัวชี้วัดอ่างกักเก็บ ได้แก่ ความลึกเฉลี่ย/สูงสุด ปริมาตร พื้นที่ และความสูงเขื่อน",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "max_dam_length": {
                "label": "ความยาวเขื่อนสูงสุด",
                "description": "ความยาวเขื่อนสูงสุดในหน่วยแผนที่."
              },
              "output_area": {
                "label": "ผลลัพธ์พื้นที่",
                "description": "รวมแรสเตอร์พื้นที่น้ำท่วมไว้ในทูเพิลผลลัพธ์."
              },
              "output_height": {
                "label": "ผลลัพธ์ความสูง",
                "description": "รวมแรสเตอร์ความสูงเขื่อนไว้ในทูเพิลผลลัพธ์."
              },
              "output_max": {
                "label": "ผลลัพธ์ค่าสูงสุด",
                "description": "รวมแรสเตอร์ความลึกน้ำท่วมสูงสุดไว้ในทูเพิลผลลัพธ์."
              },
              "output_mean": {
                "label": "ผลลัพธ์ค่าเฉลี่ย",
                "description": "รวมแรสเตอร์ความลึกน้ำท่วมเฉลี่ยไว้ในทูเพิลผลลัพธ์."
              },
              "output_volume": {
                "label": "ผลลัพธ์ปริมาตร",
                "description": "รวมแรสเตอร์ปริมาตรน้ำท่วมไว้ในทูเพิลผลลัพธ์."
              },
              "out_area": {
                "label": "ผลลัพธ์พื้นที่",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์พื้นที่"
              },
              "out_dam_height": {
                "label": "ผลลัพธ์ความสูงเขื่อน",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ความสูงเขื่อน"
              },
              "out_max": {
                "label": "ผลลัพธ์ค่าสูงสุด",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ความลึกสูงสุด"
              },
              "out_mean": {
                "label": "ผลลัพธ์ค่าเฉลี่ย",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ความลึกเฉลี่ย"
              },
              "out_volume": {
                "label": "ผลลัพธ์ปริมาตร",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ปริมาตร"
              }
            }
          },
          "insert_dams": {
            "name": "แทรกเขื่อน",
            "description": "เพิ่มคันเขื่อนเฉพาะที่ ณ จุดที่กำหนดโดยใช้การเลือกสันเขื่อนตามโปรไฟล์",
            "params": {
              "dam_points": {
                "label": "จุดเขื่อน",
                "description": "เวกเตอร์จุดนำเข้าของตำแหน่งเขื่อน."
              },
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "dam_length": {
                "label": "ความยาวเขื่อน",
                "description": "ความยาวเขื่อนสูงสุดในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "raise_walls": {
            "name": "ยกกำแพง",
            "description": "ยกระดับความสูงของ DEM ตามแนวเวกเตอร์กำแพง และเจาะทะลุจุดตัดที่เลือก (ถ้าเลือก)",
            "params": {
              "breach_lines": {
                "label": "เส้นเจาะทะลุ",
                "description": "เวกเตอร์เป็นตัวเลือกที่กำหนดตำแหน่งการเจาะทะลุ."
              },
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "walls": {
                "label": "กำแพง",
                "description": "เวกเตอร์เส้นหรือโพลิกอนนำเข้าที่กำหนดเซกเมนต์กำแพง."
              },
              "wall_height": {
                "label": "ความสูงกำแพง",
                "description": "ค่าเพิ่มระดับความสูงที่ใช้กับเซลล์กำแพง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "sink": {
            "name": "แอ่งปิด",
            "description": "ระบุเซลล์ที่เป็นส่วนหนึ่งของแอ่งภูมิประเทศใน DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง จะกำหนด `0.0` ให้เซลล์ที่อยู่นอกแอ่ง; มิฉะนั้นจะกำหนด NoData."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "stochastic_depression_analysis": {
            "name": "การวิเคราะห์แอ่งแบบสุ่ม",
            "description": "เรียกใช้การรบกวน DEM แบบ Monte Carlo และประมาณความน่าจะเป็นของการเป็นสมาชิกแอ่ง",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำแบบมอนติคาร์โล."
              },
              "range": {
                "label": "พิสัย",
                "description": "ช่วงสหสัมพันธ์ในตัวของความคลาดเคลื่อนในหน่วยแผนที่."
              },
              "rmse": {
                "label": "RMSE",
                "description": "ค่า RMSE ของระดับความสูงที่ใช้สำหรับการรบกวนแบบเกาส์เซียน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "topological_breach_burn": {
            "name": "เจาะทะลุและฝังเชิงทอพอโลยี",
            "description": "ฝังลำน้ำลงใน DEM ปรับสภาพพื้นผิว และส่งคืนแรสเตอร์ลำน้ำ DEM ตัวชี้ และการสะสม",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "เวกเตอร์โครงข่ายลำน้ำนำเข้า."
              },
              "snap_distance": {
                "label": "ระยะทางสแนป",
                "description": "ระยะสแนปลำน้ำเป็นตัวเลือกที่ใช้ในการปรับสเกลความลึกการฝัง."
              },
              "out_dem": {
                "label": "DEM ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับ DEM ที่ฝังลำน้ำ/ปรับสภาพแล้ว."
              },
              "out_dir": {
                "label": "ทิศทางผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์พอยน์เตอร์ D8."
              },
              "out_fa": {
                "label": "การสะสมการไหลผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์การสะสมการไหล."
              },
              "out_streams": {
                "label": "ลำน้ำผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับลำน้ำที่แปลงเป็นแรสเตอร์."
              }
            }
          },
          "upslope_depression_storage": {
            "name": "การกักเก็บในแอ่งเหนือลาด",
            "description": "ทำแผนที่ความลึกการกักเก็บในแอ่งเหนือลาดเฉลี่ย โดยส่งความลึกของแอ่งไปตามเส้นทางบน DEM ที่ปรับสภาพแล้ว",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "basins": {
            "name": "แอ่งน้ำ",
            "description": "กำหนดขอบเขตแอ่งระบายน้ำ D8 ทั้งหมดที่ระบายออกสู่ขอบของข้อมูลที่ถูกต้อง",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 นำเข้า."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "หากเป็นจริง จะตีความค่าพอยน์เตอร์ด้วยการเข้ารหัส D8 แบบ ESRI."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "flood_order": {
            "name": "ลำดับน้ำท่วม",
            "description": "ส่งออกลำดับ priority-flood ตามลำดับสำหรับแต่ละเซลล์ DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "hillslopes": {
            "name": "ลาดเขา",
            "description": "ระบุบริเวณเนินลาดที่ระบายน้ำไปยังแต่ละช่วงลำน้ำ โดยแยกพื้นที่ฝั่งซ้ายและฝั่งขวา",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์โครงข่ายลำน้ำที่เซลล์ลำน้ำมีค่ามากกว่า 0 และไม่เป็น NoData."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "แฟล็กการเข้ารหัสพอยน์เตอร์แบบ ESRI."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "isobasins": {
            "name": "ไอโซเบซิน",
            "description": "แบ่งภูมิทัศน์เป็นลุ่มน้ำที่มีขนาดใกล้เคียงกัน (isobasin) ตามค่าเกณฑ์พื้นที่เป้าหมาย",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ปรับสภาพทางอุทกวิทยาแล้ว."
              },
              "target_size": {
                "label": "ขนาดเป้าหมาย",
                "description": "พื้นที่ไอโซเบซินเป้าหมายเป็นจำนวนเซลล์กริด (จำนวนเต็มบวกหรือทศนิยม)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "jenson_snap_pour_points": {
            "name": "สแนปจุดไหลออกแบบ Jenson",
            "description": "สแนปจุดไหลออกแต่ละจุดไปยังเซลล์ลำน้ำที่ใกล้ที่สุดภายในระยะทางค้นหา พร้อมคงแอตทริบิวต์นำเข้าทั้งหมด",
            "params": {
              "pour_pts": {
                "label": "จุดไหลออก",
                "description": "ไฟล์เวกเตอร์นำเข้าของจุดระบายน้ำ (เรขาคณิตแบบจุดหรือหลายจุด)."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์โครงข่ายลำน้ำนำเข้าที่เซลล์ลำน้ำมีค่ามากกว่า 0 และไม่เป็น NoData."
              },
              "snap_dist": {
                "label": "ระยะทางสแนป",
                "description": "รัศมีค้นหาสูงสุดในหน่วยแผนที่. ค่าเริ่มต้นคือความกว้างหนึ่งเซลล์เมื่อไม่ระบุหรือเป็นศูนย์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์สำหรับไฟล์เวกเตอร์จุดระบายน้ำที่สแนปแล้ว (จำเป็น; ค่าเริ่มต้นคือ `snapped_pour_points.geojson` ในโฟลเดอร์ทำงานเมื่อไม่ได้ระบุให้กับตัวห่อหุ้ม)."
              }
            }
          },
          "longest_flowpath": {
            "name": "เส้นทางการไหลที่ยาวที่สุด",
            "description": "กำหนดเส้นทางการไหลที่ยาวที่สุดสำหรับแต่ละแอ่งในแรสเตอร์แอ่ง",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "basins": {
                "label": "แอ่งน้ำ",
                "description": "แรสเตอร์แอ่งน้ำนำเข้า"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์"
              }
            }
          },
          "max_branch_length": {
            "name": "ความยาวสาขาสูงสุด",
            "description": "คำนวณความยาวกิ่งสูงสุดระหว่างเส้นทางการไหล D8 ที่อยู่ติดกัน มีประโยชน์สำหรับการเน้นสันปันน้ำ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "ใช้การแปลงลอการิทึมธรรมชาติกับผลลัพธ์ที่เป็นค่าบวก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "snap_pour_points": {
            "name": "สแนปจุดไหลออก",
            "description": "สแนปจุดไหลออกไปยังเซลล์ที่มีการสะสมการไหลสูงที่สุดภายในระยะทางค้นหา",
            "params": {
              "flow_accum": {
                "label": "การสะสมการไหล",
                "description": "แรสเตอร์การสะสมการไหลนำเข้า."
              },
              "pour_pts": {
                "label": "จุดไหลออก",
                "description": "ไฟล์เวกเตอร์นำเข้าของจุดระบายน้ำ (เรขาคณิตแบบจุดหรือหลายจุด)."
              },
              "snap_dist": {
                "label": "ระยะทางสแนป",
                "description": "รัศมีค้นหาสูงสุดในหน่วยแผนที่. ค่าเริ่มต้นคือความกว้างหนึ่งเซลล์เมื่อไม่ระบุหรือเป็นศูนย์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์สำหรับไฟล์เวกเตอร์จุดระบายน้ำที่สแนปแล้ว (จำเป็น; ค่าเริ่มต้นคือ `snapped_pour_points.geojson` ในโฟลเดอร์ทำงานเมื่อไม่ได้ระบุให้กับตัวห่อหุ้ม)."
              }
            }
          },
          "subbasins": {
            "name": "ลุ่มน้ำย่อย",
            "description": "ระบุพื้นที่รับน้ำของแต่ละช่วงลำน้ำ (ลุ่มน้ำย่อย) ในโครงข่ายลำน้ำ D8",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 ที่สร้างโดย `d8_pointer`."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์โครงข่ายลำน้ำที่เซลล์ลำน้ำมีค่ามากกว่า 0 และไม่เป็น NoData."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "หากเป็นจริง จะตีความค่าพอยน์เตอร์ด้วยการเข้ารหัสแบบ ESRI. ค่าเริ่มต้น `False`."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "unnest_basins": {
            "name": "แยกซ้อนแอ่งน้ำ",
            "description": "สร้างแรสเตอร์แอ่งหนึ่งชุดต่อระดับการซ้อนของจุดไหลออกจากกริดตัวชี้ D8",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 นำเข้า"
              },
              "pour_points": {
                "label": "จุดไหลออก",
                "description": "เวกเตอร์จุดระบายน้ำนำเข้า"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตีความพอยน์เตอร์แบบ ESRI"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ฐานเป็นตัวเลือกสำหรับแรสเตอร์ที่มีหมายเลข"
              }
            }
          },
          "watershed": {
            "name": "ลุ่มน้ำ",
            "description": "กำหนดขอบเขตลุ่มน้ำจากตัวชี้ D8 และจุดไหลออกแบบเวกเตอร์",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 นำเข้า."
              },
              "pour_pts": {
                "label": "จุดไหลออก",
                "description": "ไฟล์เวกเตอร์นำเข้าของจุดระบายน้ำ (เรขาคณิตแบบจุดหรือหลายจุด)."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "หากเป็นจริง จะตีความค่าพอยน์เตอร์ด้วยการเข้ารหัส D8 แบบ ESRI."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "watershed_from_raster_pour_points": {
            "name": "ลุ่มน้ำจากจุดไหลออกแบบแรสเตอร์",
            "description": "กำหนดขอบเขตลุ่มน้ำจากตัวชี้ D8 และแรสเตอร์รหัสทางออกของจุดไหลออก",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 นำเข้า."
              },
              "pour_points": {
                "label": "จุดไหลออก",
                "description": "แรสเตอร์จุดระบายน้ำ; ค่าเซลล์ที่ไม่เป็นศูนย์และไม่เป็น NoData จะกลายเป็นรหัสจุดออก."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "หากเป็นจริง จะตีความค่าพอยน์เตอร์ด้วยการเข้ารหัส D8 แบบ ESRI."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "depth_to_water": {
            "name": "ความลึกถึงระดับน้ำ",
            "description": "คำนวณความลึกถึงระดับน้ำเชิงแผนที่ (cartographic depth-to-water) โดยใช้การสะสมต้นทุนต่ำสุดจากฟีเจอร์ต้นทางที่เป็นลำน้ำ/ทะเลสาบ",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "stream_raster": {
                "label": "แรสเตอร์ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำ"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "distance_to_outlet": {
            "name": "ระยะทางถึงทางออก",
            "description": "คำนวณระยะทางท้ายน้ำถึงทางออกสำหรับแต่ละเซลล์ลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "downslope_distance_to_stream": {
            "name": "ระยะทางลงลาดถึงลำน้ำ",
            "description": "คำนวณระยะทางลงลาดจากแต่ละเซลล์ DEM ไปยังลำน้ำที่ใกล้ที่สุดตามเส้นทางการไหล",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ไม่มีแอ่ง."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำนำเข้า; เซลล์ลำน้ำคือค่าที่ `> 0` และไม่เป็น NoData."
              },
              "dinf": {
                "label": "D-infinity",
                "description": "หากเป็นจริง จะใช้การนำทางการไหลแบบ D-infinity; มิฉะนั้นจะใช้แบบ D8."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "downslope_index": {
            "name": "ดัชนีลงลาด",
            "description": "คำนวณดัชนีลงลาดของ Hjerdt et al. (2004) โดยใช้ทิศทางการไหล D8",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "หน่วยวัดผลลัพธ์: tangent, degrees, radians, distance (ค่าเริ่มต้น tangent)."
              },
              "vertical_drop": {
                "label": "ความต่างระดับแนวดิ่ง",
                "description": "ค่าเกณฑ์การลดระดับแนวดิ่ง d สำหรับการเดินทางลงตามความลาดชัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "edge_contamination": {
            "name": "การปนเปื้อนจากขอบ",
            "description": "ระบุเซลล์ DEM ที่พื้นที่เหนือลาดขยายเลยขอบ DEM สำหรับแผนการส่งการไหลที่ใช้ทั่วไป",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ไม่มีแอ่ง."
              },
              "flow_type": {
                "label": "ชนิดการไหล",
                "description": "วิธีการนำทางการไหลที่ใช้: หนึ่งใน `\"d8\"`, `\"mfd\"`/`\"fd8\"` หรือ `\"dinf\"`."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณมาตราส่วนแนวดิ่งเป็นตัวเลือก. ค่าที่ `<= 0` จะถือเป็น `1.0`."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "elev_relative_to_watershed_min_max": {
            "name": "ระดับความสูงสัมพัทธ์กับค่าต่ำสุด-สูงสุดของลุ่มน้ำ",
            "description": "คำนวณตำแหน่งระดับความสูงสัมพัทธ์ของเซลล์ DEM ภายในแต่ละลุ่มน้ำเป็นร้อยละ",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "watersheds": {
                "label": "ลุ่มน้ำ",
                "description": "พาธแรสเตอร์รหัสลุ่มน้ำหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "elevation_above_stream": {
            "name": "ระดับความสูงเหนือลำน้ำ",
            "description": "คำนวณระดับความสูงเหนือลำน้ำที่ใกล้ที่สุดโดยวัดตามเส้นทางการไหลลงลาด",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ไม่มีแอ่ง."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำนำเข้า; เซลล์ลำน้ำคือค่าที่ `> 0` และไม่เป็น NoData."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "elevation_above_stream_euclidean": {
            "name": "ระดับความสูงเหนือลำน้ำแบบยูคลิด",
            "description": "คำนวณระดับความสูงเหนือลำน้ำที่ใกล้ที่สุดโดยใช้ความใกล้แบบเส้นตรง (Euclidean)",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำนำเข้า; เซลล์ลำน้ำคือค่าที่ `> 0` และไม่เป็น NoData."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "find_noflow_cells": {
            "name": "ค้นหาเซลล์ที่ไม่มีการไหล",
            "description": "ค้นหาเซลล์ DEM ที่ไม่มีเพื่อนบ้าน D8 ที่ต่ำกว่า",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "interior_only": {
                "label": "เฉพาะภายใน",
                "description": "หากเป็นจริง จะทำเครื่องหมายเฉพาะเซลล์ไม่มีการไหลที่อยู่ภายในจริงเท่านั้น (ไม่รวมจุดออกที่ขอบแรสเตอร์และที่อยู่ติดกับ NoData)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "find_parallel_flow": {
            "name": "ค้นหาการไหลขนาน",
            "description": "ระบุเซลล์ลำน้ำที่มีทิศทางการไหล D8 ขนานกัน",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8 นำเข้า."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "hydrologic_connectivity": {
            "name": "การเชื่อมต่อทางอุทกวิทยา",
            "description": "คำนวณดัชนีความเชื่อมต่อ DUL และ UDSA จาก DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "convergence_threshold": {
                "label": "ค่าเกณฑ์การลู่เข้า",
                "description": "ค่าเกณฑ์การเริ่มต้นลำน้ำเป็นตัวเลือก หน่วยเป็นจำนวนเซลล์ที่ส่งน้ำ."
              },
              "exponent": {
                "label": "เลขชี้กำลัง",
                "description": "พารามิเตอร์เพื่อความเข้ากันได้สำหรับการควบคุมการกระจาย."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณมาตราส่วนแนวดิ่งเป็นตัวเลือก."
              },
              "output1": {
                "label": "ผลลัพธ์ 1",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ DUL."
              },
              "output2": {
                "label": "ผลลัพธ์ 2",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ UDSA."
              }
            }
          },
          "relative_stream_power_index": {
            "name": "ดัชนีพลังลำน้ำสัมพัทธ์",
            "description": "คำนวณดัชนีกำลังของลำน้ำสัมพัทธ์จากพื้นที่รับน้ำจำเพาะและความลาดชัน",
            "params": {
              "sca": {
                "label": "SCA",
                "description": "พาธแรสเตอร์พื้นที่รับน้ำจำเพาะหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "slope": {
                "label": "ความลาดชัน",
                "description": "แรสเตอร์ความลาดชันเป็นองศา."
              },
              "exponent": {
                "label": "เลขชี้กำลัง",
                "description": "เลขชี้กำลังพื้นที่รับน้ำจำเพาะ p (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "sediment_transport_index": {
            "name": "ดัชนีการพัดพาตะกอน",
            "description": "คำนวณดัชนีการเคลื่อนย้ายตะกอน (LS factor) จากพื้นที่รับน้ำจำเพาะและความลาดชัน",
            "params": {
              "sca": {
                "label": "SCA",
                "description": "พาธแรสเตอร์พื้นที่รับน้ำจำเพาะหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "slope": {
                "label": "ความลาดชัน",
                "description": "แรสเตอร์ความลาดชันเป็นองศา."
              },
              "sca_exponent": {
                "label": "เลขชี้กำลัง SCA",
                "description": "เลขชี้กำลังพื้นที่รับน้ำจำเพาะ n (ค่าเริ่มต้น 0.4)."
              },
              "slope_exponent": {
                "label": "เลขชี้กำลังความลาดชัน",
                "description": "เลขชี้กำลังความลาดชัน m (ค่าเริ่มต้น 1.3)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "wetness_index": {
            "name": "ดัชนีความชื้น",
            "description": "คำนวณดัชนีความชื้นเชิงภูมิประเทศ ln(SCA / tan(slope))",
            "params": {
              "sca": {
                "label": "SCA",
                "description": "พาธแรสเตอร์พื้นที่รับน้ำจำเพาะหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "slope": {
                "label": "ความลาดชัน",
                "description": "แรสเตอร์ความลาดชันเป็นองศา."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "extract_streams": {
            "name": "สกัดลำน้ำ",
            "description": "สกัดลำน้ำตามค่าเกณฑ์การสะสมการไหล",
            "params": {
              "flow_accumulation": {
                "label": "การสะสมการไหล",
                "description": "แรสเตอร์การสะสมการไหลนำเข้า."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าการสะสมต่ำสุดที่ต้องมีเพื่อเป็นส่วนหนึ่งของร่องน้ำ."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง พื้นหลังที่ไม่ใช่ลำน้ำจะเป็น 0 แทน NoData."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ลำน้ำผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "extract_valleys": {
            "name": "สกัดหุบเขา",
            "description": "สกัดหุบเขาจาก DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "DEM"
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดตัวกรอง"
              },
              "line_thin": {
                "label": "ทำเส้นให้บาง",
                "description": "ทำเส้นให้บาง"
              },
              "variant": {
                "label": "รูปแบบย่อย",
                "description": "รูปแบบย่อย"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "prune_vector_streams": {
            "name": "ตัดแต่งลำน้ำเวกเตอร์",
            "description": "ตัดแต่งโครงข่ายลำน้ำแบบเวกเตอร์ตามขนาด Shreve",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้าที่ใช้กำหนดทิศทางการไหล"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "โครงข่ายลำน้ำแบบเวกเตอร์นำเข้า"
              },
              "max_ridge_cutting_height": {
                "label": "ความสูงตัดสันเขาสูงสุด",
                "description": "ระดับความสูงที่เพิ่มขึ้นสูงสุดที่อนุญาตเมื่อเชื่อมต่อลิงก์ท้ายน้ำ"
              },
              "snap_distance": {
                "label": "ระยะทางสแนป",
                "description": "ระยะสแนปสูงสุดสำหรับการเชื่อมต่อจุดปลาย"
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าความสำคัญแบบ Shreve ต่ำสุดที่จะเก็บไว้"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์"
              }
            }
          },
          "raster_streams_to_vector": {
            "name": "ลำน้ำแรสเตอร์เป็นเวกเตอร์",
            "description": "แปลงโครงข่ายลำน้ำแบบแรสเตอร์เป็นเวกเตอร์",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams_raster": {
                "label": "แรสเตอร์ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำ"
              },
              "all_vertices": {
                "label": "จุดยอดทั้งหมด",
                "description": "จุดยอดทั้งหมด"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "rasterize_streams": {
            "name": "แปลงลำน้ำเป็นแรสเตอร์",
            "description": "แปลงโครงข่ายลำน้ำแบบเวกเตอร์เป็นแรสเตอร์",
            "params": {
              "input_vector": {
                "label": "เวกเตอร์นำเข้า",
                "description": "เวกเตอร์นำเข้า"
              },
              "reference_raster": {
                "label": "แรสเตอร์อ้างอิง",
                "description": "แรสเตอร์อ้างอิง"
              },
              "use_feature_id": {
                "label": "ใช้รหัสฟีเจอร์",
                "description": "ใช้รหัสฟีเจอร์"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "remove_short_streams": {
            "name": "ลบลำน้ำสายสั้น",
            "description": "ลบช่วงลำน้ำที่สั้นกว่าความยาวขั้นต่ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "min_length": {
                "label": "ความยาวต่ำสุด",
                "description": "ความยาวต่ำสุด"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "repair_stream_vector_topology": {
            "name": "ซ่อมแซมทอพอโลยีเวกเตอร์ลำน้ำ",
            "description": "ซ่อมแซมทอพอโลยีของโครงข่ายลำน้ำแบบเวกเตอร์",
            "params": {
              "input_vector": {
                "label": "เวกเตอร์นำเข้า",
                "description": "เวกเตอร์นำเข้า"
              },
              "snap": {
                "label": "สแนป",
                "description": "สแนป"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "river_centerlines": {
            "name": "เส้นกึ่งกลางแม่น้ำ",
            "description": "สกัดเส้นกึ่งกลางแม่น้ำจากแรสเตอร์น้ำโดยใช้แกนกลาง (medial axis)",
            "params": {
              "raster": {
                "label": "แรสเตอร์",
                "description": "แรสเตอร์ไบนารีน้ำ/ไม่ใช่น้ำ"
              },
              "min_length": {
                "label": "ความยาวต่ำสุด",
                "description": "ความยาวเส้นกึ่งกลางต่ำสุดเป็นจำนวนเซลล์แรสเตอร์"
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีค้นหา (เซลล์) ที่ใช้เชื่อมต่อจุดปลายที่อยู่ใกล้เคียง"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นกึ่งกลางผลลัพธ์"
              }
            }
          },
          "farthest_channel_head": {
            "name": "ต้นน้ำที่ไกลที่สุด",
            "description": "คำนวณระยะทางไปยังต้นร่องน้ำที่อยู่ไกลที่สุด",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "find_main_stem": {
            "name": "ค้นหาลำน้ำสายหลัก",
            "description": "ระบุลำน้ำสายหลักของโครงข่ายลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "length_of_upstream_channels": {
            "name": "ความยาวของลำน้ำต้นน้ำ",
            "description": "คำนวณความยาวร่องน้ำต้นน้ำทั้งหมด",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "long_profile": {
            "name": "โปรไฟล์ตามยาว",
            "description": "สร้างโปรไฟล์ตามยาวของลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "dem": {
                "label": "DEM",
                "description": "DEM"
              },
              "streams_raster": {
                "label": "แรสเตอร์ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "long_profile_from_points": {
            "name": "โปรไฟล์ตามยาวจากจุด",
            "description": "สร้างโปรไฟล์ตามยาวจากจุดเวกเตอร์",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "dem": {
                "label": "DEM",
                "description": "DEM"
              },
              "points": {
                "label": "จุด",
                "description": "จุด"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "hack_stream_order": {
            "name": "ลำดับลำน้ำแบบ Hack",
            "description": "กำหนดลำดับลำน้ำแบบ Hack ให้กับเซลล์ลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ใช้พอยน์เตอร์แบบ ESRI"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "กำหนดค่าศูนย์ให้พื้นหลัง"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "horton_ratios": {
            "name": "อัตราส่วน Horton",
            "description": "คำนวณอัตราส่วนการแตกสาขา ความยาว พื้นที่ระบายน้ำ และความลาดชันของ Horton",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "streams_raster": {
                "label": "แรสเตอร์ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำแบบไบนารี (ค่าบวก = ลำน้ำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธรายงานข้อความผลลัพธ์ (เป็นตัวเลือก)."
              }
            }
          },
          "horton_stream_order": {
            "name": "ลำดับลำน้ำแบบ Horton",
            "description": "กำหนดลำดับลำน้ำแบบ Horton ให้กับเซลล์ลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ใช้พอยน์เตอร์แบบ ESRI"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "กำหนดค่าศูนย์ให้พื้นหลัง"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "shreve_stream_magnitude": {
            "name": "ขนาดลำน้ำแบบ Shreve",
            "description": "คำนวณขนาดลำน้ำแบบ Shreve",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ใช้พอยน์เตอร์แบบ ESRI"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "กำหนดค่าศูนย์ให้พื้นหลัง"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "strahler_order_basins": {
            "name": "แอ่งน้ำตามลำดับ Strahler",
            "description": "กำหนดขอบเขตแอ่งลุ่มน้ำที่ติดป้ายตามลำดับ Horton-Strahler ของช่วงลำน้ำที่ระบายน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์ D8."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์โครงข่ายลำน้ำที่เซลล์ลำน้ำมีค่ามากกว่า 0 และไม่เป็น NoData."
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "แฟล็กการเข้ารหัสพอยน์เตอร์แบบ ESRI."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "strahler_stream_order": {
            "name": "ลำดับลำน้ำแบบ Strahler",
            "description": "กำหนดลำดับลำน้ำแบบ Strahler ให้กับเซลล์ลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "แรสเตอร์ลำน้ำ (ค่าบวก = เซลล์ลำน้ำ)"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ใช้ค่าพอยน์เตอร์แบบ ESRI (ค่าเริ่มต้น: Whitebox)"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "กำหนดค่าศูนย์ให้พื้นหลังแทน NoData"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "stream_link_class": {
            "name": "คลาสช่วงลำน้ำ",
            "description": "จำแนกช่วงลำน้ำเป็นแบบภายใน ภายนอก หรือต้นน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "stream_link_identifier": {
            "name": "ตัวระบุช่วงลำน้ำ",
            "description": "กำหนดรหัสเฉพาะให้กับแต่ละช่วงลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "stream_link_length": {
            "name": "ความยาวช่วงลำน้ำ",
            "description": "คำนวณความยาวรวมของแต่ละช่วงลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "linkid": {
                "label": "รหัสช่วงลำน้ำ",
                "description": "รหัสช่วงลำน้ำ"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "stream_link_slope": {
            "name": "ความลาดชันช่วงลำน้ำ",
            "description": "คำนวณความลาดชันเฉลี่ยของแต่ละช่วงลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "dem": {
                "label": "DEM",
                "description": "DEM"
              },
              "linkid": {
                "label": "รหัสช่วงลำน้ำ",
                "description": "รหัสช่วงลำน้ำ"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "stream_slope_continuous": {
            "name": "ความลาดชันลำน้ำแบบต่อเนื่อง",
            "description": "คำนวณค่าความลาดชันของแต่ละเซลล์ลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "dem": {
                "label": "DEM",
                "description": "DEM"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "topological_stream_order": {
            "name": "ลำดับลำน้ำเชิงทอพอโลยี",
            "description": "กำหนดลำดับลำน้ำเชิงทอพอโลยีตามจำนวนช่วงลำน้ำ",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "tributary_identifier": {
            "name": "ตัวระบุลำน้ำสาขา",
            "description": "กำหนดรหัสเฉพาะให้กับแต่ละลำน้ำสาขา",
            "params": {
              "d8_pntr": {
                "label": "ตัวชี้ D8",
                "description": "แรสเตอร์พอยน์เตอร์การไหล D8"
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "ลำน้ำ"
              },
              "esri_pntr": {
                "label": "ตัวชี้แบบ Esri",
                "description": "ตัวชี้แบบ Esri"
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "พื้นหลังเป็นศูนย์"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "vector_stream_network_analysis": {
            "name": "การวิเคราะห์โครงข่ายลำน้ำเวกเตอร์",
            "description": "การวิเคราะห์โครงข่ายลำน้ำแบบเวกเตอร์อย่างครอบคลุม",
            "params": {
              "streams": {
                "label": "ลำน้ำ",
                "description": "เลเยอร์เวกเตอร์โครงข่ายลำน้ำนำเข้า."
              },
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ระดับความสูงนำเข้า (DEM)."
              },
              "max_ridge_cutting_height": {
                "label": "ความสูงตัดสันเขาสูงสุด",
                "description": "ความสูงการตัดสันเขาสูงสุดที่อนุญาต."
              },
              "snap_distance": {
                "label": "ระยะทางสแนป",
                "description": "ค่าเผื่อระยะสแนปสำหรับการทำความสะอาดโครงข่าย."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "add_point_coordinates_to_table": {
            "name": "เพิ่มพิกัดจุดลงในตาราง",
            "description": "คัดลอกเลเยอร์จุดและเพิ่มฟิลด์แอตทริบิวต์ XCOORD และ YCOORD",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์จุดนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "clean_vector": {
            "name": "ทำความสะอาดเวกเตอร์",
            "description": "ลบเรขาคณิตเวกเตอร์ที่เป็น null และไม่ถูกต้อง (เช่น เส้น/โพลิกอนที่มีขนาดเล็กเกินไป) พร้อมคงฟีเจอร์และแอตทริบิวต์ที่ถูกต้องไว้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "csv_points_to_vector": {
            "name": "จุด CSV เป็นเวกเตอร์",
            "description": "นำเข้าระเบียนจุดจากไฟล์ CSV เป็นเลเยอร์เวกเตอร์จุด",
            "params": {
              "input_file": {
                "label": "ไฟล์นำเข้า",
                "description": "พาธไฟล์ CSV นำเข้า."
              },
              "x_field_num": {
                "label": "หมายเลขฟิลด์ X",
                "description": "ดัชนีเริ่มจากศูนย์สำหรับฟิลด์พิกัด X. ค่าเริ่มต้นคือ 0."
              },
              "y_field_num": {
                "label": "หมายเลขฟิลด์ Y",
                "description": "ดัชนีเริ่มจากศูนย์สำหรับฟิลด์พิกัด Y. ค่าเริ่มต้นคือ 1."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG เป็นตัวเลือกสำหรับระบบพิกัดอ้างอิงผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "export_table_to_csv": {
            "name": "ส่งออกตารางเป็น CSV",
            "description": "ส่งออกตารางแอตทริบิวต์เวกเตอร์เป็นไฟล์ CSV",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "output_csv_file": {
                "label": "ไฟล์ CSV ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              },
              "headers": {
                "label": "ส่วนหัว",
                "description": "รวมแถวส่วนหัวไว้ในผลลัพธ์. ค่าเริ่มต้นคือ true."
              }
            }
          },
          "join_tables": {
            "name": "เชื่อมตาราง",
            "description": "เชื่อมแอตทริบิวต์จากตารางเวกเตอร์ภายนอกเข้ากับตารางเวกเตอร์หลักโดยใช้ฟิลด์คีย์",
            "params": {
              "primary_vector": {
                "label": "เวกเตอร์หลัก",
                "description": "พาธเวกเตอร์หลักที่จะรับฟิลด์ที่เชื่อมเข้ามา."
              },
              "primary_key_field": {
                "label": "ฟิลด์คีย์หลัก",
                "description": "ฟิลด์คีย์หลักในเวกเตอร์หลัก."
              },
              "foreign_vector": {
                "label": "เวกเตอร์ภายนอก",
                "description": "พาธเวกเตอร์ภายนอกที่มีฟิลด์ต้นทาง."
              },
              "foreign_key_field": {
                "label": "ฟิลด์คีย์ภายนอก",
                "description": "ฟิลด์คีย์ภายนอกในเวกเตอร์ภายนอก."
              },
              "import_field": {
                "label": "ฟิลด์ที่นำเข้า",
                "description": "ฟิลด์เดี่ยวเป็นตัวเลือกที่จะนำเข้า; ค่าเริ่มต้นคือทุกฟิลด์ที่ไม่ใช่คีย์และไม่ใช่ FID."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. ค่าเริ่มต้นคือพาธ GeoJSON ที่สร้างขึ้นข้างไฟล์นำเข้าหลัก."
              }
            }
          },
          "merge_table_with_csv": {
            "name": "รวมตารางกับ CSV",
            "description": "ผสานแอตทริบิวต์จากตาราง CSV เข้ากับตารางแอตทริบิวต์เวกเตอร์ตามฟิลด์คีย์",
            "params": {
              "primary_vector": {
                "label": "เวกเตอร์หลัก",
                "description": "พาธเวกเตอร์หลักที่จะรับฟิลด์ที่รวมเข้ามา."
              },
              "primary_key_field": {
                "label": "ฟิลด์คีย์หลัก",
                "description": "ฟิลด์คีย์หลักในเวกเตอร์หลัก."
              },
              "foreign_csv_filename": {
                "label": "ชื่อไฟล์ CSV ภายนอก",
                "description": "ไฟล์ CSV ที่มีตารางภายนอก."
              },
              "foreign_key_field": {
                "label": "ฟิลด์คีย์ภายนอก",
                "description": "ชื่อฟิลด์คีย์ภายนอกในส่วนหัวของ CSV."
              },
              "import_field": {
                "label": "ฟิลด์ที่นำเข้า",
                "description": "ฟิลด์ CSV เดี่ยวเป็นตัวเลือกที่จะนำเข้า; ค่าเริ่มต้นคือทุกฟิลด์ที่ไม่ใช่คีย์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. ค่าเริ่มต้นคือพาธ GeoJSON ที่สร้างขึ้นข้างไฟล์นำเข้าหลัก."
              }
            }
          },
          "merge_vectors": {
            "name": "รวมเวกเตอร์",
            "description": "รวมเวกเตอร์นำเข้าสองชุดหรือมากกว่าที่มีประเภทเรขาคณิตเดียวกันเป็นเวกเตอร์ผลลัพธ์เดียว",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของพาธเวกเตอร์นำเข้า (ต้องมีอย่างน้อยสองรายการ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "reinitialize_attribute_table": {
            "name": "รีเซ็ตตารางแอตทริบิวต์",
            "description": "สร้างสำเนาของเลเยอร์เวกเตอร์ที่มีเพียงแอตทริบิวต์ FID ที่สร้างขึ้นใหม่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. หากไม่ระบุ จะเขียนทับพาธนำเข้า."
              }
            }
          },
          "vector_summary_statistics": {
            "name": "สถิติสรุปของเวกเตอร์",
            "description": "คำนวณจำนวน ผลรวม ค่าเฉลี่ย ค่าต่ำสุด ค่าสูงสุด และส่วนเบี่ยงเบนมาตรฐานตามกลุ่มหมวดหมู่ และส่งออกเป็น CSV",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "group_field": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "ชื่อฟิลด์สำหรับจัดกลุ่ม."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ชื่อฟิลด์ค่าตัวเลข."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "fix_dangling_arcs": {
            "name": "ซ่อมแซมอาร์กที่ห้อยลอย",
            "description": "แก้ไขเส้นห้อยที่ลากไม่ถึงและลากเกินในโครงข่ายเส้น โดยสแนปจุดปลายของเส้นภายในระยะทางค่าเกณฑ์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์เส้นหลายส่วนนำเข้า."
              },
              "snap": {
                "label": "สแนป",
                "description": "ค่าเกณฑ์ระยะสแนปในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "lines_to_polygons": {
            "name": "เส้นเป็นโพลิกอน",
            "description": "แปลงฟีเจอร์เส้นหลายส่วนเป็นฟีเจอร์โพลิกอน โดยถือส่วนแรกเป็นวงแหวนด้านนอกและส่วนถัดไปเป็นรู",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์เส้นหลายส่วนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "multipart_to_singlepart": {
            "name": "หลายส่วนเป็นส่วนเดียว",
            "description": "แปลงเวกเตอร์ที่มีฟีเจอร์หลายส่วนเป็นเวกเตอร์ที่มีเฉพาะฟีเจอร์ส่วนเดียว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า (เส้นหลายส่วน โพลิกอน หรือหลายจุด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. ค่าเริ่มต้นคือไฟล์ GeoJSON ที่ระบุเวลาไว้ข้างไฟล์นำเข้า."
              },
              "exclude_holes": {
                "label": "ไม่รวมรู",
                "description": "เมื่อเป็นจริง รูของโพลิกอนจะยังคงติดอยู่กับวงรอบนอกที่ล้อมรอบไว้ (ค่าเริ่มต้น: false)."
              }
            }
          },
          "polygons_to_lines": {
            "name": "โพลิกอนเป็นเส้น",
            "description": "แปลงฟีเจอร์โพลิกอนและมัลติโพลิกอนเป็นเส้นที่ลากตามขอบเขต",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "remove_polygon_holes": {
            "name": "ลบรูในโพลิกอน",
            "description": "ลบวงแหวนด้านในออกจากฟีเจอร์โพลิกอนพร้อมคงแอตทริบิวต์ไว้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "singlepart_to_multipart": {
            "name": "ส่วนเดียวเป็นหลายส่วน",
            "description": "ผสานฟีเจอร์ส่วนเดียวเป็นฟีเจอร์หลายส่วน โดยจัดกลุ่มตามฟิลด์หมวดหมู่ (ถ้าเลือก)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. ค่าเริ่มต้นคือไฟล์ GeoJSON ที่ระบุเวลาไว้ข้างไฟล์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์แอตทริบิวต์เป็นตัวเลือกสำหรับใช้จัดกลุ่มฟีเจอร์. หากไม่ระบุ ฟีเจอร์ทั้งหมดจะถูกรวมเป็นเรขาคณิตเดียว."
              }
            }
          },
          "topology_rule_autofix": {
            "name": "แก้ไขกฎทอพอโลยีอัตโนมัติ",
            "description": "ใช้การแก้ไขที่ปลอดภัยและตรวจสอบได้กับการละเมิดทอพอโลยีที่ตรวจพบโดย topology_rule_validate โดยอัตโนมัติ: การสแนปจุดปลายข้ามฟีเจอร์ การสแนป/ฉายจุดปลายที่ห้อยอยู่ และการฉายจุดไปยังเส้น polygon_must_not_have_gaps ไม่มีการแก้ไขอัตโนมัติและถูกรายงานเป็นศูนย์การเปลี่ยนแปลง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "rule_set": {
                "label": "ชุดกฎ",
                "description": "การกำหนดค่ากฎในรูปแบบอาร์เรย์/อ็อบเจกต์ JSON สตริง CSV หรือพาธไฟล์. กฎที่มีการแก้ไขอัตโนมัติ: line_endpoints_must_snap_within_tolerance, line_must_not_have_dangles, point_must_be_covered_by_line. ระบบยอมรับ polygon_must_not_have_gaps แต่จะไม่ทำให้เกิดการเปลี่ยนแปลงใด ๆ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อสำหรับการดำเนินการสแนปในหน่วยพิกัด. ค่าเริ่มต้นคือ 0.01."
              },
              "dry_run": {
                "label": "ทดลองรัน",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแสดงตัวอย่างเท่านั้น: ระบบจะออกรายงานการเปลี่ยนแปลงแต่จะไม่เขียนผลลัพธ์. ส่งค่า false เพื่อใช้การแก้ไขจริง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์สำหรับฟีเจอร์ที่แก้ไขแล้ว. หากไม่ระบุ จะสร้างขึ้นข้างไฟล์นำเข้า."
              },
              "change_report": {
                "label": "รายงานการเปลี่ยนแปลง",
                "description": "พาธรายงานร่องรอยการตรวจสอบการเปลี่ยนแปลงแบบ JSON เป็นตัวเลือก."
              }
            }
          },
          "topology_rule_validate": {
            "name": "ตรวจสอบกฎทอพอโลยี",
            "description": "ตรวจสอบทอพอโลยีเวกเตอร์เทียบกับชุดกฎ (การตัดกันเอง การซ้อนทับ ช่องว่าง เส้นห้อย ความครอบคลุมของจุด การสแนปจุดปลาย) และส่งออกการละเมิดระดับฟีเจอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "rule_set": {
                "label": "ชุดกฎ",
                "description": "การกำหนดค่ากฎในรูปแบบอาร์เรย์/อ็อบเจกต์ JSON สตริง CSV หรือพาธไฟล์. ค่าเริ่มต้นคือกฎ MVP ทั้ง 6 ข้อ. ที่รองรับ: line_must_not_self_intersect, polygon_must_not_overlap, polygon_must_not_have_gaps, line_must_not_have_dangles, point_must_be_covered_by_line, line_endpoints_must_snap_within_tolerance."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ค่าเผื่อสำหรับกฎ line_endpoints_must_snap_within_tolerance ในหน่วยพิกัด. ค่าเริ่มต้นคือ 1.0."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์สำหรับการละเมิดกฎ. หากไม่ระบุ จะสร้างขึ้นข้างไฟล์นำเข้า."
              },
              "report": {
                "label": "รายงาน",
                "description": "พาธรายงานสรุปแบบ JSON เป็นตัวเลือก."
              }
            }
          },
          "topology_validation_report": {
            "name": "รายงานการตรวจสอบทอพอโลยี",
            "description": "ตรวจสอบเลเยอร์เวกเตอร์เพื่อหาปัญหาทอพอโลยี และเขียนรายงาน CSV รายฟีเจอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ CSV ผลลัพธ์."
              }
            }
          },
          "convert_nodata_to_zero": {
            "name": "แปลง NoData เป็นศูนย์",
            "description": "แทนที่เซลล์ nodata ของแรสเตอร์ด้วย 0 โดยไม่เปลี่ยนแปลงเซลล์ที่ถูกต้อง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "modify_nodata_value": {
            "name": "แก้ไขค่า NoData",
            "description": "เปลี่ยนค่า nodata ของแรสเตอร์และเขียนเซลล์ nodata ที่มีอยู่ใหม่เป็นค่าใหม่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "new_value": {
                "label": "ค่าใหม่",
                "description": "ค่า NoData ใหม่. ค่าเริ่มต้นคือ -32768.0."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "new_raster_from_base_raster": {
            "name": "แรสเตอร์ใหม่จากแรสเตอร์ฐาน",
            "description": "สร้างแรสเตอร์ใหม่โดยใช้ขอบเขต ขนาด และ CRS ของแรสเตอร์ฐาน",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "พาธแรสเตอร์ฐาน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              },
              "out_val": {
                "label": "ค่าผลลัพธ์",
                "description": "ค่าเติมเป็นตัวเลือก. ค่าเริ่มต้นคือค่า NoData ของแรสเตอร์."
              },
              "data_type": {
                "label": "ชนิดข้อมูล",
                "description": "ชนิดข้อมูลเป็นตัวเลือก: 'float', 'double' หรือ 'integer'."
              }
            }
          },
          "new_raster_from_base_vector": {
            "name": "แรสเตอร์ใหม่จากเวกเตอร์ฐาน",
            "description": "สร้างแรสเตอร์ใหม่จากขอบเขตของเวกเตอร์ฐานและขนาดเซลล์ โดยเติมด้วยค่า (ถ้าเลือก)",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "พาธเวกเตอร์ฐาน."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์กริดผลลัพธ์ (> 0)."
              },
              "out_val": {
                "label": "ค่าผลลัพธ์",
                "description": "ค่าเติมเป็นตัวเลือก. ค่าเริ่มต้นคือ NoData (-32768)."
              },
              "data_type": {
                "label": "ชนิดข้อมูล",
                "description": "คำสำคัญชนิดข้อมูลผลลัพธ์เป็นตัวเลือก: integer, float หรือ double."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "raster_to_vector_lines": {
            "name": "แรสเตอร์เป็นเส้นเวกเตอร์",
            "description": "แปลงเซลล์เส้นแรสเตอร์ที่ไม่เป็นศูนย์และไม่ใช่ nodata เป็นฟีเจอร์เวกเตอร์เส้นหลายส่วน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า (แบนด์เดียว)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "raster_to_vector_points": {
            "name": "แรสเตอร์เป็นจุดเวกเตอร์",
            "description": "แปลงเซลล์ที่ไม่เป็นศูนย์และไม่ใช่ nodata ในแรสเตอร์เป็นฟีเจอร์จุดที่ตั้งอยู่ที่จุดกึ่งกลางเซลล์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "raster_to_vector_polygons": {
            "name": "แรสเตอร์เป็นโพลิกอนเวกเตอร์",
            "description": "แปลงบริเวณแรสเตอร์ที่ไม่เป็นศูนย์และไม่ใช่ nodata เป็นฟีเจอร์เวกเตอร์โพลิกอนพร้อมแอตทริบิวต์ FID และ VALUE",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า (แบนด์เดียว)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์. หากไม่ระบุ จะสร้างพาธ GeoJSON ข้างไฟล์นำเข้า."
              }
            }
          },
          "remove_raster_polygon_holes": {
            "name": "ลบรูในโพลิกอนแรสเตอร์",
            "description": "ลบรูพื้นหลังด้านใน (บริเวณ 0 หรือ nodata ที่ถูกล้อมรอบด้วยพื้นหน้า) ออกจากโพลิกอนแรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า (แบนด์เดียว)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ขนาดรูสูงสุดเป็นจำนวนเซลล์ที่จะลบออก เป็นตัวเลือก. 0 หมายถึงรูที่ถูกล้อมรอบทั้งหมด."
              },
              "use_diagonals": {
                "label": "ใช้แนวทแยง",
                "description": "ใช้การเชื่อมต่อแบบ 8 เพื่อนบ้านสำหรับการจับกลุ่มและการเชื่อมต่อขอบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "set_nodata_value": {
            "name": "กำหนดค่า NoData",
            "description": "กำหนดค่า nodata ของแรสเตอร์และจับคู่เซลล์ nodata ที่มีอยู่กับค่าพื้นหลังที่กำหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "back_value": {
                "label": "ค่าพื้นหลัง",
                "description": "ค่าพื้นหลังที่จะกำหนดเป็น NoData. ค่าเริ่มต้นคือ 0.0."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ จะคืนค่าเป็นแรสเตอร์ในหน่วยความจำ."
              }
            }
          },
          "vector_lines_to_raster": {
            "name": "เส้นเวกเตอร์เป็นแรสเตอร์",
            "description": "แปลงเรขาคณิตเส้นและขอบเขตโพลิกอนเป็นกริดแรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า (เส้นหรือโพลิกอน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ตัวเลขเป็นตัวเลือกที่จะฝังค่า. ค่าเริ่มต้นคือ FID."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "เมื่อเป็นจริง จะกำหนดค่าเริ่มต้นพื้นหลังของผลลัพธ์เป็น 0 แทน NoData."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ 'base'. หากไม่ระบุและไม่มี base ขนาดเซลล์อัตโนมัติจะเท่ากับขอบเขตสูงสุด / 500."
              },
              "base": {
                "label": "ฐาน",
                "description": "พาธแรสเตอร์ฐานเป็นตัวเลือกที่กำหนดกริดและขอบเขตของผลลัพธ์."
              }
            }
          },
          "vector_points_to_raster": {
            "name": "จุดเวกเตอร์เป็นแรสเตอร์",
            "description": "แปลงเวกเตอร์จุดหรือมัลติพอยต์เป็นกริดโดยใช้การดำเนินการกำหนดค่าที่เลือก",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์นำเข้า (จุด/หลายจุด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะอยู่ในหน่วยความจำ."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขเป็นตัวเลือกที่ใช้เป็นค่าของแรสเตอร์. ค่าเริ่มต้นคือ FID."
              },
              "assign": {
                "label": "กำหนดค่า",
                "description": "การดำเนินการกำหนดค่า: last, first, min, max, sum, num, mean."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "เมื่อเป็นจริง จะกำหนดค่าเริ่มต้นพื้นหลังเป็น 0; มิฉะนั้นเป็น NoData."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์. จำเป็นเมื่อไม่ได้ระบุ 'base'."
              },
              "base": {
                "label": "ฐาน",
                "description": "พาธแรสเตอร์ฐานเป็นตัวเลือกสำหรับกำหนดขอบเขต/กริด."
              }
            }
          },
          "vector_polygons_to_raster": {
            "name": "โพลิกอนเวกเตอร์เป็นแรสเตอร์",
            "description": "แปลงเวกเตอร์โพลิกอนเป็นกริด รองรับค่าที่ฝังซึ่งขับเคลื่อนด้วยแอตทริบิวต์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธเวกเตอร์โพลิกอนนำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ตัวเลขเป็นตัวเลือกสำหรับค่าที่จะฝัง (ค่าเริ่มต้นคือ FID)."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "เมื่อเป็นจริง จะกำหนดค่าเริ่มต้นพื้นหลังของผลลัพธ์เป็น 0 แทน NoData."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ 'base'."
              },
              "base": {
                "label": "ฐาน",
                "description": "พาธแรสเตอร์ฐานเป็นตัวเลือกที่กำหนดกริดและขอบเขตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "local_morans_i_lisa_raster": {
            "name": "Moran's I เฉพาะที่ (LISA) แบบแรสเตอร์",
            "description": "คำนวณการวิเคราะห์กลุ่ม LISA จากจุดและส่งออกแรสเตอร์หมวดหมู่ (HH/LL/HL/LH/NS) ทำให้ผสานข้อมูลแบบแรสเตอร์ได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าที่มีจุดสังเกต."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์แบบตัวเลขที่จะวิเคราะห์."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ข้างเคียง: queen, rook, k_nearest, distance_band."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับโหมด k_nearest (ค่าเริ่มต้น 8)."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทางสำหรับโหมด distance_band."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ใช้การทำมาตรฐานรายแถวกับน้ำหนัก (ค่าเริ่มต้น true)."
              },
              "island_policy": {
                "label": "นโยบายเกาะ",
                "description": "การจัดการหน่วยที่ไม่มีเพื่อนบ้าน: drop_with_warning, keep_zero_weight, error."
              },
              "alpha": {
                "label": "Alpha",
                "description": "ค่าเกณฑ์นัยสำคัญในช่วง [0, 1]; ค่าเริ่มต้น 0.05."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์แรสเตอร์ผลลัพธ์ (เป็นตัวเลือก; คำนวณอัตโนมัติจากขอบเขต)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ (การจำแนก: 0=NS, 1=HH, 2=LL, 3=HL, 4=LH)."
              }
            }
          },
          "getis_ord_gi_star_raster": {
            "name": "Getis-Ord Gi* แบบแรสเตอร์",
            "description": "คำนวณการจำแนกจุดร้อน/จุดเย็น Gi* จากจุดและส่งออกแรสเตอร์ (-1=เย็น 0=NS 1=ร้อน) สำหรับการวิเคราะห์ที่อิงจุดร้อน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าที่มีจุดสังเกต."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์แบบตัวเลขที่จะวิเคราะห์."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ข้างเคียง: queen, rook, k_nearest, distance_band."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับโหมด k_nearest (ค่าเริ่มต้น 8)."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทางสำหรับโหมด distance_band."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ใช้การทำมาตรฐานรายแถวกับน้ำหนัก (ค่าเริ่มต้น true)."
              },
              "island_policy": {
                "label": "นโยบายเกาะ",
                "description": "การจัดการหน่วยที่ไม่มีเพื่อนบ้าน: drop_with_warning, keep_zero_weight, error."
              },
              "alpha": {
                "label": "Alpha",
                "description": "ค่าเกณฑ์นัยสำคัญในช่วง [0, 1]; ค่าเริ่มต้น 0.05."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์แรสเตอร์ผลลัพธ์ (เป็นตัวเลือก; คำนวณอัตโนมัติจากขอบเขต)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ (การจำแนก: -1=Cold, 0=NS, 1=Hot)."
              }
            }
          },
          "ordinary_kriging": {
            "name": "คริกกิงสามัญ",
            "description": "ทำการประมาณค่าในช่วงแบบ ordinary kriging เพื่อประมาณค่าที่เซลล์กริดที่ไม่มีข้อมูลตามตัวอย่างค่าการวัดแบบจุด Ordinary kriging เป็นวิธีทางธรณีสถิติที่ใช้โครงสร้างสหสัมพันธ์เชิงพื้นที่เพื่อให้ทั้งค่าทำนายและความแปรปรวนของ kriging ที่เกี่ยวข้อง (ความไม่แน่นอนของการทำนาย) เครื่องมือประมาณวาริโอแกรมเชิงประจักษ์จากข้อมูลจุดนำเข้าโดยอัตโนมัติ และปรับแบบจำลองวาริโอแกรมเชิงทฤษฎี (Spherical, Exponential หรือ Gaussian) เพื่อจับการพึ่งพาเชิงพื้นที่",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขที่มีค่าสำหรับการประมาณค่า."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยแผนที่ (จำเป็นหากไม่มี base_raster)."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "local_kriging": {
            "name": "คริกกิงเฉพาะที่",
            "description": "ทำการประมาณค่าในช่วงแบบ ordinary kriging เฉพาะที่โดยใช้ k-nearest neighbors ให้การประมาณเชิงพื้นที่ที่มีประสิทธิภาพสำหรับชุดข้อมูลขนาดใหญ่ แนวทางนี้ใช้งานได้จริงเชิงคำนวณมากกว่า ordinary kriging แบบรวมสำหรับชุดข้อมูลที่มีจุดหลายพันจุด",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขที่มีค่าสำหรับการประมาณค่า."
              },
              "k_neighbors": {
                "label": "จำนวนเพื่อนบ้าน K",
                "description": "จำนวนเพื่อนบ้านใกล้สุดที่จะใช้; ค่าเริ่มต้นคือ 10."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยแผนที่ (จำเป็นหากไม่มี base_raster)."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "simple_kriging": {
            "name": "คริกกิงอย่างง่าย",
            "description": "ทำการประมาณค่าในช่วงแบบ simple kriging เมื่อทราบค่าเฉลี่ยของสนามเชิงพื้นที่ล่วงหน้า วิธีนี้ลดความแปรปรวนของ kriging และให้การทำนายที่เสถียรกว่าเมื่อทราบค่าเฉลี่ยอย่างน่าเชื่อถือจากข้อมูลภายนอก",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขที่มีค่าสำหรับการประมาณค่า."
              },
              "known_mean": {
                "label": "ค่าเฉลี่ยที่ทราบ",
                "description": "ค่าเฉลี่ยที่ทราบของสนามเชิงพื้นที่."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยแผนที่ (จำเป็นหากไม่มี base_raster)."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "universal_kriging": {
            "name": "คริกกิงสากล",
            "description": "ทำการประมาณค่าในช่วงแบบ universal kriging เมื่อปรากฏการณ์เชิงพื้นที่มีแนวโน้มหรือการเลื่อนอย่างเป็นระบบ รวม kriging เข้ากับการประมาณพื้นผิวแนวโน้มแบบพหุนาม",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขที่มีค่าสำหรับการประมาณค่า."
              },
              "trend_order": {
                "label": "อันดับแนวโน้ม",
                "description": "ลำดับแนวโน้มพหุนาม (1=เชิงเส้น, 2=กำลังสอง); ค่าเริ่มต้นคือ 1."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยแผนที่ (จำเป็นหากไม่มี base_raster)."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "spacetime_kriging": {
            "name": "คริกกิงเชิงพื้นที่-เวลา",
            "description": "ทำการประมาณค่าในช่วงแบบ space-time kriging เพื่อสร้างแบบจำลองความแปรผันเชิงพื้นที่และเวลาร่วมกันในค่าการวัดแบบจุด เหมาะสำหรับข้อมูลอนุกรมเวลาที่กระจายเชิงพื้นที่",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขที่มีค่าสำหรับการประมาณค่า."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์แอตทริบิวต์เชิงเวลาที่มีค่าเวลา."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยแผนที่ (จำเป็นหากไม่มี base_raster)."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "spatial_lag_regression_raster": {
            "name": "การถดถอยแบบ Spatial Lag แบบแรสเตอร์",
            "description": "ประมาณแบบจำลอง SAR และส่งออกพื้นผิวค่าที่ปรับแล้ว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "response_field": {
                "label": "ฟิลด์ตัวแปรตอบสนอง",
                "description": "ตัวแปรตอบสนอง."
              },
              "predictor_fields": {
                "label": "ฟิลด์ตัวแปรทำนาย",
                "description": "ฟิลด์ตัวทำนาย."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ใกล้เคียง."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับ k_nearest."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทาง."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ทำมาตรฐานน้ำหนักรายแถว."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์แรสเตอร์ผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์."
              }
            }
          },
          "spatial_error_regression_raster": {
            "name": "การถดถอยแบบ Spatial Error แบบแรสเตอร์",
            "description": "ประมาณแบบจำลอง SEM และส่งออกพื้นผิวค่าที่ปรับแล้ว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "response_field": {
                "label": "ฟิลด์ตัวแปรตอบสนอง",
                "description": "ตัวแปรตอบสนอง."
              },
              "predictor_fields": {
                "label": "ฟิลด์ตัวแปรทำนาย",
                "description": "ฟิลด์ตัวทำนาย."
              },
              "weights_mode": {
                "label": "โหมดน้ำหนัก",
                "description": "โหมดพื้นที่ใกล้เคียง."
              },
              "k": {
                "label": "K",
                "description": "ค่า k สำหรับ k_nearest."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ค่าเกณฑ์ระยะทาง."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ทำมาตรฐานน้ำหนักรายแถว."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์แรสเตอร์ผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์."
              }
            }
          },
          "geographically_weighted_regression_raster": {
            "name": "การถดถอยถ่วงน้ำหนักเชิงภูมิศาสตร์แบบแรสเตอร์",
            "description": "ประมาณ GWR และส่งออกพื้นผิวแรสเตอร์สัมประสิทธิ์เฉพาะที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "response_field": {
                "label": "ฟิลด์ตัวแปรตอบสนอง",
                "description": "ตัวแปรตอบสนอง."
              },
              "predictor_fields": {
                "label": "ฟิลด์ตัวแปรทำนาย",
                "description": "ฟิลด์ตัวทำนาย."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์ของเคอร์เนล."
              },
              "kernel": {
                "label": "เคอร์เนล",
                "description": "ชนิดของเคอร์เนล."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์แรสเตอร์ผลลัพธ์."
              },
              "output_prefix": {
                "label": "คำนำหน้าผลลัพธ์",
                "description": "คำนำหน้าแรสเตอร์ผลลัพธ์."
              }
            }
          },
          "inhomogeneous_intensity_raster": {
            "name": "ความเข้มไม่เป็นเอกพันธ์แบบแรสเตอร์",
            "description": "คำนวณพื้นผิวการประมาณความหนาแน่นเคอร์เนล (KDE) เพื่อแสดงความเข้มของจุดเชิงพื้นที่ เผยให้เห็นจุดร้อนและจุดเย็นได้มากกว่าความหนาแน่นอย่างง่าย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์ของเคอร์เนล."
              },
              "kernel": {
                "label": "เคอร์เนล",
                "description": "ชนิดของเคอร์เนล."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์แรสเตอร์ผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ความเข้มผลลัพธ์."
              }
            }
          },
          "add": {
            "name": "บวก",
            "description": "บวกแรสเตอร์สองชุดแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "average_overlay": {
            "name": "ซ้อนทับแบบค่าเฉลี่ย",
            "description": "คำนวณค่าเฉลี่ยรายเซลล์ข้ามสแตกแรสเตอร์ โดยละเว้น NoData เว้นแต่ข้อมูลนำเข้าทั้งหมดเป็น NoData",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "bool_and": {
            "name": "บูลีน AND",
            "description": "คำนวณ AND เชิงตรรกะของแรสเตอร์สองชุดแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "bool_not": {
            "name": "บูลีน NOT",
            "description": "คำนวณ NOT เชิงตรรกะของแต่ละเซลล์แรสเตอร์ โดยส่งออก 1 สำหรับเซลล์ที่มีค่าศูนย์และ 0 สำหรับกรณีอื่น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "bool_or": {
            "name": "บูลีน OR",
            "description": "คำนวณ OR เชิงตรรกะของแรสเตอร์สองชุดแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "bool_xor": {
            "name": "บูลีน XOR",
            "description": "คำนวณ XOR เชิงตรรกะของแรสเตอร์สองชุดแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "count_if": {
            "name": "นับเมื่อตรงเงื่อนไข",
            "description": "นับจำนวนแรสเตอร์นำเข้าที่เซลล์มีค่าเท่ากับค่าเปรียบเทียบ",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "comparison_value": {
                "label": "ค่าเปรียบเทียบ",
                "description": "ค่าที่ใช้เปรียบเทียบเพื่อนับภายในสแต็กแรสเตอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "divide": {
            "name": "หาร",
            "description": "หารแรสเตอร์ชุดแรกด้วยชุดที่สองแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "highest_position": {
            "name": "ตำแหน่งค่าสูงสุด",
            "description": "ส่งคืนดัชนีของสแตกแรสเตอร์ (เริ่มจากศูนย์) ที่มีค่าสูงสุดในแต่ละเซลล์",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "lowest_position": {
            "name": "ตำแหน่งค่าต่ำสุด",
            "description": "ส่งคืนดัชนีของสแตกแรสเตอร์ (เริ่มจากศูนย์) ที่มีค่าต่ำสุดในแต่ละเซลล์",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "max_absolute_overlay": {
            "name": "ซ้อนทับแบบค่าสัมบูรณ์สูงสุด",
            "description": "คำนวณค่าสัมบูรณ์สูงสุดรายเซลล์ข้ามสแตกแรสเตอร์ โดยส่งต่อ NoData หากเซลล์นำเข้าใดเป็น NoData",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "max_overlay": {
            "name": "ซ้อนทับแบบค่าสูงสุด",
            "description": "คำนวณค่าสูงสุดรายเซลล์ข้ามสแตกแรสเตอร์ โดยส่งต่อ NoData หากเซลล์นำเข้าใดเป็น NoData",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "min_absolute_overlay": {
            "name": "ซ้อนทับแบบค่าสัมบูรณ์ต่ำสุด",
            "description": "คำนวณค่าสัมบูรณ์ต่ำสุดรายเซลล์ข้ามสแตกแรสเตอร์ โดยส่งต่อ NoData หากเซลล์นำเข้าใดเป็น NoData",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "min_overlay": {
            "name": "ซ้อนทับแบบค่าต่ำสุด",
            "description": "คำนวณค่าต่ำสุดรายเซลล์ข้ามสแตกแรสเตอร์ โดยส่งต่อ NoData หากเซลล์นำเข้าใดเป็น NoData",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "modulo": {
            "name": "มอดุโล",
            "description": "คำนวณเศษเหลือจากการหารแรสเตอร์ชุดแรกด้วยชุดที่สองแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "multiply": {
            "name": "คูณ",
            "description": "คูณแรสเตอร์สองชุดแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "multiply_overlay": {
            "name": "ซ้อนทับแบบคูณ",
            "description": "คำนวณผลคูณรายเซลล์ข้ามสแตกแรสเตอร์ โดยส่งต่อ NoData หากเซลล์นำเข้าใดเป็น NoData",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "percent_equal_to": {
            "name": "ร้อยละที่เท่ากับ",
            "description": "คำนวณสัดส่วนของแรสเตอร์ในสแตกที่มีค่าเท่ากับแรสเตอร์เปรียบเทียบในแต่ละเซลล์",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "comparison": {
                "label": "การเปรียบเทียบ",
                "description": "พาธแรสเตอร์ที่ใช้เปรียบเทียบหรือแฮนเดิลแรสเตอร์ในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "percent_greater_than": {
            "name": "ร้อยละที่มากกว่า",
            "description": "คำนวณสัดส่วนของแรสเตอร์ในสแตกที่มีค่ามากกว่าแรสเตอร์เปรียบเทียบในแต่ละเซลล์",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "comparison": {
                "label": "การเปรียบเทียบ",
                "description": "พาธแรสเตอร์ที่ใช้เปรียบเทียบหรือแฮนเดิลแรสเตอร์ในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "percent_less_than": {
            "name": "ร้อยละที่น้อยกว่า",
            "description": "คำนวณสัดส่วนของแรสเตอร์ในสแตกที่มีค่าน้อยกว่าแรสเตอร์เปรียบเทียบในแต่ละเซลล์",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "comparison": {
                "label": "การเปรียบเทียบ",
                "description": "พาธแรสเตอร์ที่ใช้เปรียบเทียบหรือแฮนเดิลแรสเตอร์ในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "pick_from_list": {
            "name": "เลือกจากรายการ",
            "description": "เลือกค่ารายเซลล์จากสแตกแรสเตอร์โดยใช้แรสเตอร์ตำแหน่ง (เริ่มจากศูนย์)",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "pos_input": {
                "label": "ข้อมูลนำเข้าตำแหน่ง",
                "description": "แรสเตอร์ตำแหน่งในสแต็กที่เริ่มนับจากศูนย์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "power": {
            "name": "ยกกำลัง",
            "description": "ยกกำลังแรสเตอร์ชุดแรกด้วยชุดที่สองแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "standard_deviation_overlay": {
            "name": "ซ้อนทับแบบส่วนเบี่ยงเบนมาตรฐาน",
            "description": "คำนวณส่วนเบี่ยงเบนมาตรฐานรายเซลล์ข้ามสแตกแรสเตอร์ โดยส่งต่อ NoData หากเซลล์นำเข้าใดเป็น NoData",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "subtract": {
            "name": "ลบ",
            "description": "ลบแรสเตอร์ชุดที่สองออกจากชุดแรกแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "sum_overlay": {
            "name": "ซ้อนทับแบบผลรวม",
            "description": "คำนวณผลรวมรายเซลล์ข้ามสแตกแรสเตอร์ โดยส่งต่อ NoData หากเซลล์นำเข้าใดเป็น NoData",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้าในรูปแบบอาร์เรย์ของพาธหรือสตริงที่คั่นด้วยเซมิโคลอน/จุลภาค."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "update_nodata_cells": {
            "name": "อัปเดตเซลล์ NoData",
            "description": "กำหนดค่าให้เซลล์ NoData ใน input1 จากเซลล์ที่ถูกต้องที่สอดคล้องกันใน input2",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์หลักที่จะอัปเดต."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์รองที่ให้ค่าสำหรับแทนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "weighted_overlay": {
            "name": "ซ้อนทับแบบถ่วงน้ำหนัก",
            "description": "รวมแรสเตอร์ปัจจัยโดยใช้น้ำหนักที่ปรับมาตรฐาน แฟล็กต้นทุน (ถ้าเลือก) และข้อจำกัดแบบไบนารี (ถ้าเลือก)",
            "params": {
              "factors": {
                "label": "ปัจจัย",
                "description": "สแต็กแรสเตอร์ปัจจัยนำเข้า."
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "น้ำหนักตัวเลขที่สอดคล้องกับแรสเตอร์ปัจจัยแต่ละตัว."
              },
              "cost": {
                "label": "ต้นทุน",
                "description": "แฟล็กบูลีนเป็นตัวเลือกที่ระบุปัจจัยต้นทุน."
              },
              "constraints": {
                "label": "ข้อจำกัด",
                "description": "สแต็กแรสเตอร์ข้อจำกัดเป็นตัวเลือก; ค่าที่ <= 0 จะบังคับให้ผลลัพธ์เป็นศูนย์."
              },
              "scale_max": {
                "label": "ค่าสเกลสูงสุด",
                "description": "ค่าสเกลสูงสุดที่ใช้หลังจากการปรับมาตรฐานปัจจัย."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "weighted_sum": {
            "name": "ผลรวมถ่วงน้ำหนัก",
            "description": "คำนวณผลรวมถ่วงน้ำหนักข้ามสแตกแรสเตอร์หลังจากปรับมาตรฐานน้ำหนักให้รวมกันเป็นหนึ่ง",
            "params": {
              "input_rasters": {
                "label": "แรสเตอร์นำเข้า",
                "description": "สแต็กแรสเตอร์นำเข้า."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "น้ำหนักตัวเลขที่สอดคล้องกับแรสเตอร์นำเข้าแต่ละตัว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "image_correlation_neighbourhood_analysis": {
            "name": "การวิเคราะห์สหสัมพันธ์ภาพตามบริเวณใกล้เคียง",
            "description": "ทำการวิเคราะห์สหสัมพันธ์ในหน้าต่างเคลื่อนที่ระหว่างแรสเตอร์สองชุด และส่งคืนแรสเตอร์สหสัมพันธ์และค่า p",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์นำเข้าตัวแรก."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้าตัวที่สอง."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดหน้าต่างเคลื่อนที่เป็นจำนวนเซลล์ (ต่ำสุด 3, ค่าเริ่มต้น 11)."
              },
              "correlation_stat": {
                "label": "สถิติสหสัมพันธ์",
                "description": "หน่วยวัดสหสัมพันธ์: pearson, spearman หรือ kendall (ค่าเริ่มต้น pearson)."
              },
              "output1": {
                "label": "ผลลัพธ์ 1",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์สหสัมพันธ์."
              },
              "output2": {
                "label": "ผลลัพธ์ 2",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์นัยสำคัญ (ค่า p)."
              }
            }
          },
          "natural_neighbour_interpolation": {
            "name": "การประมาณค่าแบบ Natural Neighbour",
            "description": "ประมาณค่าในช่วงแรสเตอร์จากจุดตัวอย่างโดยใช้การถ่วงน้ำหนักพื้นที่แบบเพื่อนบ้านธรรมชาติของ Sibson แท้",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขเป็นตัวเลือก; ค่าเริ่มต้นจะย้อนกลับไปใช้ FID."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "ใช้ค่า Z จากเรขาคณิตของจุดแทนแอตทริบิวต์."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "clip_to_hull": {
                "label": "ตัดตามฮัลล์",
                "description": "จำกัดการประมาณค่าให้อยู่ภายในคอนเวกซ์ฮัลล์ของจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "nearest_neighbour_interpolation": {
            "name": "การประมาณค่าแบบเพื่อนบ้านใกล้ที่สุด",
            "description": "ประมาณค่าในช่วงแรสเตอร์จากจุดตัวอย่างโดยกำหนดค่าตัวอย่างที่ใกล้ที่สุดให้กับแต่ละเซลล์",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขเป็นตัวเลือก; ค่าเริ่มต้นจะย้อนกลับไปใช้ FID."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "ใช้ค่า Z จากเรขาคณิตของจุดแทนแอตทริบิวต์."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางค้นหาสูงสุดในหน่วยแผนที่เป็นตัวเลือก; ค่าเริ่มต้นคืออนันต์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "conditional_evaluation": {
            "name": "การประเมินตามเงื่อนไข",
            "description": "ทำการประเมินเงื่อนไขแบบ if-then-else บนเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "statement": {
                "label": "คำสั่ง",
                "description": "นิพจน์เงื่อนไขที่ประเมินผลในแต่ละเซลล์."
              },
              "true": {
                "label": "จริง",
                "description": "ค่าหรือแรสเตอร์/นิพจน์ที่ใช้เมื่อเงื่อนไขเป็นจริง."
              },
              "false": {
                "label": "เท็จ",
                "description": "ค่าหรือแรสเตอร์/นิพจน์ที่ใช้เมื่อเงื่อนไขเป็นเท็จ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "reclass": {
            "name": "จำแนกใหม่",
            "description": "จำแนกค่าแรสเตอร์ใหม่โดยใช้ช่วงค่าหรือคู่การกำหนดค่าแบบตรงตัว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "reclass_values": {
                "label": "ค่าจำแนกใหม่",
                "description": "ค่าการจำแนกใหม่ในรูปแบบแถวของ [new, from, to_less_than] หรือ [new, old] เมื่อ assign_mode=true."
              },
              "assign_mode": {
                "label": "โหมดการกำหนดค่า",
                "description": "หากเป็นจริง จะใช้โหมดกำหนดค่าแบบตรงตัวด้วยคู่ [new_value, old_value]."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "reclass_equal_interval": {
            "name": "จำแนกใหม่แบบช่วงเท่ากัน",
            "description": "จำแนกค่าแรสเตอร์ใหม่เป็นช่วงที่มีความกว้างเท่ากันตามช่วงค่า (ถ้าเลือก)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "interval_size": {
                "label": "ขนาดช่วง",
                "description": "ความกว้างของช่วงชั้นแบบเท่ากัน."
              },
              "start_value": {
                "label": "ค่าเริ่มต้น",
                "description": "ขอบเขตล่างเป็นตัวเลือกสำหรับการจำแนกใหม่; ค่าเริ่มต้นคือค่าต่ำสุดของแรสเตอร์."
              },
              "end_value": {
                "label": "ค่าสิ้นสุด",
                "description": "ขอบเขตบนเป็นตัวเลือกสำหรับการจำแนกใหม่; ค่าเริ่มต้นคือค่าสูงสุดของแรสเตอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "buffer_raster": {
            "name": "บัฟเฟอร์แรสเตอร์",
            "description": "สร้างโซนบัฟเฟอร์แบบไบนารีรอบเซลล์แรสเตอร์ที่ไม่เป็นศูนย์และไม่ใช่ NoData ภายในระยะทางที่กำหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าที่เซลล์ซึ่งไม่เป็นศูนย์คือเป้าหมายของบัฟเฟอร์."
              },
              "buffer_size": {
                "label": "ขนาดบัฟเฟอร์",
                "description": "ค่าเกณฑ์ระยะทางบัฟเฟอร์."
              },
              "grid_cell_units": {
                "label": "หน่วยเซลล์กริด",
                "description": "หากเป็นจริง จะตีความ buffer_size ในหน่วยเซลล์กริดแทนหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "cost_allocation": {
            "name": "การจัดสรรตามต้นทุน",
            "description": "กำหนดแต่ละเซลล์ให้กับบริเวณต้นทางโดยใช้แรสเตอร์ backlink จากการวิเคราะห์ระยะทางต้นทุน",
            "params": {
              "source": {
                "label": "ต้นทาง",
                "description": "แรสเตอร์ต้นทางที่มีเซลล์ต้นทางเป็นค่าบวก."
              },
              "backlink": {
                "label": "ลิงก์ย้อนกลับ",
                "description": "แรสเตอร์ลิงก์ย้อนกลับจาก cost_distance."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "cost_distance": {
            "name": "ระยะทางตามต้นทุน",
            "description": "คำนวณแรสเตอร์ต้นทุนการเดินทางสะสมและแรสเตอร์ backlink จากพื้นผิวต้นทางและพื้นผิวต้นทุน",
            "params": {
              "source": {
                "label": "ต้นทาง",
                "description": "แรสเตอร์ต้นทางที่มีเซลล์ต้นทางเป็นค่าบวก."
              },
              "cost": {
                "label": "ต้นทุน",
                "description": "แรสเตอร์ต้นทุน/ความเสียดทาน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ต้นทุนสะสมเป็นตัวเลือก."
              },
              "backlink_output": {
                "label": "ผลลัพธ์ลิงก์ย้อนกลับ",
                "description": "พาธแรสเตอร์ผลลัพธ์ลิงก์ย้อนกลับเป็นตัวเลือก."
              }
            }
          },
          "cost_pathway": {
            "name": "เส้นทางตามต้นทุน",
            "description": "ลากเส้นทางต้นทุนต่ำสุดจากเซลล์ปลายทางโดยใช้แรสเตอร์ backlink",
            "params": {
              "destination": {
                "label": "ปลายทาง",
                "description": "แรสเตอร์ปลายทางที่มีเซลล์ปลายทางเป็นค่าบวก."
              },
              "backlink": {
                "label": "ลิงก์ย้อนกลับ",
                "description": "แรสเตอร์ลิงก์ย้อนกลับจาก cost_distance."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง พื้นหลังของผลลัพธ์จะเป็นศูนย์แทน NoData."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "euclidean_allocation": {
            "name": "การจัดสรรแบบยูคลิด",
            "description": "กำหนดค่าของเซลล์เป้าหมายที่ไม่เป็นศูนย์ที่ใกล้ที่สุดให้กับแต่ละเซลล์ที่ถูกต้อง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าที่มีเซลล์เป้าหมายซึ่งไม่เป็นศูนย์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "euclidean_distance": {
            "name": "ระยะทางแบบยูคลิด",
            "description": "คำนวณระยะทาง Euclidean ไปยังเซลล์เป้าหมายที่ไม่เป็นศูนย์ที่ใกล้ที่สุดในแรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าที่มีเซลล์เป้าหมายซึ่งไม่เป็นศูนย์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "abs": {
            "name": "ค่าสัมบูรณ์",
            "description": "คำนวณค่าสัมบูรณ์ของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "aggregate_raster": {
            "name": "รวมกลุ่มแรสเตอร์",
            "description": "ลดความละเอียดของแรสเตอร์โดยรวมบล็อกด้วยค่าเฉลี่ย ผลรวม ค่าต่ำสุด ค่าสูงสุด หรือพิสัย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "aggregation_factor": {
                "label": "ตัวประกอบการรวมกลุ่ม",
                "description": "ขนาดบล็อกเป็นจำนวนเซลล์ต้นทาง."
              },
              "aggregation_type": {
                "label": "ชนิดการรวมกลุ่ม",
                "description": "หนึ่งใน mean, sum, maximum, minimum หรือ range."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "anova": {
            "name": "ANOVA",
            "description": "ทำการวิเคราะห์ ANOVA ทางเดียวบนค่าแรสเตอร์ที่จัดกลุ่มตามหมวดหมู่ของแรสเตอร์คลาส",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ค่าที่วัดได้."
              },
              "features": {
                "label": "ฟีเจอร์",
                "description": "พาธแรสเตอร์คลาส/หมวดหมู่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "arccos": {
            "name": "Arccos",
            "description": "คำนวณโคไซน์ผกผัน (arccos) ของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "arcosh": {
            "name": "Arcosh",
            "description": "คำนวณโคไซน์ไฮเปอร์โบลิกผกผันของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "arcsin": {
            "name": "Arcsin",
            "description": "คำนวณไซน์ผกผัน (arcsin) ของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "arctan": {
            "name": "Arctan",
            "description": "คำนวณแทนเจนต์ผกผัน (arctan) ของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "arsinh": {
            "name": "Arsinh",
            "description": "คำนวณไซน์ไฮเปอร์โบลิกผกผันของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "artanh": {
            "name": "Artanh",
            "description": "คำนวณแทนเจนต์ไฮเปอร์โบลิกผกผันของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "atan2": {
            "name": "Atan2",
            "description": "คำนวณแทนเจนต์ผกผันแบบสี่จตุภาคโดยใช้แรสเตอร์สองชุดแบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "block_maximum": {
            "name": "ค่าสูงสุดรายบล็อก",
            "description": "แปลงฟีเจอร์จุดเป็นแรสเตอร์โดยกำหนดค่าสูงสุดที่พบภายในแต่ละเซลล์ผลลัพธ์",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขเป็นตัวเลือกที่จะแปลงเป็นแรสเตอร์; ค่าเริ่มต้นจะย้อนกลับไปใช้ FID."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "ใช้ค่า Z จากเรขาคณิตของจุดแทนแอตทริบิวต์."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "block_minimum": {
            "name": "ค่าต่ำสุดรายบล็อก",
            "description": "แปลงฟีเจอร์จุดเป็นแรสเตอร์โดยกำหนดค่าต่ำสุดที่พบภายในแต่ละเซลล์ผลลัพธ์",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขเป็นตัวเลือกที่จะแปลงเป็นแรสเตอร์; ค่าเริ่มต้นจะย้อนกลับไปใช้ FID."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "ใช้ค่า Z จากเรขาคณิตของจุดแทนแอตทริบิวต์."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "boundary_shape_complexity": {
            "name": "ความซับซ้อนรูปร่างของขอบเขต",
            "description": "คำนวณความซับซ้อนของรูปร่างขอบเขตหย่อมแรสเตอร์โดยใช้ตัวชี้วัดกิ่งของโครงร่างที่ทำให้เส้นบางลง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์รหัสหย่อมนำเข้าที่มีรหัสเป็นจำนวนเต็มบวก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "ceil": {
            "name": "ปัดขึ้น",
            "description": "ปัดค่าแต่ละเซลล์แรสเตอร์ขึ้นเป็นจำนวนเต็มที่ใกล้ที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "centroid_raster": {
            "name": "เซนทรอยด์แรสเตอร์",
            "description": "คำนวณเซลล์เซนทรอยด์สำหรับรหัสหย่อมที่มีค่าบวกแต่ละรหัสในแรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หย่อมนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "clip_raster_to_polygon": {
            "name": "ตัดแรสเตอร์ด้วยโพลิกอน",
            "description": "ตัดแรสเตอร์ตามขอบเขตโพลิกอน เซลล์ที่อยู่นอกโพลิกอนถูกกำหนดเป็น NoData",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "polygons": {
                "label": "โพลิกอน",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "maintain_dimensions": {
                "label": "คงขนาดมิติ",
                "description": "คงขนาดเดิมของแรสเตอร์ไว้แทนการตัดให้เท่ากับขอบเขตของโพลิกอน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "clump": {
            "name": "รวมกลุ่มก้อน",
            "description": "จัดกลุ่มเซลล์แรสเตอร์ที่อยู่ติดกันและมีค่าเท่ากันเป็นรหัสหย่อมเฉพาะ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เชิงหมวดหมู่นำเข้า."
              },
              "diag": {
                "label": "แนวทแยง",
                "description": "หากเป็นจริง จะรวมการเชื่อมต่อแนวทแยง (8 เพื่อนบ้าน); มิฉะนั้นจะใช้ 4 เพื่อนบ้าน."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง จะถือว่าเซลล์ที่มีค่าศูนย์เป็นพื้นหลังและคงค่าเป็นศูนย์ไว้ในผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "cos": {
            "name": "Cos",
            "description": "คำนวณโคไซน์ของค่าแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "cosh": {
            "name": "Cosh",
            "description": "คำนวณโคไซน์ไฮเปอร์โบลิกของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "create_plane": {
            "name": "สร้างระนาบ",
            "description": "สร้างแรสเตอร์จากสมการระนาบโดยใช้เรขาคณิตของแรสเตอร์ฐาน",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "แรสเตอร์ฐานที่กำหนดเรขาคณิตของผลลัพธ์."
              },
              "gradient": {
                "label": "เกรเดียนต์",
                "description": "ความลาดชันของระนาบเป็นองศา."
              },
              "aspect": {
                "label": "ทิศด้านลาด",
                "description": "ทิศด้านลาดของระนาบเป็นองศา."
              },
              "constant": {
                "label": "ค่าคงที่",
                "description": "พจน์ค่าคงที่ที่บวกเพิ่มในสมการระนาบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "crispness_index": {
            "name": "ดัชนีความคมชัด",
            "description": "คำนวณดัชนีความคมชัด (crispness) สำหรับแรสเตอร์ความน่าจะเป็นของการเป็นสมาชิก",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "cross_tabulation": {
            "name": "ตารางไขว้",
            "description": "ทำตารางไขว้ของแรสเตอร์หมวดหมู่สองชุด",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์นำเข้า 1."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้า 2."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "cumulative_distribution": {
            "name": "การแจกแจงสะสม",
            "description": "แปลงค่าแรสเตอร์เป็นความน่าจะเป็นของการแจกแจงสะสม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "dbscan": {
            "name": "DBSCAN",
            "description": "ทำการจัดกลุ่มตามความหนาแน่นแบบ DBSCAN แบบไม่มีผู้สอนบนสแตกแรสเตอร์นำเข้า",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการที่คั่นด้วยจุลภาค/เซมิโคลอนหรืออาร์เรย์ JSON ของพาธแรสเตอร์นำเข้า (แบนด์คุณลักษณะ)."
              },
              "scaling_method": {
                "label": "วิธีปรับสเกล",
                "description": "การปรับสเกลคุณลักษณะ: 'none' (ค่าเริ่มต้น), 'normalize' (ช่วง 0-1) หรือ 'standardize' (ค่า z)."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "เอปไซลอน: รัศมีค้นหาพื้นที่ใกล้เคียงในปริภูมิคุณลักษณะ (ค่าเริ่มต้น 1.0)."
              },
              "min_points": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "จำนวนเพื่อนบ้านต่ำสุดภายในระยะเอปไซลอนสำหรับจุดแกน (ค่าเริ่มต้น 5)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือกสำหรับป้ายกำกับรหัสคลัสเตอร์."
              }
            }
          },
          "decrement": {
            "name": "ลดค่า",
            "description": "ลบค่าหนึ่ง (ค่าเริ่มต้น 1.0) ออกจากแต่ละเซลล์แรสเตอร์ที่ไม่ใช่ nodata",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "value": {
                "label": "ค่า",
                "description": "ปริมาณที่จะลบออกจากแต่ละเซลล์. ค่าเริ่มต้นคือ 1.0."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "edge_proportion": {
            "name": "สัดส่วนขอบ",
            "description": "คำนวณสัดส่วนของเซลล์ในแต่ละหย่อมที่เป็นเซลล์ขอบ และจับคู่กลับไปยังเซลล์ของหย่อม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์รหัสหย่อมนำเข้าที่มีรหัสเป็นจำนวนเต็มบวก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "equal_to": {
            "name": "เท่ากับ",
            "description": "ทดสอบว่าแรสเตอร์สองชุดเท่ากันหรือไม่แบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "erase_polygon_from_raster": {
            "name": "ลบโพลิกอนออกจากแรสเตอร์",
            "description": "กำหนดเซลล์แรสเตอร์ภายในโพลิกอนเป็น NoData พร้อมคงเซลล์ที่อยู่ในรูของโพลิกอนไว้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "polygons": {
                "label": "โพลิกอน",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "exp": {
            "name": "Exp",
            "description": "คำนวณ e ยกกำลังค่าของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "exp2": {
            "name": "Exp2",
            "description": "คำนวณ 2 ยกกำลังค่าของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "fft_random_field": {
            "name": "สนามสุ่มแบบ FFT",
            "description": "สร้างสนามสุ่มที่มีสหสัมพันธ์เชิงพื้นที่โดยใช้การสังเคราะห์สเปกตรัมแบบ FFT",
            "params": {
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "พาธแรสเตอร์ฐานที่ใช้สำหรับเรขาคณิตของกริด."
              },
              "range": {
                "label": "พิสัย",
                "description": "ช่วงสหสัมพันธ์โดยประมาณในหน่วยแผนที่. ค่าเริ่มต้น: 1.0."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "filter_raster_features_by_area": {
            "name": "กรองฟีเจอร์แรสเตอร์ตามพื้นที่",
            "description": "ลบลักษณะแรสเตอร์ที่มีป้ายจำนวนเต็มซึ่งเล็กกว่าค่าเกณฑ์จำนวนเซลล์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าที่มีป้ายกำกับคลาสเป็นจำนวนเต็ม."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ขนาดฟีเจอร์ต่ำสุดเป็นจำนวนเซลล์ที่จะเก็บไว้."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง ฟีเจอร์ที่ถูกลบจะถูกกำหนดค่าเป็น 0; มิฉะนั้นจะถูกกำหนดเป็น NoData."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "find_patch_edge_cells": {
            "name": "ค้นหาเซลล์ขอบแพตช์",
            "description": "ระบุเซลล์ขอบสำหรับรหัสหย่อมแรสเตอร์ที่เป็นบวกแต่ละรหัส เซลล์ของหย่อมที่ไม่ใช่ขอบถูกกำหนดเป็นศูนย์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์รหัสหย่อมนำเข้า; ค่าบวกจะถือเป็นเซลล์ของหย่อม."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "floor": {
            "name": "ปัดลง",
            "description": "ปัดค่าแต่ละเซลล์แรสเตอร์ลงเป็นจำนวนเต็มที่ใกล้ที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "greater_than": {
            "name": "มากกว่า",
            "description": "ทดสอบว่าแรสเตอร์ชุดแรกมากกว่าชุดที่สองหรือไม่แบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "heat_map": {
            "name": "แผนที่ความร้อน",
            "description": "สร้างแรสเตอร์แผนที่ความร้อนแบบความหนาแน่นเคอร์เนลจากการเกิดขึ้นของจุด",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์น้ำหนักตัวเลขเป็นตัวเลือก; ค่าเริ่มต้นคือการนับแบบไม่ถ่วงน้ำหนัก."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์ของเคอร์เนลในหน่วยแผนที่."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "kernel_function": {
                "label": "ฟังก์ชันเคอร์เนล",
                "description": "ชนิดฟังก์ชันเคอร์เนล; ค่าเริ่มต้นคือ quartic."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "idw_interpolation": {
            "name": "การประมาณค่าแบบ IDW",
            "description": "ประมาณค่าในช่วงแรสเตอร์จากจุดตัวอย่างโดยใช้การถ่วงน้ำหนักด้วยระยะทางผกผัน",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขเป็นตัวเลือก; ค่าเริ่มต้นจะย้อนกลับไปใช้ FID."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "ใช้ค่า Z จากเรขาคณิตของจุดแทนแอตทริบิวต์."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "เลขชี้กำลังระยะทางของ IDW; ค่าเริ่มต้นคือ 2.0."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีย่านใกล้เคียง (เป็นตัวเลือก) ในหน่วยแผนที่ หากค่า <=0 จะใช้วิธีสำรองแบบ k เพื่อนบ้านใกล้ที่สุด."
              },
              "min_points": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "จำนวนเพื่อนบ้านต่ำสุดที่จะใช้ ค่าเริ่มต้นคือ 0."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "image_autocorrelation": {
            "name": "สหสัมพันธ์ในตัวของภาพ",
            "description": "คำนวณ Moran's I สำหรับภาพแรสเตอร์หนึ่งภาพหรือมากกว่า",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการพาธของแรสเตอร์นำเข้า."
              },
              "contiguity": {
                "label": "ความต่อเนื่องติดกัน",
                "description": "กฎย่านใกล้เคียง: rook, king/queen หรือ bishop."
              }
            }
          },
          "image_correlation": {
            "name": "สหสัมพันธ์ของภาพ",
            "description": "คำนวณเมทริกซ์สหสัมพันธ์ Pearson สำหรับภาพแรสเตอร์สองภาพหรือมากกว่า",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการพาธของแรสเตอร์นำเข้า."
              }
            }
          },
          "image_regression": {
            "name": "การถดถอยของภาพ",
            "description": "ทำการถดถอยเชิงเส้นสองตัวแปรระหว่างแรสเตอร์สองชุด และส่งออกแรสเตอร์ส่วนเหลือและรายงาน",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์ของตัวแปรอิสระ."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์ของตัวแปรตาม."
              },
              "standardize_residuals": {
                "label": "ปรับมาตรฐานค่าคงเหลือ",
                "description": "กำหนดว่าจะทำให้ค่าเหลือเป็นมาตรฐานด้วยความคลาดเคลื่อนมาตรฐานของแบบจำลองหรือไม่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ค่าเหลือ."
              }
            }
          },
          "increment": {
            "name": "เพิ่มค่า",
            "description": "บวกค่าหนึ่ง (ค่าเริ่มต้น 1.0) ให้กับแต่ละเซลล์แรสเตอร์ที่ไม่ใช่ nodata",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "value": {
                "label": "ค่า",
                "description": "ปริมาณที่จะบวกเข้ากับแต่ละเซลล์ ค่าเริ่มต้นคือ 1.0."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "inplace_add": {
            "name": "บวกในที่",
            "description": "ทำการบวกแบบแทนที่ในตัว (input1 += input2)",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าที่จะปรับแก้."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้าหรือค่าคงที่เชิงตัวเลข."
              }
            }
          },
          "inplace_divide": {
            "name": "หารในที่",
            "description": "ทำการหารแบบแทนที่ในตัว (input1 /= input2)",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าที่จะปรับแก้."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้าหรือค่าคงที่เชิงตัวเลขที่ไม่เป็นศูนย์."
              }
            }
          },
          "inplace_multiply": {
            "name": "คูณในที่",
            "description": "ทำการคูณแบบแทนที่ในตัว (input1 *= input2)",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าที่จะปรับแก้."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้าหรือค่าคงที่เชิงตัวเลข."
              }
            }
          },
          "inplace_subtract": {
            "name": "ลบในที่",
            "description": "ทำการลบแบบแทนที่ในตัว (input1 -= input2)",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าที่จะปรับแก้."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้าหรือค่าคงที่เชิงตัวเลข."
              }
            }
          },
          "integer_division": {
            "name": "การหารจำนวนเต็ม",
            "description": "หารแรสเตอร์สองชุดและตัดผลลัพธ์แต่ละค่าเข้าหาศูนย์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "inverse_pca": {
            "name": "PCA ผกผัน",
            "description": "สร้างภาพแบนด์เดิมขึ้นใหม่จากแรสเตอร์องค์ประกอบ PCA โดยใช้เวกเตอร์ลักษณะเฉพาะที่จัดเก็บไว้",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธของแรสเตอร์องค์ประกอบ."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "pca_report": {
                "label": "รายงาน PCA",
                "description": "สตริงรายงาน JSON จาก PCA."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์พื้นฐาน (เป็นตัวเลือก)."
              }
            }
          },
          "is_nodata": {
            "name": "เป็น NoData",
            "description": "ส่งออก 1 สำหรับเซลล์ nodata และ 0 สำหรับเซลล์ที่ถูกต้องทั้งหมด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "kappa_index": {
            "name": "ดัชนี Kappa",
            "description": "คำนวณค่า kappa ของ Cohen และตัวชี้วัดความสอดคล้องระหว่างแรสเตอร์หมวดหมู่สองชุด",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์การจำแนกนำเข้า."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์อ้างอิงนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "ks_normality_test": {
            "name": "การทดสอบการแจกแจงปกติแบบ KS",
            "description": "ประเมินว่าค่าแรสเตอร์มาจากการแจกแจงปกติหรือไม่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "num_samples": {
                "label": "จำนวนตัวอย่าง",
                "description": "ขนาดตัวอย่างสุ่ม (เป็นตัวเลือก) หากไม่ระบุจะใช้เซลล์ที่ถูกต้องทั้งหมด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "less_than": {
            "name": "น้อยกว่า",
            "description": "ทดสอบว่าแรสเตอร์ชุดแรกน้อยกว่าชุดที่สองหรือไม่แบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "list_unique_values_raster": {
            "name": "แสดงรายการค่าที่ไม่ซ้ำของแรสเตอร์",
            "description": "แสดงรายการหมวดหมู่แรสเตอร์ที่ถูกต้องที่ไม่ซ้ำกันและความถี่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV ผลลัพธ์ เป็นตัวเลือก."
              },
              "strict_parity": {
                "label": "พาริตีเข้มงวด",
                "description": "เมื่อเป็นจริง จะคืนผลลัพธ์ความถี่ของหมวดหมู่แบบสมบูรณ์ (ค่าเริ่มต้น true)."
              },
              "max_values": {
                "label": "จำนวนค่าสูงสุด",
                "description": "จำนวนค่าไม่ซ้ำสูงสุดที่จะรวมไว้เมื่อ strict_parity เป็น false (ค่าเริ่มต้น 10000)."
              }
            }
          },
          "ln": {
            "name": "Ln",
            "description": "คำนวณลอการิทึมธรรมชาติของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "log10": {
            "name": "Log10",
            "description": "คำนวณลอการิทึมฐาน 10 ของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "log2": {
            "name": "Log2",
            "description": "คำนวณลอการิทึมฐาน 2 ของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "map_features": {
            "name": "ฟีเจอร์บนแผนที่",
            "description": "ทำแผนที่ลักษณะภูมิประเทศที่ยกตัวสูงแบบไม่ต่อเนื่องจากแรสเตอร์โดยใช้การขยายบริเวณตามลำดับความสำคัญจากมากไปน้อย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "min_feature_height": {
                "label": "ความสูงฟีเจอร์ต่ำสุด",
                "description": "ระยะแยกในแนวดิ่งต่ำสุดสำหรับฟีเจอร์ที่เป็นอิสระต่อกัน."
              },
              "min_feature_size": {
                "label": "ขนาดฟีเจอร์ต่ำสุด",
                "description": "ขนาดฟีเจอร์ต่ำสุดเป็นจำนวนเซลล์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "max": {
            "name": "ค่าสูงสุด",
            "description": "ทำการดำเนินการ MAX กับแรสเตอร์สองชุด หรือแรสเตอร์กับค่าคงที่",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์แรกหรือค่าคงที่เชิงตัวเลข."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์ที่สองหรือค่าคงที่เชิงตัวเลข."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "min": {
            "name": "ค่าต่ำสุด",
            "description": "ทำการดำเนินการ MIN กับแรสเตอร์สองชุด หรือแรสเตอร์กับค่าคงที่",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์แรกหรือค่าคงที่เชิงตัวเลข."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์ที่สองหรือค่าคงที่เชิงตัวเลข."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "modified_shepard_interpolation": {
            "name": "การประมาณค่าแบบ Shepard ดัดแปลง",
            "description": "ประมาณค่าในช่วงแรสเตอร์จากจุดตัวอย่างโดยใช้การผสมแบบ modified-Shepard ที่ถ่วงน้ำหนักเฉพาะที่",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขเป็นตัวเลือก; ค่าเริ่มต้นจะย้อนกลับไปใช้ FID."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "ใช้ค่า Z จากเรขาคณิตของจุดแทนแอตทริบิวต์."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "เลขชี้กำลังน้ำหนักแบบ Shepard ค่าเริ่มต้นคือ 2.0."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีย่านใกล้เคียง (เป็นตัวเลือก) ในหน่วยแผนที่."
              },
              "min_points": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "จำนวนเพื่อนบ้านต่ำสุด ค่าเริ่มต้นคือ 8."
              },
              "use_quadratic_basis": {
                "label": "ใช้ฐานกำลังสอง",
                "description": "ใช้การแก้ไขฐานกำลังสองเฉพาะที่ (โหมดที่เข้ากันได้กับรุ่นเดิม)."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "use_data_hull": {
                "label": "ใช้ฮัลล์ของข้อมูล",
                "description": "จำกัดการประมาณค่าให้อยู่ภายในคอนเวกซ์ฮัลล์ของจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "narrowness_index": {
            "name": "ดัชนีความแคบ",
            "description": "คำนวณดัชนีความแคบของหย่อมแรสเตอร์เป็นพื้นที่หารด้วยพื้นที่ของวงกลมใหญ่ที่สุดที่บรรจุอยู่ภายใน โดยอิงระยะทางสูงสุดถึงขอบ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์รหัสหย่อมนำเข้าที่มีรหัสเป็นจำนวนเต็มบวก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "negate": {
            "name": "กลับเครื่องหมาย",
            "description": "กลับเครื่องหมายค่าของแต่ละเซลล์แรสเตอร์ที่ไม่ใช่ nodata",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "nibble": {
            "name": "กัดกร่อน (Nibble)",
            "description": "เติมบริเวณพื้นหลังโดยใช้การจัดสรรแบบเพื่อนบ้านใกล้ที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าที่จะถูก nibble."
              },
              "mask": {
                "label": "มาสก์",
                "description": "แรสเตอร์มาสก์แบบไบนารี."
              },
              "use_nodata": {
                "label": "ใช้ NoData",
                "description": "ถือว่าค่า nodata ของข้อมูลนำเข้าเป็นค่าคลาส (ไม่ใช่พื้นหลัง)."
              },
              "nibble_nodata": {
                "label": "กัดกร่อน NoData",
                "description": "ทำ nibble เข้าไปในพื้นที่ nodata ที่มาสก์ปิดอยู่ด้วย."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "not_equal_to": {
            "name": "ไม่เท่ากับ",
            "description": "ทดสอบว่าแรสเตอร์สองชุดไม่เท่ากันหรือไม่แบบเซลล์ต่อเซลล์",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "paired_sample_t_test": {
            "name": "การทดสอบ T แบบจับคู่",
            "description": "ทำการทดสอบ t แบบจับคู่บนแรสเตอร์สองชุดโดยใช้เซลล์ที่ถูกต้องที่จับคู่กัน",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์นำเข้าตัวแรก."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้าตัวที่สอง."
              },
              "num_samples": {
                "label": "จำนวนตัวอย่าง",
                "description": "ขนาดตัวอย่างแบบมีการแทนที่ (เป็นตัวเลือก)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "phi_coefficient": {
            "name": "สัมประสิทธิ์ Phi",
            "description": "ทำการประเมินความสอดคล้องของการจำแนกแบบไบนารีโดยใช้สัมประสิทธิ์ phi",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์ไบนารีแรก."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์ไบนารีที่สอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              }
            }
          },
          "principal_component_analysis": {
            "name": "การวิเคราะห์องค์ประกอบหลัก",
            "description": "ทำ PCA บนสแตกแรสเตอร์ ส่งคืนภาพองค์ประกอบและรายงาน JSON",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า (≥3)."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "num_components": {
                "label": "จำนวนองค์ประกอบ",
                "description": "จำนวนองค์ประกอบ ค่าเริ่มต้น: ทั้งหมด."
              },
              "standardized": {
                "label": "ปรับให้เป็นมาตรฐาน",
                "description": "ใช้เมทริกซ์สหสัมพันธ์ ค่าเริ่มต้น: false."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์พื้นฐาน (เป็นตัวเลือก)."
              }
            }
          },
          "print_geotiff_tags": {
            "name": "พิมพ์แท็ก GeoTIFF",
            "description": "สร้างรายงานข้อความที่อธิบายแท็ก TIFF/GeoTIFF และเมทาดาทาสำคัญของแรสเตอร์นำเข้าตระกูล GeoTIFF",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              }
            }
          },
          "quantiles": {
            "name": "ควอนไทล์",
            "description": "แปลงค่าแรสเตอร์เป็นคลาสควอนไทล์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "num_quantiles": {
                "label": "จำนวนควอนไทล์",
                "description": "จำนวนควอนไทล์ (ค่าเริ่มต้น 5)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "radial_basis_function_interpolation": {
            "name": "การประมาณค่าแบบ Radial Basis Function",
            "description": "ประมาณค่าในช่วงแรสเตอร์จากจุดตัวอย่างโดยใช้การถ่วงน้ำหนักความคล้ายคลึงแบบฟังก์ชันพื้นฐานรัศมีเฉพาะที่",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขเป็นตัวเลือก; ค่าเริ่มต้นจะย้อนกลับไปใช้ FID."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "ใช้ค่า Z จากเรขาคณิตของจุดแทนแอตทริบิวต์."
              },
              "approximate_mode": {
                "label": "โหมดประมาณ",
                "description": "หากเป็นจริง จะใช้การถ่วงน้ำหนักโดยประมาณแบบเร็วของ NG หากเป็นเท็จ จะแก้ระบบ RBF เฉพาะที่ (แบบรุ่นเดิม)."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีย่านใกล้เคียง (เป็นตัวเลือก) ในหน่วยแผนที่."
              },
              "min_points": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "จำนวนเพื่อนบ้านต่ำสุดที่จะใช้."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "func_type": {
                "label": "ชนิดฟังก์ชัน",
                "description": "ชนิดฟังก์ชันฐานเชิงรัศมี (thinplatespline, polyharmonic, gaussian, multiquadric, inversemultiquadric)."
              },
              "poly_order": {
                "label": "อันดับพหุนาม",
                "description": "ค่าแนะนำอันดับพหุนาม (none, constant, quadratic)."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "พารามิเตอร์รูปร่าง/เลขชี้กำลังของฟังก์ชันฐาน ขึ้นอยู่กับ func_type."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "radius_of_gyration": {
            "name": "รัศมีไจเรชัน",
            "description": "คำนวณรัศมีไจเรชันรายหย่อมและจับคู่ค่ากลับไปยังเซลล์ของหย่อม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์รหัสหย่อมนำเข้าที่มีรหัสเป็นจำนวนเต็มบวก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "random_field": {
            "name": "สนามสุ่ม",
            "description": "สร้างแรสเตอร์ที่มีค่าสุ่มแบบปกติมาตรฐาน",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "พาธแรสเตอร์ฐานที่ใช้สำหรับเรขาคณิตของกริด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "random_forest_classification_fit": {
            "name": "ฝึกโมเดลจำแนกแบบ Random Forest",
            "description": "ปรับแบบจำลองการจำแนกแบบ random forest และส่งคืนไบต์ของแบบจำลองที่ทำให้เป็นอนุกรมแล้ว",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด/โพลิกอน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์คลาสในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "split_criterion": {
                "label": "เกณฑ์การแยก",
                "description": "ค่าแนะนำเกณฑ์การแตกกิ่งของต้นไม้ (คงไว้เพื่อความเข้ากันได้กับรุ่นเดิม)."
              },
              "n_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ในฟอเรสต์ (ค่าเริ่มต้น 200)."
              },
              "min_samples_leaf": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อใบ",
                "description": "จำนวนตัวอย่างต่ำสุดที่ต้องมีที่โหนดใบ (ค่าเริ่มต้น 1)."
              },
              "min_samples_split": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อการแยก",
                "description": "จำนวนตัวอย่างต่ำสุดที่ต้องมีเพื่อแยกโหนดภายใน (ค่าเริ่มต้น 2)."
              },
              "test_proportion": {
                "label": "สัดส่วนชุดทดสอบ",
                "description": "อาร์กิวเมนต์เพื่อความเข้ากันได้กับรุ่นเดิม สงวนไว้สำหรับการวินิจฉัยในอนาคต."
              }
            }
          },
          "random_forest_classification_predict": {
            "name": "ทำนายด้วยโมเดลจำแนกแบบ Random Forest",
            "description": "ใช้แบบจำลองการจำแนกแบบ random forest ที่ทำให้เป็นอนุกรมแล้วกับตัวแปรทำนายหลายแบนด์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "model_bytes": {
                "label": "ไบต์ของโมเดล",
                "description": "ไบต์ของโมเดลที่สร้างโดย random_forest_classification_fit."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "random_forest_regression_fit": {
            "name": "ฝึกโมเดลถดถอยแบบ Random Forest",
            "description": "ปรับแบบจำลองการถดถอยแบบ random forest และส่งคืนไบต์ของแบบจำลองที่ทำให้เป็นอนุกรมแล้ว",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "training_data": {
                "label": "ข้อมูลฝึกสอน",
                "description": "พาธข้อมูลฝึกสอนแบบเวกเตอร์จุด."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์เป้าหมายเชิงตัวเลขในแอตทริบิวต์ของ training_data."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "โหมดการปรับสเกลคุณลักษณะ: none (ค่าเริ่มต้น), normalize, standardize."
              },
              "n_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ในฟอเรสต์ (ค่าเริ่มต้น 200)."
              },
              "min_samples_leaf": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อใบ",
                "description": "จำนวนตัวอย่างต่ำสุดที่ต้องมีที่โหนดใบ (ค่าเริ่มต้น 1)."
              },
              "min_samples_split": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อการแยก",
                "description": "จำนวนตัวอย่างต่ำสุดที่ต้องมีเพื่อแยกโหนดภายใน (ค่าเริ่มต้น 2)."
              },
              "test_proportion": {
                "label": "สัดส่วนชุดทดสอบ",
                "description": "อาร์กิวเมนต์เพื่อความเข้ากันได้กับรุ่นเดิม สงวนไว้สำหรับการวินิจฉัยในอนาคต."
              }
            }
          },
          "random_forest_regression_predict": {
            "name": "ทำนายด้วยโมเดลถดถอยแบบ Random Forest",
            "description": "ใช้แบบจำลองการถดถอยแบบ random forest ที่ทำให้เป็นอนุกรมแล้วกับตัวแปรทำนายหลายแบนด์",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "อาร์เรย์ของแรสเตอร์นำเข้าแบบแบนด์เดียว."
              },
              "model_bytes": {
                "label": "ไบต์ของโมเดล",
                "description": "ไบต์ของโมเดลที่สร้างโดย random_forest_regression_fit."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "random_sample": {
            "name": "สุ่มตัวอย่าง",
            "description": "สร้างแรสเตอร์ที่มีเซลล์ตัวอย่างที่ตั้งอยู่แบบสุ่มพร้อมรหัสเฉพาะ",
            "params": {
              "base": {
                "label": "ฐาน",
                "description": "พาธแรสเตอร์ฐานที่ใช้กำหนดเรขาคณิตของกริดและมาสก์เซลล์ที่ถูกต้อง."
              },
              "num_samples": {
                "label": "จำนวนตัวอย่าง",
                "description": "จำนวนเซลล์ตัวอย่างที่จะสร้าง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "raster_area": {
            "name": "พื้นที่แรสเตอร์",
            "description": "ประมาณพื้นที่โพลิกอนแรสเตอร์รายคลาสในหน่วยเซลล์กริดหรือหน่วยแผนที่ และเขียนผลรวมของคลาสลงในแต่ละเซลล์ของคลาส",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เชิงหมวดหมู่นำเข้า."
              },
              "units": {
                "label": "หน่วย",
                "description": "หน่วยพื้นที่: 'map units' (ค่าเริ่มต้น) หรือ 'grid cells'."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง เซลล์ที่มีค่าเป็นศูนย์จะถูกยกเว้นจากการวิเคราะห์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "raster_calculator": {
            "name": "เครื่องคำนวณแรสเตอร์",
            "description": "ประเมินนิพจน์ทางคณิตศาสตร์บนรายการแรสเตอร์นำเข้าแบบเซลล์ต่อเซลล์",
            "params": {
              "expression": {
                "label": "นิพจน์",
                "description": "นิพจน์ทางคณิตศาสตร์ที่มีชื่อตัวแปรแรสเตอร์อยู่ในเครื่องหมายคำพูด."
              },
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าตามลำดับ."
              },
              "auto_reproject": {
                "label": "แปลงระบบพิกัดอัตโนมัติ",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะแปลงระบบพิกัดของแรสเตอร์ในสแตกให้ตรงกับ inputs[0] โดยอัตโนมัติเมื่อระบบพิกัดต่างกัน."
              },
              "auto_reproject_method": {
                "label": "วิธีแปลงระบบพิกัดอัตโนมัติ",
                "description": "การแทนที่วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดเป็นตัวเลือก: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "raster_cell_assignment": {
            "name": "การกำหนดค่าเซลล์แรสเตอร์",
            "description": "สร้างแรสเตอร์ที่ได้จากแรสเตอร์ฐาน โดยกำหนดค่าแถว คอลัมน์ x หรือ y ให้กับแต่ละเซลล์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ฐานนำเข้า."
              },
              "what_to_assign": {
                "label": "สิ่งที่จะกำหนด",
                "description": "เป้าหมายการกำหนดค่า: column, row, x หรือ y."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "raster_histogram": {
            "name": "ฮิสโทแกรมแรสเตอร์",
            "description": "สร้างฮิสโทแกรมแบบถังคงที่สำหรับเซลล์แรสเตอร์ที่ถูกต้อง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์รายงาน HTML เป็นตัวเลือก (ชื่อเรียกอื่น: output_html_file)."
              },
              "bins": {
                "label": "จำนวนถัง",
                "description": "จำนวนช่วงของฮิสโทแกรม (ค่าเริ่มต้น log2(rows*cols)+1)."
              }
            }
          },
          "raster_perimeter": {
            "name": "เส้นรอบรูปแรสเตอร์",
            "description": "ประมาณเส้นรอบรูปโพลิกอนแรสเตอร์รายคลาสโดยใช้ตารางค้นหาแบบ anti-aliasing และเขียนผลรวมของคลาสลงในแต่ละเซลล์ของคลาส",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เชิงหมวดหมู่นำเข้า."
              },
              "units": {
                "label": "หน่วย",
                "description": "หน่วยเส้นรอบรูป: 'map units' (ค่าเริ่มต้น) หรือ 'grid cells'."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "หากเป็นจริง เซลล์ที่มีค่าเป็นศูนย์จะถูกยกเว้นจากการวิเคราะห์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "raster_summary_stats": {
            "name": "สถิติสรุปของแรสเตอร์",
            "description": "คำนวณสถิติสรุปพื้นฐานสำหรับเซลล์แรสเตอร์ที่ถูกต้อง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธรายงานผลลัพธ์ (เป็นตัวเลือก) (.json หรือ .csv)."
              }
            }
          },
          "reciprocal": {
            "name": "ส่วนกลับ",
            "description": "คำนวณส่วนกลับ (1/x) ของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "rescale_value_range": {
            "name": "ปรับช่วงค่าใหม่",
            "description": "ปรับมาตราส่วนค่าแรสเตอร์แบบเชิงเส้นให้อยู่ในช่วงเป้าหมาย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "out_min": {
                "label": "ค่าต่ำสุดผลลัพธ์",
                "description": "ค่าผลลัพธ์ต่ำสุด."
              },
              "out_max": {
                "label": "ผลลัพธ์ค่าสูงสุด",
                "description": "ค่าผลลัพธ์สูงสุด."
              },
              "clip_min": {
                "label": "ค่าต่ำสุดของการตัด",
                "description": "ค่าต่ำสุดของข้อมูลนำเข้า (เป็นตัวเลือก) สำหรับการตัดค่าก่อนปรับสเกล."
              },
              "clip_max": {
                "label": "ค่าสูงสุดของการตัด",
                "description": "ค่าสูงสุดของข้อมูลนำเข้า (เป็นตัวเลือก) สำหรับการตัดค่าก่อนปรับสเกล."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "root_mean_square_error": {
            "name": "รากที่สองของค่าเฉลี่ยกำลังสองของความคลาดเคลื่อน",
            "description": "คำนวณ RMSE และสถิติความถูกต้องที่เกี่ยวข้องระหว่างแรสเตอร์สองชุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์สำหรับเปรียบเทียบ."
              },
              "base": {
                "label": "ฐาน",
                "description": "พาธแรสเตอร์ฐาน."
              }
            }
          },
          "round": {
            "name": "ปัดเศษ",
            "description": "ปัดค่าแต่ละเซลล์แรสเตอร์เป็นจำนวนเต็มที่ใกล้ที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "shape_complexity_index_raster": {
            "name": "ดัชนีความซับซ้อนรูปร่างของแรสเตอร์",
            "description": "คำนวณความซับซ้อนของรูปร่างหย่อมแรสเตอร์จากความถี่การเปลี่ยนผ่านแนวนอน/แนวตั้งที่ปรับมาตรฐานด้วยช่วงของหย่อม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์รหัสหย่อมนำเข้าที่มีรหัสเป็นจำนวนเต็มบวก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "sieve": {
            "name": "ร่อนตะแกรง",
            "description": "ลบหย่อมขนาดเล็กที่แยกตัวซึ่งต่ำกว่าค่าเกณฑ์จำนวนเซลล์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เชิงหมวดหมู่นำเข้า."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ขนาดหย่อมต่ำสุดเป็นจำนวนเซลล์ที่จะเก็บไว้."
              },
              "zero_background": {
                "label": "พื้นหลังเป็นศูนย์",
                "description": "กำหนดเซลล์พื้นหลัง (ค่า 0) ให้เป็นศูนย์ในผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "sin": {
            "name": "Sin",
            "description": "คำนวณไซน์ของค่าแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "sinh": {
            "name": "Sinh",
            "description": "คำนวณไซน์ไฮเปอร์โบลิกของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "sqrt": {
            "name": "รากที่สอง",
            "description": "คำนวณรากที่สองของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "square": {
            "name": "กำลังสอง",
            "description": "ยกกำลังสองค่าของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "tan": {
            "name": "Tan",
            "description": "คำนวณแทนเจนต์ของค่าแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "tanh": {
            "name": "Tanh",
            "description": "คำนวณแทนเจนต์ไฮเปอร์โบลิกของแต่ละเซลล์แรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "tin_interpolation": {
            "name": "การประมาณค่าแบบ TIN",
            "description": "ประมาณค่าในช่วงแรสเตอร์จากจุดตัวอย่างโดยใช้การสร้างสามเหลี่ยม Delaunay และการประมาณค่าในช่วงแบบระนาบภายในแต่ละสามเหลี่ยม",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขเป็นตัวเลือก; ค่าเริ่มต้นจะย้อนกลับไปใช้ FID."
              },
              "use_z": {
                "label": "ใช้ Z",
                "description": "ใช้ค่า Z จากเรขาคณิตของจุดแทนแอตทริบิวต์."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์เมื่อไม่ได้ระบุ base_raster."
              },
              "base_raster": {
                "label": "แรสเตอร์ฐาน",
                "description": "แรสเตอร์ฐานเป็นตัวเลือกที่ควบคุมเรขาคณิตของผลลัพธ์."
              },
              "max_triangle_edge_length": {
                "label": "ความยาวขอบสามเหลี่ยมสูงสุด",
                "description": "ความยาวขอบสามเหลี่ยมสูงสุดที่อนุญาต (เป็นตัวเลือก) ในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "to_degrees": {
            "name": "เป็นองศา",
            "description": "แปลงแต่ละเซลล์แรสเตอร์จากเรเดียนเป็นองศา",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "to_radians": {
            "name": "เป็นเรเดียน",
            "description": "แปลงแต่ละเซลล์แรสเตอร์จากองศาเป็นเรเดียน",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "trend_surface": {
            "name": "พื้นผิวแนวโน้ม",
            "description": "ปรับพื้นผิวแนวโน้มแบบพหุนามให้กับแรสเตอร์โดยใช้การถดถอยแบบกำลังสองน้อยที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "polynomial_order": {
                "label": "อันดับพหุนาม",
                "description": "อันดับพหุนาม 1–10 ค่าเริ่มต้น: 1."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "trend_surface_vector_points": {
            "name": "พื้นผิวแนวโน้มจากจุดเวกเตอร์",
            "description": "ปรับพื้นผิวแนวโน้มแบบพหุนามให้กับข้อมูลจุดเวกเตอร์โดยใช้การถดถอยแบบกำลังสองน้อยที่สุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์จุดนำเข้า."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ของแรสเตอร์ผลลัพธ์ในหน่วยแผนที่."
              },
              "field_name": {
                "label": "ชื่อฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์สำหรับค่า Z ค่าเริ่มต้น: 'FID'."
              },
              "polynomial_order": {
                "label": "อันดับพหุนาม",
                "description": "อันดับพหุนาม 1–10 ค่าเริ่มต้น: 1."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "truncate": {
            "name": "ตัดทอน",
            "description": "ตัดค่าแต่ละเซลล์แรสเตอร์ให้เหลือเฉพาะส่วนที่เป็นจำนวนเต็ม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "turning_bands_simulation": {
            "name": "การจำลองแบบ Turning Bands",
            "description": "สร้างสนามสุ่มที่มีสหสัมพันธ์เชิงพื้นที่โดยใช้อัลกอริทึม turning bands",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ฐาน."
              },
              "range": {
                "label": "พิสัย",
                "description": "ช่วงสหสัมพันธ์ในหน่วยแผนที่ ค่าเริ่มต้น: 1.0."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนทิศทางของแบนด์ ค่าเริ่มต้น: 1000."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "two_sample_ks_test": {
            "name": "การทดสอบ KS สองตัวอย่าง",
            "description": "ทำการทดสอบ Kolmogorov-Smirnov แบบสองตัวอย่างกับการแจกแจงค่าแรสเตอร์สองชุด",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์นำเข้าตัวแรก."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้าตัวที่สอง."
              },
              "num_samples": {
                "label": "จำนวนตัวอย่าง",
                "description": "ขนาดตัวอย่างแบบมีการแทนที่ต่อแรสเตอร์ (เป็นตัวเลือก)."
              }
            }
          },
          "wilcoxon_signed_rank_test": {
            "name": "การทดสอบ Wilcoxon Signed Rank",
            "description": "ทำการทดสอบ Wilcoxon signed-rank กับผลต่างของแรสเตอร์ที่จับคู่กัน",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "พาธแรสเตอร์นำเข้าตัวแรก."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "พาธแรสเตอร์นำเข้าตัวที่สอง."
              },
              "num_samples": {
                "label": "จำนวนตัวอย่าง",
                "description": "ขนาดตัวอย่างแบบมีการแทนที่ (เป็นตัวเลือก)."
              }
            }
          },
          "z_scores": {
            "name": "คะแนน Z",
            "description": "ปรับค่าแรสเตอร์ให้เป็นมาตรฐานเป็น z-score โดยใช้ค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานรวม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "zonal_statistics": {
            "name": "สถิติรายโซน",
            "description": "สรุปค่าของแรสเตอร์ข้อมูลภายในโซนที่กำหนดโดยแรสเตอร์ฟีเจอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ข้อมูลนำเข้า."
              },
              "features": {
                "label": "ฟีเจอร์",
                "description": "พาธแรสเตอร์ที่กำหนดโซน."
              },
              "stat_type": {
                "label": "ชนิดสถิติ",
                "description": "สถิติ: 'mean', 'median', 'min', 'max', 'range', 'standard deviation', 'diversity', 'total' ค่าเริ่มต้น: 'mean'."
              },
              "zero_is_background": {
                "label": "ศูนย์เป็นพื้นหลัง",
                "description": "ยกเว้นเซลล์โซน 0 ค่าเริ่มต้น: false."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "assess_route": {
            "name": "ประเมินเส้นทาง",
            "description": "แบ่งเส้นทางเป็นช่วงและประเมินตัวชี้วัดภูมิประเทศรายช่วงจาก DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "routes": {
                "label": "เส้นทาง",
                "description": "พาธเวกเตอร์เส้นทางแบบพอลิไลน์นำเข้า."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีค้นหาการมองเห็นเป็นจำนวนเซลล์กริด (ค่าเริ่มต้น 15, ต่ำสุด 4)."
              },
              "segment_length": {
                "label": "ความยาวเซกเมนต์",
                "description": "ความยาวเซกเมนต์เส้นทางเป้าหมายในหน่วยแผนที่ (ค่าเริ่มต้น 100.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ที่เป็นตัวเลือก."
              }
            }
          },
          "breakline_mapping": {
            "name": "การทำแผนที่เส้นแนวหัก",
            "description": "ทำแผนที่แนวหักโดยกำหนดค่าเกณฑ์ความโค้ง (curvedness) ที่แปลงลอการิทึมแล้ว และแปลงลักษณะเชิงเส้นที่ทำให้บางลงเป็นเวกเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ log-curvedness ต่ำสุดที่ใช้ในการสกัดเส้นหักเหภูมิประเทศ (ค่าเริ่มต้น 0.8)."
              },
              "min_length": {
                "label": "ความยาวต่ำสุด",
                "description": "ความยาวเส้นผลลัพธ์ต่ำสุดเป็นจำนวนเซลล์กริด (ค่าเริ่มต้น 3)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้นเป็นไฟล์ .shp ชั่วคราว)."
              }
            }
          },
          "convergence_index": {
            "name": "ดัชนีการลู่เข้า",
            "description": "การลู่เข้า/แยกออกของการไหลจากการจัดแนวทิศด้านลาดเฉพาะที่ ระบุหุบเขา (ลู่เข้า) และสันเขา (แยกออก) โดยไม่ต้องส่งการไหลแบบเต็ม เป็นทางเลือกที่มีประสิทธิภาพแทนอัลกอริทึมทิศทางการไหล",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า Z."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "dem_void_filling": {
            "name": "เติมช่องว่างใน DEM",
            "description": "เติมช่องว่างของ DEM โดยใช้พื้นผิวรองและค่าชดเชยระดับความสูงที่ประมาณค่าในช่วงเพื่อการหลอมรวมที่ไร้รอยต่อ",
            "params": {
              "fill": {
                "label": "เติม",
                "description": "พาธแรสเตอร์ DEM สำหรับเติม หรืออ็อบเจ็กต์แรสเตอร์ชนิดกำหนด ที่ใช้เติมช่องว่างของข้อมูล."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้า (ที่มีช่องว่างข้อมูล) หรืออ็อบเจ็กต์แรสเตอร์ชนิดกำหนด."
              },
              "edge_treatment": {
                "label": "การจัดการขอบ",
                "description": "การจัดการขอบช่องว่างข้อมูล: 'dem', 'fill' หรือ 'average' (ค่าเริ่มต้น 'dem')."
              },
              "mean_plane_dist": {
                "label": "ระยะทางระนาบเฉลี่ย",
                "description": "ระยะทางเป็นจำนวนเซลล์จากขอบช่องว่างข้อมูล ซึ่งเลยจากนั้นค่าออฟเซ็ตจะถูกกำหนดเป็นค่าออฟเซ็ตเฉลี่ยรวม (ค่าเริ่มต้น 20)."
              },
              "weight_value": {
                "label": "ค่าน้ำหนัก",
                "description": "กำลังของการประมาณค่าแบบผกผันระยะทางสำหรับการประมาณค่าออฟเซ็ตใกล้ขอบ (ค่าเริ่มต้น 2.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "deviation_from_mean_elevation": {
            "name": "ค่าเบี่ยงเบนจากระดับความสูงเฉลี่ย",
            "description": "คำนวณ z-score ภูมิประเทศเฉพาะที่โดยใช้ค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานเฉพาะที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11) ชื่อพ้อง: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น filter_size_x) ชื่อพ้อง: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "difference_from_mean_elevation": {
            "name": "ผลต่างจากระดับความสูงเฉลี่ย",
            "description": "คำนวณผลต่างระหว่างระดับความสูงแต่ละจุดกับระดับความสูงเฉลี่ยเฉพาะที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11) ชื่อพ้อง: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น filter_size_x) ชื่อพ้อง: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "directional_relief": {
            "name": "ความต่างระดับตามทิศทาง",
            "description": "คำนวณความต่างระดับตามทิศทางโดยการติดตามรังสีของระดับความสูงในมุมแอซิมัทที่กำหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมทิศทางเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางสูงสุดของรังสี (เป็นตัวเลือก) ในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "elev_above_pit": {
            "name": "ระดับความสูงเหนือหลุม",
            "description": "คำนวณระดับความสูงเหนือเซลล์หลุมลงลาดที่ใกล้ที่สุด (หรือจุดจมที่ขอบ)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "elev_above_pit_dist": {
            "name": "ระยะทางระดับความสูงเหนือหลุม",
            "description": "ชื่อแทนเพื่อความเข้ากันได้สำหรับ elev_above_pit",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "elevation_percentile": {
            "name": "เปอร์เซ็นไทล์ระดับความสูง",
            "description": "อันดับเปอร์เซ็นไทล์ระดับความสูงเฉพาะที่ภายในย่านใกล้เคียง (0-100) ระบุหุบเขา (% ต่ำ) สันเขา (% สูง) และลาด (% กลาง) ตัวชี้วัดการจำแนกธรณีสัณฐานที่ไม่ขึ้นกับระดับความสูงสัมบูรณ์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11) ชื่อพ้อง: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น filter_size_x) ชื่อพ้อง: filtery."
              },
              "sig_digits": {
                "label": "จำนวนเลขนัยสำคัญ",
                "description": "จำนวนหลักทศนิยมนัยสำคัญที่จะรักษาไว้ระหว่างการแบ่งช่วง (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "embankment_mapping": {
            "name": "การทำแผนที่คันดิน",
            "description": "ทำแผนที่คันทางคมนาคมจาก DEM และโครงข่ายถนน พร้อมการขจัดพื้นผิวคันทางผ่านการประมาณค่าในช่วง (ถ้าเลือก) พัฒนาโดย John Lindsay และ Nigel VanNieuwenhuizen",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "roads_vector": {
                "label": "เวกเตอร์ถนน",
                "description": "พาธเวกเตอร์ถนนนำเข้า (เรขาคณิตแบบพอลิไลน์)."
              },
              "embankment_max_width": {
                "label": "ความกว้างคันดินสูงสุด",
                "description": "ความกว้างคันทางสูงสุดในหน่วยแผนที่ (ค่าเริ่มต้น 60.0)."
              },
              "max_upwards_increment": {
                "label": "ค่าเพิ่มขึ้นสูงสุด",
                "description": "ค่าเพิ่มขึ้นในแนวดิ่งเฉพาะที่สูงสุดที่อนุญาตระหว่างการขยาย (ค่าเริ่มต้น 0.05)."
              },
              "min_road_width": {
                "label": "ความกว้างถนนต่ำสุด",
                "description": "ความกว้างถนนต่ำสุดที่ทำแผนที่ในหน่วยแผนที่ (ค่าเริ่มต้น 6.0)."
              },
              "remove_embankments": {
                "label": "ลบคันดิน",
                "description": "หากเป็นจริง จะสร้างผลลัพธ์ DEM ที่ตัดคันทางออกเพิ่มเติมด้วยการประมาณค่าเฉพาะที่."
              },
              "search_dist": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะทางการย้ายตำแหน่งจุดเริ่มต้นถนนในหน่วยแผนที่ (ค่าเริ่มต้น 2.5)."
              },
              "spillout_slope": {
                "label": "ความลาดชันการไหลล้น",
                "description": "ความลาดชันการล้นออกสูงสุดเป็นองศาสำหรับการเปลี่ยนผ่านขึ้นเนิน (ค่าเริ่มต้น 4.0)."
              },
              "typical_embankment_max_height": {
                "label": "ความสูงคันดินทั่วไปสูงสุด",
                "description": "ความสูงสูงสุดโดยทั่วไปของคันทางในหน่วยระดับความสูง (ค่าเริ่มต้น 2.0)."
              },
              "typical_embankment_width": {
                "label": "ความกว้างคันดินทั่วไป",
                "description": "ความกว้างโดยทั่วไปของคันทางในหน่วยแผนที่ (ค่าเริ่มต้น 30.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์มาสก์คันทาง (เป็นตัวเลือก)."
              },
              "output_dem": {
                "label": "DEM ผลลัพธ์",
                "description": "พาธผลลัพธ์ DEM ที่ตัดคันทางออก (เป็นตัวเลือก) เมื่อ remove_embankments=true."
              }
            }
          },
          "exposure_towards_wind_flux": {
            "name": "การเปิดรับฟลักซ์ลม",
            "description": "คำนวณการเปิดรับลมของภูมิประเทศเทียบกับทิศทางลมหลักและการบังจากเส้นขอบฟ้าด้านเหนือลม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมทิศลมหลักเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาสูงสุดสำหรับมุมขอบฟ้าด้านเหนือลมในหน่วยแผนที่."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณสเกลแนวดิ่ง (เป็นตัวเลือก) สำหรับ DEM ที่ผ่านการฉายภาพแล้ว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "feature_preserving_smoothing": {
            "name": "การทำให้เรียบแบบรักษาลักษณะเด่น",
            "description": "ทำให้ความขรุขระของ DEM เรียบขณะคงแนวหักของความลาดชันไว้โดยใช้การกรองเวกเตอร์ตั้งฉาก",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11)."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำของการทำให้เรียบ (ค่าเริ่มต้น 3)."
              },
              "max_elevation_diff": {
                "label": "ผลต่างระดับความสูงสูงสุด",
                "description": "การเปลี่ยนแปลงในแนวดิ่งสูงสุดที่อนุญาตจาก DEM ต้นฉบับ (ค่าเริ่มต้น inf)."
              },
              "normal_diff_threshold": {
                "label": "ค่าเกณฑ์ผลต่างเวกเตอร์แนวฉาก",
                "description": "ผลต่างมุมของเวกเตอร์ตั้งฉากสูงสุดเป็นองศา (ค่าเริ่มต้น 8.0)."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "feature_preserving_smoothing_multiscale": {
            "name": "การทำให้เรียบแบบรักษาลักษณะเด่นหลายมาตราส่วน",
            "description": "ทำให้ความขรุขระของ DEM เรียบด้วยการดำเนินการต่อเนื่องหลายมาตราส่วนจากหยาบไปละเอียด แต่ละมาตราส่วนคำนวณเวกเตอร์ตั้งฉากใหม่ ใช้การแพร่สนามเวกเตอร์ตั้งฉากแบบทนทานที่ปรับตัว และสร้างระดับความสูงขึ้นใหม่ด้วยการแก้สมการ screened Poisson",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "smoothing_amount": {
                "label": "ปริมาณการทำให้เรียบ",
                "description": "ปริมาณการทำให้เรียบโดยรวมในช่วง [0,1] (ค่าเริ่มต้น 0.65) ค่าที่สูงขึ้นจะเพิ่มงบประมาณการแพร่ โดยเฉพาะที่สเกลหยาบ."
              },
              "edge_preservation": {
                "label": "การรักษาขอบ",
                "description": "ความแรงของการรักษาขอบในช่วง [0,1] (ค่าเริ่มต้น 0.75) ค่าที่สูงขึ้นจะระงับการทำให้เรียบข้ามจุดหักเหความลาดชันสำคัญได้มากขึ้น."
              },
              "scale_levels": {
                "label": "ระดับมาตราส่วน",
                "description": "จำนวนระดับพีระมิดสำหรับการทำให้เรียบจากหยาบไปละเอียด (ค่าเริ่มต้น 3)."
              },
              "fidelity": {
                "label": "ความเที่ยงตรง",
                "description": "น้ำหนักความสอดคล้องกับข้อมูลในการสร้างใหม่แบบ screened Poisson (ค่าเริ่มต้น 0.45) ค่าที่สูงขึ้นจะทำให้ผลลัพธ์ใกล้เคียงกับ DEM ต้นฉบับมากขึ้น."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "fetch_analysis": {
            "name": "การวิเคราะห์ระยะทางลมพัด",
            "description": "คำนวณระยะทางด้านเหนือลมไปยังสิ่งกีดขวางทางภูมิประเทศแห่งแรกตามมุมแอซิมัทที่กำหนด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมทิศลมเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ."
              },
              "hgt_inc": {
                "label": "ค่าเพิ่มความสูง",
                "description": "ค่าเกณฑ์การเพิ่มขึ้นของความสูงในหน่วย m/m (ค่าเริ่มต้น 0.05)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "fill_missing_data": {
            "name": "เติมข้อมูลที่หายไป",
            "description": "เติมช่องว่าง NoData โดยใช้การถ่วงน้ำหนักด้วยระยะทางผกผันจากเซลล์ขอบช่องว่างที่ถูกต้อง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์นำเข้าหรืออ็อบเจกต์แรสเตอร์ที่มีชนิดกำกับ."
              },
              "exclude_edge_nodata": {
                "label": "ไม่รวม NoData ที่ขอบ",
                "description": "ยกเว้นพื้นที่ NoData ที่เชื่อมต่อกับขอบจากการเติมค่า (ค่าเริ่มต้น false) ชื่อพ้อง: no_edges."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "รัศมีค้นหาเป็นจำนวนเซลล์กริด (ค่าเริ่มต้น 11)."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "เลขชี้กำลังกำลังผกผันระยะทาง (ค่าเริ่มต้น 2.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "find_ridges": {
            "name": "ค้นหาสันเขา",
            "description": "ระบุเซลล์ที่อาจเป็นสันเขาและยอดเขาใน DEM พร้อมการทำให้เส้นบางลง (ถ้าเลือก)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "line_thin": {
                "label": "ทำเส้นให้บาง",
                "description": "ใช้การทำให้เส้นบางแบบวนซ้ำ (ค่าเริ่มต้น true)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "hillshade": {
            "name": "แรเงาภูมิประเทศ",
            "description": "การแสดงผลแรเงาภูมิประเทศแบบมีทิศทางจากแหล่งแสงเดียว (ระดับสีเทา 0-255) พารามิเตอร์มุมแอซิมัทและมุมสูงควบคุมทิศทางแสง การแสดงผลภูมิประเทศที่รวดเร็วสำหรับการตรวจสอบ DEM และการแสดงแผนที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "การขยายในแนวดิ่งที่ใช้กับค่าระดับความสูง"
              },
              "altitude": {
                "label": "มุมเงย",
                "description": "ระดับความสูงของแหล่งกำเนิดแสงเหนือขอบฟ้าเป็นองศา"
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมทิศของแหล่งกำเนิดแสงเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "hypsometrically_tinted_hillshade": {
            "name": "แรเงาภูมิประเทศแบบไล่สีตามระดับความสูง",
            "description": "สร้างการเรนเดอร์ภูมิประเทศแบบสวิสโดยผสมการแรเงาภูมิประเทศหลายมุมแอซิมัทเข้ากับการระบายสีตามระดับความสูง (hypsometric tinting) และหมอกบรรยากาศ (ถ้าเลือก)",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM นำเข้า."
              },
              "solar_altitude": {
                "label": "มุมเงยดวงอาทิตย์",
                "description": "ระดับความสูงของดวงอาทิตย์เป็นองศา [0, 90]."
              },
              "hillshade_weight": {
                "label": "น้ำหนักแรเงาภูมิประเทศ",
                "description": "น้ำหนักการผสมภาพเงาเนินเขาในช่วง [0, 1]."
              },
              "brightness": {
                "label": "ความสว่าง",
                "description": "การควบคุมความสว่างในช่วง [0, 1]."
              },
              "atmospheric_effects": {
                "label": "ผลกระทบชั้นบรรยากาศ",
                "description": "ปริมาณหมอกในบรรยากาศในช่วง [0, 1]."
              },
              "palette": {
                "label": "จานสี",
                "description": "ชื่อจานสี (atlas, high_relief, arid, soft, muted, viridis, dem, grey, white ฯลฯ)."
              },
              "reverse_palette": {
                "label": "กลับลำดับจานสี",
                "description": "กลับลำดับจานสี."
              },
              "full_360_mode": {
                "label": "โหมด 360 องศาเต็ม",
                "description": "ใช้การให้แสงแบบ 8 ทิศทางแทนโหมด 4 ทิศทาง."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณการขยายในแนวดิ่ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์."
              }
            }
          },
          "local_hypsometric_analysis": {
            "name": "การวิเคราะห์ระดับความสูงเฉพาะที่",
            "description": "คำนวณอินทิกรัลไฮปโซเมตริกเฉพาะที่ต่ำสุดข้ามช่วงมาตราส่วนย่านใกล้เคียงที่สุ่มแบบไม่เชิงเส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 4)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ขนาดขั้นพื้นฐานเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "num_steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนสเกลที่จะประเมิน (ค่าเริ่มต้น 10)."
              },
              "step_nonlinearity": {
                "label": "ความไม่เชิงเส้นของขั้น",
                "description": "ความไม่เป็นเชิงเส้นของขั้นสเกลในช่วง [1,4] (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ค่าต่ำสุดของ HI เฉพาะที่."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์สเกลที่ให้ HI ต่ำสุด."
              }
            }
          },
          "low_points_on_headwater_divides": {
            "name": "จุดต่ำบนสันปันน้ำต้นน้ำ",
            "description": "ระบุตำแหน่งจุดช่องเขาต่ำตามแนวสันปันน้ำระหว่างลุ่มน้ำย่อยต้นน้ำที่อยู่ติดกัน",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM ที่ไม่มีแอ่งนำเข้า หรืออ็อบเจ็กต์แรสเตอร์ชนิดกำหนด."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "พาธแรสเตอร์ลำน้ำนำเข้า (ค่าบวกบ่งชี้เซลล์ที่เป็นร่องน้ำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้นเป็นไฟล์ .shp ชั่วคราว)."
              }
            }
          },
          "max_downslope_elev_change": {
            "name": "การเปลี่ยนระดับความสูงลงลาดสูงสุด",
            "description": "คำนวณการลดลงของระดับความสูงสูงสุดไปยังเซลล์ข้างเคียงที่ต่ำกว่า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "max_upslope_elev_change": {
            "name": "การเปลี่ยนระดับความสูงเหนือลาดสูงสุด",
            "description": "คำนวณการเพิ่มขึ้นของระดับความสูงสูงสุดไปยังเซลล์ข้างเคียงที่สูงกว่า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "min_downslope_elev_change": {
            "name": "การเปลี่ยนระดับความสูงลงลาดต่ำสุด",
            "description": "คำนวณการลดลงของระดับความสูงต่ำสุดที่ไม่เป็นลบไปยังเซลล์ข้างเคียง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "multidirectional_hillshade": {
            "name": "แรเงาภูมิประเทศหลายทิศทาง",
            "description": "การแรเงาภูมิประเทศหลายทิศทาง (แหล่งแสง 8+ แหล่ง) ที่ขจัดสิ่งแปลกปลอมจากเงาของแหล่งแสงเดียว ให้การมองเห็นลักษณะที่สมดุลสำหรับภูมิประเทศที่ซับซ้อน เหมาะสำหรับงานตีพิมพ์และการวิเคราะห์อย่างละเอียด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ DEM นำเข้า"
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "การขยายในแนวดิ่งที่ใช้กับค่าระดับความสูง"
              },
              "altitude": {
                "label": "มุมเงย",
                "description": "ระดับความสูงของแหล่งกำเนิดแสงเหนือขอบฟ้าเป็นองศา"
              },
              "full_360_mode": {
                "label": "โหมด 360 องศาเต็ม",
                "description": "รวมแหล่งกำเนิดแสง 8 แหล่งครอบคลุมเต็ม 360 องศา แทนค่าเริ่มต้น 4 แหล่ง"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์"
              }
            }
          },
          "num_downslope_neighbours": {
            "name": "จำนวนเซลล์ข้างเคียงลงลาด",
            "description": "นับจำนวนเซลล์เพื่อนบ้าน 8 ทิศที่ต่ำกว่าแต่ละเซลล์ DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "num_upslope_neighbours": {
            "name": "จำนวนเซลล์ข้างเคียงเหนือลาด",
            "description": "นับจำนวนเซลล์เพื่อนบ้าน 8 ทิศที่สูงกว่าแต่ละเซลล์ DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "profile": {
            "name": "โปรไฟล์",
            "description": "สร้างกราฟโปรไฟล์ระดับความสูงแบบ HTML สำหรับฟีเจอร์เส้นหลายส่วนนำเข้าหนึ่งรายการหรือมากกว่าที่สุ่มค่าจากแรสเตอร์พื้นผิว",
            "params": {
              "lines_vector": {
                "label": "เวกเตอร์เส้น",
                "description": "พาธเวกเตอร์เส้นหลายส่วนนำเข้า."
              },
              "surface": {
                "label": "พื้นผิว",
                "description": "พาธแรสเตอร์พื้นผิวนำเข้า หรืออ็อบเจ็กต์แรสเตอร์ชนิดกำหนด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธรายงาน HTML ผลลัพธ์."
              }
            }
          },
          "slope_vs_aspect_plot": {
            "name": "กราฟความลาดชันเทียบกับทิศด้านลาด",
            "description": "สร้างกราฟการวิเคราะห์ความลาดชันเทียบกับทิศด้านลาดแบบรัศมีเป็น HTML สำหรับ DEM นำเข้า",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "aspect_bin_size": {
                "label": "ขนาดถังทิศด้านลาด",
                "description": "ขนาดช่วงของทิศด้านลาดเป็นองศา (ค่าเริ่มต้น 2.0)."
              },
              "min_slope": {
                "label": "ความลาดชันต่ำสุด",
                "description": "ไม่พิจารณาความลาดชันที่ต่ำกว่าค่าเกณฑ์นี้เป็นองศา (ค่าเริ่มต้น 0.1)."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณสเกลแนวดิ่งสำหรับค่าระดับความสูง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธรายงาน HTML ผลลัพธ์."
              }
            }
          },
          "slope_vs_elev_plot": {
            "name": "กราฟความลาดชันเทียบกับระดับความสูง",
            "description": "สร้างแผนภูมิการวิเคราะห์ความลาดชันเทียบกับระดับความสูงแบบ HTML สำหรับ DEM หนึ่งชุดหรือมากกว่า",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ DEM นำเข้าเป็นสตริงคั่นด้วย ';' หรือ ',' หรือเป็นรายการ."
              },
              "watershed": {
                "label": "ลุ่มน้ำ",
                "description": "แรสเตอร์ลุ่มน้ำ (เป็นตัวเลือก) ที่สอดคล้องกับ DEM นำเข้าแต่ละไฟล์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธรายงาน HTML ผลลัพธ์."
              }
            }
          },
          "surface_area_ratio": {
            "name": "อัตราส่วนพื้นที่ผิว",
            "description": "อัตราส่วนพื้นที่ผิว 3 มิติ / พื้นที่ราบ (วิธี Jenness) >1.0=ภูมิประเทศขรุขระ ≈1.0=ราบ ตัวชี้วัดความขรุขระไร้มิติที่ช่วยให้เปรียบเทียบภูมิประเทศข้ามภูมิภาคได้",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "topographic_hachures": {
            "name": "เส้นลายขวานภูมิประเทศ",
            "description": "สร้างเส้นหลายส่วนแบบลายเส้นแรเงาภูมิประเทศ (hachure) จาก DEM โดยใช้เส้นการไหลลงลาดและขึ้นลาดที่เริ่มจากเส้นชั้นความสูง การระบุผู้พัฒนาดั้งเดิมถูกคงไว้โดยเจตนาสำหรับเครื่องมือนี้",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "base": {
                "label": "ฐาน",
                "description": "ระดับความสูงฐานของเส้นชั้นความสูง (ค่าเริ่มต้น 0.0)."
              },
              "depth": {
                "label": "ความลึก",
                "description": "ความลึกของการเติมแบบเรียกซ้ำที่ใช้ในพื้นที่การไหลแยกออก (ค่าเริ่มต้น 16)."
              },
              "discretization": {
                "label": "การแบ่งช่วง",
                "description": "ความยาวขั้นของเส้นการไหลในหน่วยเซลล์เฉลี่ย (ค่าเริ่มต้น 0.5)."
              },
              "distmax": {
                "label": "ระยะทางสูงสุด",
                "description": "ตัวคูณระยะห่างสูงสุดที่ใช้แทรกเส้นแฮชเชอร์เพิ่มเติม (ค่าเริ่มต้น 2.0)."
              },
              "distmin": {
                "label": "ระยะทางต่ำสุด",
                "description": "ตัวคูณระยะห่างต่ำสุดที่ใช้ตัดทอนเส้นแฮชเชอร์ที่อยู่ใกล้กัน (ค่าเริ่มต้น 0.5)."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ค่าช่วงห่างของเส้นชั้นความสูง (ค่าเริ่มต้น 10.0)."
              },
              "separation": {
                "label": "ระยะแยก",
                "description": "ระยะห่างเริ่มต้นระหว่างจุดตั้งต้นบนเส้นชั้นความสูงในหน่วยเซลล์เฉลี่ย (ค่าเริ่มต้น 2.0)."
              },
              "slopemin": {
                "label": "ความลาดชันต่ำสุด",
                "description": "มุมความลาดชันต่ำสุดเป็นองศาสำหรับการลากเส้นต่อเนื่อง (ค่าเริ่มต้น 0.5)."
              },
              "smooth": {
                "label": "ทำให้เรียบ",
                "description": "ขนาดตัวกรองการทำให้เส้นชั้นความสูงเรียบ (ควรเป็นจำนวนเต็มคี่ ค่าเริ่มต้น 9)."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "มุมโค้งงอต่ำสุดของเส้นชั้นความสูงเป็นองศาที่คงไว้ระหว่างการลดรูป (ค่าเริ่มต้น 10.0)."
              },
              "turnmax": {
                "label": "มุมเลี้ยวสูงสุด",
                "description": "มุมเลี้ยวสูงสุดที่อนุญาตเป็นองศาขณะลากเส้นแฮชเชอร์ (ค่าเริ่มต้น 45.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "map_off_terrain_objects": {
            "name": "ทำแผนที่วัตถุเหนือพื้นดิน",
            "description": "ทำแผนที่เซกเมนต์วัตถุที่ไม่ใช่ภูมิประเทศใน DSM โดยใช้การขยายบริเวณที่จำกัดด้วยความลาดชันและการกรองขนาดลักษณะขั้นต่ำ (ถ้าเลือก)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DSM นำเข้า หรืออ็อบเจ็กต์แรสเตอร์ชนิดกำหนด."
              },
              "max_slope": {
                "label": "ความลาดชันสูงสุด",
                "description": "ความลาดชันเชื่อมต่อสูงสุดเป็นองศา [1, 90] (ค่าเริ่มต้น inf, จำกัดที่ 90)."
              },
              "min_feature_size": {
                "label": "ขนาดฟีเจอร์ต่ำสุด",
                "description": "ขนาดเซกเมนต์ต่ำสุดที่คงไว้เป็นจำนวนเซลล์ (ค่าเริ่มต้น 0) เซกเมนต์ที่เล็กกว่านี้จะถูกกำหนดให้เป็นคลาสพื้นหลัง 1."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "remove_off_terrain_objects": {
            "name": "ลบวัตถุเหนือพื้นดิน",
            "description": "ขจัดวัตถุที่ไม่ใช่ภูมิประเทศที่ชันออกจาก DEM โดยใช้การปรับมาตรฐานแบบ white top-hat การขยายบริเวณที่จำกัดด้วยความลาดชัน และการประมาณค่าในช่วงเฉพาะที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ความกว้างวัตถุสูงสุดที่คาดไว้เป็นจำนวนเซลล์ ปรับเป็นขนาดคี่ >= 3 (ค่าเริ่มต้น 11)."
              },
              "slope_threshold": {
                "label": "ค่าเกณฑ์ความลาดชัน",
                "description": "ความลาดชันขอบวัตถุต่ำสุดเป็นองศา (ค่าเริ่มต้น 15.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "ridge_and_valley_vectors": {
            "name": "เวกเตอร์สันเขาและหุบเขา",
            "description": "สกัดเวกเตอร์เส้นกึ่งกลางสันเขาและหุบเขาจาก DEM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดย่านใกล้เคียงสำหรับเปอร์เซ็นไทล์ระดับความสูง."
              },
              "ep_threshold": {
                "label": "ค่าเกณฑ์ EP",
                "description": "ค่าเกณฑ์เปอร์เซ็นไทล์ระดับความสูง [5, 50]."
              },
              "slope_threshold": {
                "label": "ค่าเกณฑ์ความลาดชัน",
                "description": "ค่าเกณฑ์ความลาดชันต่ำสุดเป็นองศา."
              },
              "min_length": {
                "label": "ความยาวต่ำสุด",
                "description": "ความยาวเส้นกึ่งกลางต่ำสุดเป็นจำนวนเซลล์."
              },
              "output_ridges": {
                "label": "ผลลัพธ์สันเขา",
                "description": "พาธผลลัพธ์เส้นกึ่งกลางสันเขา."
              },
              "output_valleys": {
                "label": "ผลลัพธ์หุบเขา",
                "description": "พาธผลลัพธ์เส้นกึ่งกลางหุบเขา."
              }
            }
          },
          "smooth_vegetation_residual": {
            "name": "ทำให้ค่าคงเหลือของพืชพรรณเรียบ",
            "description": "ลดความขรุขระคงเหลือของเรือนยอดโดยมาสก์การตอบสนอง DEV เฉพาะที่ที่สูงในมาตราส่วนเล็ก และประมาณค่าในช่วงของระดับความสูงที่ถูกมาสก์ใหม่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "max_scale": {
                "label": "มาตราส่วนสูงสุด",
                "description": "รัศมีครึ่งหน้าต่าง DEV สูงสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 30)."
              },
              "dev_threshold": {
                "label": "ค่าเกณฑ์ค่าเบี่ยงเบน",
                "description": "ขนาด DEV ต่ำสุดที่ใช้ทำเครื่องหมายเซลล์ความขรุขระ (ค่าเริ่มต้น 1.0)."
              },
              "scale_threshold": {
                "label": "ค่าเกณฑ์มาตราส่วน",
                "description": "สเกลสูงสุดที่ถือว่าเป็นความขรุขระ (ค่าเริ่มต้น 5)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "average_horizon_distance": {
            "name": "ระยะทางขอบฟ้าเฉลี่ย",
            "description": "คำนวณระยะทางเฉลี่ยถึงเส้นขอบฟ้าข้ามทิศทางแอซิมัท",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM/DSM นำเข้า."
              },
              "az_fraction": {
                "label": "สัดส่วนอะซิมัท",
                "description": "ขั้นของมุมทิศเป็นองศา [1, 45]."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาสูงสุดในหน่วยแผนที่."
              },
              "observer_hgt_offset": {
                "label": "ออฟเซ็ตความสูงผู้สังเกต",
                "description": "ค่าออฟเซ็ตความสูงของผู้สังเกตเหนือภูมิประเทศ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์."
              }
            }
          },
          "horizon_angle": {
            "name": "มุมขอบฟ้า",
            "description": "คำนวณมุมเส้นขอบฟ้า (ความลาดชันสูงสุด) ตามทิศทางแอซิมัทที่กำหนด",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM นำเข้า."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมทิศเป็นองศา [0, 360)."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาสูงสุดในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์."
              }
            }
          },
          "horizon_area": {
            "name": "พื้นที่ขอบฟ้า",
            "description": "คำนวณพื้นที่ของโพลิกอนเส้นขอบฟ้า (เฮกตาร์)",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM/DSM นำเข้า."
              },
              "az_fraction": {
                "label": "สัดส่วนอะซิมัท",
                "description": "ขั้นของมุมทิศเป็นองศา [1, 45]."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาสูงสุดในหน่วยแผนที่."
              },
              "observer_hgt_offset": {
                "label": "ออฟเซ็ตความสูงผู้สังเกต",
                "description": "ค่าออฟเซ็ตความสูงของผู้สังเกตเหนือภูมิประเทศ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์."
              }
            }
          },
          "openness": {
            "name": "ความเปิดโล่ง",
            "description": "ความเปิดโล่งของภูมิประเทศแบบ Yokoyama: ตัวชี้วัดการเปิดรับเชิงบวก (สันเขา/ยอดเขาที่เปิดโล่ง) และเชิงลบ (หุบเขาที่ปิดล้อม) สำหรับการจำแนกธรณีสัณฐานและการวิเคราะห์ทัศนวิสัย/ภูมิอากาศจุลภาค",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "dist": {
                "label": "ระยะทาง",
                "description": "ระยะค้นหาเป็นจำนวนเซลล์ (ค่าเริ่มต้น 20)."
              },
              "neg_output": {
                "label": "ผลลัพธ์ค่าลบ",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับความเปิดโล่งเชิงลบ."
              },
              "pos_output": {
                "label": "ผลลัพธ์ค่าบวก",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับความเปิดโล่งเชิงบวก."
              }
            }
          },
          "shadow_animation": {
            "name": "แอนิเมชันเงา",
            "description": "สร้างโปรแกรมดูแบบ HTML เชิงโต้ตอบและ GIF แบบเคลื่อนไหวที่แสดงเงาของภูมิประเทศตลอดทั้งวัน",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM/DSM นำเข้า."
              },
              "date": {
                "label": "วันที่",
                "description": "วันที่ในรูปแบบ DD/MM/YYYY."
              },
              "delay": {
                "label": "ความหน่วง",
                "description": "ความหน่วงของ GIF ต่อเฟรมเป็นมิลลิวินาที."
              },
              "image_height": {
                "label": "ความสูงภาพ",
                "description": "ความสูงของภาพที่แสดงเป็นพิกเซล."
              },
              "label": {
                "label": "ป้ายกำกับ",
                "description": "ป้ายกำกับที่แสดงในตัวแสดงผล (เป็นตัวเลือก)."
              },
              "location": {
                "label": "ตำแหน่ง",
                "description": "สตริงตำแหน่ง LAT/LON/UTC_OFFSET เช่น 43.5448/-80.2482/-4."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาขอบฟ้าสูงสุดในหน่วยแผนที่."
              },
              "palette": {
                "label": "จานสี",
                "description": "ชื่อจานสีไฮปโซเมตริก (เช่น soft, atlas, high_relief, turbo, viridis, dem, grey, white)."
              },
              "time_interval": {
                "label": "ช่วงเวลา",
                "description": "ช่วงเวลาระหว่างเฟรมเป็นนาที [1, 60]."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ HTML ผลลัพธ์."
              }
            }
          },
          "shadow_image": {
            "name": "ภาพเงา",
            "description": "สร้างแรสเตอร์ความเข้มของเงาภูมิประเทศสำหรับวันที่ เวลา และตำแหน่งที่กำหนด",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM/DSM นำเข้า."
              },
              "date": {
                "label": "วันที่",
                "description": "วันที่ในรูปแบบ DD/MM/YYYY."
              },
              "location": {
                "label": "ตำแหน่ง",
                "description": "สตริงตำแหน่ง LAT/LON/UTC_OFFSET เช่น 43.5448/-80.2482/-4."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาขอบฟ้าสูงสุดในหน่วยแผนที่."
              },
              "palette": {
                "label": "จานสี",
                "description": "ชื่อจานสีไฮปโซเมตริก (เช่น soft, atlas, high_relief, turbo, viridis, dem, grey, white)."
              },
              "time": {
                "label": "เวลา",
                "description": "เวลาท้องถิ่นในรูปแบบ HH:MM หรือ HH:MMAM/HH:MMPM."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "sky_view_factor": {
            "name": "สัดส่วนการมองเห็นท้องฟ้า",
            "description": "คำนวณสัดส่วนของท้องฟ้าที่มองเห็นได้จาก DEM/DSM",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM/DSM นำเข้า."
              },
              "az_fraction": {
                "label": "สัดส่วนอะซิมัท",
                "description": "ขั้นของมุมทิศเป็นองศา [1, 45]."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาสูงสุดในหน่วยแผนที่."
              },
              "observer_hgt_offset": {
                "label": "ออฟเซ็ตความสูงผู้สังเกต",
                "description": "ค่าออฟเซ็ตความสูงของผู้สังเกตเหนือภูมิประเทศ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์."
              }
            }
          },
          "skyline_analysis": {
            "name": "การวิเคราะห์เส้นขอบฟ้า",
            "description": "ทำการวิเคราะห์เส้นขอบฟ้าสำหรับจุดสังเกตการณ์หนึ่งจุดหรือมากกว่า และเขียนร่องรอยเส้นขอบฟ้าแบบเวกเตอร์พร้อมรายงาน HTML",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM/DSM นำเข้า."
              },
              "points": {
                "label": "จุด",
                "description": "พาธเวกเตอร์จุดนำเข้า."
              },
              "az_fraction": {
                "label": "สัดส่วนอะซิมัท",
                "description": "ขั้นของมุมทิศเป็นองศา [0.01, 45]."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาสูงสุดในหน่วยแผนที่."
              },
              "observer_hgt_offset": {
                "label": "ออฟเซ็ตความสูงผู้สังเกต",
                "description": "ค่าออฟเซ็ตความสูงของผู้สังเกตเหนือภูมิประเทศ."
              },
              "output_as_polygons": {
                "label": "ผลลัพธ์เป็นโพลิกอน",
                "description": "เขียนขอบฟ้าเป็นโพลิกอนแทนพอลิไลน์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              },
              "output_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธรายงาน HTML (เป็นตัวเลือก)."
              }
            }
          },
          "time_in_daylight": {
            "name": "เวลาที่ได้รับแสงแดด",
            "description": "คำนวณสัดส่วนของช่วงกลางวันที่แต่ละเซลล์ได้รับแสง (ไม่อยู่ในเงาของภูมิประเทศ/วัตถุ)",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM/DSM นำเข้า."
              },
              "az_fraction": {
                "label": "สัดส่วนอะซิมัท",
                "description": "ขนาดช่วงของมุมทิศเป็นองศา (0, 360)."
              },
              "end_day": {
                "label": "วันสิ้นสุด",
                "description": "วันสุดท้ายของปี (1..366)."
              },
              "end_time": {
                "label": "เวลาสิ้นสุด",
                "description": "เวลาสิ้นสุด HH:MM:SS หรือ 'sunset'."
              },
              "latitude": {
                "label": "ละติจูด",
                "description": "ค่าละติจูดที่กำหนดแทน (เป็นตัวเลือก) เป็นองศา มิฉะนั้นจะอนุมานจาก CRS ของ DEM."
              },
              "longitude": {
                "label": "ลองจิจูด",
                "description": "ค่าลองจิจูดที่กำหนดแทน (เป็นตัวเลือก) เป็นองศา มิฉะนั้นจะอนุมานจาก CRS ของ DEM."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาขอบฟ้าสูงสุดในหน่วยแผนที่."
              },
              "start_day": {
                "label": "วันเริ่มต้น",
                "description": "วันเริ่มต้นของปี (1..366)."
              },
              "start_time": {
                "label": "เวลาเริ่มต้น",
                "description": "เวลาเริ่มต้น HH:MM:SS หรือ 'sunrise'."
              },
              "utc_offset": {
                "label": "ออฟเซ็ต UTC",
                "description": "สตริงออฟเซ็ต UTC (เป็นตัวเลือก) เช่น UTC+00:00 หากไม่ระบุจะประมาณจากลองจิจูดกึ่งกลาง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "viewshed": {
            "name": "ขอบเขตการมองเห็น",
            "description": "คำนวณจำนวนการมองเห็นของสถานีจากสถานีแบบจุดบน DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "stations": {
                "label": "สถานี",
                "description": "ไฟล์เวกเตอร์จุดนำเข้าของสถานีสังเกตการณ์."
              },
              "height": {
                "label": "ความสูง",
                "description": "ความสูงของสถานีสังเกตการณ์เหนือพื้นดินในหน่วย z ของ DEM (ค่าเริ่มต้น 2.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "visibility_index": {
            "name": "ดัชนีการมองเห็น",
            "description": "คำนวณดัชนีทัศนวิสัยที่อิงภูมิประเทศจากพื้นที่มองเห็นที่สุ่มตัวอย่าง",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM นำเข้า."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาการมองเห็นสูงสุดในหน่วยแผนที่."
              },
              "resolution_factor": {
                "label": "ตัวประกอบความละเอียด",
                "description": "ตัวคูณความละเอียดของการสุ่มตัวอย่าง [1, 25]."
              },
              "station_height": {
                "label": "ความสูงสถานี",
                "description": "ความสูงของผู้สังเกตเหนือพื้นดิน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์."
              }
            }
          },
          "accumulation_curvature": {
            "name": "ความโค้งสะสม",
            "description": "คำนวณความโค้งสะสม (accumulation curvature) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "aspect": {
            "name": "ทิศด้านลาด",
            "description": "ทิศทางของความลาดชันสูงสุด (0°=N, 90°=E, 180°=S, 270°=W) สำคัญอย่างยิ่งสำหรับการวิเคราะห์รังสีดวงอาทิตย์ รูปแบบพืชพรรณ ภูมิอากาศจุลภาค และการเปิดรับ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า Z."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "casorati_curvature": {
            "name": "ความโค้ง Casorati",
            "description": "คำนวณความโค้ง Casorati จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "curvedness": {
            "name": "ความโค้งรวม (Curvedness)",
            "description": "คำนวณตัวอธิบายรูปทรงพื้นผิว curvedness จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "difference_curvature": {
            "name": "ความโค้งผลต่าง",
            "description": "คำนวณความโค้งผลต่าง (difference curvature) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "gaussian_curvature": {
            "name": "ความโค้งเกาส์เซียน",
            "description": "คำนวณความโค้ง Gaussian (ภายใน) (ผลคูณของความโค้งหลัก) บ่งบอกทอพอโลยีพื้นผิวเฉพาะที่: บวก (ชาม/โดม) ลบ (อานม้า) ศูนย์ (ทรงกระบอก) จำแนกภูมิประเทศเป็นหมวดหมู่ธรณีสัณฐาน: ลักษณะนูน (สันเขา) ลักษณะเว้า (หุบเขา) ลักษณะอานม้า (ช่องเขา/ช่องว่าง) ใช้ในการจำแนกธรณีสัณฐานขั้นสูง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) เพื่อให้อ่านง่ายขึ้น (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "generating_function": {
            "name": "ฟังก์ชันก่อกำเนิด",
            "description": "คำนวณฟังก์ชันก่อกำเนิด (generating function) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "horizontal_excess_curvature": {
            "name": "ความโค้งส่วนเกินแนวราบ",
            "description": "คำนวณความโค้งส่วนเกินแนวนอน (horizontal excess curvature) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "maximal_curvature": {
            "name": "ความโค้งสูงสุด",
            "description": "คำนวณความโค้งสูงสุด (ความโค้งหลักสูงสุด) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "mean_curvature": {
            "name": "ความโค้งเฉลี่ย",
            "description": "คำนวณความโค้งเฉลี่ย (ค่าเฉลี่ยของความโค้งหลัก) เกี่ยวข้องกับความโค้งรวมแต่เน้นความเรียบของพื้นผิว ค่าใกล้ 0 บ่งบอกภูมิประเทศที่เรียบ ค่าสูงบ่งบอกการเปลี่ยนแปลงความโค้งอย่างฉับพลัน มีประโยชน์สำหรับการอธิบายลักษณะพื้นผิวและการตรวจจับแนวหัก",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) เพื่อให้อ่านง่ายขึ้น (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "minimal_curvature": {
            "name": "ความโค้งต่ำสุด",
            "description": "คำนวณความโค้งต่ำสุด (ความโค้งหลักต่ำสุด) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "plan_curvature": {
            "name": "ความโค้งแนวราบ",
            "description": "คำนวณความโค้งแนวราบ (plan/contour curvature) ที่วัดการลู่เข้า/แยกออกของการไหลข้ามเส้นชั้นความสูง ค่าบวก (ลู่เข้า) บ่งบอกการรวมตัวของการไหลเข้าหาศูนย์กลาง (เว้า) ค่าลบ (แยกออก) บ่งบอกการกระจายของการไหลออกจากศูนย์กลาง (นูน) ระบุโซนการรวมตัวของการไหลด้านข้าง (หุบเขา) เทียบกับโซนการกระจาย (สันเขา) จำเป็นสำหรับการทำนายการกระจายความชื้นในดินและความอ่อนไหวต่อดินถล่ม",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) เพื่อให้อ่านง่ายขึ้น (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "principal_curvature_direction": {
            "name": "ทิศทางความโค้งหลัก",
            "description": "คำนวณมุมทิศทางความโค้งหลัก (องศา)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "profile_curvature": {
            "name": "ความโค้งโปรไฟล์",
            "description": "คำนวณความโค้งตามแนวลาด (profile curvature) ที่วัดการเร่ง/ชะลอของการไหลตามทิศทางความลาดชัน ค่าบวก (เว้า) บ่งบอกโซนการเร่งของการไหล (การกัดเซาะ) ค่าลบ (นูน) บ่งบอกโซนการชะลอของการไหล (การทับถม) เผยให้เห็นรูปทรงของลาด: เว้า (ก้นหุบเขา การกัดเซาะ) นูน (สันเขา การเคลื่อนย้ายวัสดุออก) เชิงเส้น (ช่วงเปลี่ยนผ่าน)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) เพื่อให้อ่านง่ายขึ้น (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "relative_aspect": {
            "name": "ทิศด้านลาดสัมพัทธ์",
            "description": "คำนวณทิศด้านลาดของภูมิประเทศเทียบกับมุมแอซิมัทที่ผู้ใช้กำหนด (0 ถึง 180 องศา)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมทิศอ้างอิงเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณมาตราส่วนแนวดิ่งเป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "ring_curvature": {
            "name": "ความโค้งวงแหวน",
            "description": "คำนวณความโค้งวงแหวน (ring curvature) (การบิดของเส้นการไหลยกกำลังสอง) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "rotor": {
            "name": "โรเตอร์",
            "description": "คำนวณโรเตอร์ (การบิดของเส้นการไหล) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "shape_index": {
            "name": "ดัชนีรูปร่าง",
            "description": "คำนวณตัวอธิบายรูปทรงพื้นผิว shape index จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "slope": {
            "name": "ความลาดชัน",
            "description": "เกรเดียนต์ความลาดชันแบบ Zevenbergen-Thorne (องศา/เรเดียน/เปอร์เซ็นต์) ตัวชี้วัดทางมาตรสัณฐานพื้นฐาน เป็นข้อมูลนำเข้าในขั้นตอนถัดไปสำหรับความโค้ง ทิศทางการไหล การแรเงา และทัศนวิสัย",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "units": {
                "label": "หน่วย",
                "description": "หน่วยผลลัพธ์: องศา เรเดียน ร้อยละ."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า Z."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "tangential_curvature": {
            "name": "ความโค้งแนวสัมผัส",
            "description": "คำนวณความโค้งเชิงสัมผัส (tangential curvature) (องค์ประกอบทิศทาง E-W) คล้ายกับความโค้งแนวราบแต่มีทิศทาง ใช้สำหรับการอธิบายลักษณะความโค้งอย่างครอบคลุมที่จับการแยกออกของการไหลด้านข้างในแนวตั้งฉากกับทิศทางความลาดชัน มักใช้ร่วมกับความโค้งตามแนวลาดเพื่อความเข้าใจความโค้ง 3 มิติอย่างสมบูรณ์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) เพื่อให้อ่านง่ายขึ้น (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "total_curvature": {
            "name": "ความโค้งรวม",
            "description": "คำนวณความโค้งรวม (ค่าเฉลี่ยกำลังสองของความโค้งหลัก) ตัวชี้วัดสเกลาร์ที่ไม่ขึ้นกับทิศทาง ค่าสูงบ่งบอกภูมิประเทศที่โค้งมาก (ยอด หลุม) ค่าต่ำบ่งบอกภูมิประเทศที่เป็นระนาบ มีประโยชน์เป็นตัวชี้วัดความขรุขระไร้มิติสำหรับการจำแนกภูมิประเทศและการตรวจหาความผิดปกติ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) เพื่อให้อ่านง่ายขึ้น (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "unsphericity": {
            "name": "ความไม่เป็นทรงกลม",
            "description": "คำนวณความโค้ง unsphericity (ครึ่งหนึ่งของผลต่างของความโค้งหลัก) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "vertical_excess_curvature": {
            "name": "ความโค้งส่วนเกินแนวดิ่ง",
            "description": "คำนวณความโค้งส่วนเกินแนวดิ่ง (vertical excess curvature) จาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า z (เป็นตัวเลือก) (ค่าเริ่มต้น 1.0) ชื่อพ้อง: zfactor."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "การแปลงลอการิทึมของค่าผลลัพธ์ (เป็นตัวเลือก) (ค่าเริ่มต้น false) ชื่อพ้อง: log."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "average_normal_vector_angular_deviation": {
            "name": "ค่าเบี่ยงเบนเชิงมุมเฉลี่ยของเวกเตอร์แนวฉาก",
            "description": "คำนวณการเบี่ยงเบนเชิงมุมเฉลี่ยเฉพาะที่ระหว่างเวกเตอร์ตั้งฉากพื้นผิวเดิมกับที่ทำให้เรียบแล้ว",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดย่านใกล้เคียงเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11) ชื่อพ้อง: filter."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณมาตราส่วนแนวดิ่งเป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "circular_variance_of_aspect": {
            "name": "ความแปรปรวนเชิงวงกลมของทิศด้านลาด",
            "description": "คำนวณความแปรปรวนเชิงวงกลมเฉพาะที่ของทิศด้านลาดภายในย่านใกล้เคียงเคลื่อนที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter": {
                "label": "ตัวกรอง",
                "description": "ขนาดย่านใกล้เคียงเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "edge_density": {
            "name": "ความหนาแน่นขอบ",
            "description": "คำนวณความหนาแน่นเฉพาะที่ของแนวหักของความลาดชันโดยใช้ผลต่างเชิงมุมของเวกเตอร์ตั้งฉาก",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดย่านใกล้เคียงเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11) ชื่อพ้อง: filter."
              },
              "norm_diff": {
                "label": "ผลต่างเวกเตอร์แนวฉาก",
                "description": "ค่าเกณฑ์เชิงมุมของเวกเตอร์ตั้งฉากเป็นองศา (ค่าเริ่มต้น 5)."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณมาตราส่วนแนวดิ่งเป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "ruggedness_index": {
            "name": "ดัชนีความขรุขระ",
            "description": "ความขรุขระของภูมิประเทศผ่าน Riley TRI (ผลรวมของกำลังสองของผลต่างระดับความสูง) ตัวชี้วัดการจำแนกภูมิประเทศที่ไม่ขึ้นกับมาตราส่วน: ต่ำ=ที่ราบเรียบ สูง=ภูเขาขรุขระ สำหรับการทำแผนที่ธรณีสัณฐานเชิงนิเวศวิทยาและธรณีสัณฐานวิทยา",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "spherical_std_dev_of_normals": {
            "name": "ส่วนเบี่ยงเบนมาตรฐานเชิงทรงกลมของเวกเตอร์แนวฉาก",
            "description": "คำนวณส่วนเบี่ยงเบนมาตรฐานเชิงทรงกลมของเวกเตอร์ตั้งฉากพื้นผิวเฉพาะที่",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดย่านใกล้เคียงเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11) ชื่อพ้อง: filter."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณมาตราส่วนแนวดิ่งเป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "standard_deviation_of_slope": {
            "name": "ส่วนเบี่ยงเบนมาตรฐานของความลาดชัน",
            "description": "คำนวณส่วนเบี่ยงเบนมาตรฐานเฉพาะที่ของความลาดชันเป็นตัวชี้วัดความขรุขระของภูมิประเทศ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size": {
                "label": "ขนาดตัวกรอง",
                "description": "ขนาดตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11)."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น filter_size) ชื่อพ้อง: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น filter_size) ชื่อพ้อง: filtery."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า Z เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำ."
              }
            }
          },
          "elev_relative_to_min_max": {
            "name": "ระดับความสูงสัมพัทธ์กับค่าต่ำสุด-สูงสุด",
            "description": "แสดงระดับความสูงแต่ละค่าเป็นร้อยละ (0–100) ของช่วงระดับความสูงของแรสเตอร์",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "geomorphons": {
            "name": "Geomorphons",
            "description": "จำแนกธรณีสัณฐานโดยใช้รูปแบบไตรภาคของแนวสายตา 8 ทิศทางที่ได้จากการเปรียบเทียบมุมเซนิทและมุมนาดีร์ หรือรูปแบบ geomorphon ทั่วไป 10 แบบ",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "analyze_residuals": {
                "label": "วิเคราะห์ค่าคงเหลือ",
                "description": "หากเป็นจริง จะขจัดแนวโน้มของ DEM ด้วยระนาบเชิงเส้นที่ปรับพอดีก่อนการจำแนก."
              },
              "flatness_distance": {
                "label": "ระยะทางความราบ",
                "description": "ระยะทางเป็นจำนวนเซลล์ ซึ่งเลยจากนั้นค่าเกณฑ์ความราบเรียบจะลดลงตามระยะขอบฟ้า (ค่าเริ่มต้น 0)."
              },
              "flatness_threshold": {
                "label": "ค่าเกณฑ์ความราบ",
                "description": "ค่าเกณฑ์ความราบเรียบเป็นองศา (ค่าเริ่มต้น 1.0) ใช้กับผลต่างมุมเซนิท-นาดีร์."
              },
              "output_forms": {
                "label": "ผลลัพธ์รูปแบบภูมิประเทศ",
                "description": "หากเป็นจริง จะให้ผลลัพธ์เป็นคลาสลักษณะภูมิประเทศทั่วไป 10 คลาส มิฉะนั้นจะให้รหัส geomorphon ฐานสามดิบที่เรียงทวนเข็มนาฬิกาจากทิศตะวันออก."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะการมองสูงสุดเป็นจำนวนเซลล์ต่อทิศทาง (ค่าเริ่มต้น 50) รวมเซลล์ปลายทางด้วย."
              },
              "skip_distance": {
                "label": "ระยะทางข้าม",
                "description": "ระยะทางเป็นจำนวนเซลล์ที่จะข้ามก่อนประเมินแนวการมองเห็น (ค่าเริ่มต้น 0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "hypsometric_analysis": {
            "name": "การวิเคราะห์ฮิปโซเมตริก",
            "description": "สร้างรายงาน HTML ของเส้นโค้งไฮปโซเมตริก (พื้นที่-ระดับความสูง) สำหรับ DEM หนึ่งชุดหรือมากกว่า",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธ DEM นำเข้าเป็นสตริงคั่นด้วย ';' หรือ ',' หรือเป็นรายการ."
              },
              "watershed": {
                "label": "ลุ่มน้ำ",
                "description": "แรสเตอร์ลุ่มน้ำ (เป็นตัวเลือก) ที่สอดคล้องกับ DEM นำเข้าแต่ละไฟล์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธรายงาน HTML ผลลัพธ์."
              }
            }
          },
          "multiscale_topographic_position_class": {
            "name": "คลาสตำแหน่งภูมิประเทศหลายมาตราส่วน",
            "description": "จำแนกแต่ละเซลล์ DEM ลงในระบบตำแหน่งภูมิประเทศสัมพัทธ์ระดับกว้าง/เฉพาะที่ 9 คลาส โดยใช้โมเสกมาตราส่วน DEVmax สองชุด",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "local_min_scale": {
                "label": "มาตราส่วนเฉพาะที่ต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์สำหรับช่วงสเกลเฉพาะที่ (ค่าเริ่มต้น 5)."
              },
              "local_max_scale": {
                "label": "มาตราส่วนเฉพาะที่สูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์สำหรับช่วงสเกลเฉพาะที่ (ค่าเริ่มต้น 80)."
              },
              "local_step_size": {
                "label": "ขนาดขั้นเฉพาะที่",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์สำหรับช่วงสเกลเฉพาะที่ (ค่าเริ่มต้น 1) ชื่อพ้อง: local_step."
              },
              "broad_min_scale": {
                "label": "มาตราส่วนกว้างต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์สำหรับช่วงสเกลกว้าง (ค่าเริ่มต้น 500)."
              },
              "broad_max_scale": {
                "label": "มาตราส่วนกว้างสูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์สำหรับช่วงสเกลกว้าง (ค่าเริ่มต้น 2000)."
              },
              "broad_step_size": {
                "label": "ขนาดขั้นกว้าง",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์สำหรับช่วงสเกลกว้าง (ค่าเริ่มต้น 20) ชื่อพ้อง: broad_step."
              },
              "local_threshold": {
                "label": "ค่าเกณฑ์เฉพาะที่",
                "description": "ค่าเกณฑ์ DEV ที่ใช้จำแนกโมเสกสเกลเฉพาะที่ออกเป็นสถานะแอ่ง กึ่งกลาง และเนินเตี้ย (ค่าเริ่มต้น 0.5)."
              },
              "broad_threshold": {
                "label": "ค่าเกณฑ์กว้าง",
                "description": "ค่าเกณฑ์ DEV ที่ใช้จำแนกโมเสกสเกลกว้างออกเป็นสถานะที่ราบต่ำ ระดับกลาง และที่สูง (ค่าเริ่มต้น 0.5)."
              },
              "min_patch_size": {
                "label": "ขนาดแพตช์ต่ำสุด",
                "description": "ขนาดหย่อมต่ำสุด (เป็นตัวเลือก) เป็นจำนวนเซลล์สำหรับการกรองหย่อมหลังการจำแนก (ค่าเริ่มต้น 0 คือปิดใช้งาน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์เชิงหมวดหมู่เก้าคลาส."
              },
              "output_confidence": {
                "label": "ผลลัพธ์ความเชื่อมั่น",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ความเชื่อมั่นในช่วง [0, 1]."
              }
            }
          },
          "pennock_landform_classification": {
            "name": "การจำแนกลักษณะภูมิประเทศแบบ Pennock",
            "description": "จำแนกองค์ประกอบธรณีสัณฐานเป็นคลาสภูมิประเทศเจ็ดคลาสตาม Pennock et al. (1987)",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "plan_curv_threshold": {
                "label": "ค่าเกณฑ์ความโค้งแนวราบ",
                "description": "ค่าเกณฑ์ความโค้งเชิงระนาบเป็นองศา (ค่าเริ่มต้น 0.0)."
              },
              "prof_curv_threshold": {
                "label": "ค่าเกณฑ์ความโค้งโปรไฟล์",
                "description": "ค่าเกณฑ์ความโค้งเชิงหน้าตัดเป็นองศา (ค่าเริ่มต้น 0.1)."
              },
              "slope_threshold": {
                "label": "ค่าเกณฑ์ความลาดชัน",
                "description": "ค่าเกณฑ์ความลาดชันเป็นองศา (ค่าเริ่มต้น 3.0)."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณสเกลแนวดิ่ง (เป็นตัวเลือก) (หากน้อยกว่า 0 และ CRS เป็นระบบพิกัดภูมิศาสตร์ จะประมาณจากละติจูดกึ่งกลาง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "percent_elev_range": {
            "name": "ร้อยละของพิสัยระดับความสูง",
            "description": "คำนวณตำแหน่งภูมิประเทศเฉพาะที่เป็นร้อยละของช่วงระดับความสูงในย่านใกล้เคียง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11) ชื่อพ้อง: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น filter_size_x) ชื่อพ้อง: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "relative_topographic_position": {
            "name": "ตำแหน่งภูมิประเทศสัมพัทธ์",
            "description": "คำนวณ RTP โดยใช้ค่าระดับความสูงต่ำสุด เฉลี่ย และสูงสุดในย่านใกล้เคียง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "filter_size_x": {
                "label": "ขนาดตัวกรอง X",
                "description": "ความกว้างตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น 11) ชื่อพ้อง: filterx."
              },
              "filter_size_y": {
                "label": "ขนาดตัวกรอง Y",
                "description": "ความสูงตัวกรองเป็นจำนวนเซลล์ที่เป็นเลขคี่ (ค่าเริ่มต้น filter_size_x) ชื่อพ้อง: filtery."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "max_anisotropy_dev": {
            "name": "ค่าเบี่ยงเบนแอนไอโซทรอปีสูงสุด",
            "description": "คำนวณแอนไอโซทรอปีสูงสุดของการเบี่ยงเบนระดับความสูงข้ามช่วงมาตราส่วนย่านใกล้เคียง เขียนโดย Dan Newman",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 3)."
              },
              "max_scale": {
                "label": "มาตราส่วนสูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 100)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์ (ค่าเริ่มต้น 2) ชื่อพ้อง: step."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ขนาดความไม่เท่ากันเชิงทิศทาง."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ที่เก็บสเกลของการตอบสนองสูงสุด."
              }
            }
          },
          "max_anisotropy_dev_signature": {
            "name": "ลายเซ็นค่าเบี่ยงเบนแอนไอโซทรอปีสูงสุด",
            "description": "คำนวณลายเซ็นแอนไอโซทรอปีหลายมาตราส่วนสำหรับจุดที่ตั้งนำเข้า และเขียนรายงาน HTML เขียนโดย Dan Newman",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้า."
              },
              "points": {
                "label": "จุด",
                "description": "พาธไฟล์เวกเตอร์จุดหรือมัลติพอยต์นำเข้า."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1)."
              },
              "max_scale": {
                "label": "มาตราส่วนสูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 100)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับรายงานลายเซ็นแบบ HTML."
              }
            }
          },
          "max_difference_from_mean": {
            "name": "ผลต่างจากค่าเฉลี่ยสูงสุด",
            "description": "คำนวณผลต่างสัมบูรณ์จากค่าเฉลี่ยสูงสุดข้ามช่วงมาตราส่วนย่านใกล้เคียง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1)."
              },
              "max_scale": {
                "label": "มาตราส่วนสูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 100)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ขนาดผลต่างสูงสุด."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ที่เก็บสเกลของการตอบสนองสูงสุด."
              }
            }
          },
          "max_elevation_deviation": {
            "name": "ค่าเบี่ยงเบนระดับความสูงสูงสุด",
            "description": "คำนวณการเบี่ยงเบนระดับความสูงมาตรฐานสูงสุด (DEVmax) ข้ามช่วงมาตราส่วนย่านใกล้เคียง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1)."
              },
              "max_scale": {
                "label": "มาตราส่วนสูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 100)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "min_vertical": {
                "label": "ความต่างระดับแนวดิ่งต่ำสุด",
                "description": "ค่าเกณฑ์ส่วนเบี่ยงเบนมาตรฐานเฉพาะที่ต่ำสุด การตอบสนองที่มีความต่างระดับอ่อนกว่านี้จะถูกระงับ (ค่าเริ่มต้น 0.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ขนาด DEVmax."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ที่เก็บสเกลของการตอบสนองสูงสุด."
              }
            }
          },
          "max_elev_dev_signature": {
            "name": "ลายเซ็นค่าเบี่ยงเบนระดับความสูงสูงสุด",
            "description": "คำนวณลายเซ็นการเบี่ยงเบนระดับความสูงหลายมาตราส่วนสำหรับจุดที่ตั้งนำเข้า และเขียนรายงาน HTML",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้า."
              },
              "points": {
                "label": "จุด",
                "description": "พาธไฟล์เวกเตอร์จุดหรือมัลติพอยต์นำเข้า."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1)."
              },
              "max_scale": {
                "label": "มาตราส่วนสูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 100)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์ (ค่าเริ่มต้น 10) ชื่อพ้อง: step."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับรายงานลายเซ็นแบบ HTML."
              }
            }
          },
          "multiscale_curvatures": {
            "name": "ความโค้งหลายมาตราส่วน",
            "description": "คำนวณความโค้งหลายมาตราส่วนและดัชนีที่อิงความโค้งจาก DEM",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้า หรืออ็อบเจ็กต์แรสเตอร์ชนิดกำหนด ชื่อพ้อง: dem."
              },
              "curv_type": {
                "label": "ชนิดความโค้ง",
                "description": "ชนิดความโค้ง."
              },
              "out_mag": {
                "label": "ผลลัพธ์ขนาด",
                "description": "พาธผลลัพธ์ขนาด (เป็นตัวเลือก) ชื่อพ้อง: output."
              },
              "out_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์สเกล (เป็นตัวเลือก) เมื่อ num_steps > 1."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีย่านใกล้เคียงค้นหาต่ำสุดเป็นจำนวนเซลล์กริด."
              },
              "step": {
                "label": "ขั้น",
                "description": "ขนาดขั้น."
              },
              "num_steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนขั้นสเกลที่สุ่มตัวอย่าง."
              },
              "step_nonlinearity": {
                "label": "ความไม่เชิงเส้นของขั้น",
                "description": "ตัวคูณความไม่เป็นเชิงเส้นของขั้น."
              },
              "log_transform": {
                "label": "แปลงลอการิทึม",
                "description": "ใช้การแปลงลอการิทึมแบบมีเครื่องหมาย ชื่อพ้อง: log."
              },
              "standardize": {
                "label": "ปรับให้เป็นมาตรฐาน",
                "description": "ทำให้แต่ละสเกลเป็นมาตรฐานด้วยคะแนน z."
              }
            }
          },
          "multiscale_elevated_index": {
            "name": "ดัชนีความยกตัวหลายมาตราส่วน",
            "description": "คำนวณดัชนียกตัวหลายมาตราส่วน (MsEI) และแรสเตอร์มาตราส่วนสำคัญโดยใช้ส่วนเหลือในปริภูมิมาตราส่วน Gaussian",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีค้นหาต่ำสุดเป็นจำนวนเซลล์กริด (ค่าเริ่มต้น 2)."
              },
              "num_steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนสเกลที่จะประเมิน (ค่าเริ่มต้น 100)."
              },
              "step_nonlinearity": {
                "label": "ความไม่เชิงเส้นของขั้น",
                "description": "ความไม่เป็นเชิงเส้นของขั้นสเกลในช่วง [1,4] (ค่าเริ่มต้น 1.1)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ขนาดขั้นพื้นฐานเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ดัชนี."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์สเกลสำคัญ."
              }
            }
          },
          "multiscale_elevation_percentile": {
            "name": "เปอร์เซ็นไทล์ระดับความสูงหลายมาตราส่วน",
            "description": "คำนวณเปอร์เซ็นไทล์ระดับความสูงเฉพาะที่ที่สุดขั้วที่สุดข้ามช่วงมาตราส่วนย่านใกล้เคียง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 4)."
              },
              "num_steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนสเกลที่จะประเมิน (ค่าเริ่มต้น 10)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "step_nonlinearity": {
                "label": "ความไม่เชิงเส้นของขั้น",
                "description": "เลขชี้กำลังการปรับสเกลแบบไม่เชิงเส้น ค่ามากกว่า 1.0 จะรวมกลุ่มสเกลไปทางความละเอียดที่ละเอียดขึ้น (ค่าเริ่มต้น 1.0)."
              },
              "sig_digits": {
                "label": "จำนวนเลขนัยสำคัญ",
                "description": "จำนวนหลักทศนิยมนัยสำคัญที่ใช้ระหว่างการแบ่งช่วงเปอร์เซ็นไทล์ (ค่าเริ่มต้น 3)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ขนาดเปอร์เซ็นไทล์."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ที่เก็บสเกลของการตอบสนองเปอร์เซ็นไทล์ที่สุดขั้วที่สุด."
              }
            }
          },
          "multiscale_low_lying_index": {
            "name": "ดัชนีพื้นที่ลุ่มต่ำหลายมาตราส่วน",
            "description": "คำนวณดัชนีพื้นที่ต่ำหลายมาตราส่วน (MsLLI) และแรสเตอร์มาตราส่วนสำคัญโดยใช้ส่วนเหลือในปริภูมิมาตราส่วน Gaussian",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีค้นหาต่ำสุดเป็นจำนวนเซลล์กริด (ค่าเริ่มต้น 2)."
              },
              "num_steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนสเกลที่จะประเมิน (ค่าเริ่มต้น 100)."
              },
              "step_nonlinearity": {
                "label": "ความไม่เชิงเส้นของขั้น",
                "description": "ความไม่เป็นเชิงเส้นของขั้นสเกลในช่วง [1,4] (ค่าเริ่มต้น 1.1)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ขนาดขั้นพื้นฐานเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ดัชนี."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์สเกลสำคัญ."
              }
            }
          },
          "multiscale_roughness": {
            "name": "ความขรุขระหลายมาตราส่วน",
            "description": "คำนวณความขรุขระของพื้นผิวข้ามช่วงมาตราส่วนย่านใกล้เคียง",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1)."
              },
              "max_scale": {
                "label": "มาตราส่วนสูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 100)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า Z เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ขนาดความขรุขระ."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ที่เก็บสเกลของการตอบสนองสูงสุด."
              }
            }
          },
          "multiscale_roughness_signature": {
            "name": "ลายเซ็นความขรุขระหลายมาตราส่วน",
            "description": "คำนวณลายเซ็นความขรุขระหลายมาตราส่วนสำหรับจุดที่ตั้งนำเข้า และเขียนรายงาน HTML",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้า."
              },
              "points": {
                "label": "จุด",
                "description": "พาธไฟล์เวกเตอร์จุดหรือมัลติพอยต์นำเข้า."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1)."
              },
              "max_scale": {
                "label": "มาตราส่วนสูงสุด",
                "description": "รัศมีครึ่งหน้าต่างสูงสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 100)."
              },
              "step_size": {
                "label": "ขนาดขั้น",
                "description": "ค่าเพิ่มสเกลเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1) ชื่อพ้อง: step."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า Z เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับรายงานลายเซ็นแบบ HTML."
              }
            }
          },
          "multiscale_std_dev_normals": {
            "name": "ส่วนเบี่ยงเบนมาตรฐานของเวกเตอร์แนวฉากหลายมาตราส่วน",
            "description": "คำนวณส่วนเบี่ยงเบนมาตรฐานเชิงทรงกลมสูงสุดของเวกเตอร์ตั้งฉากพื้นผิวข้ามช่วงมาตราส่วนที่สุ่มแบบไม่เชิงเส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 4)."
              },
              "step": {
                "label": "ขั้น",
                "description": "ขนาดขั้นพื้นฐานเป็นจำนวนเซลล์ที่ใช้โดยตารางสเกลแบบไม่เชิงเส้น (ค่าเริ่มต้น 1)."
              },
              "num_steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนสเกลที่สุ่มตัวอย่าง (ค่าเริ่มต้น 10)."
              },
              "step_nonlinearity": {
                "label": "ความไม่เชิงเส้นของขั้น",
                "description": "เลขชี้กำลังความไม่เป็นเชิงเส้นสำหรับตารางสเกล (ค่าเริ่มต้น 1.0)."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า Z เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ขนาดส่วนเบี่ยงเบนมาตรฐานเชิงทรงกลม."
              },
              "output_scale": {
                "label": "ผลลัพธ์มาตราส่วน",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ที่เก็บสเกลของการตอบสนองสูงสุด."
              }
            }
          },
          "multiscale_std_dev_normals_signature": {
            "name": "ลายเซ็นส่วนเบี่ยงเบนมาตรฐานของเวกเตอร์แนวฉากหลายมาตราส่วน",
            "description": "คำนวณลายเซ็นมาตราส่วนของส่วนเบี่ยงเบนมาตรฐานเชิงทรงกลมสำหรับจุดที่ตั้งนำเข้า และเขียนรายงาน HTML",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้า."
              },
              "points": {
                "label": "จุด",
                "description": "พาธไฟล์เวกเตอร์จุดหรือมัลติพอยต์นำเข้า."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 4)."
              },
              "step": {
                "label": "ขั้น",
                "description": "ขนาดขั้นพื้นฐานเป็นจำนวนเซลล์ที่ใช้โดยตารางสเกลแบบไม่เชิงเส้น (ค่าเริ่มต้น 1)."
              },
              "num_steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนสเกลที่สุ่มตัวอย่าง (ค่าเริ่มต้น 10)."
              },
              "step_nonlinearity": {
                "label": "ความไม่เชิงเส้นของขั้น",
                "description": "เลขชี้กำลังความไม่เป็นเชิงเส้นสำหรับตารางสเกล (ค่าเริ่มต้น 1.0)."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณแปลงค่า Z เมื่อหน่วยแนวดิ่งและแนวราบต่างกัน (ค่าเริ่มต้น 1.0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับรายงานลายเซ็นแบบ HTML."
              }
            }
          },
          "multiscale_topographic_position_image": {
            "name": "ภาพตำแหน่งภูมิประเทศหลายมาตราส่วน",
            "description": "สร้างภาพตำแหน่งภูมิประเทศหลายมาตราส่วนแบบ RGB แพ็กจากแรสเตอร์ DEVmax ระดับเฉพาะที่ ระดับกลาง และระดับกว้าง",
            "params": {
              "local": {
                "label": "เฉพาะที่",
                "description": "พาธแรสเตอร์ DEVmax สเกลเฉพาะที่นำเข้า."
              },
              "meso": {
                "label": "ระดับกลาง",
                "description": "พาธแรสเตอร์ DEVmax สเกลปานกลางนำเข้า."
              },
              "broad": {
                "label": "กว้าง",
                "description": "พาธแรสเตอร์ DEVmax สเกลกว้างนำเข้า."
              },
              "hillshade": {
                "label": "แรเงาภูมิประเทศ",
                "description": "พาธแรสเตอร์ภาพเงาเนินเขา (เป็นตัวเลือก) ที่ใช้ปรับการให้แสง."
              },
              "lightness": {
                "label": "ความสว่าง",
                "description": "ตัวคูณสเกลความสว่างของภาพ (ค่าเริ่มต้น 1.2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับแรสเตอร์ RGB แบบแพ็ก."
              }
            }
          },
          "topographic_position_animation": {
            "name": "แอนิเมชันตำแหน่งภูมิประเทศ",
            "description": "สร้างโปรแกรมดูแบบ HTML เชิงโต้ตอบและ GIF แบบเคลื่อนไหวของ DEV หรือ DEVmax ข้ามมาตราส่วนที่สุ่มแบบไม่เชิงเส้น",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ DEM นำเข้าหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด."
              },
              "delay": {
                "label": "ความหน่วง",
                "description": "ความหน่วงของ GIF ต่อเฟรมเป็นมิลลิวินาที."
              },
              "image_height": {
                "label": "ความสูงภาพ",
                "description": "ความสูงของภาพที่แสดงเป็นพิกเซล."
              },
              "label": {
                "label": "ป้ายกำกับ",
                "description": "ป้ายกำกับที่แสดงในตัวแสดงผล (เป็นตัวเลือก)."
              },
              "min_scale": {
                "label": "มาตราส่วนต่ำสุด",
                "description": "รัศมีครึ่งหน้าต่างต่ำสุดเป็นจำนวนเซลล์ (ค่าเริ่มต้น 1)."
              },
              "num_steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนขั้นของภาพเคลื่อนไหว (ค่าเริ่มต้น 10)."
              },
              "palette": {
                "label": "จานสี",
                "description": "ชื่อจานสีที่ใช้ลงสีค่า DEV."
              },
              "step_nonlinearity": {
                "label": "ความไม่เชิงเส้นของขั้น",
                "description": "เลขชี้กำลังสเกลแบบไม่เชิงเส้นในช่วง [1, 4] ที่ควบคุมระยะห่างจากหยาบไปละเอียด."
              },
              "use_dev_max": {
                "label": "ใช้ค่าเบี่ยงเบนสูงสุด",
                "description": "หากเป็นจริง เฟรมจะสะสมการตอบสนอง DEV สัมบูรณ์ที่แรงที่สุดเท่าที่พบมา."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ HTML ผลลัพธ์."
              }
            }
          },
          "topo_render": {
            "name": "เรนเดอร์ภูมิประเทศ",
            "description": "สร้างการเรนเดอร์ภูมิประเทศแบบกึ่ง 3 มิติโดยใช้การระบายสีตามจานสี การแรเงาภูมิประเทศ เงา และการลดทอน",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "พาธแรสเตอร์ DEM นำเข้า."
              },
              "palette": {
                "label": "จานสี",
                "description": "ชื่อจานสี (soft, atlas, high_relief, turbo, viridis, dem, grey, white)."
              },
              "reverse_palette": {
                "label": "กลับลำดับจานสี",
                "description": "กลับลำดับจานสี."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมทิศของแหล่งกำเนิดแสงเป็นองศา [0, 360]."
              },
              "altitude": {
                "label": "มุมเงย",
                "description": "ระดับความสูงของแหล่งกำเนิดแสงเป็นองศา [0, 90]."
              },
              "clipping_polygon": {
                "label": "โพลิกอนตัด",
                "description": "พาธเวกเตอร์โพลิกอน (เป็นตัวเลือก) จะแสดงผลเฉพาะเซลล์ DEM ที่อยู่ภายในโพลิกอนเท่านั้น."
              },
              "background_hgt_offset": {
                "label": "ออฟเซ็ตความสูงพื้นหลัง",
                "description": "ค่าออฟเซ็ตแนวดิ่งจากระดับความสูงต่ำสุดของ DEM ถึงระนาบพื้นหลัง."
              },
              "background_clr": {
                "label": "สีพื้นหลัง",
                "description": "สีพื้นหลังแบบ RGBA เป็นอาร์เรย์ [r,g,b,a]."
              },
              "attenuation_parameter": {
                "label": "พารามิเตอร์การลดทอน",
                "description": "เลขชี้กำลังการลดทอนตามระยะทาง (>= 0)."
              },
              "ambient_light": {
                "label": "แสงแวดล้อม",
                "description": "ปริมาณแสงแวดล้อมในช่วง [0, 1]."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณการขยายในแนวดิ่ง."
              },
              "max_dist": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะค้นหาเงาสูงสุดในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์."
              }
            }
          },
          "add_surface_information": {
            "name": "เพิ่มข้อมูลพื้นผิว",
            "description": "เพิ่มสถิติพื้นผิวรายฟีเจอร์จากแรสเตอร์ระดับความสูง — Z, ความยาวพื้นผิว 3 มิติ, พื้นที่ผิว 3 มิติ, Z ต่ำสุด/สูงสุด/เฉลี่ย และความลาดชันต่ำสุด/สูงสุด/เฉลี่ย — เป็นฟิลด์แอตทริบิวต์โดยไม่เปลี่ยนแปลงเรขาคณิตนำเข้า เช่นเดียวกับ ArcGIS Add Surface Information.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (จุด เส้น หรือโพลิกอน) ที่ใช้ CRS เดียวกับพื้นผิว."
              },
              "surface": {
                "label": "พื้นผิว",
                "description": "แรสเตอร์ระดับความสูง/พื้นผิวที่จะสุ่มค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "properties": {
                "label": "คุณสมบัติ",
                "description": "รายการกลุ่มคุณสมบัติพื้นผิวที่จะเพิ่ม คั่นด้วยจุลภาค: Z, SURFACE_LENGTH, SURFACE_AREA, MIN_MAX_MEAN_Z, MIN_MAX_AVG_SLOPE ค่าเริ่มต้น: ทั้งหมดที่ใช้ได้กับเรขาคณิตของเลเยอร์."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ช่วงการเพิ่มความหนาแน่นของจุดในหน่วย CRS สำหรับการสุ่มค่าตามเส้น/เส้นรอบรูป เซกเมนต์ที่ยาวจะถูกแบ่งเพื่อให้ทาบไปตามพื้นผิว ค่าเริ่มต้น: ขนาดเซลล์ของแรสเตอร์."
              },
              "method": {
                "label": "วิธี",
                "description": "การสุ่มค่าพื้นผิวที่จุดยอด: 'bilinear' (ค่าเริ่มต้น) หรือ 'nearest'."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์พื้นผิวที่จะสุ่มค่า โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "add_z_information": {
            "name": "เพิ่มข้อมูล Z",
            "description": "เพิ่มสถิติเรขาคณิตที่ได้จาก Z ให้กับฟีเจอร์ 3 มิติ — Z เฉพาะจุด/ต่ำสุด/สูงสุด/เฉลี่ย, ความยาว 3 มิติ, พื้นที่ผิวและปริมาตรของเมช, สถิติความลาดชัน และจำนวนจุดยอด (ArcGIS Add Z Information) vector_summary_statistics และ attribute_histogram สรุปแอตทริบิวต์ไม่ใช่เรขาคณิต ส่วน polygon_volume / surface_volume วัดแรสเตอร์เทียบกับระนาบอ้างอิง จึงยังไม่มีเครื่องมือใดที่ใส่ข้อมูลให้ฟีเจอร์เวกเตอร์ 3 มิติจากค่า Z ของตัวมันเอง.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์แบบจุด เส้น โพลิกอน หรือมัลติแพตช์ 3 มิติ โปรดทราบว่าค่า Z เท่ากับศูนย์ไม่สามารถแยกแยะจากการไม่มีค่า Z ได้ ดังนั้น 'features_with_z' จึงเป็นเพียงคำใบ้ ไม่ใช่การรับประกัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ฟีเจอร์นำเข้าที่เพิ่มฟิลด์ตามที่ร้องขอแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "properties": {
                "label": "คุณสมบัติ",
                "description": "ชุดย่อยที่คั่นด้วยจุลภาคของ spot_z, min_z, max_z, mean_z, length_3d, surface_area, volume, min_slope, max_slope, mean_slope, point_count, vertex_count ค่าเริ่มต้น: ทั้งหมด (ฟิลด์ที่ใช้ไม่ได้กับเรขาคณิตหนึ่ง ๆ จะถูกปล่อยเป็นค่าว่าง)."
              },
              "noise_filtering": {
                "label": "การกรองสัญญาณรบกวน",
                "description": "ร้อยละ (0-50) ที่ตัดออกจากปลายแต่ละด้านของการแจกแจงค่า Z ก่อนคำนวณ min_z / max_z เพื่อไม่ให้จุดยอดที่ผิดปกติเพียงจุดเดียวกำหนดค่าสุดขั้วที่รายงาน ค่าเริ่มต้น 0."
              }
            }
          },
          "adjust_3d_z": {
            "name": "ปรับค่า Z แบบ 3 มิติ",
            "description": "ใช้การแปลงหน่วย Z, ออฟเซ็ตแนวดิ่ง และ/หรือตัวคูณกับพิกัด Z ของฟีเจอร์ 3 มิติ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (ฟีเจอร์ควรมีค่าพิกัด Z)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (เป็นตัวเลือก) หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "factor": {
                "label": "ตัวประกอบ",
                "description": "ตัวคูณที่ใช้กับค่า Z (ค่าเริ่มต้น 1.0) มีประโยชน์สำหรับการขยายในแนวดิ่งหรือการปรับสเกลตามพื้นหลักฐาน."
              },
              "offset": {
                "label": "ออฟเซ็ต",
                "description": "ค่าออฟเซ็ตแนวดิ่งแบบบวกที่ใช้หลังจากตัวคูณ ในหน่วยเป้าหมาย (ค่าเริ่มต้น 0.0)."
              },
              "from_unit": {
                "label": "จากหน่วย",
                "description": "ค่าสำเร็จรูปของหน่วย Z ต้นทาง (meters, feet, us_feet, centimeters, millimeters, kilometers, miles, yards, inches) ต้องระบุ to_unit ด้วย."
              },
              "to_unit": {
                "label": "เป็นหน่วย",
                "description": "ค่าสำเร็จรูปของหน่วย Z เป้าหมาย ต้องระบุ from_unit ด้วย ค่า Z จะถูกปรับสเกลด้วย (เมตรต่อ from_unit / เมตรต่อ to_unit)."
              }
            }
          },
          "adjust_stream_to_raster": {
            "name": "ปรับลำน้ำให้ตรงกับแรสเตอร์",
            "description": "ย้ายจุดยอดของเส้นลำน้ำไปยังเส้นทางการไหลที่ DEM บ่งชี้ เพื่อให้ข้อมูลอุทกศาสตร์เวกเตอร์และพื้นผิวระดับความสูงสอดคล้องกัน โดยสแนปโหนดไปยังเซลล์ที่มีการสะสมการไหลสูงและติดตามสายโซ่ตัวชี้ D8 ระหว่างโหนดเหล่านั้น เป็นกระบวนการผกผันของการฝังลำน้ำ เช่นเดียวกับ ArcGIS Adjust Stream To Raster.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์พอลิไลน์ลำน้ำที่จะปรับแก้."
              },
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์พื้นผิวที่กำหนดเส้นทางการไหลที่แท้จริง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธลำน้ำที่ปรับแก้แล้วเป็นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "snap_distance": {
                "label": "ระยะทางสแนป",
                "description": "รัศมีค้นหาในหน่วยแผนที่สำหรับสแนปโหนดไปยังเซลล์ที่มีการสะสมการไหลสูง (ค่าเริ่มต้น: 5 เซลล์)."
              },
              "channel_threshold": {
                "label": "ค่าเกณฑ์ร่องน้ำ",
                "description": "ค่าการสะสมการไหล (เป็นจำนวนเซลล์) ที่เมื่อถึงหรือเกินค่านี้ เซลล์จะถือว่าเป็นร่องน้ำสำหรับการสแนป (ค่าเริ่มต้น: 1% ของการสะสมสูงสุดของ DEM)."
              },
              "remove_disconnected": {
                "label": "ลบส่วนที่ไม่เชื่อมต่อ",
                "description": "ตัดเส้นที่ไม่สามารถกำหนดเส้นทางได้เลยออก (ค่าเริ่มต้น true) เมื่อเป็นเท็จ เส้นเหล่านั้นจะถูกส่งผ่านโดยไม่เปลี่ยนแปลงและถูกทำเครื่องหมายไว้."
              },
              "output_stream_raster": {
                "label": "ผลลัพธ์แรสเตอร์ลำน้ำ",
                "description": "แรสเตอร์ (เป็นตัวเลือก) ที่ทำเครื่องหมายเซลล์ลำน้ำที่ปรับแก้แล้ว."
              },
              "output_flow_direction": {
                "label": "ผลลัพธ์ทิศทางการไหล",
                "description": "แรสเตอร์ตัวชี้ D8 (เป็นตัวเลือก) ที่ได้มาจาก DEM."
              },
              "output_split_points": {
                "label": "ผลลัพธ์จุดแยก",
                "description": "จุด (เป็นตัวเลือก) ที่การไล่ตามตัวชี้ล้มเหลวและมีการใช้วิธีสำรองแบบต้นทุนต่ำสุดแทน."
              }
            }
          },
          "aggregate_multidimensional_raster": {
            "name": "รวมกลุ่มแรสเตอร์หลายมิติ",
            "description": "จัดสไลซ์ของคิวบ์แรสเตอร์ตามมิติเป็นถัง แล้วลดทอนแต่ละถังให้เป็นหนึ่งแบนด์ผลลัพธ์ — ภาพรายวันเป็นภาพผสมรายเดือน หนึ่งทศวรรษเป็นค่าเฉลี่ยรายปี (ArcGIS Aggregate Multidimensional Raster) cell_statistics ของรอบที่ 17 ลดทอนสแตกได้เพียงเลเยอร์เดียวและไม่มีแนวคิดเรื่องมิติ ส่วน multidimensional_anomaly ของรอบที่ 16 ทำการดำเนินการตรงกันข้ามและคงจำนวนสไลซ์ไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือหนึ่งสไลซ์) หรือรายการแรสเตอร์ที่ซ้อนทับกันพอดีคั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์หลายแบนด์ผลลัพธ์ หนึ่งแบนด์ต่อหนึ่งช่วง หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "dimension": {
                "label": "มิติ",
                "description": "ชื่อของมิติ ใช้ในรายงานเท่านั้น (ค่าเริ่มต้น 'slice')."
              },
              "dimension_values": {
                "label": "ค่ามิติ",
                "description": "พิกัดของแต่ละสไลซ์คั่นด้วยจุลภาค ต้องเพิ่มขึ้นอย่างเคร่งครัด ค่าเริ่มต้นคือดัชนีสไลซ์ที่เริ่มนับจาก 1."
              },
              "aggregation_definition": {
                "label": "นิยามการรวมกลุ่ม",
                "description": "'all' (ค่าเริ่มต้น), 'interval_value', 'interval_count' หรือ 'interval_ranges'."
              },
              "interval_value": {
                "label": "ค่าช่วง",
                "description": "ความกว้างของช่วงในหน่วยของมิติ สำหรับ 'interval_value'."
              },
              "interval_count": {
                "label": "จำนวนช่วง",
                "description": "จำนวนช่วงที่มีความกว้างเท่ากัน สำหรับ 'interval_count'."
              },
              "interval_ranges": {
                "label": "ช่วงพิสัย",
                "description": "ช่วงที่ระบุชัดเจนในรูปแบบ 'start:end,start:end' สำหรับ 'interval_ranges'."
              },
              "aggregation_method": {
                "label": "วิธีการรวมกลุ่ม",
                "description": "'mean' (ค่าเริ่มต้น), 'majority', 'maximum', 'median', 'minimum', 'minority', 'percentile', 'range', 'std', 'sum' หรือ 'variety'."
              },
              "percentile_value": {
                "label": "ค่าเปอร์เซ็นไทล์",
                "description": "เปอร์เซ็นไทล์ในช่วง [0, 100] สำหรับวิธี 'percentile' (ค่าเริ่มต้น 50)."
              },
              "ignore_nodata": {
                "label": "ละเว้น NoData",
                "description": "ข้ามสไลซ์ที่ไม่มีข้อมูลในแต่ละเซลล์ (ค่าเริ่มต้น true) เมื่อเป็นเท็จ สไลซ์ที่ไม่มีข้อมูลเพียงสไลซ์เดียวจะทำให้ทั้งช่วงไม่มีข้อมูลที่เซลล์นั้น."
              }
            }
          },
          "aggregate_points": {
            "name": "รวมกลุ่มจุด",
            "description": "จัดกลุ่มจุดที่อยู่ภายในระยะทางการรวมกลุ่มซึ่งกันและกันให้เป็นโพลิกอนคลัสเตอร์ (คอนเวกซ์ฮัลล์หรือการรวมแบบบัฟเฟอร์) โดยแต่ละกลุ่มมีจำนวนจุดและผลรวมฟิลด์รายกลุ่มเป็นตัวเลือก เช่นเดียวกับ ArcGIS Aggregate Points.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า (Point หรือ MultiPoint)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "aggregation_distance": {
                "label": "ระยะทางการรวมกลุ่ม",
                "description": "ระยะทางสูงสุดระหว่างจุดที่จะให้รวมอยู่ในคลัสเตอร์เดียวกัน (หน่วยแผนที่)."
              },
              "min_points": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "จำนวนจุดต่ำสุดที่คลัสเตอร์ต้องมีจึงจะถูกส่งออก (ค่าเริ่มต้น 2 ตั้งเป็น 1 เพื่อเก็บจุดเดี่ยวไว้)."
              },
              "method": {
                "label": "วิธี",
                "description": "'convex_hull' (ค่าเริ่มต้น) หรือ 'buffer' (การรวมพื้นที่บัฟเฟอร์แล้วกร่อนกลับ)."
              },
              "sum_fields": {
                "label": "ฟิลด์ผลรวม",
                "description": "ฟิลด์ตัวเลขคั่นด้วยจุลภาคที่จะหาผลรวมต่อคลัสเตอร์ (คอลัมน์ผลลัพธ์ 'sum_<field>')."
              }
            }
          },
          "aggregate_polygons": {
            "name": "รวมกลุ่มโพลิกอน",
            "description": "รวมโพลิกอนที่อยู่ภายในระยะทางการรวมกลุ่มให้เป็นโพลิกอนที่ใหญ่ขึ้น (การปิดเชิงสัณฐาน) พร้อมตัวกรองพื้นที่ต่ำสุดและขนาดรูต่ำสุด และเลเยอร์สิ่งกีดขวางเป็นตัวเลือกที่การรวมกลุ่มห้ามข้าม.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "aggregation_distance": {
                "label": "ระยะทางการรวมกลุ่ม",
                "description": "โพลิกอนที่อยู่ห่างกันไม่เกินระยะทางนี้ (หน่วย CRS) จะถูกรวมเข้าด้วยกัน โดยกำหนดรัศมีการปิดเชิงสัณฐานเป็นครึ่งหนึ่งของค่านี้."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "ตัดโพลิกอนที่รวมแล้วซึ่งมีพื้นที่ (หน่วย CRS ยกกำลังสอง) ต่ำกว่าค่านี้ออก ค่าเริ่มต้น: เก็บไว้ทั้งหมด."
              },
              "min_hole_size": {
                "label": "ขนาดรูต่ำสุด",
                "description": "เติมช่องว่างภายในที่มีพื้นที่ (หน่วย CRS ยกกำลังสอง) ต่ำกว่าค่านี้ ค่าเริ่มต้น: เก็บช่องว่างไว้ทั้งหมด."
              },
              "barrier": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์เวกเตอร์กำแพงกั้น (เป็นตัวเลือก) (เส้นหรือโพลิกอน) ที่การรวมพื้นที่ต้องไม่ข้าม สะพานเชื่อมที่พาดข้ามกำแพงกั้นจะถูกตัดขาด โพลิกอนนำเข้าที่มีอยู่เดิมจะไม่ถูกแยกออกจากกัน."
              }
            }
          },
          "align_features": {
            "name": "จัดแนวฟีเจอร์",
            "description": "ปรับขอบของเส้น/โพลิกอนต้นทางให้สอดคล้องกับเลเยอร์เป้าหมายที่เชื่อถือได้ซึ่งอยู่ใกล้เคียงภายในระยะทางค้นหา โดยดึงขอบทั้งช่วง (ไม่ใช่เฉพาะจุดปลาย) ด้วยการไล่ระดับอย่างราบรื่นและทำให้ขอบเขตร่วมซ้อนทับกันพอดี เช่นเดียวกับ ArcGIS Align Features.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ต้นทางที่จะจัดแนว (เส้นหรือโพลิกอน)."
              },
              "target": {
                "label": "เป้าหมาย",
                "description": "เลเยอร์เป้าหมายที่เชื่อถือได้ (เส้น หรือขอบเขตโพลิกอน) ที่จุดยอดของต้นทางจะถูกดึงเข้าหา."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะทางสูงสุด (หน่วย CRS) ที่จุดยอดต้นทางจะถูกดึงเข้าหาเป้าหมายได้ จำเป็นต้องระบุ."
              },
              "match_field": {
                "label": "ฟิลด์จับคู่",
                "description": "ฟิลด์แอตทริบิวต์ต้นทางเป็นตัวเลือก เฉพาะขอบเป้าหมายที่มีค่า target_match_field ตรงกันเท่านั้นจึงจะเป็นตัวเลือกสำหรับจุดยอดของฟีเจอร์นั้น."
              },
              "target_match_field": {
                "label": "ฟิลด์จับคู่เป้าหมาย",
                "description": "ฟิลด์แอตทริบิวต์เป้าหมายที่ใช้เปรียบเทียบกับ match_field หากไม่ระบุจะใช้ชื่อของ match_field เป็นค่าเริ่มต้น และต้องระบุ match_field ด้วย."
              }
            }
          },
          "analyze_changes_ccdc": {
            "name": "วิเคราะห์การเปลี่ยนแปลงด้วย CCDC",
            "description": "การตรวจจับการเปลี่ยนแปลงต่อเนื่องแบบ CCDC บนอนุกรมเวลาภาพที่หนาแน่น (เช่นเดียวกับ ArcGIS Analyze Changes Using CCDC): การถดถอย OLS แบบฮาร์มอนิก (ตามฤดูกาล) รายพิกเซล ตามด้วยการทดสอบค่าคงเหลือแบบหน้าต่างเลื่อน (k×RMSE, จำนวนความผิดปกติต่อเนื่องต่ำสุด) ที่ประกาศจุดแตกหักและฟิตเซกเมนต์ใหม่ ให้ผลลัพธ์เป็นแรสเตอร์จำนวนจุดแตกหัก วันที่แตกหักครั้งแรก และ RMSE/ความลาดชัน/แอมพลิจูดของเซกเมนต์เริ่มต้น — ประวัติการเปลี่ยนแปลงตามฤดูกาลแบบหลายจุดแตกหักที่ landtrendr แบบรายปีและ change_vector_analysis แบบสองวันที่ทำไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือช่วงเวลาหนึ่ง) หรือรายการพาธแรสเตอร์แบนด์เดียวที่ซ้อนทับตรงกัน คั่นด้วยจุลภาค เรียงตามลำดับเวลา."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์จำนวนจุดเปลี่ยน (จำนวนจุดเปลี่ยนที่ตรวจพบต่อพิกเซล) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "dates": {
                "label": "วันที่",
                "description": "วันที่เชิงตัวเลขคั่นด้วยจุลภาค (ปีทศนิยมหรือเลขวัน) ให้ตรงกับแต่ละช่วงเวลา ค่าเริ่มต้น 0,1,2,..."
              },
              "period": {
                "label": "คาบ",
                "description": "ความยาวของหนึ่งรอบฤดูกาลในหน่วยของ 'dates' (ค่าเริ่มต้น 1.0 สำหรับปีทศนิยม ใช้ 365 สำหรับเลขวัน)."
              },
              "harmonic_order": {
                "label": "อันดับฮาร์มอนิก",
                "description": "จำนวนคู่ฮาร์มอนิกไซน์/โคไซน์ที่ความถี่รายปี (ค่าเริ่มต้น 1 = รายปีเท่านั้น; 2 จะเพิ่มพจน์รายครึ่งปี)."
              },
              "change_threshold": {
                "label": "ค่าเกณฑ์การเปลี่ยนแปลง",
                "description": "ค่าเกณฑ์ความผิดปกติเป็นตัวคูณ k ของ RMSE ของเซกเมนต์ (ค่าเริ่มต้น 3.0) ค่าคงเหลือ > k×RMSE จะทำเครื่องหมายการสังเกตนั้น."
              },
              "min_consecutive": {
                "label": "จำนวนต่อเนื่องต่ำสุด",
                "description": "จำนวนการสังเกตที่ถูกทำเครื่องหมายติดต่อกันที่ต้องมีเพื่อระบุว่าเกิดจุดเปลี่ยน (ค่าเริ่มต้น 3)."
              },
              "min_observations": {
                "label": "จำนวนค่าสังเกตต่ำสุด",
                "description": "จำนวนการสังเกตที่ใช้ได้ขั้นต่ำสำหรับเริ่มต้นแบบจำลองฮาร์มอนิกของเซกเมนต์ (ค่าเริ่มต้น 12) พิกเซลที่มีการสังเกตที่ใช้ได้น้อยกว่านี้จะกลายเป็น NoData."
              },
              "band": {
                "label": "แบนด์",
                "description": "สำหรับข้อมูลนำเข้าแบบรายการคั่นด้วยจุลภาค: แบนด์ที่จะอ่านจากแต่ละแรสเตอร์ โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1) จะถูกละเว้นเมื่อข้อมูลนำเข้าเป็นแรสเตอร์หลายแบนด์ไฟล์เดียว."
              },
              "break_date_output": {
                "label": "ผลลัพธ์วันที่เปลี่ยนแปลง",
                "description": "แรสเตอร์เป็นตัวเลือกแสดงวันที่ของจุดเปลี่ยนแรกที่ตรวจพบในแต่ละพิกเซล (เป็น NoData เมื่อไม่พบจุดเปลี่ยน)."
              },
              "rmse_output": {
                "label": "ผลลัพธ์ RMSE",
                "description": "แรสเตอร์เป็นตัวเลือกแสดงค่า RMSE ของแบบจำลองฮาร์มอนิกในเซกเมนต์เริ่มต้น."
              },
              "slope_output": {
                "label": "ผลลัพธ์ความลาดชัน",
                "description": "แรสเตอร์เป็นตัวเลือกแสดงสัมประสิทธิ์แนวโน้มเชิงเส้น (ความชัน) ของเซกเมนต์เริ่มต้น."
              },
              "amplitude_output": {
                "label": "ผลลัพธ์แอมพลิจูด",
                "description": "แรสเตอร์เป็นตัวเลือกแสดงแอมพลิจูดของฮาร์มอนิกแรกในเซกเมนต์เริ่มต้น sqrt(a²+b²)."
              }
            }
          },
          "apply_radiometric_calibration": {
            "name": "ใช้การปรับเทียบเชิงรังสี",
            "description": "แปลงค่าเลขดิจิทัลดิบของ SAR ให้เป็นค่าการกระเจิงกลับที่ปรับเทียบแล้ว — beta nought, sigma nought หรือ gamma nought — เพื่อให้ภาพที่บันทึกต่างกันเปรียบเทียบกันได้ทางกายภาพและใช้ค่าเกณฑ์ที่ตีพิมพ์ได้ (ArcGIS Apply Radiometric Calibration) ไม่มีเครื่องมือใดในทั้งสองรีจิสทรีทำสิ่งนี้: rescale_value_range เป็นการยืดเชิงเส้นที่ไม่มีความหมายเชิงรังสี ส่วน multilook, sar_coherence, ตัวกรอง speckle แบบ Lee และ compute_sar_indices ล้วนใช้ค่าใดก็ตามที่ได้รับมา.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ SAR ในรูปค่าดิจิทัล แอมพลิจูด ความเข้ม หรือ dB (ดู 'input_units')."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ค่าการสะท้อนกลับที่ปรับเทียบแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "calibration_type": {
                "label": "ชนิดการปรับเทียบ",
                "description": "'sigma0' (ค่าเริ่มต้น), 'beta0' หรือ 'gamma0' โดย sigma0 และ gamma0 ต้องระบุ 'incidence_angle'."
              },
              "calibration_constant": {
                "label": "ค่าคงที่การปรับเทียบ",
                "description": "ค่าคงที่การปรับเทียบเซนเซอร์ A (ค่าเริ่มต้น 1.0) จะถูกละเว้นเมื่อระบุ 'calibration_lut'."
              },
              "calibration_lut": {
                "label": "LUT การปรับเทียบ",
                "description": "แรสเตอร์เป็นตัวเลือกที่ซ้อนทับตรงกันซึ่งเก็บค่าคงที่การปรับเทียบ A รายเซลล์ ใช้แทน 'calibration_constant'."
              },
              "incidence_angle": {
                "label": "มุมตกกระทบ",
                "description": "มุมตกกระทบเฉพาะที่เป็นองศา: เป็นค่าคงที่ หรือพาธแรสเตอร์ที่ซ้อนทับตรงกัน จำเป็นสำหรับ 'sigma0' และ 'gamma0'."
              },
              "input_units": {
                "label": "หน่วยนำเข้า",
                "description": "'dn' (ค่าเริ่มต้น), 'amplitude', 'intensity' หรือ 'db' โดย dn และ amplitude จะถูกยกกำลังสองเป็นกำลังงาน ส่วน db จะถูกแปลงกลับเป็นเชิงเส้นก่อน."
              },
              "output_units": {
                "label": "หน่วยผลลัพธ์",
                "description": "'linear' (ค่าเริ่มต้น) หรือ 'db'."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะปรับเทียบ โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "apportion_polygon": {
            "name": "แบ่งสัดส่วนโพลิกอน",
            "description": "ถ่ายโอนแอตทริบิวต์เชิงตัวเลขจากเลเยอร์โพลิกอนต้นทางไปยังเลเยอร์โพลิกอนเป้าหมาย โดยแบ่งสัดส่วนตามพื้นที่ที่ซ้อนทับกัน (การรวมกลุ่มใหม่แบบดาซีเมตริกระหว่างระบบโซน) เช่นเดียวกับ ArcGIS Apportion Polygon.",
            "params": {
              "target": {
                "label": "เป้าหมาย",
                "description": "เลเยอร์โพลิกอนเป้าหมาย (รับค่าที่ถูกปันส่วน โดยฟีเจอร์และแอตทริบิวต์เดิมจะถูกรักษาไว้)."
              },
              "source": {
                "label": "ต้นทาง",
                "description": "เลเยอร์โพลิกอนต้นทางที่มีค่าซึ่งจะนำไปกระจาย."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ตัวเลขบนชั้นข้อมูลต้นทางที่จะปันส่วน คั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (สำเนาของชั้นข้อมูลเป้าหมายพร้อมคอลัมน์ที่ปันส่วนแล้ว) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'area' (ค่าเริ่มต้น; แบ่งตามพื้นที่ซ้อนทับ) หรือ 'weight' (แบ่งตามพื้นที่ซ้อนทับคูณกับ 'weight_field' ของชั้นข้อมูลเป้าหมาย)."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขของชั้นข้อมูลเป้าหมายที่ใช้เป็นน้ำหนักเพิ่มเติมเมื่อ method=weight."
              },
              "suffix": {
                "label": "คำต่อท้าย",
                "description": "คำต่อท้ายสำหรับคอลัมน์ผลลัพธ์ที่ปันส่วนแล้ว ค่าเริ่มต้น '_app'."
              }
            }
          },
          "areal_interpolation": {
            "name": "การประมาณค่าเชิงพื้นที่",
            "description": "ทำนายค่ารวมสำหรับโพลิกอนเป้าหมายจากโพลิกอนต้นทางที่มีขอบเขตภูมิศาสตร์ต่างกัน โดยฟิตพื้นผิวพื้นฐานที่เรียบแล้วอินทิเกรตใหม่แทนการถ่วงน้ำหนักตามพื้นที่ (ArcGIS Areal Interpolation Layer To Polygons) apportion_polygon สมมติว่าปริมาณกระจายสม่ำเสมอภายในโพลิกอนต้นทางแต่ละอัน — ซึ่งเป็นข้อบกพร่องคลาสสิกของปัญหาหน่วยพื้นที่ที่เปลี่ยนแปลงได้ — และไม่ให้ค่าความคลาดเคลื่อนมาตรฐาน ส่วนชุดเครื่องมือคริกกิงที่มาพร้อมกันรองรับเฉพาะข้อมูลจุดทั้งหมดและไม่สามารถรับค่าสังเกตแบบโพลิกอนได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "โพลิกอนต้นทางที่มีฟิลด์ค่าที่วัดได้."
              },
              "target": {
                "label": "เป้าหมาย",
                "description": "โพลิกอนเป้าหมายที่ต้องการทำนายค่า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ค่าตัวเลขบนโพลิกอนต้นทาง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "โพลิกอนเป้าหมายที่มี PREDICTED, PRED_STD_ERR และค่าวินิจฉัยต่อท้าย หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "field_type": {
                "label": "ชนิดฟิลด์",
                "description": "'count' (ค่าเริ่มต้น): ค่ารวมเชิงปริมาณ (extensive) ซึ่งจะถูกปรับสเกลเพื่อรักษาผลรวมของต้นทางไว้ 'average': ค่าเฉลี่ยเชิงคุณลักษณะ (intensive) ซึ่งทำนายโดยตรงโดยไม่ปรับสเกล."
              },
              "discretization": {
                "label": "การแบ่งช่วง",
                "description": "จำนวนจุดภายในโดยประมาณที่ใช้แทนพื้นที่รองรับของแต่ละโพลิกอน (ค่าเริ่มต้น 25) ค่าที่สูงกว่าจะแม่นยำกว่าแต่ช้ากว่ามาก."
              },
              "model": {
                "label": "โมเดล",
                "description": "แบบจำลองแวริโอแกรม: 'exponential' (ค่าเริ่มต้น), 'spherical' หรือ 'gaussian'."
              },
              "preserve_total": {
                "label": "คงผลรวม",
                "description": "ปรับสเกลค่าทำนายแบบ count เพื่อให้ผลรวมของชั้นข้อมูลเป้าหมายตรงกับผลรวมของต้นทาง (ค่าเริ่มต้นเป็นจริงสำหรับ 'count' และปิดเสมอสำหรับ 'average') จะใช้เฉพาะเมื่อชั้นข้อมูลเป้าหมายครอบคลุมต้นทางเท่านั้น — ตัวคูณที่ใช้จะถูกรายงานเป็น 'mass_scale' เพื่อให้เห็นได้ว่าการประมวลผลครอบคลุมเพียงบางส่วน."
              }
            }
          },
          "attribute_uncertainty": {
            "name": "ความไม่แน่นอนของแอตทริบิวต์",
            "description": "การถ่ายทอดความคลาดเคลื่อนแบบ Monte Carlo ที่กำหนดค่าเริ่มต้นสุ่มได้บนแอตทริบิวต์ที่ไม่แน่นอน (เช่นเดียวกับ ArcGIS Attribute Uncertainty): สุ่มค่าจำลองแบบ NORMAL/UNIFORM จากฟิลด์ความคลาดเคลื่อนรายฟีเจอร์หรือคู่ขอบเขต แล้วเพิ่มสถิติ mean/std/p5/p50/p95/CV.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ (หรือตาราง) นำเข้าที่มีแอตทริบิวต์ซึ่งมีความไม่แน่นอน."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่เก็บค่าประมาณ (ค่าเฉลี่ย/ค่ากลางของการแจกแจง) ของแต่ละฟีเจอร์."
              },
              "error_field": {
                "label": "ฟิลด์ความคลาดเคลื่อน",
                "description": "ฟิลด์ตัวเลขที่เก็บความไม่แน่นอนแบบสมมาตร: ความคลาดเคลื่อนมาตรฐานสำหรับ NORMAL หรือครึ่งหนึ่งของช่วงสำหรับ UNIFORM ระบุฟิลด์นี้ หรือระบุทั้ง lower_field/upper_field."
              },
              "lower_field": {
                "label": "ฟิลด์ขอบล่าง",
                "description": "ฟิลด์ตัวเลขที่เก็บขอบเขตล่างของค่า ใช้ร่วมกับ upper_field แทน error_field."
              },
              "upper_field": {
                "label": "ฟิลด์ขอบบน",
                "description": "ฟิลด์ตัวเลขที่เก็บขอบเขตบนของค่า ใช้ร่วมกับ lower_field แทน error_field."
              },
              "distribution": {
                "label": "การแจกแจง",
                "description": "การแจกแจงความคลาดเคลื่อน: NORMAL (ค่าเริ่มต้น) หรือ UNIFORM."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนการจำลองแบบมอนติคาร์โลต่อฟีเจอร์ (ค่าเริ่มต้น 1000)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับตัวสร้างเลขสุ่มแบบกำหนดได้ (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์ผลลัพธ์ที่มีสถิติต่อท้าย หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "band_collection_statistics": {
            "name": "สถิติชุดแบนด์",
            "description": "ค่าต่ำสุด/สูงสุด/เฉลี่ย/ส่วนเบี่ยงเบนมาตรฐานรายแบนด์ พร้อมเมทริกซ์ความแปรปรวนร่วมและสหสัมพันธ์ระหว่างแบนด์สำหรับสแตกแรสเตอร์ (เช่นเดียวกับ ArcGIS Band Collection Statistics) — สรุปหลายตัวแปร (ขั้นเตรียมก่อน PCA / การจำแนก) ที่ชุดเครื่องมือที่มาพร้อมกันยังขาด แตกต่างจาก cell_statistics ที่ทำงานรายพิกเซล.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือหนึ่งเลเยอร์) หรือรายการแรสเตอร์ที่ซ้อนทับตรงกันคั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับรายงานสถิติ เมทริกซ์จะถูกส่งคืนในผลลัพธ์เสมอ."
              },
              "detail": {
                "label": "รายละเอียด",
                "description": "'detailed' (ค่าเริ่มต้น) จะรวมเมทริกซ์ความแปรปรวนร่วม/สหสัมพันธ์ ส่วน 'brief' จะส่งคืนเฉพาะสถิติรายแบนด์."
              }
            }
          },
          "bivariate_spatial_association": {
            "name": "ความสัมพันธ์เชิงพื้นที่แบบสองตัวแปร",
            "description": "สถิติ L ของ Lee ทั้งระดับรวมและเฉพาะที่ซึ่งวัดว่าตัวแปรต่อเนื่องสองตัวแปรผันร่วมกันเชิงพื้นที่ที่ใด พร้อมค่า p จากการทดสอบการสับเปลี่ยนที่กำหนดค่าเริ่มต้นสุ่มได้ และคลาส High-High/High-Low/Low-High/Low-Low รายฟีเจอร์ — เช่นเดียวกับ ArcGIS Bivariate Spatial Association เป็นคู่ขนานสำหรับสนามต่อเนื่องของ colocation_analysis.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าที่มีฟิลด์ตัวเลขสองฟิลด์."
              },
              "x_field": {
                "label": "ฟิลด์ X",
                "description": "ฟิลด์ตัวแปรตัวเลขที่หนึ่ง."
              },
              "y_field": {
                "label": "ฟิลด์ Y",
                "description": "ฟิลด์ตัวแปรตัวเลขที่สอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์ที่มีฟิลด์ค่า L เฉพาะที่ ค่า p และคลาส หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านที่ใกล้ที่สุดสำหรับน้ำหนักเชิงพื้นที่ (ค่าเริ่มต้น 8)."
              },
              "permutations": {
                "label": "จำนวนการสับเปลี่ยน",
                "description": "จำนวนการสับเปลี่ยนสำหรับการทดสอบนัยสำคัญ (ค่าเริ่มต้น 199; 0 คือปิดใช้งาน)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการสับเปลี่ยน (ค่าเริ่มต้น 1) เพื่อให้ได้ผลลัพธ์ที่ทำซ้ำได้."
              }
            }
          },
          "block_statistics": {
            "name": "สถิติรายบล็อก",
            "description": "แบ่งแรสเตอร์เป็นบล็อกที่ไม่ซ้อนทับกัน ลดทอนแต่ละบล็อกด้วยสถิติ แล้วเขียนค่านั้นกลับลงทุกเซลล์ในบล็อกที่ความละเอียดของข้อมูลนำเข้า (ArcGIS Block Statistics) เสริม focal_statistics (หน้าต่างซ้อนทับ), zonal_statistics (ตามเลเยอร์โซน) และ cell_statistics (ข้ามสแตก) ที่มีอยู่ ต่างจาก aggregate_raster ที่มาพร้อมกันตรงที่คงขนาดเซลล์ไว้ ดังนั้นข้อมูลนำเข้า - ค่าเฉลี่ยบล็อกจึงให้พื้นผิวค่าคงเหลือเฉพาะที่ และยังเพิ่มสถิติเชิงกลุ่ม majority/minority/median/variety.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "เลือกหนึ่งค่าจาก mean (ค่าเริ่มต้น), majority, maximum, median, minimum, minority, range, std, sum, variety."
              },
              "neighborhood": {
                "label": "บริเวณใกล้เคียง",
                "description": "รูปทรงบล็อก: rectangle (ค่าเริ่มต้น), circle, annulus หรือ wedge."
              },
              "size": {
                "label": "ขนาด",
                "description": "ขนาดบล็อกเป็นจำนวนเซลล์: 'width,height' สำหรับ rectangle (ค่าเริ่มต้น '3,3'), 'radius' สำหรับ circle/wedge หรือ 'inner,outer' สำหรับ annulus."
              },
              "start_angle": {
                "label": "มุมเริ่มต้น",
                "description": "มุมเริ่มต้นของ wedge เป็นองศาทวนเข็มนาฬิกาจากทิศตะวันออก (ค่าเริ่มต้น 0)."
              },
              "end_angle": {
                "label": "มุมสิ้นสุด",
                "description": "มุมสิ้นสุดของ wedge เป็นองศาทวนเข็มนาฬิกาจากทิศตะวันออก (ค่าเริ่มต้น 90)."
              },
              "ignore_nodata": {
                "label": "ละเว้น NoData",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะคำนวณบล็อกจากเซลล์ที่ใช้ได้เท่านั้น หากเป็นเท็จ เซลล์ NoData เพียงเซลล์เดียวจะทำให้ทั้งบล็อกเป็น NoData."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "boundary_clean": {
            "name": "ทำความสะอาดขอบเขต",
            "description": "ทำขอบเขตโซนของแรสเตอร์เชิงกลุ่มให้เรียบและลบจุดรบกวนด้วยการกรองค่าส่วนใหญ่หรือการทำความสะอาดขอบเขตแบบขยาย/หด ซึ่งเป็นขั้นตอนทำความสะอาดมาตรฐานก่อนการสร้างโพลิกอน — เช่นเดียวกับ ArcGIS Boundary Clean / Majority Filter.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าแบบจัดหมวดหมู่ (ค่าเป็นจำนวนเต็ม)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'majority' (กำจัดจุดรบกวนด้วยเสียงข้างมากของเพื่อนบ้าน; ค่าเริ่มต้น) หรือ 'expand_shrink' (การทำให้ขอบเขตเรียบแบบ Boundary Clean)."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "การเชื่อมต่อของเพื่อนบ้าน: 4 (rook) หรือ 8 (queen; ค่าเริ่มต้น)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "โหมด majority เท่านั้น: 'majority' (เสียงข้างมากเด็ดขาดของเพื่อนบ้าน; ค่าเริ่มต้น) หรือ 'half' (อย่างน้อยครึ่งหนึ่ง)."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบที่จะประมวลผล (ค่าเริ่มต้น 1)."
              },
              "sort": {
                "label": "เรียงลำดับ",
                "description": "โหมด expand_shrink เท่านั้น: ลำดับความสำคัญของโซนตามจำนวนเซลล์ — 'descending' (โซนใหญ่กว่าชนะ; ค่าเริ่มต้น), 'ascending' (โซนเล็กกว่าชนะ) หรือ 'none'."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "buffer_3d": {
            "name": "บัฟเฟอร์ 3 มิติ",
            "description": "สร้างบัฟเฟอร์ของจุดและเส้น 3 มิติให้เป็นเรขาคณิตเชิงปริมาตร (ทรงกลมและแคปซูล) โดยให้ผลลัพธ์เป็นพื้นผิวสามเหลี่ยม เช่นเดียวกับ ArcGIS Buffer 3D.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดหรือเส้นโพลีไลน์ 3 มิติ นำเข้า (หากไม่มีค่า Z จะถือเป็น 0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "รัศมีบัฟเฟอร์ในหน่วยแผนที่."
              },
              "distance_field": {
                "label": "ฟิลด์ระยะทาง",
                "description": "ฟิลด์รัศมีรายฟีเจอร์เป็นตัวเลือก ใช้แทน 'distance'."
              },
              "shape": {
                "label": "รูปร่าง",
                "description": "round (ค่าเริ่มต้น; ปลายทรงครึ่งทรงกลม) หรือ flat (ทรงกระบอกที่มีปลายแบน)."
              },
              "quality": {
                "label": "คุณภาพ",
                "description": "ความละเอียดของการแบ่งย่อย: จำนวนเซกเมนต์รอบเส้นรอบวง (ค่าเริ่มต้น 12, ต่ำสุด 4, สูงสุด 64)."
              }
            }
          },
          "buffer_vector": {
            "name": "บัฟเฟอร์เวกเตอร์",
            "description": "ขยายเรขาคณิตออกไปตามระยะทางที่กำหนด สร้างบัฟเฟอร์โพลิกอนพร้อมรูปแบบปลาย/รอยต่อที่ปรับแต่งได้ การยุบรวมเป็นตัวเลือกที่จะรวมบัฟเฟอร์ที่ซ้อนทับกันเป็นโพลิกอนเดียว.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ระยะทางบัฟเฟอร์ในหน่วยแผนที่."
              },
              "quadrant_segments": {
                "label": "จำนวนเซกเมนต์ต่อจตุภาค",
                "description": "ความละเอียดของส่วนโค้งเป็นจำนวนเซกเมนต์ต่อหนึ่งในสี่วงกลม ค่าเริ่มต้นคือ 8."
              },
              "cap_style": {
                "label": "รูปแบบปลาย",
                "description": "รูปแบบปลายเส้น: round, flat หรือ square."
              },
              "join_style": {
                "label": "รูปแบบรอยต่อ",
                "description": "รูปแบบการเชื่อมมุม: round, bevel หรือ mitre."
              },
              "mitre_limit": {
                "label": "ขีดจำกัดมุมแหลม",
                "description": "ขีดจำกัดการเชื่อมแบบ mitre ที่ใช้เมื่อ join_style=mitre ค่าเริ่มต้นคือ 5.0."
              },
              "dissolve": {
                "label": "ยุบรวม",
                "description": "ยุบรวมบัฟเฟอร์ที่ซ้อนทับกันให้เป็นโพลิกอนเดียว ค่าเริ่มต้นคือเท็จ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์."
              }
            }
          },
          "build_balanced_zones": {
            "name": "สร้างโซนสมดุล",
            "description": "จัดกลุ่มโพลิกอนที่ติดกันให้เป็นโซนเชื่อมต่อตามจำนวนเป้าหมาย โดยสร้างสมดุลของจำนวนฟีเจอร์ ผลรวมแอตทริบิวต์ หรือความเป็นเอกพันธ์ของแอตทริบิวต์ ด้วยการแบ่งส่วนแบบต้นไม้ทอดข้าม SKATER.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "zones": {
                "label": "โซน",
                "description": "จำนวนโซนเป้าหมายที่ต้องการสร้าง."
              },
              "criterion": {
                "label": "เกณฑ์",
                "description": "เป้าหมายการจัดสมดุล: 'homogeneity' (ค่าเริ่มต้น), 'equal_count' หรือ 'equal_sum' (ของฟิลด์แรก)."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขสำหรับการวิเคราะห์ คั่นด้วยจุลภาค จำเป็นสำหรับ 'homogeneity' และ 'equal_sum' และใช้กำหนดน้ำหนักขอบของต้นไม้แผ่ทั่ว."
              },
              "contiguity": {
                "label": "ความต่อเนื่องติดกัน",
                "description": "กฎการประชิด: 'rook' (ใช้ขอบร่วมกัน, ค่าเริ่มต้น) หรือ 'queen' (ใช้ขอบหรือจุดยอดร่วมกัน)."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ระยะทางสูงสุดที่จะถือว่าเซกเมนต์ขอบเขตสองเส้นใช้ร่วมกัน (rook) ค่าเริ่มต้น 1e-6."
              }
            }
          },
          "build_seamlines": {
            "name": "สร้างเส้นรอยต่อ",
            "description": "เมื่อมีชุดแรสเตอร์ที่ซ้อนทับกัน (และขอบเขตรอยเท้าเป็นตัวเลือก) ให้คำนวณว่าควรตัดแต่ละภาพตรงไหนเพื่อให้โมเสกต่อกันตามรอยต่อที่มองเห็นน้อยที่สุด โดยให้ผลลัพธ์เป็นโพลิกอนเส้นรอยต่อที่ไม่ซ้อนทับกันหนึ่งอันต่อภาพ ผ่านการกำหนดแบบ Voronoi, ลำดับความสำคัญ, เชิงรังสี หรือคำนึงถึงขอบ เช่นเดียวกับ ArcGIS Build Seamlines.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์ที่จะนำมาต่อภาพ คั่นด้วยจุลภาค/อัฒภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธโพลิกอนแนวตะเข็บผลลัพธ์ (หนึ่งฟีเจอร์ต่อหนึ่งแรสเตอร์นำเข้า) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "footprints": {
                "label": "ขอบเขตรอยเท้า",
                "description": "เลเยอร์โพลิกอนเป็นตัวเลือกที่ระบุขอบเขตข้อมูลที่ใช้ได้ของแต่ละแรสเตอร์ เรียงตามลำดับข้อมูลนำเข้า หากไม่ระบุจะคำนวณจากข้อมูลที่ใช้ได้."
              },
              "method": {
                "label": "วิธี",
                "description": "'voronoi' (ค่าเริ่มต้น), 'order', 'radiometry' หรือ 'edge_detection'."
              },
              "sort_ascending": {
                "label": "เรียงจากน้อยไปมาก",
                "description": "สำหรับวิธี 'order': จริง (ค่าเริ่มต้น) ให้ความสำคัญกับแรสเตอร์ที่มาก่อน เท็จให้ความสำคัญกับแรสเตอร์ที่มาทีหลัง."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์สำหรับการวิเคราะห์ (ค่าเริ่มต้น: ขนาดเซลล์ที่ละเอียดที่สุดของข้อมูลนำเข้า)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่ใช้สำหรับวิธีเชิงเรดิโอเมตริก โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "min_region_size": {
                "label": "ขนาดภูมิภาคต่ำสุด",
                "description": "กำหนดพื้นที่ที่ถูกจัดสรรซึ่งมีขนาดเล็กกว่าจำนวนเซลล์นี้ให้กับภาพข้างเคียงใหม่ (ค่าเริ่มต้น 0 คือเก็บไว้ทั้งหมด)."
              },
              "blend_width": {
                "label": "ความกว้างการผสม",
                "description": "ความกว้างของการไล่ขอบในหน่วยแผนที่ ซึ่งจะเขียนเป็นแอตทริบิวต์สำหรับการต่อภาพในขั้นถัดไป (ค่าเริ่มต้น 0)."
              },
              "blend_type": {
                "label": "ชนิดการผสม",
                "description": "'both' (ค่าเริ่มต้น), 'inside' หรือ 'outside' ซึ่งจะเขียนเป็นแอตทริบิวต์."
              }
            }
          },
          "calculate_adjacent_fields": {
            "name": "คำนวณฟิลด์ข้างเคียง",
            "description": "เติมฟิลด์แผ่นข้างเคียงแปดทิศทาง (N, NE, E, SE, S, SW, W, NW) ให้แต่ละไทล์ของกริดดัชนีชุดแผนที่ด้วยชื่อหน้าที่ติดกัน สำหรับป้ายกำกับขอบกระดาษ 'ต่อในแผ่นที่ …' — เช่นเดียวกับ ArcGIS Calculate Adjacent Fields.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "กริดดัชนีชุดแผนที่แบบโพลิกอนนำเข้า (เช่น ผลลัพธ์ของ grid_index_features)."
              },
              "page_name_field": {
                "label": "ฟิลด์ชื่อหน้า",
                "description": "ฟิลด์ที่ค่าของมันใช้เป็นป้ายกำกับของแต่ละหน้า (เขียนลงในฟิลด์ทิศทางของหน้าข้างเคียง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์โพลิกอนผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "include_diagonal": {
                "label": "รวมแนวทแยง",
                "description": "เติมค่าในฟิลด์แนวทแยงทั้งสี่ (NE, SE, SW, NW) จากไทล์ที่สัมผัสกันที่มุมด้วย ค่าเริ่มต้นคือจริง."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ปัดจุดยอดลงบนกริดขนาดนี้ (หน่วย CRS) ก่อนจับคู่เส้นขอบ ค่าเริ่มต้น 0 (ใช้พิกัดที่แม่นยำ)."
              }
            }
          },
          "calculate_central_meridian_and_parallels": {
            "name": "คำนวณเส้นเมริเดียนกลางและเส้นขนาน",
            "description": "คำนวณเส้นเมริเดียนกลางและเส้นขนานมาตรฐานสองเส้นรายฟีเจอร์จากขอบเขตของแต่ละฟีเจอร์ สำหรับชุดแผนที่และหน้าแผนที่เล่ม เช่นเดียวกับ ArcGIS Calculate Central Meridian And Parallels.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์นำเข้าในระบบพิกัดภูมิศาสตร์ (ลองจิจูด/ละติจูด) โดยทั่วไปคือกริดหน้าจาก grid_index_features."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์เมริเดียนกลางที่จะเขียน (ค่าเริ่มต้น 'central_meridian')."
              },
              "standard_offset": {
                "label": "ออฟเซ็ตมาตรฐาน",
                "description": "สัดส่วนของช่วงละติจูดที่ใช้ร่นเส้นขนานมาตรฐานแต่ละเส้นเข้ามาจากขอบของฟีเจอร์ (ค่าเริ่มต้น 0.1667 ตามกฎ 1/6 ของ Esri) ต้องอยู่ในช่วง [0, 0.5)."
              }
            }
          },
          "calculate_composite_index": {
            "name": "คำนวณดัชนีผสม",
            "description": "รวมแอตทริบิวต์เชิงตัวเลขหลายรายการเป็นดัชนีผสม (เช่นเดียวกับ ArcGIS Calculate Composite Index): การปรับสเกลรายตัวแปร (min-max/z-score/เปอร์เซ็นไทล์) พร้อมการกลับทิศเป็นตัวเลือก การรวมแบบถ่วงน้ำหนัก (ค่าเฉลี่ย/ผลรวม/ค่าเฉลี่ยเรขาคณิต) และการปรับสเกลผลลัพธ์ — เป็นคู่ฝั่งเวกเตอร์ของ fuzzy_overlay.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ (หรือตาราง) นำเข้าที่มีฟิลด์ตัวแปรตัวเลข."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวแปรคั่นด้วยจุลภาค เติม ':reverse' ต่อท้ายฟิลด์ที่ค่าสูงควรทำให้ดัชนีลดลง (เช่น 'income:reverse,unemployment')."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์ดัชนีแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "scaling": {
                "label": "การปรับสเกล",
                "description": "การปรับสเกลรายตัวแปร: 'minmax' (ค่าเริ่มต้น), 'zscore', 'percentile' หรือ 'none'."
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "น้ำหนักคั่นด้วยจุลภาคให้ตรงกับ 'fields' (ค่าเริ่มต้น: น้ำหนักเท่ากัน)."
              },
              "combine": {
                "label": "รวมกัน",
                "description": "วิธีรวมตัวแปรที่ปรับสเกลแล้ว: 'mean' (ค่าเริ่มต้น), 'sum' หรือ 'geometric_mean'."
              },
              "output_range": {
                "label": "พิสัยผลลัพธ์",
                "description": "ปรับสเกลดัชนีรวม: 'minmax' (0–1, ค่าเริ่มต้น), 'zero_to_100', 'zscore' หรือ 'none'."
              }
            }
          },
          "calculate_distance_band": {
            "name": "คำนวณแถบระยะทาง",
            "description": "รายงานระยะทางต่ำสุด เฉลี่ย และสูงสุดที่ทำให้ทุกฟีเจอร์มีเพื่อนบ้านอย่างน้อย N ราย (เช่นเดียวกับ ArcGIS Calculate Distance Band from Neighbor Count) — การวินิจฉัยค่าเกณฑ์ที่รับประกันว่าไม่มีฟีเจอร์ใดไร้เพื่อนบ้านก่อนทำสถิติเชิงพื้นที่ตามระยะทาง generate_spatial_weights_matrix ที่มาพร้อมกันสร้างเมทริกซ์แต่ไม่เคยรายงานแถบระยะทางนี้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุด/ฟีเจอร์นำเข้า (ระบบพิกัดฉาย; ระยะทางเป็นหน่วยของระบบพิกัดนั้น)."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้าน k (>= 1) ค่าเริ่มต้น 1."
              },
              "distance_method": {
                "label": "วิธีวัดระยะทาง",
                "description": "'euclidean' (ค่าเริ่มต้น) หรือ 'manhattan'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับตาราง feature_id,kth_neighbor_distance."
              }
            }
          },
          "calculate_end_time": {
            "name": "คำนวณเวลาสิ้นสุด",
            "description": "เติมฟิลด์เวลาสิ้นสุดจากเวลาเริ่มต้นของเรกคอร์ดถัดไปภายในแต่ละกลุ่มเอนทิตี เปลี่ยนค่าสังเกต ณ ขณะเวลาให้เป็นเรกคอร์ดที่มีช่วงเวลา (ArcGIS Calculate End Time) transform_fields แปลงค่ารายค่า และ summary_statistics รวมกลุ่ม แต่ไม่มีเครื่องมือใดเติมค่าเชิงเวลาตามลำดับแถว.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์หรือตารางนำเข้า."
              },
              "start_field": {
                "label": "ฟิลด์เริ่มต้น",
                "description": "ฟิลด์เวลา: เป็นค่า epoch เชิงตัวเลข หรือสตริงวันที่/วันที่-เวลาแบบ ISO-8601."
              },
              "end_field": {
                "label": "ฟิลด์สิ้นสุด",
                "description": "ฟิลด์ที่จะรับค่าเวลาสิ้นสุด (ค่าเริ่มต้น 'END_TIME') จะถูกสร้างขึ้นหากยังไม่มี และเขียนทับหากมีอยู่แล้ว."
              },
              "id_fields": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์สำหรับจัดกลุ่ม คั่นด้วยจุลภาคหรืออัฒภาค เวลาสิ้นสุดจะคำนวณภายในกลุ่มเดียวกันเท่านั้น ไม่ข้ามขอบเขตของกลุ่ม."
              },
              "last_record": {
                "label": "เรกคอร์ดสุดท้าย",
                "description": "สิ่งที่จะเขียนในแถวสุดท้ายของแต่ละกลุ่ม: 'null' (ค่าเริ่มต้น), 'same_as_start' หรือ 'duration' (เวลาเริ่มต้น + default_duration)."
              },
              "default_duration": {
                "label": "ระยะเวลาเริ่มต้น",
                "description": "จำนวนวินาทีที่บวกเพิ่มจากเวลาเริ่มต้นสำหรับ last_record แบบ 'duration'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "calculate_grid_convergence_angle": {
            "name": "คำนวณมุมลู่เข้าของกริด",
            "description": "คำนวณมุมลู่เข้าของกริดระหว่างทิศเหนือกริดกับทิศเหนือจริงรายฟีเจอร์ จากลองจิจูด/ละติจูดของเซนทรอยด์และเส้นเมริเดียนกลาง (ค่าเริ่มต้นคือเส้นเมริเดียนกลางโซน UTM ของฟีเจอร์เอง) แล้วเขียนลงฟิลด์เพื่อหมุนสัญลักษณ์/ป้ายกำกับให้ถูกต้องบนแผนที่ที่ฉายแล้ว — เช่นเดียวกับ ArcGIS Calculate Grid Convergence Angle ใช้ข้อตกลงแบบภูมิศาสตร์ (ตามเข็มนาฬิกาจากทิศเหนือ) หรือแบบเลขคณิต (ทวนเข็มนาฬิกาจากทิศตะวันออก) เป็นคณิตศาสตร์ล้วน ไม่ใช้ PROJ และไม่เกี่ยวข้องกับดัชนีภูมิประเทศ convergence_index ที่มาพร้อมกัน เรขาคณิตจะถูกอ่านเป็นองศาลองจิจูด/ละติจูด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (เรขาคณิตชนิดใดก็ได้) ในระบบพิกัดภูมิศาสตร์ (ลองจิจูด/ละติจูดเป็นองศา, EPSG:4326)."
              },
              "angle_field": {
                "label": "ฟิลด์มุม",
                "description": "ชื่อฟิลด์ทศนิยมที่จะเก็บมุมลู่เข้าเป็นองศา ค่าเริ่มต้น 'GRID_CONV'."
              },
              "angle_type": {
                "label": "ชนิดมุม",
                "description": "ระบบมุมที่ใช้: 'geographic' (องศาตามเข็มนาฬิกาจากทิศเหนือ ค่าบวกไปทางตะวันออก) หรือ 'arithmetic' (องศาทวนเข็มนาฬิกาจากทิศตะวันออก, 90 − geographic) ค่าเริ่มต้น 'geographic'."
              },
              "central_meridian": {
                "label": "เส้นเมริเดียนกลาง",
                "description": "ลองจิจูดของเมริเดียนกลางเป็นองศา หากไม่ระบุ แต่ละฟีเจอร์จะใช้เมริเดียนกลางของโซน UTM ของตนเองที่คำนวณจากลองจิจูดของฟีเจอร์นั้น."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "calculate_missing_z_values": {
            "name": "คำนวณค่า Z ที่หายไป",
            "description": "เติมค่า Z ที่เป็นตัวยึดตำแหน่งหรือขาดหายตามแนวฟีเจอร์ 3 มิติ โดยประมาณค่าจากค่า Z ที่ถูกต้องทั้งสองด้าน เช่นเดียวกับ ArcGIS Calculate Missing Z Values.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์นำเข้าที่มีจุดยอดแบบ 3 มิติ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "placeholder": {
                "label": "ตัวยึดตำแหน่ง",
                "description": "ค่าเซนทิเนลที่ใช้ระบุว่าไม่มีค่า Z (เช่น -9999) จุดยอดที่ไม่มีค่า Z เลยจะถือว่าไม่มีค่าเสมอ."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีเติมค่า: 'linear' (ค่าเริ่มต้น; ประมาณค่าตามระยะทางไปตามฟีเจอร์) หรือ 'nearest'."
              },
              "extrapolate": {
                "label": "ประมาณค่านอกช่วง",
                "description": "เติมช่องว่างที่ต้นและท้ายโดยขยายค่าจากจุดยอดที่ใช้ได้ซึ่งใกล้ที่สุด (ค่าเริ่มต้นเป็นเท็จ; จุดยอดที่ไม่ได้เติมค่าจะถูกนับแทน)."
              }
            }
          },
          "calculate_motion_statistics": {
            "name": "คำนวณสถิติการเคลื่อนที่",
            "description": "ใส่สถิติการเคลื่อนที่ให้จุดเส้นทางเคลื่อนที่ที่มีเวลากำกับ — ความเร็ว ความเร่ง แบริง ระยะทางช่วงและระยะทางสะสม เวลาที่ผ่านไป และธงหยุดนิ่ง — จัดกลุ่มตามเส้นทางเคลื่อนที่และเรียงตามเวลา เช่นเดียวกับ ArcGIS Calculate Motion Statistics.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าของการสังเกตที่มีการบันทึกเวลา."
              },
              "track_field": {
                "label": "ฟิลด์เส้นทางเคลื่อนที่",
                "description": "ฟิลด์ที่ใช้ระบุแต่ละเส้นทาง/วัตถุที่เคลื่อนที่."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: เป็นวินาทีเชิงตัวเลขหรือเวลาแบบ ISO-8601."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์จุดผลลัพธ์ (แอตทริบิวต์เดิม + ฟิลด์การเคลื่อนที่) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "window": {
                "label": "หน้าต่าง",
                "description": "จำนวนจุดย้อนหลังที่ใช้คำนวณ 'avg_speed' แบบเรียบ (ค่าเริ่มต้น 1 = ค่าขณะนั้น)."
              },
              "idle_distance": {
                "label": "ระยะทางหยุดนิ่ง",
                "description": "รัศมีการหยุดนิ่ง: จุดจะถือว่าหยุดนิ่งเมื่อวัตถุเคลื่อนที่ไม่เกินระยะนี้ในช่วง idle_duration วินาทีที่ผ่านมา ค่าเริ่มต้น 0 (ปิดการตรวจจับการหยุดนิ่ง)."
              },
              "idle_duration": {
                "label": "ระยะเวลาหยุดนิ่ง",
                "description": "หน้าต่างเวลาย้อนหลัง (วินาที) สำหรับการตรวจจับการหยุดนิ่ง ค่าเริ่มต้น 60."
              }
            }
          },
          "calculate_polygon_main_angle": {
            "name": "คำนวณมุมหลักของโพลิกอน",
            "description": "เขียนแนวการวางตัวหลักของแต่ละโพลิกอน (ทิศทางด้านยาวของสี่เหลี่ยมล้อมรอบที่มีพื้นที่น้อยสุด ผ่านวิธี rotating calipers) ลงฟิลด์มุม — เช่นเดียวกับ ArcGIS Calculate Polygon Main Angle เป็นแนวการวางตัวของเวกเตอร์รายโพลิกอนที่ patch_orientation ซึ่งรองรับเฉพาะแรสเตอร์ยังขาด ใช้ป้อนการหมุนสัญลักษณ์/ป้ายกำกับ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนผลลัพธ์ที่เพิ่มฟิลด์มุมแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "angle_field": {
                "label": "ฟิลด์มุม",
                "description": "ชื่อฟิลด์มุมที่จะเขียน (ค่าเริ่มต้น 'MainAngle')."
              },
              "convention": {
                "label": "ข้อตกลง",
                "description": "'arithmetic' (ทวนเข็มนาฬิกาจากทิศตะวันออก; ค่าเริ่มต้น), 'geographic' (ตามเข็มนาฬิกาจากทิศเหนือ) หรือ 'graphic' (ตามเข็มนาฬิกาจากทิศตะวันออก)."
              }
            }
          },
          "calculate_rates": {
            "name": "คำนวณอัตรา",
            "description": "คำนวณอัตราที่ปรับให้เรียบจากฟิลด์จำนวนนับและประชากร (เช่นเดียวกับ ArcGIS Calculate Rates): อัตราดิบ, empirical Bayes ระดับรวมแบบ Marshall หรือ empirical Bayes เชิงพื้นที่บนเพื่อนบ้านใกล้ที่สุด k ราย — ขั้นตอนมาตรฐานในการทำให้อัตราโรค/อาชญากรรมเสถียรก่อนการวิเคราะห์จุดร้อน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนหรือจุดนำเข้าที่มีฟิลด์จำนวนนับและฟิลด์ประชากร."
              },
              "count_field": {
                "label": "ฟิลด์จำนวนนับ",
                "description": "ฟิลด์ที่เก็บจำนวนเหตุการณ์ (ตัวเศษ)."
              },
              "population_field": {
                "label": "ฟิลด์ประชากร",
                "description": "ฟิลด์ที่เก็บจำนวนประชากรที่เสี่ยง (ตัวส่วน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์ที่เพิ่มฟิลด์อัตราแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'crude', 'eb_global' (ค่าเริ่มต้น) หรือ 'eb_spatial'."
              },
              "per": {
                "label": "ต่อ",
                "description": "ตัวคูณอัตรา เช่น 100000 สำหรับอัตราต่อ 100,000 (ค่าเริ่มต้น 100000)."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "สำหรับ eb_spatial เท่านั้น: จำนวนเพื่อนบ้านที่ใกล้ที่สุดสำหรับอัตราอ้างอิงเฉพาะที่ (ค่าเริ่มต้น 8)."
              }
            }
          },
          "calculate_transformation_errors": {
            "name": "คำนวณความคลาดเคลื่อนของการแปลง",
            "description": "ฟิตการแปลงแบบคล้าย/สัมพรรค/โปรเจกทีฟจากลิงก์การเคลื่อนตำแหน่ง แล้วรายงานความคลาดเคลื่อนคงเหลือของแต่ละลิงก์พร้อม RMSE โดยรวม เพื่อให้ค้นหาและลบจุดควบคุมที่ไม่ดีออกได้ก่อนทำการแปลง เช่นเดียวกับ ArcGIS Calculate Transformation Errors.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เส้นเชื่อมการเคลื่อนย้าย: จุดยอดแรกคือจุดต้นทาง (from) และจุดยอดสุดท้ายคือจุดเป้าหมาย (to)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์สำหรับตารางเส้นเชื่อมที่มีฟิลด์ค่าคงเหลือต่อท้าย หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'affine' (ค่าเริ่มต้น, 6 พารามิเตอร์), 'similarity' (4) หรือ 'projective' (8)."
              },
              "keep_geometry": {
                "label": "คงเรขาคณิต",
                "description": "เก็บเรขาคณิตของแต่ละเส้นเชื่อมไว้ในผลลัพธ์ (ค่าเริ่มต้นคือจริง) ตั้งเป็นเท็จหากต้องการเฉพาะตาราง."
              }
            }
          },
          "calculate_transit_service_frequency": {
            "name": "คำนวณความถี่การให้บริการขนส่ง",
            "description": "ความถี่การให้บริการขนส่งสาธารณะ GTFS ตามกรอบเวลา: สำหรับวันให้บริการ (ผ่าน calendar/calendar_dates) และกรอบเวลาหนึ่ง นับเที่ยวที่ให้บริการแต่ละป้ายหยุดหรือเส้นเส้นทาง และรายงานจำนวนเที่ยวต่อชั่วโมง เช่นเดียวกับ ArcGIS Calculate Transit Service Frequency.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไปยังโฟลเดอร์ฟีด GTFS ที่แตกไฟล์แล้ว."
              },
              "target": {
                "label": "เป้าหมาย",
                "description": "'stops' (หนึ่งจุดต่อหนึ่งป้ายหยุด, ค่าเริ่มต้น) หรือ 'lines' (หนึ่งเส้นโพลีไลน์ต่อหนึ่งเส้นทาง)."
              },
              "date": {
                "label": "วันที่",
                "description": "วันที่ให้บริการรูปแบบ YYYYMMDD ซึ่งตรวจสอบจาก calendar.txt/calendar_dates.txt หากไม่ระบุ จะนับทุกบริการ."
              },
              "start_time": {
                "label": "เวลาเริ่มต้น",
                "description": "เวลาเริ่มต้นของหน้าต่างเวลา HH:MM หรือ HH:MM:SS (เวลาแบบ GTFS อาจเกิน 24:00) หากไม่ระบุ จะนับทั้งวัน."
              },
              "duration_minutes": {
                "label": "ระยะเวลา (นาที)",
                "description": "ความยาวของหน้าต่างเวลาเป็นนาที (ใช้ร่วมกับ start_time และใช้เป็นตัวส่วนสำหรับค่าต่อชั่วโมงด้วย)."
              },
              "count": {
                "label": "จำนวนนับ",
                "description": "'departures' (ค่าเริ่มต้น) หรือ 'arrivals' — ฟิลด์เวลาของป้ายหยุดที่จะนับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "calculate_utm_zone": {
            "name": "คำนวณโซน UTM",
            "description": "คำนวณโซน UTM ที่เหมาะสมที่สุดและรหัส EPSG บน WGS84 ของแต่ละฟีเจอร์จากลองจิจูด/ละติจูดของเซนทรอยด์ โดยเพิ่มฟิลด์โซน (1–60) และ EPSG (326##/327##) — สำหรับชุดแผนที่ที่ปรับระบบฉายอัตโนมัติ เช่นเดียวกับ ArcGIS Calculate UTM Zone เป็นคณิตศาสตร์ล้วนพร้อมข้อยกเว้นของนอร์เวย์/สฟาลบาร์ ไม่ใช้ PROJ เรขาคณิตจะถูกอ่านเป็นองศาลองจิจูด/ละติจูด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (เรขาคณิตชนิดใดก็ได้) ในระบบพิกัดภูมิศาสตร์ (ลองจิจูด/ละติจูดเป็นองศา, EPSG:4326)."
              },
              "zone_field": {
                "label": "ฟิลด์โซน",
                "description": "ชื่อฟิลด์จำนวนเต็มที่จะเก็บหมายเลขโซน UTM (1–60) ค่าเริ่มต้น 'utm_zone'."
              },
              "epsg_field": {
                "label": "ฟิลด์ EPSG",
                "description": "ชื่อฟิลด์จำนวนเต็มที่จะเก็บรหัส EPSG ของ WGS84 UTM (326## ซีกโลกเหนือ, 327## ซีกโลกใต้) ค่าเริ่มต้น 'utm_epsg'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "cartogram": {
            "name": "คาร์โตแกรม",
            "description": "บิดเบือนโพลิกอนให้พื้นที่เป็นสัดส่วนกับค่าแอตทริบิวต์: แบบไม่ต่อเนื่อง (ปรับสเกลแต่ละโพลิกอนรอบเซนทรอยด์) หรือแบบ Dorling (วงกลมตามสัดส่วนพร้อมการขจัดการซ้อนทับ).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่พื้นที่ของแต่ละฟีเจอร์ควรเป็นสัดส่วนกับค่าในฟิลด์นี้."
              },
              "method": {
                "label": "วิธี",
                "description": "'non_contiguous' (ค่าเริ่มต้น; ปรับขนาดโพลิกอนในตำแหน่งเดิม) หรือ 'dorling' (วงกลมตามสัดส่วน)."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำในการกำจัดการซ้อนทับแบบ Dorling (ค่าเริ่มต้น 100) จะถูกละเว้นในโหมด non_contiguous."
              }
            }
          },
          "causal_inference_analysis": {
            "name": "การวิเคราะห์การอนุมานเชิงสาเหตุ",
            "description": "ประมาณผลเชิงสาเหตุของการรักษาแบบทวิภาคต่อผลลัพธ์ผ่านการจับคู่คะแนนความโน้มเอียง การถ่วงน้ำหนักด้วยความน่าจะเป็นผกผัน หรือการปรับด้วยการถดถอย พร้อมช่วงความเชื่อมั่นแบบบูตสแตรปที่กำหนดค่าเริ่มต้นสุ่มได้ และตารางสมดุลตัวแปรร่วมรายตัวแปรกวนก่อน/หลังการปรับ (เช่นเดียวกับ ArcGIS Causal Inference Analysis).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์นำเข้า."
              },
              "outcome_field": {
                "label": "ฟิลด์ผลลัพธ์",
                "description": "ฟิลด์ผลลัพธ์ (ตัวแปรตาม) แบบตัวเลข."
              },
              "treatment_field": {
                "label": "ฟิลด์การรักษา",
                "description": "ฟิลด์ทรีตเมนต์แบบทวิภาค (0/1 หรือบูลีน) รุ่นนี้ยังไม่รองรับทรีตเมนต์แบบต่อเนื่อง."
              },
              "confounding_fields": {
                "label": "ฟิลด์ตัวแปรกวน",
                "description": "ฟิลด์ตัวแปรกวนแบบตัวเลขที่ต้องการปรับแก้ คั่นด้วยจุลภาค."
              },
              "method": {
                "label": "วิธี",
                "description": "'ps_matching' (ค่าเริ่มต้น, การจับคู่เพื่อนบ้านใกล้ที่สุดแบบมีคาลิเปอร์บนคะแนนความโน้มเอียง), 'ipw' (การถ่วงน้ำหนักด้วยส่วนกลับของความน่าจะเป็นแบบปรับให้เสถียร) หรือ 'regression_adjustment' (outcome ~ treatment + confounders)."
              },
              "add_spatial_confounders": {
                "label": "เพิ่มตัวแปรกวนเชิงพื้นที่",
                "description": "หากเป็นจริง จะขยายชุดตัวแปรกวนด้วยพิกัด x/y ของแต่ละฟีเจอร์ พร้อมค่าเฉลี่ยของตัวแปรกวนแต่ละตัวจากเพื่อนบ้านที่ใกล้ที่สุด k ตัว (ค่าเริ่มต้นเป็นเท็จ)."
              },
              "balance_threshold": {
                "label": "ค่าเกณฑ์ความสมดุล",
                "description": "ค่าเกณฑ์ผลต่างค่าเฉลี่ยมาตรฐานสำหรับการตรวจสอบความสมดุลหลังการปรับแก้ (ค่าเริ่มต้น 0.1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์เป็นตัวเลือก (สำเนาข้อมูลนำเข้า + คอลัมน์คะแนนความโน้มเอียง / น้ำหนัก / รหัสการจับคู่) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มแบบจำนวนเต็มสำหรับช่วงความเชื่อมั่นแบบบูตสแตรปที่กำหนดได้ (ค่าเริ่มต้น 42)."
              }
            }
          },
          "cell_position_statistics": {
            "name": "สถิติตำแหน่งเซลล์",
            "description": "สถิติตำแหน่งและอันดับรายเซลล์ข้ามสแตกของแรสเตอร์ที่จัดแนวกัน (ArcGIS Highest Position, Lowest Position, Popularity และ Rank): เลเยอร์ใดมีค่าสุดขีด ค่าที่ปรากฏตามจำนวนครั้งที่กำหนด หรือค่าที่น้อยเป็นอันดับที่ n cell_statistics ลดทอนสแตกเป็นค่าเดียวและไม่สามารถรายงานได้เลยว่าค่านั้นมาจากเลเยอร์ใด ส่วน find_argument_statistics ที่มาพร้อมกันทำงานตามแกนอาร์กิวเมนต์ของแรสเตอร์หลายแบนด์เพียงอันเดียวโดยไม่มีความหมายของตัวเลือก popularity/rank.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือหนึ่งเลเยอร์) หรือรายการแรสเตอร์ที่ซ้อนทับตรงกันคั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "'highest_position' (ค่าเริ่มต้น), 'lowest_position', 'popularity' หรือ 'rank'."
              },
              "selector": {
                "label": "ตัวเลือก",
                "description": "จำเป็นสำหรับ 'popularity' และ 'rank': พาธแรสเตอร์ที่ซ้อนทับตรงกัน หรือค่าคงที่ ซึ่งระบุจำนวนครั้งที่ปรากฏต่อเซลล์ (popularity) หรืออันดับที่จะเลือกโดยเริ่มนับจาก 1 (rank)."
              },
              "ignore_nodata": {
                "label": "ละเว้น NoData",
                "description": "ข้ามการสังเกตที่เป็น NoData ในแต่ละเซลล์ (ค่าเริ่มต้นคือจริง) เมื่อเป็นเท็จ การสังเกตที่เป็น NoData เพียงค่าเดียวจะทำให้เซลล์นั้นเป็น NoData."
              },
              "process_as_multiband": {
                "label": "ประมวลผลเป็นหลายแบนด์",
                "description": "'single_band' (ค่าเริ่มต้น): ทุกแบนด์ของข้อมูลนำเข้าทุกไฟล์เป็นหนึ่งเลเยอร์ในสแต็กเดียวกัน 'multi_band': แบนด์ที่ i ของข้อมูลนำเข้าทุกไฟล์จะรวมเป็นสแต็กของตนเอง ให้ผลลัพธ์เป็นแรสเตอร์หลายแบนด์."
              }
            }
          },
          "cell_records_to_sectors": {
            "name": "เรกคอร์ดเซลล์เป็นเซกเตอร์",
            "description": "สร้างเรขาคณิตพื้นที่ครอบคลุมของเสาอากาศจากจุดเสาสัญญาณ: โพลิกอนรูปลิ่มหรือเส้นแบ่งครึ่งเซกเตอร์จากอะซิมัท ความกว้างลำคลื่น และรัศมีรายเสา — เช่นเดียวกับ ArcGIS Cell Site Records To Feature Class / Generate Sector Lines.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าของเสาอากาศ/เสาส่งสัญญาณ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "เรขาคณิตที่จะสร้าง: 'wedge' (โพลิกอนพื้นที่ครอบคลุม, ค่าเริ่มต้น) หรือ 'line' (เส้นแบ่งครึ่งเซกเตอร์)."
              },
              "azimuth_field": {
                "label": "ฟิลด์อะซิมัท",
                "description": "ฟิลด์ที่เก็บมุมอะซิมุทของแต่ละเสาอากาศ (องศาเข็มทิศ, 0 = ทิศเหนือ, ตามเข็มนาฬิกา) หากไม่มีจะใช้ 'azimuth' แทน."
              },
              "beamwidth_field": {
                "label": "ฟิลด์ความกว้างลำคลื่น",
                "description": "ฟิลด์ที่เก็บความกว้างลำคลื่นของแต่ละเสาอากาศเป็นองศา หากไม่มีจะใช้ 'beamwidth' แทน."
              },
              "radius_field": {
                "label": "ฟิลด์รัศมี",
                "description": "ฟิลด์ที่เก็บรัศมีพื้นที่ครอบคลุมของแต่ละเสาอากาศในหน่วย CRS หากไม่มีจะใช้ 'radius' แทน."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "มุมอะซิมุทเริ่มต้นเป็นองศาเข็มทิศเมื่อไม่ได้ระบุฟิลด์ / ไม่มีค่า ค่าเริ่มต้น 0."
              },
              "beamwidth": {
                "label": "ความกว้างลำคลื่น",
                "description": "ความกว้างลำคลื่นเริ่มต้นเป็นองศา (0 < bw ≤ 360; ≥ 360 = รอบทิศทาง) ค่าเริ่มต้น 65."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีพื้นที่ครอบคลุมเริ่มต้นในหน่วย CRS (ต้องเป็นค่าบวก) ค่าเริ่มต้น 1000."
              },
              "segments": {
                "label": "เซกเมนต์",
                "description": "จำนวนเซกเมนต์เส้นตรงที่ใช้ประมาณส่วนโค้งของแต่ละเซกเตอร์ (≥ 1) ค่าเริ่มต้น 16."
              }
            }
          },
          "cell_statistics": {
            "name": "สถิติเซลล์",
            "description": "สถิติรายพิกเซลข้ามสแตกของแรสเตอร์ที่จัดแนวกัน (เช่นเดียวกับ ArcGIS Cell Statistics): mean, majority, maximum, median, minimum, minority, percentile, range, std, sum หรือ variety — ตัวลดทอนหลายแรสเตอร์เฉพาะที่ซึ่ง sum_overlay/weighted_sum (ผลรวมเท่านั้น) และเครื่องมือบริเวณใกล้เคียง/รายโซนที่มาพร้อมกันไม่มีให้.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือหนึ่งเลเยอร์) หรือรายการแรสเตอร์ที่ซ้อนทับตรงกันคั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์แบนด์เดียวผลลัพธ์ของค่าที่ได้จากการรวมย่อ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "'mean' (ค่าเริ่มต้น), 'majority', 'maximum', 'median', 'minimum', 'minority', 'percentile', 'range', 'std', 'sum' หรือ 'variety'."
              },
              "ignore_nodata": {
                "label": "ละเว้น NoData",
                "description": "ข้ามการสังเกตที่เป็น NoData ในแต่ละเซลล์ (ค่าเริ่มต้นคือจริง) เมื่อเป็นเท็จ การสังเกตที่เป็น NoData เพียงค่าเดียวจะทำให้เซลล์นั้นเป็น NoData."
              },
              "percentile_value": {
                "label": "ค่าเปอร์เซ็นไทล์",
                "description": "เปอร์เซ็นไทล์ในช่วง [0, 100] สำหรับสถิติ 'percentile' (ค่าเริ่มต้น 50 = ค่ามัธยฐาน)."
              }
            }
          },
          "central_feature": {
            "name": "ฟีเจอร์กลาง / ค่าเฉลี่ยทิศทางเชิงเส้น",
            "description": "ฟีเจอร์กลาง (ฟีเจอร์นำเข้าที่มีระยะทางรวมไปยังฟีเจอร์อื่นทั้งหมดน้อยที่สุด) หรือค่าเฉลี่ยทิศทางเชิงเส้น (แบริงเฉลี่ย ความแปรปรวนเชิงวงกลม และความยาวเฉลี่ยของฟีเจอร์เส้น) — สมาชิกสองรายการของกลุ่ม Measuring Geographic Distributions ที่ directional_distribution ยังขาด (ArcGIS Central Feature / Linear Directional Mean).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (จุดสำหรับ central_feature; เส้นสำหรับ linear_directional_mean)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "'central_feature' (ค่าเริ่มต้น) หรือ 'linear_directional_mean'."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขเป็นตัวเลือกสำหรับถ่วงน้ำหนักแต่ละฟีเจอร์ (ใช้กับ central_feature เท่านั้น)."
              },
              "case_field": {
                "label": "ฟิลด์กรณี",
                "description": "ฟิลด์เป็นตัวเลือกสำหรับจัดกลุ่มฟีเจอร์ โดยให้ผลลัพธ์หนึ่งรายการต่อหนึ่งค่าที่แตกต่างกัน."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "มาตรวัดระยะทางสำหรับ central_feature: 'euclidean' (ค่าเริ่มต้น) หรือ 'manhattan'."
              },
              "orientation_only": {
                "label": "เฉพาะแนวการวางตัว",
                "description": "ถือว่าเส้นไม่มีทิศทาง (ทิศวางตัวมอดุโล 180°) สำหรับ linear_directional_mean ค่าเริ่มต้นคือเท็จ."
              }
            }
          },
          "change_point_detection": {
            "name": "การตรวจจับจุดเปลี่ยน",
            "description": "ตรวจจับการเปลี่ยนแปลงอย่างฉับพลันในอนุกรมเวลาของแต่ละตำแหน่งในคิวบ์เชิงพื้นที่-เวลา H3 (เช่นเดียวกับ ArcGIS Change Point Detection): การแบ่งส่วนแบบทวิภาคด้วยต้นทุนการเปลี่ยนค่าเฉลี่ยหรือความลาดชัน พร้อมค่าปรับที่ปรับสเกลตามความไว (หรือจำนวนจุดเปลี่ยนที่กำหนดตายตัว) โดยรายงานจำนวนการเปลี่ยนแปลง ปีของการเปลี่ยนแปลงที่ใหญ่ที่สุด และค่าเฉลี่ยของแต่ละเซกเมนต์รายเซลล์ เป็นการแบ่งส่วนเชิงเวลาที่ change_vector_analysis แบบสองวันที่และการทดสอบ Mann-Kendall แบบทางเดียวทำไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดนำเข้าของเหตุการณ์ที่มีการบันทึกเวลา (ลองจิจูด/ละติจูด)."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: เป็นตัวเลขหรือเวลาแบบ ISO-8601."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอน H3 ผลลัพธ์ที่มีแอตทริบิวต์จุดเปลี่ยน หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่จะรวมค่าในแต่ละบิน (ค่าเริ่มต้น: จำนวนจุด)."
              },
              "change_type": {
                "label": "ชนิดการเปลี่ยนแปลง",
                "description": "'mean' (การเปลี่ยนระดับ; ค่าเริ่มต้น) หรือ 'slope' (การเปลี่ยนแนวโน้ม)."
              },
              "method": {
                "label": "วิธี",
                "description": "'auto' (อิงค่าปรับโทษ, ค่าเริ่มต้น) หรือ 'defined' (เท่ากับ num_change_points พอดี)."
              },
              "num_change_points": {
                "label": "จำนวนจุดเปลี่ยน",
                "description": "วิธี defined: จำนวนจุดเปลี่ยนที่จะค้นหาต่อหนึ่งตำแหน่ง (ค่าเริ่มต้น 1)."
              },
              "sensitivity": {
                "label": "ความไว",
                "description": "วิธี auto: สเกลของค่าปรับโทษ ยิ่งสูงยิ่งได้จุดเปลี่ยนน้อยลง (ค่าเริ่มต้น 1.0)."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "ความกว้างของหนึ่งช่วงเวลาในหน่วยของ time_field (ค่าเริ่มต้น 1)."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียด H3 ระหว่าง 0..15 (ค่าเริ่มต้น 7)."
              }
            }
          },
          "classification_accuracy_assessment": {
            "name": "การประเมินความถูกต้องของการจำแนก",
            "description": "ให้คะแนนแรสเตอร์ที่จำแนกแล้ว (หรือจุดที่มีคลาสทำนายอยู่แล้ว) เทียบกับจุดอ้างอิงที่ติดป้ายข้อมูลจริงภาคพื้นดิน ให้ผลลัพธ์เป็นเมทริกซ์ความสับสน ความถูกต้องโดยรวม ความถูกต้องของผู้ผลิต/ผู้ใช้รายคลาส และ kappa ของ Cohen — เช่นเดียวกับ ArcGIS Compute Confusion Matrix.",
            "params": {
              "points": {
                "label": "จุด",
                "description": "เลเยอร์จุดอ้างอิง (สำหรับประเมินความถูกต้อง) ที่มีฟิลด์คลาสข้อมูลจริงภาคพื้นดิน."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "แอตทริบิวต์บนจุดที่เก็บป้ายกำกับคลาสข้อมูลจริงภาคพื้นดิน (อ้างอิง)."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ที่จำแนกแล้วซึ่งจะอ่านค่าที่จุดอ้างอิงแต่ละจุด (เซลล์ที่ใกล้ที่สุด) ระบุค่านี้ หรือ 'classified_field'."
              },
              "classified_field": {
                "label": "ฟิลด์จำแนก",
                "description": "แอตทริบิวต์บนจุดที่เก็บคลาสที่ทำนายไว้ (จากแผนที่) อยู่แล้ว ใช้แทนการอ่านค่าจากแรสเตอร์ ระบุค่านี้ หรือ 'input'."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของแรสเตอร์ที่จำแนกแล้วซึ่งจะอ่านค่า โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์สำหรับจุดอ้างอิงที่กำกับด้วย REF_CLASS, MAP_CLASS, CORRECT หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "collapse_dual_lines_to_centerline": {
            "name": "ยุบเส้นคู่เป็นเส้นกึ่งกลาง",
            "description": "ตรวจจับคู่เส้นที่ขนานกันโดยประมาณภายในค่าเผื่อความกว้าง (ถนนแบ่งช่องทาง ขอบเส้นถนน) แล้วแทนที่แต่ละคู่ด้วยเส้นกึ่งกลางเส้นเดียวพร้อมเชื่อมต่อทางแยกใหม่ — เช่นเดียวกับ ArcGIS Collapse Dual Lines To Centerline.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นนำเข้า (ระบบพิกัดฉาย; ความกว้างเป็นหน่วยของระบบพิกัดนั้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "min_width": {
                "label": "ความกว้างต่ำสุด",
                "description": "ระยะห่างขั้นต่ำระหว่างเส้นที่จับคู่กัน ในหน่วย CRS (ค่าเริ่มต้น 0)."
              },
              "max_width": {
                "label": "ความกว้างสูงสุด",
                "description": "ระยะห่างสูงสุดระหว่างเส้นที่จับคู่กัน ในหน่วย CRS จำเป็นต้องระบุ (คือความกว้างที่จะยุบรวม)."
              },
              "attribute": {
                "label": "แอตทริบิวต์",
                "description": "ฟิลด์เป็นตัวเลือกที่ต้องมีค่าตรงกันจึงจะจับคู่เส้นสองเส้นได้ (เช่น ชื่อถนนหรือคลาสถนน)."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ระยะห่างของการเพิ่มจุดยอดสำหรับทดสอบความขนาน ในหน่วย CRS ค่าเริ่มต้น: max_width / 2."
              },
              "min_overlap": {
                "label": "การซ้อนทับต่ำสุด",
                "description": "สัดส่วนขั้นต่ำของเส้นที่ต้องขนานกับเส้นคู่ของมันจึงจะจับคู่กันได้ (0-1, ค่าเริ่มต้น 0.5)."
              }
            }
          },
          "collapse_hydro_polygon": {
            "name": "ยุบโพลิกอนแหล่งน้ำ",
            "description": "ยุบโพลิกอนแหล่งน้ำแคบให้เป็นเส้นกึ่งกลางในขณะที่คงช่วงกว้างไว้เป็นโพลิกอน (เช่นเดียวกับ ArcGIS Collapse Hydro Polygon): ติดตามเส้นกึ่งกลางของแต่ละโพลิกอนตามแกนหลักผ่านจุดกึ่งกลางของหน้าตัดตั้งฉาก วัดความกว้างเฉพาะที่ และยุบในบริเวณที่ความกว้างมัธยฐานเท่ากับหรือต่ำกว่าค่าเกณฑ์ เป็นการทำให้เป็นภาพรวมจากโพลิกอน→เส้นตามค่าเกณฑ์ความกว้างที่ collapse_dual_lines_to_centerline สำหรับขอบเส้นและ river_centerlines แบบแรสเตอร์ไม่ทำ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนแหล่งน้ำนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เส้นกึ่งกลางผลลัพธ์สำหรับโพลิกอนที่ถูกยุบรวม (แคบ) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "collapse_width": {
                "label": "ความกว้างการยุบ",
                "description": "โพลิกอนที่มีความกว้างมัธยฐานเท่ากับหรือน้อยกว่าค่านี้จะถูกยุบรวมเป็นเส้นกึ่งกลาง."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ระยะห่างของสถานีหน้าตัดตามแนวแกน (ค่าเริ่มต้น: collapse_width / 2)."
              },
              "min_length": {
                "label": "ความยาวต่ำสุด",
                "description": "ตัดเส้นกึ่งกลางที่ยุบรวมแล้วซึ่งสั้นกว่าค่านี้ออก (ค่าเริ่มต้น 0)."
              },
              "retained": {
                "label": "ที่คงไว้",
                "description": "เลเยอร์โพลิกอนผลลัพธ์เป็นตัวเลือกสำหรับช่วงที่กว้าง (ไม่ถูกยุบรวม)."
              }
            }
          },
          "collapse_road_detail": {
            "name": "ยุบรายละเอียดถนน",
            "description": "ยุบวงถนนและทางหักเล็ก ๆ (วงเวียน ทางรูปกระดูก ทางหักเยื้อง) ที่ต่ำกว่าค่าเกณฑ์เส้นผ่านศูนย์กลางให้เป็นการเชื่อมต่อผ่านเส้นเดียวสำหรับการแสดงผลมาตราส่วนเล็ก โดยคงการเชื่อมต่อของโครงข่าย — เช่นเดียวกับ ArcGIS Collapse Road Detail.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ถนน (เส้น) นำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "collapse_distance": {
                "label": "ระยะทางการยุบ",
                "description": "เส้นผ่านศูนย์กลางสูงสุดของรายละเอียดที่จะยุบรวม วงวน/รอยหักที่มีเส้นผ่านศูนย์กลางของกรอบล้อมเล็กกว่าค่านี้ (เป็นเมตรสำหรับระบบพิกัดภูมิศาสตร์ หรือหน่วย CRS ในกรณีอื่น) จะถูกยุบรวม ส่วนที่ใหญ่กว่าจะถูกเก็บไว้."
              },
              "road_class_field": {
                "label": "ฟิลด์คลาสถนน",
                "description": "ฟิลด์คลาสถนนเป็นตัวเลือก เมื่อกำหนดไว้ จะยุบรวมเฉพาะวงวนที่ถนนขอบทั้งหมดมีค่าคลาสเดียวกัน (ทางแยกระหว่างคลาสที่ต่างกันจะถูกรักษาไว้)."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ระยะทางที่จะถือว่าปลายถนนเป็นทางแยกเดียวกัน ค่าเริ่มต้น 1e-6."
              }
            }
          },
          "collect_events": {
            "name": "รวบรวมเหตุการณ์",
            "description": "ยุบจุดเหตุการณ์ที่ซ้อนกันให้เป็นตำแหน่งที่ไม่ซ้ำ โดยแต่ละตำแหน่งมีค่า ICOUNT เป็นจำนวนเหตุการณ์ที่นั่น เช่นเดียวกับ ArcGIS Collect Events.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า (Point หรือ MultiPoint)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อสำหรับการสแนปในหน่วยแผนที่ จุดที่พิกัดปัดลงเซลล์เดียวกันจะถือว่าอยู่ตำแหน่งเดียวกัน (ค่าเริ่มต้น 1e-8 คือแม่นยำโดยแท้จริง)."
              }
            }
          },
          "colocation_analysis": {
            "name": "การวิเคราะห์การอยู่ร่วมกัน",
            "description": "ผลหารการอยู่ร่วมกันเฉพาะที่ (Leslie & Kronenfeld) ซึ่งวัดว่าจุดหมวดหมู่ A พบอยู่ท่ามกลางเพื่อนบ้านหมวดหมู่ B มากเกินสัดส่วนหรือไม่ พร้อมค่า p จากการทดสอบการสับเปลี่ยนที่กำหนดค่าเริ่มต้นสุ่มได้ — เช่นเดียวกับ ArcGIS Colocation Analysis.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าที่มีฟิลด์หมวดหมู่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (สำเนาของข้อมูลนำเข้าพร้อมฟิลด์การอยู่ร่วมตำแหน่ง) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "category_field": {
                "label": "ฟิลด์หมวดหมู่",
                "description": "ฟิลด์ที่เก็บหมวดหมู่ของแต่ละจุด."
              },
              "category_a": {
                "label": "หมวดหมู่ A",
                "description": "หมวดหมู่หลัก (A): จุดที่จะวัดการอยู่ร่วมตำแหน่งกับ B."
              },
              "category_b": {
                "label": "หมวดหมู่ B",
                "description": "หมวดหมู่เพื่อนบ้าน (B): จุดที่ใช้เป็นตัวเปรียบเทียบกับ A."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านที่ใกล้ที่สุด k (ค่าเริ่มต้น 8)."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "การถ่วงน้ำหนักเพื่อนบ้าน: 'gaussian' (ลดตามระยะทาง, ค่าเริ่มต้น) หรือ 'uniform'."
              },
              "permutations": {
                "label": "จำนวนการสับเปลี่ยน",
                "description": "จำนวนการสับเปลี่ยนป้ายกำกับสำหรับการทดสอบนัยสำคัญ (ค่าเริ่มต้น 99; 0 คือปิดใช้งาน)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการสับเปลี่ยน (ค่าเริ่มต้น 1) เพื่อให้ได้ผลลัพธ์ที่ทำซ้ำได้."
              }
            }
          },
          "color_polygons": {
            "name": "ระบายสีโพลิกอน",
            "description": "กำหนดดัชนีสีจำนวนเต็มขนาดเล็กให้แต่ละโพลิกอนเพื่อไม่ให้โพลิกอนที่ติดกันสองอันมีค่าเดียวกัน (เช่นเดียวกับ ArcGIS Calculate Color Theorem Field) — การจัดสไตล์แผนที่โคโรเพลทที่ปลอดภัยต่อความติดกัน ผ่านการระบายสีกราฟแบบ DSATUR บนความต่อเนื่องแบบขอบร่วม (หรือมุมร่วม).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนผลลัพธ์ที่เพิ่มฟิลด์สีแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ดัชนีสีที่จะเขียน (ค่าเริ่มต้น 'color_id')."
              },
              "adjacency": {
                "label": "ความติดกัน",
                "description": "'edge' (rook, ใช้เส้นขอบร่วมกัน; ค่าเริ่มต้น) หรือ 'edge_or_corner' (queen, ใช้เส้นขอบหรือจุดยอดร่วมกัน)."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ขนาดกริดที่จะสแนปจุดยอดก่อนจับคู่เส้นขอบ (ค่าเริ่มต้น 0 = แม่นยำ)."
              }
            }
          },
          "combine": {
            "name": "รวมกัน",
            "description": "กำหนดรหัสโซนที่ไม่ซ้ำให้แต่ละชุดค่าผสมที่ไม่ซ้ำข้ามแรสเตอร์เชิงกลุ่มสองรายการขึ้นไปที่ลงทะเบียนร่วมกัน พร้อมตารางแอตทริบิวต์ค่า (รหัส จำนวนนับ และหนึ่งคอลัมน์ต่อข้อมูลนำเข้า).",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการแรสเตอร์เชิงประเภท/จำนวนเต็มที่ลงทะเบียนพิกัดตรงกันตั้งแต่ 2 ชั้นขึ้นไปที่ต้องการรวม คั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือกสำหรับกริดรหัสเงื่อนไขที่ไม่ซ้ำกัน หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "csv_output": {
                "label": "ผลลัพธ์ CSV",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับตารางแอตทริบิวต์ค่า (ค่า, จำนวน, หนึ่งคอลัมน์ต่อหนึ่งแรสเตอร์นำเข้า)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่านจากแรสเตอร์นำเข้าทุกชั้น เริ่มนับจาก 1 ค่าเริ่มต้น 1."
              }
            }
          },
          "compare_spatial_weights": {
            "name": "เปรียบเทียบน้ำหนักเชิงพื้นที่",
            "description": "จัดอันดับแนวคิดน้ำหนักเชิงพื้นที่ที่เป็นตัวเลือก (KNN, แถบระยะทางคงที่, ความติดกันแบบขอบ / ขอบ+มุม, Delaunay) ตามระดับที่แต่ละแบบจับการจัดกลุ่มเชิงพื้นที่ของฟิลด์วิเคราะห์หนึ่งรายการขึ้นไปได้ โดยใช้ Moran's I ระดับรวมแบบปรับมาตรฐานตามแถวพร้อมคะแนน z และค่า p สองด้าน — เช่นเดียวกับ ArcGIS Compare Neighborhood Conceptualizations ให้ผลลัพธ์เป็นตารางเปรียบเทียบที่จัดอันดับแล้วและวิธีที่ดีที่สุดเพียงวิธีเดียว.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (จุด/เส้น/โพลิกอน; การวิเคราะห์ความต่อเนื่องต้องใช้โพลิกอน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางเปรียบเทียบผลลัพธ์ — เป็น CSV (นามสกุล .csv) หรือตารางเวกเตอร์ที่ไม่มีเรขาคณิต หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "input_fields": {
                "label": "ฟิลด์นำเข้า",
                "description": "รายชื่อฟิลด์ตัวเลขคั่นด้วยจุลภาคที่จะวิเคราะห์การเกาะกลุ่มเชิงพื้นที่."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์ที่เก็บรหัสเฉพาะของแต่ละฟีเจอร์ (รับไว้เพื่อความเข้ากันได้ ไม่จำเป็นต่อการคำนวณ Moran's I)."
              },
              "methods": {
                "label": "วิธี",
                "description": "รายการรูปแบบการกำหนดความสัมพันธ์ที่เป็นไปได้ คั่นด้วยจุลภาค เลือกจาก: knn, fixed_distance_band, contiguity_edges, contiguity_edges_corners, delaunay ค่าเริ่มต้น 'knn,contiguity_edges,contiguity_edges_corners' วิธีที่ใช้กับเรขาคณิตนั้นไม่ได้ (หรือเกิดข้อผิดพลาด) จะถูกข้ามไป."
              },
              "number_of_neighbors": {
                "label": "จำนวนเพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านใกล้ที่สุด k สำหรับวิธี knn ค่าเริ่มต้น 8."
              },
              "threshold_distance": {
                "label": "ระยะทางค่าเกณฑ์",
                "description": "ค่าตัดระยะของแถบระยะทางในหน่วยแผนที่ จำเป็นเฉพาะเมื่อมี fixed_distance_band อยู่ในวิธีที่เลือก."
              }
            }
          },
          "composite_bands": {
            "name": "ประกอบแบนด์",
            "description": "ซ้อนแรสเตอร์แบนด์เดียวหลายรายการเป็นแรสเตอร์หลายแบนด์เดียวตามลำดับที่กำหนด (ArcGIS Composite Bands) create_colour_composite ที่มาพร้อมกันถูกกำหนดตายตัวที่สามแบนด์ RGB จึงไม่มีทางประกอบข้อมูลนำเข้า N แบนด์ที่ band_collection_statistics, principal_component_analysis, spectral_index และชุดเครื่องมือ OBIA ทั้งหมดต้องการ.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธแรสเตอร์คั่นด้วยจุลภาคหรืออัฒภาค เรียงตามลำดับแบนด์ของผลลัพธ์ ต้องมีอย่างน้อยหนึ่งรายการ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่นำมาจากข้อมูลนำเข้าแต่ละชั้นเมื่อชั้นนั้นเป็นแบบหลายแบนด์ เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "nodata_policy": {
                "label": "นโยบาย NoData",
                "description": "'any' (ค่าเริ่มต้น): เซลล์จะเป็น no-data หากมีแบนด์ใดแบนด์หนึ่งเป็น no-data 'all': เป็น no-data เฉพาะเมื่อทุกแบนด์เป็น no-data."
              },
              "nodata": {
                "label": "NoData",
                "description": "ค่า no-data สำหรับผลลัพธ์ (ค่าเริ่มต้น: ค่า no-data ของข้อมูลนำเข้าชั้นแรก)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์หลายแบนด์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "compute_accuracy_for_object_detection": {
            "name": "คำนวณความถูกต้องของการตรวจจับวัตถุ",
            "description": "ให้คะแนนฟีเจอร์ที่ตรวจพบเทียบกับข้อมูลจริงภาคพื้นดินด้วยการจับคู่ IoU โดยรายงาน precision, recall, average precision รายคลาส และ mAP โดยรวม เช่นเดียวกับ ArcGIS Compute Accuracy For Object Detection.",
            "params": {
              "detected": {
                "label": "ที่ตรวจพบ",
                "description": "ฟีเจอร์ที่ตรวจพบ (โพลิกอนหรือกรอบขอบเขต)."
              },
              "ground_truth": {
                "label": "ข้อมูลจริงภาคพื้นดิน",
                "description": "ฟีเจอร์อ้างอิงที่ใช้เป็นเกณฑ์ให้คะแนน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางความถูกต้องผลลัพธ์ เป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "detected_class_field": {
                "label": "ฟิลด์คลาสที่ตรวจพบ",
                "description": "ฟิลด์ป้ายกำกับคลาสบนข้อมูลที่ตรวจพบ หากไม่ระบุ จะให้คะแนนทั้งหมดเป็นคลาสเดียว."
              },
              "ground_truth_class_field": {
                "label": "ฟิลด์คลาสข้อมูลจริง",
                "description": "ฟิลด์ป้ายกำกับคลาสบนข้อมูลความจริงภาคพื้นดิน หากไม่ระบุ จะให้คะแนนทั้งหมดเป็นคลาสเดียว."
              },
              "confidence_field": {
                "label": "ฟิลด์ความเชื่อมั่น",
                "description": "ฟิลด์ค่าคะแนนความเชื่อมั่นบนข้อมูลที่ตรวจพบ ใช้จัดลำดับเพื่อคำนวณความแม่นยำเฉลี่ย หากไม่มี จะให้คะแนนตามลำดับที่นำเข้า."
              },
              "min_iou": {
                "label": "IoU ต่ำสุด",
                "description": "ค่าต่ำสุดของ intersection-over-union ที่ทำให้การตรวจพบนับเป็นการจับคู่ (ค่าเริ่มต้น 0.5)."
              }
            }
          },
          "compute_sar_indices": {
            "name": "คำนวณดัชนี SAR",
            "description": "คำนวณดัชนี SAR เชิงโพลาริเมตริก — RVI (Radar Vegetation Index), RFDI (Radar Forest Degradation Index), CSI (Canopy Structure Index) และ DPSVI (Dual-Pol SAR Vegetation Index) — จากค่าการกระเจิงกลับแบบหลายโพลาไรเซชัน (ArcGIS Compute SAR Indices) spectral_index ครอบคลุมเฉพาะคณิตศาสตร์แบนด์ออปติคัล: สูตรและข้อตกลงแบนด์อยู่ในโดเมนค่าการสะท้อน และไม่มีแนวคิดเรื่องช่องโพลาไรเซชัน ดังนั้นสายงาน SAR ของแคตตาล็อก (multilook, sar_coherence, ตัวกรอง speckle) จึงยังไม่มีจุดสิ้นสุดสำหรับการวิเคราะห์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ SAR ที่ปรับเทียบแล้วแบบหลายโพลาไรเซชัน (หนึ่งแบนด์ต่อหนึ่งโพลาไรเซชัน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ดัชนีผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "index": {
                "label": "ดัชนี",
                "description": "'rvi' (ค่าเริ่มต้น), 'rfdi', 'csi' หรือ 'dpsvi'."
              },
              "polarization_bands": {
                "label": "แบนด์โพลาไรเซชัน",
                "description": "การจับคู่แบนด์โดยเริ่มนับจาก 1 เช่น 'vv=1,vh=2' หรือ 'hh=1,hv=2,vv=3' ค่าเริ่มต้นขึ้นกับจำนวนแบนด์: 2 แบนด์ = 'vv=1,vh=2', 3 แบนด์ขึ้นไป = 'hh=1,hv=2,vv=3'."
              },
              "input_units": {
                "label": "หน่วยนำเข้า",
                "description": "'linear' (ค่าเริ่มต้น) หรือ 'db' ข้อมูลนำเข้าแบบ dB จะถูกแปลงเป็นกำลังเชิงเส้นก่อนการคำนวณอัตราส่วน เนื่องจากอัตราส่วนของเดซิเบลไม่มีความหมาย."
              }
            }
          },
          "construct_sight_lines": {
            "name": "สร้างเส้นสายตา",
            "description": "สร้างฟีเจอร์เส้นสายตาระหว่างจุดผู้สังเกตกับฟีเจอร์เป้าหมาย พร้อมออฟเซ็ตความสูงผู้สังเกต/เป้าหมาย การสุ่มตัวอย่างตามแนวเป้าหมายแบบเส้นและแบบพื้นที่ ฟิลด์อะซิมัทและมุมแนวดิ่งเป็นตัวเลือก และระยะทาง 2 มิติหรือ 3 มิติ เช่นเดียวกับ ArcGIS Construct Sight Lines.",
            "params": {
              "observers": {
                "label": "ผู้สังเกต",
                "description": "ฟีเจอร์จุดผู้สังเกต."
              },
              "targets": {
                "label": "เป้าหมาย",
                "description": "ฟีเจอร์จุด เส้น หรือโพลิกอนเป้าหมาย."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเส้นแนวสายตาผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "observer_height_field": {
                "label": "ฟิลด์ความสูงผู้สังเกต",
                "description": "ฟิลด์เป็นตัวเลือกที่ระบุค่าชดเชยความสูงของผู้สังเกตแต่ละราย (บวกเพิ่มกับค่า Z)."
              },
              "target_height_field": {
                "label": "ฟิลด์ความสูงเป้าหมาย",
                "description": "ฟิลด์เป็นตัวเลือกที่ระบุค่าชดเชยความสูงของเป้าหมายแต่ละจุด (บวกเพิ่มกับค่า Z)."
              },
              "join_field": {
                "label": "ฟิลด์เชื่อม",
                "description": "ฟิลด์เป็นตัวเลือกที่ต้องมีอยู่ในข้อมูลนำเข้าทั้งสองชั้น เฉพาะผู้สังเกตและเป้าหมายที่มีค่าตรงกันเท่านั้นจึงจะถูกจับคู่ หากไม่มี ผู้สังเกตทุกรายจะจับคู่กับเป้าหมายทุกจุด."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ระยะห่างในหน่วยแผนที่สำหรับจุดเป้าหมายที่สร้างขึ้นตามแนวเส้นหรือขอบเขตโพลิกอน (ค่าเริ่มต้น: หนึ่งจุดต่อหนึ่งจุดยอด)."
              },
              "output_direction": {
                "label": "ผลลัพธ์ทิศทาง",
                "description": "เพิ่มฟิลด์ AZIMUTH และ VERT_ANGLE (ค่าเริ่มต้น false)."
              },
              "distance_method": {
                "label": "วิธีวัดระยะทาง",
                "description": "'2d' (ค่าเริ่มต้น) หรือ '3d' สำหรับฟิลด์ DISTANCE."
              }
            }
          },
          "contiguous_cartogram": {
            "name": "คาร์โตแกรมแบบต่อเนื่อง",
            "description": "คาร์โตแกรมแบบปรับความหนาแน่นให้เท่ากัน (การแพร่แบบ Gastner-Newman): บิดเบือนพื้นที่โพลิกอนตามสัดส่วนของแอตทริบิวต์ในขณะที่คงแผนที่ให้เป็นแผ่นเชื่อมต่อที่มีขอบเขตร่วมกัน (ArcGIS Generate Contiguous Cartogram) เครื่องมือ cartogram ที่มีอยู่ใช้ได้เฉพาะวิธีแบบไม่ต่อเนื่องและแบบ Dorling ซึ่งทั้งคู่ทำลายความติดกัน และเอกสารของโมดูลเองก็เลื่อนรูปแบบต่อเนื่องไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนที่ต่อเนื่องกัน."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "แอตทริบิวต์ตัวเลขค่าบวกที่ต้องการให้พื้นที่เป็นสัดส่วนกับผลรวมของค่านั้น."
              },
              "grid_size": {
                "label": "ขนาดกริด",
                "description": "ความละเอียดของกริดความหนาแน่น ต้องเป็นเลขยกกำลังสอง (ค่าเริ่มต้น 256) เป็นตัวควบคุมหลักระหว่างความถูกต้องกับต้นทุนการคำนวณ."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบการแพร่ (ค่าเริ่มต้น 20) จำนวนรอบที่มากขึ้นทำให้ความหนาแน่นเท่ากันมากขึ้น แต่แลกกับการบิดเบี้ยวที่มากขึ้น."
              },
              "blur": {
                "label": "ความเบลอ",
                "description": "การทำให้เรียบล่วงหน้าแบบเกาส์เซียนของสนามความหนาแน่น ในหน่วยเซลล์กริด (ค่าเริ่มต้น 0.5) ช่วยป้องกันการบิดเบี้ยวรุนแรงที่เกิดจากความไม่ต่อเนื่องของความหนาแน่นแบบฉับพลัน."
              },
              "sea_density": {
                "label": "ความหนาแน่นทะเล",
                "description": "ความหนาแน่นนอกพื้นที่ศึกษา: 'mean' (ค่าเริ่มต้น) หรือ 'min' ค่านี้เปลี่ยนผลลัพธ์บริเวณขอบแผนที่อย่างมีนัยสำคัญ."
              },
              "densify_spacing": {
                "label": "ระยะห่างการเพิ่มความหนาแน่นจุด",
                "description": "ความยาวสูงสุดของเซกเมนต์ขอบในหน่วยเซลล์กริดก่อนที่จะแทรกจุดยอด (ค่าเริ่มต้น 1.0) มิฉะนั้นขอบตรงที่ยาวจะแยกออกจากพื้นที่ข้างเคียง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนผลลัพธ์ที่มีจุดยอดถูกเลื่อนตำแหน่งพร้อมแอตทริบิวต์เดิม หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "contour_list": {
            "name": "รายการเส้นชั้นความสูง",
            "description": "สร้างเส้นชั้นความสูงตามรายการค่าที่ระบุชัดเจนแทนช่วงคงที่ เป็นเส้นที่เชื่อมต่อกันหรือโพลิกอนแบบเติม โดยแต่ละอันติดป้ายด้วยระดับของมัน (ArcGIS Contour List) contours_from_raster ที่มาพร้อมกันรับเฉพาะ 'interval' และ 'base' ดังนั้นชุดค่าไม่สม่ำเสมอที่แผนที่จริงใช้ — ขั้นความลึก IHO, ระดับการเกิดซ้ำของน้ำท่วม, จุดแบ่งคลาสที่ตีพิมพ์ — จึงต้องรันหนึ่งครั้งต่อค่าแล้วรวม และยังไม่สามารถออกมาเป็นเลเยอร์เดียวที่ติดป้ายตามระดับได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์พื้นผิวนำเข้า."
              },
              "contour_values": {
                "label": "ค่าเส้นชั้นความสูง",
                "description": "รายการระดับที่จะสร้างเส้นชั้น คั่นด้วยจุลภาค ในหน่วย z ของแรสเตอร์นั้นเอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เส้นชั้นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "geometry_type": {
                "label": "ชนิดเรขาคณิต",
                "description": "'polyline' (ค่าเริ่มต้น) สำหรับเส้นชั้น หรือ 'polygon' สำหรับพื้นที่ทึบที่มีค่าตั้งแต่แต่ละระดับขึ้นไป."
              },
              "min_length": {
                "label": "ความยาวต่ำสุด",
                "description": "ตัดเส้นชั้นที่สั้นกว่าค่านี้ออก ในหน่วยแผนที่ ซึ่งช่วยกำจัดจุดกระจัดกระจายที่เกิดจากพื้นผิวที่มีสัญญาณรบกวน."
              },
              "close_rings": {
                "label": "ปิดวงแหวน",
                "description": "ทำซ้ำจุดยอดแรกบนเส้นชั้นที่บรรจบกลับมาปิดตัวเอง (ค่าเริ่มต้น true)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะสร้างเส้นชั้น เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "contour_with_barriers": {
            "name": "เส้นชั้นความสูงแบบมีสิ่งกีดขวาง",
            "description": "ติดตามเส้นชั้นค่าเท่ากันของพื้นผิวที่สิ้นสุดที่ฟีเจอร์สิ่งกีดขวางแทนที่จะข้ามไป.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์พื้นผิวต่อเนื่องนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์เวกเตอร์แนวกั้น เป็นตัวเลือก (เส้นหรือโพลิกอน) เส้นชั้นจะไม่ตัดผ่านฟีเจอร์เหล่านี้."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ช่วงห่างของเส้นชั้นในหน่วยของพื้นผิว ระดับต่าง ๆ คือ base + k*interval ภายในช่วงของข้อมูล จะถูกละเว้นหากระบุ 'levels'."
              },
              "base": {
                "label": "ฐาน",
                "description": "ค่าฐานที่ใช้วัดช่วงห่าง (ค่าเริ่มต้น 0)."
              },
              "levels": {
                "label": "ระดับ",
                "description": "ค่าเส้นชั้นที่ระบุอย่างชัดเจน คั่นด้วยจุลภาค (เช่น \"10,20,30\") มีผลเหนือ interval/base."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "convert_coordinate_notation": {
            "name": "แปลงรูปแบบการเขียนพิกัด",
            "description": "แปลงพิกัดของแต่ละฟีเจอร์ระหว่างรูปแบบการเขียน — องศาทศนิยม (DD), องศา-ลิปดา-ฟิลิปดา (DMS), องศา-ลิปดาทศนิยม (DDM), UTM และ MGRS/USNG — โดยเขียนฟิลด์ใหม่ในรูปแบบเป้าหมาย เช่นเดียวกับ ArcGIS Convert Coordinate Notation เป็นคณิตศาสตร์กริดล้วน (transverse Mercator แบบ Krüger + ตัวอักษร MGRS บน WGS84) ไม่ใช้ PROJ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุด (หรือตาราง) นำเข้า."
              },
              "input_notation": {
                "label": "รูปแบบการเขียนนำเข้า",
                "description": "รูปแบบสัญกรณ์ของพิกัดนำเข้า: DD, DMS, DDM, UTM หรือ MGRS."
              },
              "output_notation": {
                "label": "รูปแบบการเขียนผลลัพธ์",
                "description": "รูปแบบสัญกรณ์เป้าหมายที่จะเขียน: DD, DMS, DDM, UTM หรือ MGRS."
              },
              "coord_field": {
                "label": "ฟิลด์พิกัด",
                "description": "ฟิลด์ที่เก็บสตริงพิกัดนำเข้า หากไม่ระบุ จะใช้เรขาคณิตของจุด (ใช้ได้เฉพาะเมื่อ input_notation=DD; เรขาคณิต x=lon, y=lat)."
              },
              "output_field": {
                "label": "ฟิลด์ผลลัพธ์",
                "description": "ชื่อฟิลด์ที่จะเขียน ค่าเริ่มต้น: ชื่อสัญกรณ์ผลลัพธ์แบบตัวพิมพ์เล็ก (เช่น 'utm')."
              },
              "precision": {
                "label": "ความละเอียดทศนิยม",
                "description": "จำนวนหลัก MGRS ต่อแกน (1=10km … 5=1m สูงสุด 9) ค่าเริ่มต้น 5 สัญกรณ์อื่นจะละเว้นค่านี้."
              },
              "update_geometry": {
                "label": "อัปเดตเรขาคณิต",
                "description": "หากเป็นจริง จะสร้างเรขาคณิตของแต่ละฟีเจอร์ใหม่เป็นจุด lon/lat ใน EPSG:4326 จากพิกัดที่แปลงค่าได้ ค่าเริ่มต้น false (คงเรขาคณิต/CRS เดิมไว้)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "convert_sar_units": {
            "name": "แปลงหน่วย SAR",
            "description": "แปลงแรสเตอร์ SAR ระหว่างการแทนค่าแบบแอมพลิจูด ความเข้ม กำลังเชิงเส้น เดซิเบล เชิงซ้อนเป็นความเข้ม และเฟสที่คลี่แล้วเป็นการเคลื่อนตำแหน่ง (ArcGIS Convert SAR Units) raster_calculator ประเมินเลขคณิตได้แต่ไม่มีความหมายหรือการป้องกันใด ๆ — มันคืนค่า -inf สำหรับเซลล์ค่าศูนย์ในการแปลงลอการิทึม และไม่มีเครื่องมือใดในแคตตาล็อกบันทึกว่าแรสเตอร์ SAR อยู่ในหน่วยใด ทำให้ตัวกรอง speckle และดัชนีอัตราส่วนถูกนำไปใช้กับการแทนค่าที่ผิดอยู่เป็นประจำ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ SAR นำเข้า สำหรับ 'complex_to_intensity' ข้อมูลนี้เป็นแรสเตอร์ I/Q สองแบนด์ (ตามแบบแผนของ multilook / sar_coherence)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "conversion": {
                "label": "การแปลง",
                "description": "'linear_to_db', 'db_to_linear', 'amplitude_to_intensity', 'intensity_to_amplitude', 'complex_to_intensity' หรือ 'phase_to_displacement'."
              },
              "wavelength": {
                "label": "ความยาวคลื่น",
                "description": "ความยาวคลื่นเรดาร์ในหน่วยเมตรสำหรับ 'phase_to_displacement' (ค่าเริ่มต้น 0.05546576, Sentinel-1 C-band)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน เริ่มนับจาก 1 (ค่าเริ่มต้น 1) จะถูกละเว้นสำหรับ 'complex_to_intensity' ซึ่งอ่านแบนด์ 1 และ 2 เป็น I และ Q เสมอ."
              }
            }
          },
          "coregister_rasters": {
            "name": "ลงทะเบียนแรสเตอร์ร่วมกัน",
            "description": "จัดแนวแรสเตอร์รองให้ตรงกับแรสเตอร์อ้างอิงโดยอัตโนมัติ ด้วยสหสัมพันธ์ไขว้แบบปรับมาตรฐานบนกริดไทล์ การปรับละเอียดจุดยอดระดับต่ำกว่าพิกเซล การฟิตการแปลงแบบกำลังสองน้อยสุดพร้อมตัดค่าผิดปกติ และการสุ่มตัวอย่างใหม่ (ArcGIS Apply Coregistration) นี่คือเงื่อนไขเบื้องต้นที่ขาดหายไปของสายงาน InSAR ทั้งหมดในแคตตาล็อก: sar_coherence, flatten_interferogram และ goldstein_phase_filter ล้วนต้องการข้อมูลนำเข้าที่ลงทะเบียนร่วมกันแล้วแต่ไม่มีเครื่องมือใดผลิตให้ georeference_raster_from_control_points ต้องการจุดควบคุมที่เลือกด้วยมือ image_correlation ให้คะแนนความคล้ายคลึงเท่านั้น และ warp_raster ต้องการการแปลงที่ป้อนให้.",
            "params": {
              "reference": {
                "label": "ข้อมูลอ้างอิง",
                "description": "แรสเตอร์อ้างอิง ผลลัพธ์จะถูกเขียนบนกริดของแรสเตอร์นี้."
              },
              "secondary": {
                "label": "รอง",
                "description": "แรสเตอร์ที่จะจัดวางให้ตรงกับแรสเตอร์อ้างอิง ทุกแบนด์ของแรสเตอร์นี้จะถูกสุ่มตัวอย่างใหม่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์รองผลลัพธ์ที่สุ่มตัวอย่างใหม่บนกริดอ้างอิง หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "tie_points": {
                "label": "จุดโยง",
                "description": "เลเยอร์จุดผลลัพธ์ของจุดยึดที่ยอมรับ พร้อมค่าการเลื่อนที่วัดได้และค่าสหสัมพันธ์ สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่ใช้ในการจับคู่ เริ่มนับจาก 1 (ค่าเริ่มต้น 1) ข้อมูลนำเข้าแบบสองแบนด์จะถูกจับคู่ด้วยขนาดเชิงซ้อน เว้นแต่จะระบุค่านี้."
              },
              "transform": {
                "label": "การแปลง",
                "description": "'translation', 'affine' (ค่าเริ่มต้น) หรือ 'polynomial2'."
              },
              "tile_size": {
                "label": "ขนาดไทล์",
                "description": "ด้านของไทล์จับคู่แต่ละไทล์ในหน่วยเซลล์ (ค่าเริ่มต้น 32)."
              },
              "grid_size": {
                "label": "ขนาดกริด",
                "description": "จำนวนไทล์ต่อแกน (ค่าเริ่มต้น 8 จึงได้ 64 ไทล์)."
              },
              "max_shift": {
                "label": "การเลื่อนสูงสุด",
                "description": "ครึ่งความกว้างของหน้าต่างค้นหาแบบจำนวนเต็มในหน่วยเซลล์ (ค่าเริ่มต้น 8)."
              },
              "min_correlation": {
                "label": "สหสัมพันธ์ต่ำสุด",
                "description": "ปฏิเสธจุดยึดที่มีค่าสหสัมพันธ์มาตรฐานสูงสุดต่ำกว่าค่านี้ (ค่าเริ่มต้น 0.3)."
              },
              "outlier_sigma": {
                "label": "Sigma ค่าผิดปกติ",
                "description": "ตัดจุดยึดที่มีค่าเศษเหลือจากการปรับพอดีเกินกว่าจำนวนส่วนเบี่ยงเบนมาตรฐานนี้ (ค่าเริ่มต้น 3.0) ตั้งเป็น 0 เพื่อปิดการตัดออก."
              },
              "resample": {
                "label": "สุ่มตัวอย่างใหม่",
                "description": "'bilinear' (ค่าเริ่มต้น) หรือ 'nearest'."
              }
            }
          },
          "corridor": {
            "name": "ทางเดินเชื่อม",
            "description": "ทางเดินเชื่อมต้นทุนต่ำสุดระหว่างพื้นผิวต้นทุนสะสมสองพื้นผิว (ArcGIS Corridor): รวมแรสเตอร์ระยะทางตามต้นทุนสองรายการเป็นพื้นผิวทางเดินเชื่อมซึ่งค่าต่ำสุดคือเส้นทางต้นทุนต่ำสุด จากนั้นกำหนดค่าเกณฑ์เป็นตัวเลือกเพื่อให้ได้แถบใกล้เหมาะสมที่สุด ใช้โหมดตรง (แรสเตอร์ต้นทุนสองรายการ) หรือโหมดสะดวก (แรสเตอร์แรงเสียดทานหนึ่งรายการ + แรสเตอร์ต้นทางสองรายการ).",
            "params": {
              "cost1": {
                "label": "ต้นทุน 1",
                "description": "แรสเตอร์ต้นทุนสะสมชั้นแรก (จากแหล่งกำเนิด A) โหมดโดยตรง."
              },
              "cost2": {
                "label": "ต้นทุน 2",
                "description": "แรสเตอร์ต้นทุนสะสมชั้นที่สอง (จากแหล่งกำเนิด B) โหมดโดยตรง."
              },
              "cost": {
                "label": "ต้นทุน",
                "description": "แรสเตอร์ความเสียดทาน/ต้นทุนการเดินทางผ่าน โหมดอำนวยความสะดวก (ใช้กับ source1/source2)."
              },
              "source1": {
                "label": "ต้นทาง 1",
                "description": "แรสเตอร์แหล่งกำเนิดชั้นแรก (เซลล์ที่มีค่าเป็นบวกคือแหล่งกำเนิด) โหมดอำนวยความสะดวก."
              },
              "source2": {
                "label": "ต้นทาง 2",
                "description": "แรสเตอร์แหล่งกำเนิดชั้นที่สอง (เซลล์ที่มีค่าเป็นบวกคือแหล่งกำเนิด) โหมดอำนวยความสะดวก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์คอร์ริดอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "เก็บเฉพาะเซลล์ที่มีต้นทุนคอร์ริดอร์เท่ากับหรือต่ำกว่าค่าสัมบูรณ์นี้ (มาสก์ส่วนที่เหลือให้เป็น no-data)."
              },
              "percent": {
                "label": "ร้อยละ",
                "description": "เก็บเฉพาะเซลล์ที่อยู่ภายในร้อยละนี้เหนือต้นทุนคอร์ริดอร์ต่ำสุด (เช่น 5 = ภายใน 5%) จะถูกละเว้นหากตั้งค่า 'threshold'."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่านจากแรสเตอร์นำเข้า เริ่มนับจาก 1 ค่าเริ่มต้น 1."
              }
            }
          },
          "cost_back_link": {
            "name": "ลิงก์ย้อนกลับของต้นทุน",
            "description": "ให้ผลลัพธ์เป็นแรสเตอร์ทิศทางเพื่อนบ้านแบบ 0-8 ที่เข้ารหัสขั้นถัดไปตามเส้นทางต้นทุนต่ำสุดกลับไปยังต้นทางที่ใกล้ที่สุดสำหรับทุกเซลล์ พร้อมพื้นผิวต้นทุนสะสม (ArcGIS Cost Back Link และ Path Back Link) cost_distance, cost_pathway และ cost_allocation ล้วนคำนวณสิ่งนี้ภายในแล้วทิ้งไป ดังนั้นการย้อนรอย N ปลายทางปัจจุบันจึงต้องแก้ต้นทุนเต็มรูปแบบ N ครั้ง แทนที่จะเป็นการสะสมหนึ่งรอบบวกการเดินย้อนราคาถูก N ครั้ง.",
            "params": {
              "source": {
                "label": "ต้นทาง",
                "description": "เซลล์แหล่งกำเนิด: เป็นแรสเตอร์ (เซลล์ใดก็ตามที่ไม่เป็นศูนย์และไม่ใช่ no-data ถือเป็นแหล่งกำเนิด) หรือเลเยอร์เวกเตอร์จุด/มัลติพอยต์."
              },
              "cost": {
                "label": "ต้นทุน",
                "description": "แรสเตอร์ต้นทุนต่อหน่วยระยะทาง เป็นตัวเลือกเมื่อระบุ 'surface' (ต้นทุนจะมีค่าเริ่มต้นเป็น 1 ทุกจุด ทำให้ได้ระยะทางบนพื้นผิวล้วน ๆ)."
              },
              "surface": {
                "label": "พื้นผิว",
                "description": "แรสเตอร์ระดับความสูงเป็นตัวเลือกที่เปิดใช้รูปแบบ Path Back Link: ระยะห่างในแนวราบจะถูกแทนที่ด้วยระยะทางบนพื้นผิวจริง sqrt(dxy^2 + dz^2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ backlink ผลลัพธ์ (0 = แหล่งกำเนิด, 1-8 = ทิศทางไปยังแหล่งกำเนิด, 1 = ทิศตะวันออก ทวนเข็มนาฬิกา) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "out_distance": {
                "label": "ระยะทางผลลัพธ์",
                "description": "แรสเตอร์ต้นทุนสะสม สร้างขึ้นเสมอ และจะใช้ตัวอ้างอิงในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ค่าตัดการสะสมเป็นตัวเลือก: เซลล์ที่มีต้นทุนมากกว่าค่านี้จะถูกปล่อยให้เข้าถึงไม่ได้."
              }
            }
          },
          "cost_connectivity": {
            "name": "การเชื่อมต่อตามต้นทุน",
            "description": "โครงข่ายต้นทุนต่ำสุดที่เชื่อมหลายตำแหน่งบนพื้นผิวต้นทุน (เช่นเดียวกับ ArcGIS Cost Connectivity / Optimal Region Connections): การจัดสรรแบบ Dijkstra หลายต้นทาง เส้นทางต้นทุนต่ำสุดเป็นคู่ระหว่างภูมิภาคที่ติดกัน และต้นไม้ทอดข้ามน้อยสุดของเส้นทางเหล่านั้น — โครงข่ายต้นทุนต่ำสุดที่ cost_distance และ path_distance แบบต้นทางเดียวที่มาพร้อมกันสร้างไม่ได้.",
            "params": {
              "sources": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดของพื้นที่/ภูมิภาคที่ต้องการเชื่อมต่อ."
              },
              "cost": {
                "label": "ต้นทุน",
                "description": "แรสเตอร์ต้นทุน/ความเสียดทาน (ต้นทุนการเดินทางผ่านต่อเซลล์ เซลล์ no-data เป็นสิ่งกีดขวาง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เส้นหลายส่วนผลลัพธ์ของเส้นทางต้นทุนต่ำสุด หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "connections": {
                "label": "การเชื่อมต่อ",
                "description": "'mst' (ต้นไม้แผ่ทั่วน้อยสุดที่เชื่อมทุกพื้นที่ ค่าเริ่มต้น) หรือ 'all_neighbors' (เส้นทางระหว่างทุกภูมิภาคที่อยู่ติดกัน)."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์เป็นตัวเลือกสำหรับกำกับป้ายแหล่งกำเนิด (ค่าเริ่มต้น: ดัชนีที่เริ่มนับจาก 1)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของแรสเตอร์ต้นทุน เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "count_overlapping_features": {
            "name": "นับฟีเจอร์ที่ซ้อนทับ",
            "description": "ทำโพลิกอนที่ซ้อนทับกันให้แบนเป็นภูมิภาคที่ไม่ทับซ้อนกัน โดยแต่ละภูมิภาคมีแอตทริบิวต์เป็นจำนวน (และรหัสเป็นตัวเลือก) ของฟีเจอร์นำเข้าที่ครอบคลุม เช่นเดียวกับ ArcGIS Count Overlapping Features.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า (ฟีเจอร์อาจซ้อนทับกันได้)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุล) ที่มีฟิลด์ 'count' หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "min_count": {
                "label": "จำนวนนับต่ำสุด",
                "description": "เก็บเฉพาะภูมิภาคที่ถูกครอบคลุมด้วยฟีเจอร์อย่างน้อยจำนวนนี้ (ค่าเริ่มต้น 1; ใช้ 2 หากต้องการเฉพาะส่วนที่ซ้อนทับ)."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์เป็นตัวเลือกที่ระบุฟีเจอร์นำเข้าแต่ละรายการ (ใช้ในคอลัมน์ ids / รายงาน) ค่าเริ่มต้น: ดัชนีของฟีเจอร์."
              },
              "report_ids": {
                "label": "รายงานรหัส",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับตารางเชื่อม region_id,feature_id (หนึ่งแถวต่อหนึ่งฟีเจอร์ที่ครอบคลุม)."
              }
            }
          },
          "create_accuracy_assessment_points": {
            "name": "สร้างจุดประเมินความถูกต้อง",
            "description": "สร้างจุดอ้างอิงที่กระจายแบบสุ่มโดยแบ่งชั้นตามคลาสของแรสเตอร์ที่จำแนกแล้วหรือเลเยอร์โพลิกอน โดยเติมคลาสของแผนที่ไว้ล่วงหน้าและพร้อมสำหรับการติดป้ายข้อมูลจริงภาคพื้นดิน (ArcGIS Create Accuracy Assessment Points) classification_accuracy_assessment ใช้จุดดังกล่าวแต่ไม่มีเครื่องมือใดผลิตให้ ส่วน create_spatial_sampling_locations แบ่งชั้นตามฟีเจอร์โพลิกอนหรือฟิลด์ไม่ใช่ตามคลาสแรสเตอร์ และไม่มีการจัดสรรแบบเท่ากัน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ที่จำแนกคลาสแล้ว หรือเลเยอร์โพลิกอนที่จำแนกคลาสแล้วพร้อม 'class_field'."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "แอตทริบิวต์คลาส จำเป็นเมื่อ 'input' เป็นเลเยอร์เวกเตอร์ จะถูกละเว้นสำหรับข้อมูลนำเข้าแบบแรสเตอร์ ซึ่งใช้ค่าของเซลล์."
              },
              "num_points": {
                "label": "จำนวนจุด",
                "description": "จำนวนจุดอ้างอิงทั้งหมด (ค่าเริ่มต้น 500)."
              },
              "sampling_strategy": {
                "label": "กลยุทธ์การสุ่มตัวอย่าง",
                "description": "เลือกหนึ่งจาก 'stratified_random' (ค่าเริ่มต้น จัดสรรตามสัดส่วนพื้นที่ของคลาส), 'equalized_stratified' (จำนวนเท่ากันต่อคลาส), 'random' (ไม่สนใจคลาส)."
              },
              "min_points_per_class": {
                "label": "จำนวนจุดต่ำสุดต่อคลาส",
                "description": "ค่าขั้นต่ำที่บังคับใช้ภายใต้ 'stratified_random' เพื่อไม่ให้คลาสที่พบน้อยถูกตัดออก (ค่าเริ่มต้น 1)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของข้อมูลนำเข้าแบบแรสเตอร์ เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับตัวสร้างเลขสุ่มแบบกำหนดได้ (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์จุดผลลัพธ์ที่มี CLASSVALUE (คลาสบนแผนที่), GrndTruth (-1 จนกว่าจะเก็บข้อมูล) และ Stratum หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "create_cartographic_partitions": {
            "name": "สร้างพาร์ติชันแผนที่",
            "description": "สร้างโพลิกอนพาร์ติชันแบบปรับตัวที่ไม่ซ้อนทับกัน ซึ่งแต่ละอันมีจำนวนฟีเจอร์ใกล้เคียงเป้าหมาย (หนาแน่นขึ้นในบริเวณที่ข้อมูลกระจุกตัว) เพื่อให้งานทำให้เป็นภาพรวม / มาสก์ขนาดใหญ่แบ่งเป็นไทล์ได้อย่างปลอดภัยต่อความครอบคลุม — เป็นคู่ขนานแบบ Rust ล้วนของ ArcGIS Create Cartographic Partitions.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (เรขาคณิตชนิดใดก็ได้) แต่ละฟีเจอร์จะถูกลดรูปเป็นจุดตัวแทนและกำหนดให้อยู่ในพาร์ทิชันเดียว."
              },
              "feature_count": {
                "label": "จำนวนฟีเจอร์",
                "description": "จำนวนฟีเจอร์สูงสุดต่อพาร์ทิชันที่ต้องการ เซลล์จะถูกแบ่งต่อไปตราบใดที่ยังมีฟีเจอร์มากกว่าจำนวนนี้ ค่าเริ่มต้น 1000."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์โพลิกอนผลลัพธ์ของพาร์ทิชัน (ไดรเวอร์กำหนดจากนามสกุล) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "create_overpass": {
            "name": "สร้างทางข้าม",
            "description": "สร้างโพลิกอนมาสก์แบบเจาะ (และเส้นตกแต่งขีดปีกเป็นตัวเลือก) ในบริเวณที่เส้น 'เหนือ' ตัดข้ามเส้น 'ใต้' เพื่อให้เส้นที่อยู่ต่ำกว่าถูกมาสก์ที่จุดตัด.",
            "params": {
              "above": {
                "label": "เหนือ",
                "description": "เวกเตอร์เส้นของฟีเจอร์ที่ผ่านด้านบนของจุดตัด (มาสก์จะวางแนวตามเส้นเหล่านี้) ตรวจหารูปแบบอัตโนมัติ หรือใช้ตัวอ้างอิงในหน่วยความจำ."
              },
              "below": {
                "label": "ใต้",
                "description": "เวกเตอร์เส้นของฟีเจอร์ที่ถูกมาสก์ไว้ด้านล่างของจุดตัด (เส้นที่จะถูกตัดออก) ตรวจหารูปแบบอัตโนมัติ หรือใช้ตัวอ้างอิงในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับโพลิกอนมาสก์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_decoration": {
                "label": "ผลลัพธ์การตกแต่ง",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับเส้นตกแต่งแบบขีดปีก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ (ยังคงส่งคืนเป็น 'output_decoration')."
              },
              "margin_along": {
                "label": "ระยะขอบตามแนว",
                "description": "ครึ่งความยาวของมาสก์แต่ละอันตามแนวเส้นด้านบน ในหน่วย CRS (ความยาวมาสก์เป็น 2 เท่าของค่านี้) ค่าเริ่มต้น 1.0."
              },
              "margin_across": {
                "label": "ระยะขอบขวาง",
                "description": "ครึ่งความกว้างของมาสก์แต่ละอันในแนวขวางเส้นด้านบน ในหน่วย CRS (ความกว้างมาสก์เป็น 2 เท่าของค่านี้) ค่าเริ่มต้น 1.0."
              },
              "wing_type": {
                "label": "ชนิดปีก",
                "description": "รูปแบบการตกแต่ง: 'none', 'perpendicular' (ค่าเริ่มต้น; ขีดขวางที่ปลายมาสก์แต่ละด้าน) หรือ 'parallel' (เส้นขอบตามแนวแต่ละด้าน)."
              }
            }
          },
          "create_routes": {
            "name": "สร้างเส้นทาง",
            "description": "ยุบรวมฟีเจอร์เส้นตามฟิลด์ตัวระบุเส้นทาง จัดเรียงเซกเมนต์ของแต่ละเส้นทางให้เป็นโพลีไลน์เดียว และกำหนดค่าวัดเชิงเส้น (ค่า m) จากความยาวทางเรขาคณิตหรือจากฟิลด์ค่าวัดเริ่มต้น/สิ้นสุด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์เส้นนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือใช้ตัวอ้างอิงในหน่วยความจำ)."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "แอตทริบิวต์ที่ระบุแต่ละเส้นทาง เส้นนำเข้าจะถูกจัดกลุ่มตามค่านี้ ได้หนึ่งเส้นทางผลลัพธ์ต่อหนึ่งค่าที่แตกต่างกัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นทางผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "measure_source": {
                "label": "แหล่งค่าระยะวัด",
                "description": "วิธีกำหนดค่าระยะวัด: LENGTH (0..ความยาวเชิงเรขาคณิต), ONE_FIELD (เริ่มจากค่าในฟิลด์ สิ้นสุด = จุดเริ่ม + ความยาว) หรือ TWO_FIELDS (จุดเริ่ม/สิ้นสุดจากฟิลด์ แล้วประมาณค่าระหว่างกลาง) ค่าเริ่มต้น LENGTH."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ฟิลด์ตัวเลขที่ระบุค่าระยะวัดเริ่มต้นของแต่ละเส้นทาง (ใช้โดย ONE_FIELD และ TWO_FIELDS) อ่านจากเซกเมนต์แรกของเส้นทาง."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ฟิลด์ตัวเลขที่ระบุค่าระยะวัดสิ้นสุดของแต่ละเส้นทาง (ใช้โดย TWO_FIELDS) อ่านจากเซกเมนต์แรกของเส้นทาง."
              },
              "measure_factor": {
                "label": "ตัวคูณค่าระยะวัด",
                "description": "ตัวคูณที่ใช้กับค่าระยะวัดตามธรรมชาติ (อิงความยาว) เช่น 0.001 เพื่อแปลงเมตรเป็นกิโลเมตร ค่าเริ่มต้น 1.0."
              },
              "measure_offset": {
                "label": "ออฟเซ็ตค่าระยะวัด",
                "description": "ค่าที่บวกเพิ่มให้กับทุกค่าระยะวัดตามแนวเส้นทาง (เลื่อนค่า m ของทั้งเส้นทาง) ค่าเริ่มต้น 0.0."
              },
              "ignore_gaps": {
                "label": "ละเว้นช่องว่าง",
                "description": "สำหรับ LENGTH/ONE_FIELD ให้ยกเว้นช่วงกระโดดเป็นเส้นตรงระหว่างเซกเมนต์ที่ไม่ต่อเนื่องออกจากค่าระยะวัดสะสม เพื่อไม่ให้ช่องว่างทำให้ระยะทางเพิ่มเกินจริง ค่าเริ่มต้น false."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "จุดปลายที่อยู่ภายในระยะนี้ (หน่วย CRS) จะถือว่าอยู่ตำแหน่งเดียวกันเมื่อเย็บต่อเซกเมนต์ ค่าเริ่มต้น 1e-6."
              }
            }
          },
          "create_spatial_sampling_locations": {
            "name": "สร้างตำแหน่งสุ่มตัวอย่างเชิงพื้นที่",
            "description": "สร้างจุดตัวอย่างบนพื้นที่ศึกษาแบบโพลิกอนด้วยการออกแบบแบบสุ่มอย่างง่าย แบบแบ่งชั้นภูมิ แบบเป็นระบบ (สี่เหลี่ยม/หกเหลี่ยม/สามเหลี่ยม) หรือแบบกลุ่ม พร้อมความสุ่มที่ทำซ้ำได้ด้วยค่าเริ่มต้นสุ่ม.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนพื้นที่ศึกษา (หรือตัวอ้างอิงในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'simple_random' (ค่าเริ่มต้น), 'stratified', 'systematic' หรือ 'cluster'."
              },
              "num_samples": {
                "label": "จำนวนตัวอย่าง",
                "description": "จำนวนจุดตัวอย่างทั้งหมดสำหรับ simple_random, stratified และ cluster ค่าเริ่มต้น 100."
              },
              "strata_field": {
                "label": "ฟิลด์ชั้นภูมิ",
                "description": "สำหรับ stratified: จัดกลุ่มฟีเจอร์นำเข้าเป็นชั้นภูมิตามแอตทริบิวต์นี้ หากไม่ระบุ ฟีเจอร์นำเข้าแต่ละรายการจะเป็นชั้นภูมิของตัวเอง."
              },
              "allocation": {
                "label": "การจัดสรร",
                "description": "สำหรับ stratified: 'proportional' ตามสัดส่วนพื้นที่ของชั้นภูมิ (ค่าเริ่มต้น), 'equal' เท่ากันทุกชั้นภูมิ หรือ 'population_field' ตามสัดส่วนผลรวมของฟิลด์."
              },
              "population_field": {
                "label": "ฟิลด์ประชากร",
                "description": "สำหรับ allocation=population_field: ฟิลด์ตัวเลขที่ผลรวมในแต่ละชั้นภูมิเป็นตัวกำหนดการจัดสรร."
              },
              "bin_shape": {
                "label": "รูปร่างถัง",
                "description": "สำหรับ systematic: โครงตาข่ายแบบ 'square' (ค่าเริ่มต้น), 'hexagon' หรือ 'triangle'."
              },
              "bin_size": {
                "label": "ขนาดถัง",
                "description": "ระยะห่าง (หน่วย CRS) สำหรับโครงตาข่ายแบบ systematic และถังของ cluster จำเป็นสำหรับวิธีเหล่านี้."
              },
              "num_clusters": {
                "label": "จำนวนกลุ่ม",
                "description": "สำหรับ cluster: จำนวนถังที่จะสุ่มเลือก ค่าเริ่มต้น 10."
              },
              "min_distance": {
                "label": "ระยะทางต่ำสุด",
                "description": "ระยะห่างต่ำสุดระหว่างจุดของ simple_random / stratified / cluster (หน่วย CRS) ค่าเริ่มต้น 0 (ไม่มีข้อจำกัด)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับตัวสร้างเลขสุ่มแบบกำหนดได้ (ค่าเริ่มต้น 1)."
              }
            }
          },
          "create_spatially_balanced_points": {
            "name": "สร้างจุดสมดุลเชิงพื้นที่",
            "description": "สร้างจุดตัวอย่างที่กระจายตัวดีเชิงพื้นที่ (กึ่งสุ่มแบบ Halton) ภายในโพลิกอนข้อจำกัด โดยเลือกถ่วงน้ำหนักด้วยแรสเตอร์ความน่าจะเป็นในการถูกเลือกได้ และแต่ละจุดกำกับด้วยลำดับตัวอย่างแบบสมดุล เช่นเดียวกับ ArcGIS Create Spatially Balanced Points.",
            "params": {
              "constraint": {
                "label": "ข้อจำกัด",
                "description": "เลเยอร์โพลิกอนข้อจำกัด จุดจะถูกสร้างขึ้นภายในโพลิกอนเหล่านี้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "num_points": {
                "label": "จำนวนจุด",
                "description": "จำนวนจุดตัวอย่างที่จะสร้าง."
              },
              "probability": {
                "label": "ความน่าจะเป็น",
                "description": "แรสเตอร์ความน่าจะเป็นในการถูกเลือก เป็นตัวเลือก เซลล์ที่มีค่าสูงกว่ามีโอกาสถูกสุ่มมากกว่า (ปรับมาตรฐานด้วยค่าสูงสุดของแรสเตอร์)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มเพื่อให้การสุ่มตัวอย่างทำซ้ำได้ (ค่าเริ่มต้น 1)."
              }
            }
          },
          "create_underpass": {
            "name": "สร้างทางลอด",
            "description": "ที่จุดตัดของเส้น สร้างโพลิกอนมาสก์วางแนวตามฟีเจอร์ด้านบน และตัดช่องว่างที่สอดคล้องกันออกจากฟีเจอร์ด้านล่าง เพื่อให้อ่านได้ว่าลอดผ่านด้านใต้ (ArcGIS Create Underpass) เป็นเครื่องมือคู่กับ create_overpass ที่มีอยู่แล้ว ซึ่งมาสก์เส้นด้านล่างเพื่อให้เส้นด้านบนดูต่อเนื่อง ส่วนทางลอดต้องการรอยขาดเชิงสัญลักษณ์แทน ซึ่งเป็นสิ่งที่แยกปากอุโมงค์ออกจากสะพาน ให้ผลลัพธ์ทั้งมาสก์และเส้นด้านล่างที่ถูกตัดแล้ว.",
            "params": {
              "above": {
                "label": "เหนือ",
                "description": "เวกเตอร์เส้นของฟีเจอร์ที่ผ่านด้านบนของจุดตัด (มาสก์จะวางแนวตามเส้นเหล่านี้) ตรวจหารูปแบบอัตโนมัติ หรือใช้ตัวอ้างอิงในหน่วยความจำ."
              },
              "below": {
                "label": "ใต้",
                "description": "เวกเตอร์เส้นของฟีเจอร์ที่ผ่านด้านล่างของจุดตัด (เส้นที่จะถูกเว้นช่องว่าง) ตรวจหารูปแบบอัตโนมัติ หรือใช้ตัวอ้างอิงในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับโพลิกอนมาสก์ทางลอด หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_lines": {
                "label": "ผลลัพธ์เส้น",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับเลเยอร์ด้านล่างที่ถูกตัดช่องว่างทางลอดออก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ (ยังคงส่งคืนเป็น 'output_lines')."
              },
              "margin_along": {
                "label": "ระยะขอบตามแนว",
                "description": "ครึ่งความยาวของมาสก์แต่ละอันที่วัดตามแนวเส้นด้านบน ในหน่วย CRS; มาสก์จะครอบคลุม 2 เท่าของค่านี้ในทิศทางดังกล่าว ค่าเริ่มต้น 1.0."
              },
              "margin_across": {
                "label": "ระยะขอบขวาง",
                "description": "ครึ่งความกว้างของมาสก์แต่ละอันในแนวขวางเส้นด้านบน ในหน่วย CRS สำหรับจุดตัดที่ตั้งฉาก ค่านี้คือสิ่งที่กำหนดขอบเขตช่องว่างที่ตัดเข้าไปในเส้นด้านล่าง ดังนั้นความยาวที่ถูกตัดออกจึงเป็น 2 เท่าของค่านี้ ค่าเริ่มต้น 1.0."
              },
              "min_angle": {
                "label": "มุมต่ำสุด",
                "description": "ข้ามจุดตัดที่เส้นทั้งสองมาบรรจบกันด้วยมุมน้อยกว่าค่านี้ในหน่วยองศา เนื่องจากมาสก์ที่เกือบขนานกันไม่เสถียร ค่าเริ่มต้น 15."
              }
            }
          },
          "cul_de_sac_masks": {
            "name": "มาสก์ซอยตัน",
            "description": "สร้างโพลิกอนมาสก์เจาะที่คำนึงถึงมาตราส่วนบริเวณวงเลี้ยวปลายตันในโครงข่ายถนน เช่นเดียวกับ ArcGIS Cul-De-Sac Masks.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นกึ่งกลางถนน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธโพลิกอนมาสก์ผลลัพธ์ เป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "reference_scale": {
                "label": "มาตราส่วนอ้างอิง",
                "description": "ตัวส่วนของมาตราส่วนแผนที่ที่ใช้กำหนดขนาดมาสก์ (เช่น 24000 สำหรับ 1:24,000)."
              },
              "symbol_width": {
                "label": "ความกว้างสัญลักษณ์",
                "description": "ความกว้างของเส้นขอบถนนในหน่วยหน้ากระดาษ (ดู 'page_unit') ที่มาตราส่วนอ้างอิง."
              },
              "margin": {
                "label": "ระยะขอบ",
                "description": "ระยะเผื่อเพิ่มเติมรอบสัญลักษณ์ ในหน่วยหน้ากระดาษ (ค่าเริ่มต้น 0)."
              },
              "page_unit": {
                "label": "หน่วยหน้ากระดาษ",
                "description": "หน่วยของ 'symbol_width' และ 'margin': points (ค่าเริ่มต้น, 1/72 นิ้ว), mm หรือ inches."
              },
              "map_units_per_meter": {
                "label": "หน่วยแผนที่ต่อเมตร",
                "description": "จำนวนหน่วย CRS ต่อเมตร (ค่าเริ่มต้น 1 ซึ่งถูกต้องสำหรับ CRS แบบฉายที่ใช้หน่วยเมตร) สำหรับเลเยอร์ที่ใช้หน่วยองศาให้ใช้ประมาณ 0.000008983."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อการสแนปพิกัดสำหรับเชื่อมจุดปลายเส้นเข้าเป็นโหนดของโครงข่าย (ค่าเริ่มต้น 0.001 หน่วยแผนที่)."
              },
              "attributes": {
                "label": "แอตทริบิวต์",
                "description": "ids_only (ค่าเริ่มต้น) | all — กำหนดว่าจะนำแอตทริบิวต์ของฟีเจอร์ต้นทางไปใส่ในมาสก์หรือไม่."
              }
            }
          },
          "cut_fill": {
            "name": "ตัดและถม",
            "description": "การเปลี่ยนแปลงเชิงปริมาตรระหว่างพื้นผิว DEM สองชุด (ก่อน/หลัง) หรือระหว่างพื้นผิวกับระนาบอ้างอิง: แรสเตอร์การเปลี่ยนแปลงระดับความสูงแบบมีเครื่องหมาย พร้อมปริมาตรตัด ถม และสุทธิ โดยเลือกใส่ป้ายกำกับปริมาตรรายภูมิภาคได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์ 'ก่อน' (หรือพื้นผิวเดียวสำหรับโหมดระนาบ)."
              },
              "after": {
                "label": "หลัง",
                "description": "แรสเตอร์ 'หลัง' (โหมดสองพื้นผิว) ต้องใช้กริดเดียวกับ 'input' ระบุค่านี้หรือ 'plane' อย่างใดอย่างหนึ่ง."
              },
              "plane": {
                "label": "ระนาบ",
                "description": "ระดับความสูงของระนาบอ้างอิง (โหมดปริมาตรพื้นผิว): การเปลี่ยนแปลงวัดจากค่า input ลบด้วยค่านี้ ระบุค่านี้หรือ 'after' อย่างใดอย่างหนึ่ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือกสำหรับการเปลี่ยนแปลงระดับความสูงแบบมีเครื่องหมาย (Δz) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่านจากแรสเตอร์นำเข้า เริ่มนับจาก 1 ค่าเริ่มต้น 1."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "เซลล์ที่มีค่า |Δz| เท่ากับหรือต่ำกว่าค่านี้ (หน่วย z ของ CRS) จะนับว่าไม่มีการเปลี่ยนแปลง ค่าเริ่มต้น 0."
              },
              "region_output": {
                "label": "ผลลัพธ์ภูมิภาค",
                "description": "พาธแรสเตอร์เป็นตัวเลือกสำหรับป้ายกำกับภูมิภาคขุด/ถมที่ต่อเนื่องกัน (รหัสภูมิภาค >= 1; เซลล์ที่ไม่เปลี่ยนแปลงเป็น nodata)."
              },
              "csv_output": {
                "label": "ผลลัพธ์ CSV",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับตารางปริมาตรรายภูมิภาค (region_id, type, cell_count, volume)."
              }
            }
          },
          "darcy_flow": {
            "name": "การไหลแบบ Darcy",
            "description": "สนามความเร็วดาร์ซีของน้ำใต้ดินในสภาวะคงตัวจากแรสเตอร์ระดับน้ำ สภาพการนำส่งน้ำ และความพรุน — แรสเตอร์ขนาดการไหล (ความเร็วดาร์ซี) และแรสเตอร์ทิศทางการไหลลงตามความชันไฮดรอลิก (v = -(T/n)·∇head) พร้อมการติดตามอนุภาคแบบพา (RK2) จากจุดเริ่มต้นเป็นเส้นกระแสแบบโพลีไลน์เป็นตัวเลือก — เช่นเดียวกับ ArcGIS Darcy Flow / Particle Track.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เฮดน้ำใต้ดิน (ระดับความสูงของระดับน้ำใต้ดิน) ขนาดเซลล์จะนำมาจากแรสเตอร์นี้."
              },
              "transmissivity": {
                "label": "ค่าการส่งผ่าน",
                "description": "แรสเตอร์ค่าการส่งผ่านน้ำ (ลงทะเบียนพิกัดตรงกับแรสเตอร์เฮด)."
              },
              "porosity": {
                "label": "ความพรุน",
                "description": "แรสเตอร์ความพรุนประสิทธิผล (ลงทะเบียนพิกัดตรงกับแรสเตอร์เฮด; ค่าต้องมากกว่า 0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ของขนาดความเร็วดาร์ซี หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "direction": {
                "label": "ทิศทาง",
                "description": "พาธแรสเตอร์ผลลัพธ์ของทิศทางการไหล เป็นตัวเลือก (มุมอะซิมุทเป็นองศา วัดจากทิศเหนือตามเข็มนาฬิกา ไปตามความชันลง) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่านจากแรสเตอร์นำเข้าแต่ละชั้น เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "seeds": {
                "label": "จุดเริ่มต้น",
                "description": "เวกเตอร์จุดของตำแหน่งเริ่มต้นอนุภาค เป็นตัวเลือก เมื่อระบุ เส้นการไหลจะถูกลากจากแต่ละจุดเริ่มต้น."
              },
              "streamlines": {
                "label": "เส้นกระแส",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์เป็นตัวเลือกสำหรับเส้นการไหลของอนุภาคที่ลากได้ (ต้องมี 'seeds')."
              },
              "step": {
                "label": "ขั้น",
                "description": "ความยาวก้าวในการติดตามอนุภาคในหน่วย CRS (ค่าเริ่มต้น: ขนาดเซลล์ของแรสเตอร์เฮด)."
              },
              "max_steps": {
                "label": "จำนวนขั้นสูงสุด",
                "description": "จำนวนก้าวการอินทิเกรตสูงสุดต่ออนุภาค (ค่าเริ่มต้น 1000)."
              }
            }
          },
          "delineate_built_up_areas": {
            "name": "กำหนดขอบเขตพื้นที่สิ่งปลูกสร้าง",
            "description": "ลดรายละเอียดขอบเขตอาคารที่หนาแน่นให้เป็นโพลิกอนพื้นที่ตั้งถิ่นฐาน/ขอบเขตเมืองที่เรียบ โดยจัดกลุ่มอาคารที่อยู่ใกล้กัน (การปิดเชิงสัณฐาน) พร้อมตัวกรองจำนวนอาคารต่ำสุดและพื้นที่.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนผังพื้นอาคารนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือใช้ตัวอ้างอิงในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "grouping_distance": {
                "label": "ระยะทางการจัดกลุ่ม",
                "description": "อาคารที่มีผังพื้นอยู่ภายในระยะนี้ (หน่วย CRS) จะถูกจัดกลุ่มเป็นพื้นที่สิ่งปลูกสร้างเดียวกัน ค่านี้กำหนดรัศมีการปิดเชิงสัณฐานเป็นครึ่งหนึ่งของค่านี้."
              },
              "min_building_count": {
                "label": "จำนวนอาคารต่ำสุด",
                "description": "ตัดพื้นที่สิ่งปลูกสร้างที่มีอาคารน้อยกว่าจำนวนนี้ออก (ค่าเริ่มต้น 1 — เก็บทุกกลุ่ม)."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "ตัดพื้นที่สิ่งปลูกสร้างที่มีพื้นที่ (หน่วย CRS กำลังสอง) ต่ำกว่าค่านี้ออก และเติมช่องว่างภายในที่เล็กกว่าค่านี้ ค่าเริ่มต้น: เก็บทั้งหมด."
              },
              "simplify_tolerance": {
                "label": "ค่าเผื่อการลดรูป",
                "description": "ค่าเผื่อแบบ Douglas–Peucker (หน่วย CRS) ที่ใช้กับขอบเขตพื้นที่สิ่งปลูกสร้างเพื่อลดจุดยอดที่หนาแน่นจากบัฟเฟอร์ขอบมน ค่าเริ่มต้น 0 (ไม่ลดรูป)."
              }
            }
          },
          "delineate_depressions": {
            "name": "กำหนดขอบเขตแอ่ง",
            "description": "กำหนดขอบเขตแอ่งซ้อนกันจากแรสเตอร์แอ่งรับน้ำด้วยวิธี level-set (lidar slicing.py).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์แอ่งต่ำนำเข้า (เช่น ผลลัพธ์จาก extract_sinks)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์รหัสแอ่งต่ำ เป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "level_output": {
                "label": "ผลลัพธ์ระดับ",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ระดับชั้นของแอ่งต่ำ."
              },
              "csv_output": {
                "label": "ผลลัพธ์ CSV",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับไฟล์ CSV แอตทริบิวต์ของแอ่งต่ำ."
              },
              "vector_output": {
                "label": "ผลลัพธ์เวกเตอร์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับโพลิกอนแอ่งต่ำในรูปแบบ GeoJSON (เชื่อมแอตทริบิวต์เข้าด้วยกันแล้ว)."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "จำนวนพิกเซลต่ำสุดสำหรับแอ่งต่ำหนึ่งแห่ง (ค่าเริ่มต้น 10)."
              },
              "min_depth": {
                "label": "ความลึกต่ำสุด",
                "description": "ความลึกต่ำสุดของแอ่งต่ำ (รับไว้เพื่อความเข้ากันได้ ไม่ได้ใช้งาน ให้ตรงกับ lidar)."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ช่วงการแบ่งชั้นสำหรับวิธี level-set (ค่าเริ่มต้น 0.3)."
              }
            }
          },
          "delineate_mounts": {
            "name": "กำหนดขอบเขตเนิน",
            "description": "กำหนดลำดับชั้นซ้อนกันของลักษณะภูมิประเทศที่ยกตัว (เนิน) ใน DEM (lidar mounts.py).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์ DEM นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์รหัสเนิน เป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "level_output": {
                "label": "ผลลัพธ์ระดับ",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์ระดับชั้นของเนิน."
              },
              "csv_output": {
                "label": "ผลลัพธ์ CSV",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับไฟล์ CSV แอตทริบิวต์ของเนิน."
              },
              "vector_output": {
                "label": "ผลลัพธ์เวกเตอร์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับโพลิกอนเนินในรูปแบบ GeoJSON (เชื่อมแอตทริบิวต์เข้าด้วยกันแล้ว)."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "จำนวนพิกเซลต่ำสุดสำหรับเนินหนึ่งแห่ง (ค่าเริ่มต้น 10)."
              },
              "min_height": {
                "label": "ความสูงต่ำสุด",
                "description": "ความสูงต่ำสุดของเนิน (รับไว้เพื่อความเข้ากันได้ ไม่ได้ใช้งาน ให้ตรงกับ lidar)."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ช่วงการแบ่งชั้นสำหรับวิธี level-set (ค่าเริ่มต้น 0.3)."
              },
              "delta": {
                "label": "เดลตา",
                "description": "ค่าฐานที่บวกเพิ่มเมื่อพลิกกลับ DEM (ค่าเริ่มต้น 100)."
              }
            }
          },
          "dem_filter": {
            "name": "ตัวกรอง DEM",
            "description": "ทำให้ DEM เรียบด้วยตัวกรองค่าเฉลี่ย ค่ามัธยฐาน หรือ Gaussian (lidar filtering.py).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์ DEM นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "filter": {
                "label": "ตัวกรอง",
                "description": "ชนิดของตัวกรอง: 'mean', 'median' หรือ 'gaussian' (ค่าเริ่มต้น 'mean')."
              },
              "kernel_size": {
                "label": "ขนาดเคอร์เนล",
                "description": "ขนาดหน้าต่างในหน่วยพิกเซลสำหรับตัวกรอง mean/median (ค่าเริ่มต้น 3)."
              },
              "sigma": {
                "label": "Sigma",
                "description": "ส่วนเบี่ยงเบนมาตรฐานสำหรับตัวกรองแบบเกาส์เซียน (ค่าเริ่มต้น 1.0)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะกรอง เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "dendrogram": {
            "name": "เดนโดรแกรม",
            "description": "สร้างต้นไม้การรวมแบบลำดับชั้นเหนือลายเซ็นของคลาสเพื่อแสดงว่าคลาสต่าง ๆ แยกจากกันได้ดีเพียงใด เช่นเดียวกับ ArcGIS Dendrogram.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์ที่จัดกลุ่มแล้ว ซึ่งมีฟิลด์คลาสและฟิลด์ตัวเลขที่นิยามปริภูมิคุณลักษณะ."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์ที่เก็บตัวระบุคลาส / คลัสเตอร์."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขคั่นด้วยจุลภาคที่นิยามปริภูมิคุณลักษณะ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางการรวมผลลัพธ์ เป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ระยะห่างระหว่างลายเซ็น: 'variance' (ค่าเริ่มต้น; ปรับมาตรฐานด้วยการกระจายภายในคลาส) หรือ 'mean_only'."
              },
              "standardize": {
                "label": "ปรับให้เป็นมาตรฐาน",
                "description": "ทำ Z-standardize กับแต่ละฟิลด์ก่อนคำนวณระยะทาง เพื่อไม่ให้ฟิลด์ที่มีช่วงค่ากว้างมีอิทธิพลเกินไป (ค่าเริ่มต้น true)."
              },
              "output_text": {
                "label": "ผลลัพธ์ข้อความ",
                "description": "พาธเป็นตัวเลือกสำหรับการแสดงผลต้นไม้เป็นข้อความล้วนแบบเยื้องบรรทัด."
              }
            }
          },
          "densify_sampling_network": {
            "name": "เพิ่มความหนาแน่นโครงข่ายสุ่มตัวอย่าง",
            "description": "เสนอตำแหน่งตัวอย่างใหม่ที่เซลล์ซึ่งมีค่าพื้นผิวความคลาดเคลื่อนมาตรฐานของการทำนายแบบคริกกิงสูงสุด โดยเคารพระยะห้ามที่กำหนดระยะห่างต่ำสุด เช่นเดียวกับ ArcGIS Densify Sampling Network.",
            "params": {
              "prediction_error": {
                "label": "ความคลาดเคลื่อนการทำนาย",
                "description": "แรสเตอร์ค่าความคลาดเคลื่อนมาตรฐานของการทำนายนำเข้า (เช่น พื้นผิวความแปรปรวน/ความคลาดเคลื่อนจากคริกกิง) ตัวอย่างใหม่จะมุ่งไปยังเซลล์ที่มีความคลาดเคลื่อนสูงสุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "count": {
                "label": "จำนวนนับ",
                "description": "จำนวนตำแหน่งตัวอย่างใหม่ที่จะเสนอ."
              },
              "inhibition_distance": {
                "label": "ระยะทางยับยั้ง",
                "description": "ระยะห่างต่ำสุดระหว่างตัวอย่างที่เสนอในหน่วยแผนที่ (ค่าเริ่มต้น 0 = ไม่มีการยับยั้ง เลือกเฉพาะเซลล์ที่มีความคลาดเคลื่อนสูงสุด)."
              },
              "mask": {
                "label": "มาสก์",
                "description": "เลเยอร์โพลิกอนเป็นตัวเลือก เฉพาะเซลล์ที่มีจุดศูนย์กลางอยู่ภายในเท่านั้นจึงจะมีสิทธิ์เป็นตัวเลือก."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของแรสเตอร์ความคลาดเคลื่อนของการทำนายที่จะอ่าน เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "detect_bright_ocean_objects": {
            "name": "ตรวจจับวัตถุสว่างในมหาสมุทร",
            "description": "ค้นหาเรือและเป้าหมายจุดสว่างอื่น ๆ บนผิวน้ำในภาพ SAR ด้วยตัวตรวจจับ CFAR แบบสองพารามิเตอร์ และให้ผลลัพธ์เป็นกล่องขอบเขตวางตามแนว พร้อมความยาว ความกว้าง ทิศมุ่งหน้า และค่าการกระเจิงกลับสูงสุด (ArcGIS Detect Bright Ocean Objects) ไม่มีรีจิสทรีใดมีตัวตรวจจับที่อิงสัญญาณรบกวนพื้นหลังเฉพาะที่: ค่าเกณฑ์แบบทั่วทั้งภาพใช้ไม่ได้เพราะสัญญาณรบกวนจากคลื่นทะเลจะสว่างขึ้นตามลมและมุมตกกระทบ ส่วน matched_filter_target_detection เป็นตัวตรวจจับเชิงสเปกตรัมของภาพเชิงแสง และ detect_image_anomalies ใช้แบบจำลองทั่วทั้งภาพแทนที่จะเป็นหน้าต่างเลื่อน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์การกระเจิงกลับ SAR."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนผลลัพธ์ของวัตถุที่ตรวจพบ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "geometry_type": {
                "label": "ชนิดเรขาคณิต",
                "description": "'bounding_box' (ค่าเริ่มต้น) สำหรับสี่เหลี่ยมผืนผ้าเล็กสุดแบบวางแนว หรือ 'perimeter' สำหรับเส้นขอบของการตรวจพบที่ลากตาม."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์การตรวจจับ CFAR ในหน่วยส่วนเบี่ยงเบนมาตรฐานของพื้นหลัง (ค่าเริ่มต้น 5.0)."
              },
              "guard_size": {
                "label": "ขนาดการ์ด",
                "description": "ครึ่งความกว้างในหน่วยเซลล์ของแถบป้องกันที่ถูกกันออกจากการประมาณค่าพื้นหลัง (ค่าเริ่มต้น 3) ต้องมีค่าน้อยกว่า background_size."
              },
              "background_size": {
                "label": "ขนาดพื้นหลัง",
                "description": "ครึ่งความกว้างในหน่วยเซลล์ของวงแหวนพื้นหลัง (ค่าเริ่มต้น 12)."
              },
              "mask_features": {
                "label": "ฟีเจอร์มาสก์",
                "description": "เลเยอร์โพลิกอนที่ใช้มาสก์พื้นดินหรือพื้นน้ำ เซลล์ที่ถูกมาสก์กันออกจะไม่ถูกทดสอบและไม่ถูกใช้เป็นพื้นหลัง."
              },
              "mask_type": {
                "label": "ชนิดมาสก์",
                "description": "'land_polygon' (ค่าเริ่มต้น; วิเคราะห์นอกโพลิกอน) หรือ 'water_polygon' (วิเคราะห์ภายในโพลิกอน)."
              },
              "min_object_length": {
                "label": "ความยาววัตถุต่ำสุด",
                "description": "ตัดวัตถุที่สั้นกว่าค่านี้ออก ในหน่วยแผนที่."
              },
              "max_object_length": {
                "label": "ความยาววัตถุสูงสุด",
                "description": "ตัดวัตถุที่ยาวกว่าค่านี้ออก ในหน่วยแผนที่."
              },
              "min_object_width": {
                "label": "ความกว้างวัตถุต่ำสุด",
                "description": "ตัดวัตถุที่แคบกว่าค่านี้ออก ในหน่วยแผนที่."
              },
              "max_object_width": {
                "label": "ความกว้างวัตถุสูงสุด",
                "description": "ตัดวัตถุที่กว้างกว่าค่านี้ออก ในหน่วยแผนที่."
              },
              "min_cells": {
                "label": "จำนวนเซลล์ต่ำสุด",
                "description": "ตัดการตรวจพบที่มีขนาดเล็กกว่าจำนวนเซลล์นี้ออก (ค่าเริ่มต้น 2) ซึ่งช่วยกดจุดสัญญาณรบกวนแบบสเปกเคิลที่โดดเดี่ยว."
              },
              "input_units": {
                "label": "หน่วยนำเข้า",
                "description": "'intensity' (ค่าเริ่มต้น), 'dn', 'amplitude' หรือ 'db' การตรวจจับทำงานบนกำลังเชิงเส้น ซึ่งเป็นที่ที่สถิติของคลัตเตอร์มีความหมาย."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะค้นหา เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "detect_dark_ocean_areas": {
            "name": "ตรวจจับพื้นที่มืดในมหาสมุทร",
            "description": "ค้นหาหย่อมมืดผิดปกติบนผิวน้ำในภาพ SAR — คราบน้ำมัน การรั่วซึมตามธรรมชาติ ฟิล์มสาหร่าย บริเวณลมสงบ — ในรูปของบริเวณที่อยู่ต่ำกว่าพื้นหลังทะเลเฉพาะที่ตามจำนวนส่วนเบี่ยงเบนมาตรฐานที่กำหนด พร้อมรายงานค่าความต่างเป็น dB (ArcGIS Detect Dark Ocean Areas) เป็นส่วนเติมเต็มของ detect_bright_ocean_objects และต่างจาก extract_water_sar: ภาพที่เป็นน้ำทั้งหมดมีการแจกแจงยอดเดียว การแบ่งด้วย Otsu จึงเพียงผ่าครึ่งสัญญาณรบกวนจากทะเลและรายงานว่าครึ่งหนึ่งของมหาสมุทรเป็นคราบน้ำมัน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์การกระเจิงกลับ SAR เหนือพื้นน้ำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนผลลัพธ์ของพื้นที่มืด หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_raster": {
                "label": "แรสเตอร์ผลลัพธ์",
                "description": "มาสก์ไบนารีผลลัพธ์ (1 = มืด, 0 = พื้นหลัง) สร้างเสมอ; จัดเก็บในหน่วยความจำเมื่อไม่ได้ระบุพาธ."
              },
              "method": {
                "label": "วิธี",
                "description": "'statistical' (ค่าเริ่มต้น; จำนวนส่วนเบี่ยงเบนมาตรฐานที่กำหนดต่ำกว่าค่าเฉลี่ยพื้นหลัง), 'otsu' หรือ 'fixed'."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "สำหรับ 'statistical' คือจำนวนส่วนเบี่ยงเบนมาตรฐานต่ำกว่าค่าเฉลี่ยที่ถือว่ามืด (ค่าเริ่มต้น 2.0) สำหรับ 'fixed' คือระดับ dB ที่เท่ากับหรือต่ำกว่านั้นจะถือว่าเซลล์นั้นมืด."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "ตัดพื้นที่มืดที่มีขนาดเล็กกว่าพื้นที่นี้ (หน่วยแผนที่กำลังสอง) ออก คราบน้ำมันมีขนาดใหญ่และต่อเนื่อง ส่วนสัญญาณรบกวนแบบสเปกเคิลไม่เป็นเช่นนั้น."
              },
              "min_contrast_db": {
                "label": "คอนทราสต์ต่ำสุด (dB)",
                "description": "ตัดบริเวณที่อยู่ต่ำกว่าพื้นหลังน้อยกว่าค่า dB นี้ออก คราบน้ำมันแร่โดยทั่วไปจะต่ำกว่าพื้นหลังมากกว่า 5 dB."
              },
              "mask_features": {
                "label": "ฟีเจอร์มาสก์",
                "description": "เลเยอร์โพลิกอนที่จำกัดการวิเคราะห์ให้อยู่เฉพาะพื้นน้ำ พื้นดินมีความสว่างสูงและจะทำให้การประมาณค่าพื้นหลังสูงเกินจริง."
              },
              "mask_type": {
                "label": "ชนิดมาสก์",
                "description": "'land_polygon' (ค่าเริ่มต้น; วิเคราะห์นอกโพลิกอน) หรือ 'water_polygon' (วิเคราะห์ภายในโพลิกอน)."
              },
              "histogram_bins": {
                "label": "จำนวนถังฮิสโทแกรม",
                "description": "จำนวนบินที่ใช้สำหรับฮิสโทแกรมของ Otsu (ค่าเริ่มต้น 256)."
              },
              "input_units": {
                "label": "หน่วยนำเข้า",
                "description": "'intensity' (ค่าเริ่มต้น), 'dn', 'amplitude' หรือ 'db'."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะค้นหา เริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "detect_feature_changes": {
            "name": "ตรวจจับการเปลี่ยนแปลงของฟีเจอร์",
            "description": "จับคู่ชุดข้อมูลเส้นสองชุดด้วยระยะทาง Hausdorff และจำแนกแต่ละเส้นเป็น unchanged / spatial / attribute / spatial_attribute / new พร้อมฟีเจอร์ฐานที่ถูกลบ — จุดเริ่มต้นของการตรวจจับการเปลี่ยนแปลงและการหลอมรวมข้อมูลเวกเตอร์ เช่นเดียวกับ ArcGIS Detect Feature Changes.",
            "params": {
              "update": {
                "label": "อัปเดต",
                "description": "เลเยอร์เวกเตอร์เส้นที่ปรับปรุงแล้ว (สถานะใหม่)."
              },
              "base": {
                "label": "ฐาน",
                "description": "เลเยอร์เวกเตอร์เส้นฐาน (สถานะก่อนหน้า) ที่ใช้เปรียบเทียบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์เส้นผลลัพธ์ (ฟีเจอร์ที่ปรับปรุงซึ่งถูกจำแนกแล้ว พร้อมทั้งฟีเจอร์ฐานที่ถูกลบ) หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะทางสูงสุด (หน่วย CRS) ในการจับคู่เส้นที่ปรับปรุงกับเส้นฐาน จำเป็นต้องระบุ."
              },
              "spatial_tolerance": {
                "label": "ค่าเผื่อเชิงพื้นที่",
                "description": "ระยะทาง Hausdorff ที่ต่ำกว่านี้จะถือว่าเรขาคณิตที่จับคู่ได้ไม่มีการเปลี่ยนแปลง (หน่วย CRS) ค่าเริ่มต้น: search_distance / 5."
              },
              "compare_fields": {
                "label": "ฟิลด์เปรียบเทียบ",
                "description": "ฟิลด์ (คั่นด้วยจุลภาค) ที่มีอยู่ในทั้งสองเลเยอร์เพื่อเปรียบเทียบการเปลี่ยนแปลงของแอตทริบิวต์."
              }
            }
          },
          "detect_graphic_conflict": {
            "name": "ตรวจจับความขัดแย้งทางกราฟิก",
            "description": "ค้นหาตำแหน่งที่ขอบเขตของสัญลักษณ์ (ความกว้างที่วาดจริง) ของเลเยอร์ฟีเจอร์สองเลเยอร์ — หรือเลเยอร์เดียวเทียบกับตัวเอง — ซ้อนทับหรือเบียดกันภายในระยะห่างต่ำสุด โดยให้ผลลัพธ์เป็นโพลิกอนความขัดแย้งหนึ่งอันต่อคู่ที่ขัดแย้ง กำกับด้วยรหัสฟีเจอร์ต้นทางทั้งสองและพื้นที่ที่ซ้อนทับ เช่นเดียวกับ ArcGIS Detect Graphic Conflict.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (จุด เส้น หรือโพลิกอน)."
              },
              "conflict": {
                "label": "ความขัดแย้ง",
                "description": "เลเยอร์เวกเตอร์ที่สองที่ใช้ตรวจสอบกับ 'input' หากไม่ระบุ จะตรวจสอบ 'input' กับตัวเอง."
              },
              "symbol_width": {
                "label": "ความกว้างสัญลักษณ์",
                "description": "ความกว้าง/เส้นผ่านศูนย์กลางของสัญลักษณ์ของฟีเจอร์ 'input' ในหน่วยแผนที่."
              },
              "conflict_symbol_width": {
                "label": "ความกว้างสัญลักษณ์ความขัดแย้ง",
                "description": "ความกว้าง/เส้นผ่านศูนย์กลางของสัญลักษณ์ของฟีเจอร์ 'conflict' ในหน่วยแผนที่ ค่าเริ่มต้น: เท่ากับ 'symbol_width' จะถูกละเว้นเมื่อไม่ได้ระบุ 'conflict'."
              },
              "conflict_distance": {
                "label": "ระยะทางความขัดแย้ง",
                "description": "ระยะห่างเพิ่มเติมที่ต้องการนอกเหนือจากการสัมผัสกัน ในหน่วยแผนที่ ค่าเริ่มต้น 0."
              },
              "line_connection_allowance": {
                "label": "ค่าเผื่อการเชื่อมต่อเส้น",
                "description": "รัศมีรอบจุดปลายร่วมของฟีเจอร์เส้นสองรายการในเลเยอร์เดียวกัน ซึ่งภายในรัศมีนี้การซ้อนทับกันจะถือเป็นการเชื่อมต่อปลายต่อปลายตามปกติ ไม่ใช่ความขัดแย้ง ค่าเริ่มต้น 0 (ไม่มีการยกเว้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์ที่มีฟิลด์ 'input_fid', 'conflict_fid' และ 'overlap_area' หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              }
            }
          },
          "detect_image_anomalies": {
            "name": "ตรวจจับความผิดปกติในภาพ",
            "description": "ให้คะแนนทุกพิกเซลของภาพหลายแบนด์ด้วยระยะทาง Mahalanobis เทียบกับสถิติแบนด์ของทั้งภาพ (หรือของหน้าต่างเลื่อน) — ตัวตรวจจับความผิดปกติแบบ Reed–Xiaoli (RX) — พร้อมมาสก์ค่าเกณฑ์เปอร์เซ็นไทล์เป็นตัวเลือก เช่นเดียวกับ ArcGIS Detect Image Anomalies.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าแบบหลายแบนด์ (2 แบนด์ขึ้นไป)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์คะแนนความผิดปกติ (F32) หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "mode": {
                "label": "โหมด",
                "description": "'global' (สถิติของทั้งฉาก, ค่าเริ่มต้น) หรือ 'local' (สถิติแบบหน้าต่างเคลื่อนที่)."
              },
              "window": {
                "label": "หน้าต่าง",
                "description": "ขนาดหน้าต่างเป็นเลขคี่ (พิกเซล) สำหรับโหมด local (ค่าเริ่มต้น 15)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "เปอร์เซ็นไทล์ (0-100) ของการแจกแจงคะแนน ซึ่งค่าที่สูงกว่านี้จะถูกเขียนเป็นมาสก์ความผิดปกติแบบไบนารี เป็นตัวเลือก."
              },
              "mask_output": {
                "label": "ผลลัพธ์มาสก์",
                "description": "พาธผลลัพธ์สำหรับมาสก์ความผิดปกติแบบไบนารี (ต้องระบุ 'threshold') หากไม่ระบุพาธแต่มีค่าเกณฑ์ จะจัดเก็บในหน่วยความจำ."
              }
            }
          },
          "detect_incidents": {
            "name": "ตรวจจับเหตุการณ์",
            "description": "ระบุตำแหน่งที่เงื่อนไขเริ่มต้นและสิ้นสุดตลอดแต่ละแทร็ก: จัดกลุ่มจุดที่มีเวลากำกับตามแทร็ก เรียงตามเวลา ประเมินการเปรียบเทียบเริ่มต้น (และสิ้นสุดเป็นตัวเลือก) บนแอตทริบิวต์เชิงตัวเลข แล้วให้ผลลัพธ์เป็นช่วงเหตุการณ์ในรูปจุดที่ถูกกำกับหรือเซกเมนต์เส้นรายช่วงพร้อมรหัสและระยะเวลา — เช่นเดียวกับ ArcGIS Detect Incidents.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าของการสังเกตที่มีการบันทึกเวลา."
              },
              "track_field": {
                "label": "ฟิลด์เส้นทางเคลื่อนที่",
                "description": "ฟิลด์ที่ระบุแต่ละเส้นทาง/วัตถุเคลื่อนที่ (เช่น รหัสยานพาหนะหรือสัตว์)."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: เป็นวินาทีเชิงตัวเลขหรือเวลาแบบ ISO-8601."
              },
              "start_condition": {
                "label": "เงื่อนไขเริ่มต้น",
                "description": "เงื่อนไขที่เริ่มต้นเหตุการณ์ เช่น 'speed > 30' ไวยากรณ์: '<field> <op> <number>' โดย op เป็นหนึ่งใน > >= < <= == != และอาจมีสองเงื่อนไขเชื่อมด้วย AND."
              },
              "end_condition": {
                "label": "เงื่อนไขสิ้นสุด",
                "description": "เงื่อนไขที่ปิดเหตุการณ์ (ไวยากรณ์เดียวกัน) เป็นตัวเลือก หากไม่ระบุ เหตุการณ์จะสิ้นสุดเมื่อเงื่อนไขเริ่มต้นไม่เป็นจริงอีกต่อไป."
              },
              "mode": {
                "label": "โหมด",
                "description": "โหมดผลลัพธ์: 'points' (ค่าเริ่มต้น, คัดลอกทุกจุดพร้อมฟิลด์ของเหตุการณ์) หรือ 'segments' (เส้นหลายส่วนหนึ่งเส้นต่อหนึ่งเหตุการณ์)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "dice": {
            "name": "ตัดลูกเต๋า (Dice)",
            "description": "แยกโพลิกอนหรือโพลีไลน์ที่มีจุดยอดเกินขีดจำกัดออกเป็นกริดของชิ้นส่วนย่อย (เช่นเดียวกับ ArcGIS Dice) เพื่อให้การซ้อนทับและการแบ่งไทล์ในขั้นถัดไปยังคงรวดเร็ว โดยควอดทรีแบบปรับตัวจะตัดเรขาคณิตกับแต่ละควอดแรนต์จนทุกชิ้นอยู่ต่ำกว่าขีดจำกัด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนหรือเส้นหลายส่วนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์ของชิ้นส่วนที่ถูกแบ่ง หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "vertex_limit": {
                "label": "ขีดจำกัดจุดยอด",
                "description": "จำนวนจุดยอดสูงสุดต่อฟีเจอร์ผลลัพธ์ (ค่าเริ่มต้น 10000) ฟีเจอร์ที่มีจำนวนเท่ากับหรือน้อยกว่านี้จะผ่านไปโดยไม่เปลี่ยนแปลง."
              }
            }
          },
          "difference_3d": {
            "name": "ผลต่าง 3 มิติ",
            "description": "ลบชุดของทรงตัน 3 มิติออกจากอีกชุดหนึ่ง พร้อมรายงานปริมาตรที่ถูกลบออกและที่เหลืออยู่ในแต่ละฟีเจอร์ตัวตั้ง (ArcGIS Difference 3D) union_3d เป็นการซ้อนทับ 3 มิติเพียงอย่างเดียวในทั้งสองรีจิสทรี และ erase ทำงานเฉพาะโพลิกอน 2 มิติ จึงไม่มีวิธีคำนวณปริมาตรที่เหลือหลังการขุดด้วยทรงตันตัด หรือปริมาตรกลุ่มควันนอกกรอบยกเว้น ปริมาตรของตัวตั้งคำนวณได้แม่นยำ ส่วนปริมาตรที่ถูกลบออกประมาณด้วยการนับวอกเซลที่ความละเอียดที่รายงานไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ของแข็ง 3 มิติแบบปิดที่เป็นตัวตั้ง (MultiPolygon แบบตาข่ายสามเหลี่ยมที่มีค่า Z)."
              },
              "subtract": {
                "label": "ลบ",
                "description": "ของแข็ง 3 มิติแบบปิดที่เป็นตัวลบ ซึ่งจะถูกนำออกจากตัวตั้งแต่ละรายการ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ตารางผลลัพธ์ หนึ่งแถวต่อหนึ่งตัวตั้ง หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "จำนวนเซลล์วอกเซลตามแกนที่ยาวที่สุดของกรอบขอบเขตของตัวตั้งแต่ละรายการ (ค่าเริ่มต้น 64) ค่าที่สูงขึ้นให้ความแม่นยำมากขึ้นแต่ช้าลง."
              },
              "keep_geometry": {
                "label": "คงเรขาคณิต",
                "description": "นำเรขาคณิตดั้งเดิมของตัวตั้งแต่ละรายการไปใส่ในแถวผลลัพธ์ (ค่าเริ่มต้น false: ตารางที่มีเฉพาะแอตทริบิวต์) เรขาคณิตนี้คือตัวตั้งที่ยังไม่ถูกตัด — ไม่มีการสร้างตาข่ายที่รวมกันอย่างแม่นยำ."
              }
            }
          },
          "diffusion_interpolation_with_barriers": {
            "name": "การประมาณค่าแบบแพร่ที่มีสิ่งกีดขวาง",
            "description": "ประมาณค่าจุดวัดที่กระจัดกระจายเป็นแรสเตอร์โดยจำลองการแพร่ความร้อนที่ไหลอ้อมสิ่งกีดขวางสัมบูรณ์ (ไม่ให้ฟลักซ์ผ่าน) แทนที่จะไหลทะลุ (เช่นเดียวกับ ArcGIS Diffusion Interpolation With Barriers) ตัวอย่างถูกตรึงเป็นเซลล์คงที่ ส่วนเซลล์อื่นทุกเซลล์จะผ่อนคลายเข้าหาค่าเฉลี่ยของเพื่อนบ้านที่ไม่ใช่สิ่งกีดขวางตลอดการกวาดแบบ Jacobi ของสมการ Laplace/ความร้อนจำนวน `number_iterations` รอบ อิทธิพลจึงลดลงตามระยะทางการแพร่ ต่างจากเคอร์เนลเส้นทางสั้นสุดที่เลี่ยงสิ่งกีดขวางของ interpolate_with_barriers และจากตัวทำให้แรสเตอร์เรียบ anisotropic_diffusion_filter.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าของค่าตัวอย่างที่วัดได้ (Point / MultiPoint)."
              },
              "z_field": {
                "label": "ฟิลด์ Z",
                "description": "ฟิลด์ตัวเลขบนจุดที่เก็บค่าที่ต้องการประมาณค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์จากการประมาณค่า (GeoTIFF) หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ / ความละเอียดของผลลัพธ์ในหน่วยแผนที่ (เมตรสำหรับ CRS เชิงภูมิศาสตร์ มิฉะนั้นเป็นหน่วย CRS) จำเป็นต้องระบุ."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์เวกเตอร์สิ่งกีดขวาง (เส้นหลายส่วนหรือโพลิกอน) ที่ขวางการแพร่ เป็นตัวเลือก เส้นหลายส่วนจะขวางเซลล์ที่เซกเมนต์ของเส้นตัดผ่าน ส่วนโพลิกอนจะขวางเซลล์ที่มีจุดศูนย์กลางอยู่ภายใน หากไม่ระบุ จะเป็นการควบคุมแบบไม่มีสิ่งกีดขวาง."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "น้ำหนักการผ่อนคลาย lambda ต่อรอบวนซ้ำ ในช่วง (0, 0.25] (ค่าเริ่มต้น 0.2): แต่ละเซลล์อิสระจะเคลื่อนเข้าหาค่าเฉลี่ยของเซลล์ข้างเคียงตามสัดส่วนนี้ในแต่ละรอบ."
              },
              "number_iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบการผ่อนคลายแบบ Jacobi ของสมการความร้อน (ค่าเริ่มต้น 100) จำนวนรอบวนซ้ำที่มากขึ้นจะกระจายอิทธิพลได้ไกลขึ้น."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขที่ให้น้ำหนักต่อจุด (ค่าเริ่มต้น 1) เป็นตัวเลือก ใช้เฉพาะเพื่อเฉลี่ยตัวอย่างที่ทับซ้อนกันซึ่งตกอยู่ในเซลล์ผลลัพธ์เดียวกัน."
              },
              "epsg": {
                "label": "EPSG",
                "description": "กำหนดรหัส EPSG ของ CRS นำเข้าแทนค่าเดิม (เช่น เมื่อเลเยอร์ไม่มีการระบุ) ค่า 4326 จะเรียกใช้การฉายแผนที่แบบเมตรเฉพาะพื้นที่."
              }
            }
          },
          "dimension_reduction": {
            "name": "การลดมิติ",
            "description": "การวิเคราะห์องค์ประกอบหลักบนแอตทริบิวต์เชิงตัวเลขของฟีเจอร์ (เช่นเดียวกับ ArcGIS Dimension Reduction): ทำให้ฟิลด์ที่เลือกเป็นมาตรฐาน แยกค่าไอเกนของเมทริกซ์สหสัมพันธ์/ความแปรปรวนร่วมด้วยการหมุนแบบ Jacobi ที่เขียนขึ้นเอง แล้วเขียนคะแนนองค์ประกอบ PC1..PCk กลับไปยังฟีเจอร์ พร้อมรายงานค่าไอเกน/ความแปรปรวน/น้ำหนักองค์ประกอบ — เป็นคู่ขนานด้านแอตทริบิวต์เวกเตอร์ของ principal_component_analysis ที่มีอยู่ซึ่งรองรับเฉพาะแบนด์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ (หรือตาราง) นำเข้าที่มีฟิลด์แอตทริบิวต์แบบตัวเลข."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "รายการฟิลด์ตัวเลขอย่างน้อยสองฟิลด์ที่ต้องการลดมิติ คั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์คะแนน PC เข้าไป หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "table": {
                "label": "ตาราง",
                "description": "พาธ CSV สำหรับรายงานองค์ประกอบ (ค่าไอเกน ความแปรปรวนที่อธิบายได้ ค่าสะสม และค่าน้ำหนักของแต่ละตัวแปร) เป็นตัวเลือก ค่านี้จะถูกส่งคืนในผลลัพธ์เสมอ."
              },
              "num_components": {
                "label": "จำนวนองค์ประกอบ",
                "description": "จำนวนองค์ประกอบแรกที่ต้องการเก็บไว้ ค่าเริ่มต้น: จำนวนที่เพียงพอจะถึง 'min_variance' มิฉะนั้นใช้ทุกฟิลด์."
              },
              "min_variance": {
                "label": "ความแปรปรวนต่ำสุด",
                "description": "เก็บองค์ประกอบจำนวนน้อยที่สุดที่ความแปรปรวนสะสมที่อธิบายได้ถึงสัดส่วนนี้ (0-1) จะถูกละเว้นหากมีการกำหนด 'num_components'."
              },
              "standardize": {
                "label": "ปรับให้เป็นมาตรฐาน",
                "description": "ปรับมาตรฐานแต่ละฟิลด์ (z-score) ก่อนทำ PCA เพื่อให้สเกลเปรียบเทียบกันได้ — วิเคราะห์เมทริกซ์สหสัมพันธ์ ค่าเริ่มต้น true; หากเป็น false จะวิเคราะห์เมทริกซ์ความแปรปรวนร่วม."
              }
            }
          },
          "dimensional_moving_statistics": {
            "name": "สถิติเคลื่อนที่เชิงมิติ",
            "description": "เลื่อนหน้าต่างไปตามมิติของคิวบ์แรสเตอร์ โดยเขียนสไลซ์ที่ถูกทำให้เรียบหนึ่งสไลซ์ต่อสไลซ์นำเข้าหนึ่งสไลซ์ — ค่าเฉลี่ยหรือค่ามัธยฐานแบบเลื่อนในตำแหน่งเดิมที่เปลี่ยนอนุกรมเวลาดาวเทียมที่มีสัญญาณรบกวนให้ใช้งานได้ (ArcGIS Dimensional Moving Statistics) time_series_smoothing ของรอบที่ 17 รองรับเฉพาะเวกเตอร์ ตัวกรองโฟคอลที่มีอยู่เลื่อนหน้าต่างเชิงพื้นที่ภายในสไลซ์เดียว และ aggregate_multidimensional_raster ย่อคิวบ์ให้เป็นถัง รวมถึงมีค่าเฉลี่ยเชิงวงกลม ซึ่งหากขาดไปการเฉลี่ยทิศด้านลาดหรือเฟสข้ามจุดวนกลับจะไม่มีความหมาย.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือหนึ่งสไลซ์) หรือรายการแรสเตอร์ที่ซ้อนทับกันพอดีคั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์แบบหลายแบนด์ที่มีหนึ่งแบนด์ต่อหนึ่งสไลซ์นำเข้า หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "dimension": {
                "label": "มิติ",
                "description": "ชื่อของมิติ ใช้ในรายงานเท่านั้น (ค่าเริ่มต้น 'slice')."
              },
              "backward_window": {
                "label": "หน้าต่างย้อนหลัง",
                "description": "จำนวนสไลซ์ก่อนหน้าสไลซ์ปัจจุบันที่จะนำมารวม (ค่าเริ่มต้น 1)."
              },
              "forward_window": {
                "label": "หน้าต่างไปข้างหน้า",
                "description": "จำนวนสไลซ์หลังสไลซ์ปัจจุบันที่จะนำมารวม (ค่าเริ่มต้น 1)."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "'mean' (ค่าเริ่มต้น), 'circular_mean', 'majority', 'maximum', 'median', 'minimum', 'minority', 'percentile', 'std' หรือ 'sum'."
              },
              "percentile_value": {
                "label": "ค่าเปอร์เซ็นไทล์",
                "description": "เปอร์เซ็นไทล์ในช่วง [0, 100] สำหรับสถิติ 'percentile' (ค่าเริ่มต้น 50)."
              },
              "period": {
                "label": "คาบ",
                "description": "คาบการวนสำหรับ 'circular_mean' (ค่าเริ่มต้น 360 คือองศา; ใช้ 6.283185307179586 สำหรับเรเดียน)."
              },
              "min_valid": {
                "label": "จำนวนค่าที่ถูกต้องต่ำสุด",
                "description": "จำนวนค่าสังเกตที่ไม่ใช่ no-data ขั้นต่ำในหน้าต่างก่อนที่จะเขียนค่าออกมา (ค่าเริ่มต้น 1)."
              },
              "nodata_handling": {
                "label": "การจัดการ NoData",
                "description": "'data' (ค่าเริ่มต้น; ข้าม no-data และคำนวณจากค่าที่เหลือ), 'nodata' (หากมี no-data ใดๆ ในหน้าต่าง ผลลัพธ์จะเป็น no-data) หรือ 'fill_nodata' (เขียนค่าออกมาแม้ในกรณีที่สไลซ์กลางเองเป็น no-data)."
              }
            }
          },
          "directional_distribution": {
            "name": "การกระจายตามทิศทาง",
            "description": "สถิติเชิงพรรณนาของการกระจายทางภูมิศาสตร์: จุดศูนย์กลางเฉลี่ย จุดศูนย์กลางมัธยฐาน ฟีเจอร์ศูนย์กลาง ระยะทางมาตรฐาน (วงกลม) และวงรีส่วนเบี่ยงเบนมาตรฐาน — พร้อมการถ่วงน้ำหนักและการจัดกลุ่มเป็นตัวเลือก.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (แนะนำให้เป็นจุด; เรขาคณิตอื่นจะใช้จุดตัวแทนที่เป็นค่าเฉลี่ยของจุดยอด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "การวัดที่ต้องการคำนวณ: 'mean_center', 'median_center', 'central_feature', 'standard_distance' หรือ 'standard_deviational_ellipse'."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขสำหรับถ่วงน้ำหนักแต่ละฟีเจอร์ (เช่น จำนวนประชากร) เป็นตัวเลือก ค่าเริ่มต้น: ทุกฟีเจอร์มีน้ำหนักเท่ากับ 1."
              },
              "case_field": {
                "label": "ฟิลด์กรณี",
                "description": "ฟิลด์สำหรับจัดกลุ่มฟีเจอร์ เป็นตัวเลือก จะสร้างฟีเจอร์ผลลัพธ์หนึ่งรายการต่อค่าที่แตกต่างกันแต่ละค่า."
              },
              "n_std": {
                "label": "จำนวนส่วนเบี่ยงเบนมาตรฐาน",
                "description": "ตัวคูณส่วนเบี่ยงเบนมาตรฐาน (1, 2 หรือ 3) สำหรับวงกลมระยะทางมาตรฐานและวงรีเบี่ยงเบนมาตรฐาน ค่าเริ่มต้น 1."
              }
            }
          },
          "directional_trend": {
            "name": "แนวโน้มตามทิศทาง",
            "description": "ฉายจุดตัวอย่างลงบนแอซิมัทที่เลือก และฟิตพหุนามอันดับ 1-3 ของค่าเทียบกับระยะทางเพื่อตรวจหาแนวโน้มระดับรวม/แบบมีทิศทางก่อนทำวาริโอกราฟี (เช่นเดียวกับ Directional Trend ของ ArcGIS) โหมด 'determine' จะกวาดแอซิมัทเพื่อหาทิศทางที่อธิบายความแปรปรวนได้สูงสุด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (แนะนำให้เป็นจุด; เรขาคณิตอื่นจะใช้จุดตัวแทนที่เป็นค่าเฉลี่ยของจุดยอด)."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์แบบตัวเลขที่ต้องการวิเคราะห์แนวโน้ม."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "ทิศทางเข็มทิศเป็นองศา (0 = เหนือ ตามเข็มนาฬิกา) ที่จะฉายลงไป หรือ 'determine' (ค่าเริ่มต้น) เพื่อกวาดหาในช่วง 0-179° สำหรับทิศทางที่อธิบายความแปรปรวนได้สูงสุด."
              },
              "order": {
                "label": "อันดับ",
                "description": "อันดับของพหุนาม 1, 2 หรือ 3 (ค่าเริ่มต้น 2)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) เป็นตัวเลือก หากไม่ระบุ จะจัดเก็บในหน่วยความจำ จุดจะมีค่า proj_dist, value, fitted และ residual."
              }
            }
          },
          "directional_variogram": {
            "name": "การวิเคราะห์วาริโอแกรมตามทิศทาง",
            "description": "คำนวณวาริโอแกรมในหลายทิศทางเพื่อตรวจหาความไม่เท่ากันทุกทิศทางเชิงพื้นที่ เผยให้เห็นรูปแบบความต่อเนื่องเชิงทิศทางซึ่งจำเป็นต่อการทำคริกกิงที่สมจริง.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดที่มีค่าที่วัดได้"
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ที่เก็บค่าที่วัดได้"
              },
              "directions": {
                "label": "ทิศทาง",
                "description": "รายการมุมอะซิมุท (0-180°) ที่ต้องการวิเคราะห์ คั่นด้วยจุลภาค"
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อทิศทางเป็นองศา (ค่าเริ่มต้น 22.5)"
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางแล็กสูงสุดที่จะคำนวณ (ค่าเริ่มต้น 1000)"
              },
              "bin_size": {
                "label": "ขนาดถัง",
                "description": "ขนาดของบินแล็ก (ค่าเริ่มต้น 50)"
              },
              "output_json": {
                "label": "ผลลัพธ์ JSON",
                "description": "พาธไฟล์ผลลัพธ์สำหรับผลการวิเคราะห์แวริโอแกรมเชิงทิศทาง"
              },
              "output_html": {
                "label": "ผลลัพธ์ HTML",
                "description": "พาธผลลัพธ์สำหรับการแสดงผลไดอะแกรมกุหลาบแบบ HTML เป็นตัวเลือก"
              }
            }
          },
          "disperse_markers": {
            "name": "กระจายมาร์กเกอร์",
            "description": "กระจายสัญลักษณ์จุดที่อยู่ตำแหน่งเดียวกันหรือซ้อนทับกันออกจากกันให้มีระยะห่างระหว่างศูนย์กลางต่ำสุด (รูปแบบขยาย/วงแหวน/กากบาท/สี่เหลี่ยม) เพื่อให้จุดที่ซ้อนกันยังมองเห็นได้ทีละจุด เช่นเดียวกับ ArcGIS Disperse Markers.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "min_spacing": {
                "label": "ระยะห่างต่ำสุด",
                "description": "ระยะห่างขั้นต่ำจากศูนย์กลางถึงศูนย์กลางที่ต้องบังคับใช้ระหว่างจุดที่เกาะกลุ่มกัน ในหน่วยแผนที่."
              },
              "pattern": {
                "label": "รูปแบบ",
                "description": "'expanded' (ค่าเริ่มต้น, วงแหวนร่วมศูนย์ + การผลักกันเฉพาะที่), 'ring' (วงกลมเดียว), 'cross' (สี่แขน) หรือ 'square' (กริด)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มแบบจำนวนเต็มสำหรับการตัดสินกรณีเสมอกันอย่างคงที่ เมื่อสมาชิกอยู่ในตำแหน่งทับซ้อนกันพอดีตั้งแต่แรก (ค่าเริ่มต้น 0)."
              }
            }
          },
          "dissolve_route_events": {
            "name": "ยุบรวมเหตุการณ์บนเส้นทาง",
            "description": "รวมเหตุการณ์บนเส้นทางที่ติดกันหรือซ้อนทับกันบนเส้นทางเดียวกันให้เป็นช่วงค่าวัดเดียว โดยรวมเฉพาะเมื่อฟิลด์ที่ใช้ยุบรวมตรงกัน ('dissolve') หรือโดยเชื่อมค่าที่ต่างกันเข้าด้วยกัน ('concatenate') เช่นเดียวกับ ArcGIS Dissolve Route Events.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ตารางเหตุการณ์นำเข้า (เหตุการณ์แบบเส้นที่มีค่าวัดจาก/ถึง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางเหตุการณ์ผลลัพธ์ หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์ที่เก็บรหัสเส้นทาง."
              },
              "from_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดเริ่มต้น",
                "description": "ฟิลด์ที่เก็บค่าวัดเริ่มต้นของแต่ละเหตุการณ์."
              },
              "to_measure_field": {
                "label": "ฟิลด์ค่าระยะวัดสิ้นสุด",
                "description": "ฟิลด์ที่เก็บค่าวัดสิ้นสุดของแต่ละเหตุการณ์ สำหรับเหตุการณ์แบบจุด ให้ใช้ฟิลด์เดียวกับ 'from_measure_field'."
              },
              "dissolve_fields": {
                "label": "ฟิลด์ยุบรวม",
                "description": "ชื่อฟิลด์ (คั่นด้วยจุลภาค/อัฒภาค) ที่ต้องมีค่าตรงกันจึงจะรวมสองช่วงเข้าด้วยกัน (หรือที่จะนำค่ามาต่อกัน)."
              },
              "mode": {
                "label": "โหมด",
                "description": "'dissolve' (ค่าเริ่มต้น) หรือ 'concatenate'."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ช่องว่างของค่าวัดที่น้อยกว่านี้จะถือว่าสองช่วงอยู่ติดกัน (ค่าเริ่มต้น 0)."
              },
              "separator": {
                "label": "ตัวคั่น",
                "description": "ตัวคั่นที่ใช้เชื่อมค่าต่างๆ ในโหมด 'concatenate' (ค่าเริ่มต้น ', ')."
              }
            }
          },
          "edgematch_features": {
            "name": "จับคู่ขอบฟีเจอร์",
            "description": "เชื่อมชุดข้อมูลเส้นข้ามขอบไทล์/ระวาง (เช่นเดียวกับ ArcGIS Generate Edgematch Links + Edgematch Features): จับคู่จุดปลายที่ค้างอยู่แบบหนึ่งต่อหนึ่งภายในค่าเผื่อ แล้วปรับให้ตรงกัน (จุดกึ่งกลางหรือสแนป) พร้อมเลเยอร์เส้นเชื่อมการจับคู่เป็นตัวเลือก เป็นการจับคู่หนึ่งต่อหนึ่งข้ามฟีเจอร์ที่ snap_endnodes แบบไม่มีเงื่อนไขทำไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นนำเข้า (เช่น ไทล์ที่อยู่ติดกันสองไทล์ที่รวมกันแล้ว) ที่ต้องการจับคู่ขอบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เส้นผลลัพธ์ที่ปรับแก้แล้ว หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ระยะทางสูงสุดระหว่างจุดปลายที่ห้อยอยู่เพื่อจับคู่กัน."
              },
              "method": {
                "label": "วิธี",
                "description": "'midpoint' (ย้ายปลายทั้งสองไปยังจุดกึ่งกลาง; ค่าเริ่มต้น) หรือ 'move_endpoint' (สแนปปลายที่สองไปยังปลายแรก)."
              },
              "match_fields": {
                "label": "ฟิลด์จับคู่",
                "description": "ฟิลด์คั่นด้วยจุลภาค เป็นตัวเลือก; คู่ที่จับคู่กันต้องมีค่าตรงกันในฟิลด์เหล่านี้ (ช่วยแยกแยะตัวเลือกที่เป็นไปได้)."
              },
              "links": {
                "label": "ลิงก์",
                "description": "เลเยอร์เส้นผลลัพธ์ของลิงก์การจับคู่ (สำหรับการตรวจสอบคุณภาพ) เป็นตัวเลือก."
              }
            }
          },
          "eighty_twenty_analysis": {
            "name": "การวิเคราะห์ 80/20",
            "description": "สแนปจุดเหตุการณ์เข้าสู่ตำแหน่งที่ถ่วงน้ำหนักและคำนวณการกระจุกตัวแบบพาเรโต ('เหตุการณ์ X% เกิดขึ้นที่ Y% ของตำแหน่ง') โดยกำกับแต่ละตำแหน่งด้วยอันดับ ร้อยละสะสมของเหตุการณ์ และแถบส่วนหัว/ส่วนหาง เช่นเดียวกับ ArcGIS Eighty Twenty Analysis.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดเหตุการณ์นำเข้า (Point หรือ MultiPoint)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "cluster_tolerance": {
                "label": "ค่าเผื่อคลัสเตอร์",
                "description": "ระยะทางที่เหตุการณ์จะถูกสแนปให้รวมเป็นตำแหน่งเดียว (หน่วยแผนที่, ค่าเริ่มต้น 0 = เฉพาะจุดที่ทับซ้อนกันพอดีเท่านั้น)."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขที่ให้น้ำหนักของแต่ละเหตุการณ์ เป็นตัวเลือก (ค่าเริ่มต้น: แต่ละเหตุการณ์นับเป็น 1)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ความเข้มข้นเป็นร้อยละที่นิยาม 'ส่วนหัว' ของพาเรโต (ค่าเริ่มต้น 80)."
              }
            }
          },
          "eliminate_polygon_part": {
            "name": "กำจัดส่วนของโพลิกอน",
            "description": "ลบรูภายใน (และเลือกลบส่วนภายนอกขนาดเล็กได้) ของโพลิกอนที่มีพื้นที่ต่ำกว่าค่าเกณฑ์พื้นที่สัมบูรณ์หรือร้อยละ โดยคงแอตทริบิวต์ไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "condition": {
                "label": "เงื่อนไข",
                "description": "การทดสอบขนาด: 'AREA' (ค่าเริ่มต้น) เปรียบเทียบกับ 'min_area'; 'PERCENT' เปรียบเทียบพื้นที่ของส่วน/รูในรูปร้อยละของพื้นที่ขอบนอกทั้งหมดของฟีเจอร์กับ 'percentage'."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "เงื่อนไข AREA: ลบส่วน/รูที่มีพื้นที่ (ในหน่วย CRS กำลังสอง) ต่ำกว่าค่านี้ จำเป็นต้องระบุเมื่อ condition = AREA."
              },
              "percentage": {
                "label": "ร้อยละ",
                "description": "เงื่อนไข PERCENT: ลบส่วน/รูที่มีพื้นที่คิดเป็นร้อยละ (0-100) ของพื้นที่ขอบนอกทั้งหมดของฟีเจอร์ ต่ำกว่าค่านี้ จำเป็นต้องระบุเมื่อ condition = PERCENT."
              },
              "part_option": {
                "label": "ตัวเลือกส่วน",
                "description": "สิ่งที่มีสิทธิ์ถูกลบ: 'CONTAINED_ONLY' (ค่าเริ่มต้น) จะลบเฉพาะวงแหวนภายใน (รู); 'ANY' จะลบส่วนภายนอกขนาดเล็กด้วย ยกเว้นส่วนที่ใหญ่ที่สุดเพียงส่วนเดียว."
              }
            }
          },
          "eliminate_polygons": {
            "name": "กำจัดโพลิกอน",
            "description": "รวมโพลิกอนเศษเสี้ยว (ตามพื้นที่สูงสุดและ/หรือคิวรีแอตทริบิวต์) เข้ากับโพลิกอนข้างเคียง ซึ่งเลือกจากขอบร่วมที่ยาวที่สุดหรือพื้นที่ที่ใหญ่ที่สุด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "max_area": {
                "label": "พื้นที่สูงสุด",
                "description": "เลือกโพลิกอนที่มีพื้นที่ (ในหน่วย CRS กำลังสอง) เท่ากับหรือต่ำกว่าค่านี้ สามารถใช้ร่วมกับ 'where' ได้ (ต้องตรงทั้งสองเงื่อนไข)."
              },
              "where": {
                "label": "เงื่อนไข Where",
                "description": "เลือกโพลิกอนที่ตรงกับเงื่อนไขแอตทริบิวต์อย่างง่าย 'FIELD OP VALUE' โดย OP เป็นหนึ่งใน = != < <= > >= (เช่น \"class = 0\") สามารถใช้ร่วมกับ 'max_area' ได้."
              },
              "exclude": {
                "label": "ไม่รวม",
                "description": "ปกป้องฟีเจอร์ที่ตรงกับเงื่อนไขนี้ (ไวยากรณ์ 'FIELD OP VALUE' เดียวกัน) ไม่ให้ถูกกำจัด; ฟีเจอร์เหล่านี้จะถูกเก็บไว้และสามารถรับการรวมเข้ามาได้."
              },
              "strategy": {
                "label": "กลยุทธ์",
                "description": "โพลิกอนเสี้ยนจะถูกรวมเข้ากับเพื่อนบ้านใด: 'longest_border' (ค่าเริ่มต้น) หรือ 'largest_area'."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ระยะทางตั้งฉากสูงสุด (ในหน่วย CRS) ที่เซกเมนต์ขอบเขตสองเส้นจะถือว่าเป็นขอบร่วมกัน ค่าเริ่มต้น 1e-6."
              }
            }
          },
          "emerging_hot_spot_analysis": {
            "name": "การวิเคราะห์จุดร้อนอุบัติใหม่",
            "description": "แนวโน้มจุดร้อนเชิงพื้นที่-เวลาบนคิวบ์พื้นที่-เวลาแบบ H3: จัดจุดที่มีเวลากำกับลงในเซลล์ H3 x ช่วงเวลา คำนวณ Getis-Ord Gi* รายถัง และจำแนกแต่ละเซลล์ (จุดร้อนหรือจุดเย็นแบบใหม่/ทวีความรุนแรง/คงอยู่/ลดลง/...) ด้วยการทดสอบแนวโน้ม Mann-Kendall เช่นเดียวกับ ArcGIS Emerging Hot Spot Analysis.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า (พิกัดภูมิศาสตร์ ลองจิจูด/ละติจูด, EPSG:4326) เรขาคณิตอื่นจะใช้จุดตัวแทนที่เป็นค่าเฉลี่ยของจุดยอด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หนึ่งโพลิกอน H3 ต่อหนึ่งเซลล์ หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: ฟิลด์ตัวเลข (ในหน่วยของตัวเอง) หรือสตริงวันที่/วันที่และเวลาแบบ ISO-8601."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "ความกว้างของช่วงเวลาหนึ่งขั้น: ตัวเลขธรรมดา (สำหรับ time_field แบบตัวเลข) หรือระยะเวลาเช่น '1w', '7d', '12h', '1M' สำหรับฟิลด์วันที่ ค่าเริ่มต้น '1w'."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่จะนำมารวมผลรวมในแต่ละบิน เป็นตัวเลือก ค่าเริ่มต้น: จำนวนจุดต่อบิน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียด H3 ตั้งแต่ 0 (หยาบที่สุด) ถึง 15 (ละเอียดที่สุด); ค่าเริ่มต้น 7 (เซลล์ขนาด ~5 กม.²)."
              },
              "neighborhood": {
                "label": "บริเวณใกล้เคียง",
                "description": "รัศมีของพื้นที่ข้างเคียงเชิงพื้นที่ในหน่วย k-ring ของ H3 (ค่าเริ่มต้น 1)."
              },
              "time_window": {
                "label": "กรอบเวลา",
                "description": "รัศมีของพื้นที่ข้างเคียงเชิงเวลาในหน่วยขั้นเวลา (ค่าเริ่มต้น 1)."
              }
            }
          },
          "empirical_bayesian_kriging": {
            "name": "คริกกิงแบบเบย์เชิงประจักษ์",
            "description": "ประมาณค่าสนามจุดผ่านชุดย่อยเฉพาะที่ซ้อนทับกันจำนวนมาก โดยแต่ละชุดย่อยฟิตเซมิวาริโอแกรมของตัวเอง ซึ่งความไม่แน่นอนถูกจับด้วยการจำลองเซมิวาริโอแกรมที่ถูกรบกวนจากตัวสร้างเลขสุ่มที่กำหนดค่าเริ่มต้น แล้วผสมค่าทำนาย/ความแปรปรวนของคริกกิงแต่ละชุดย่อยตามระยะทาง (เช่นเดียวกับ Empirical Bayesian Kriging ของ ArcGIS) — ต่างจากคริกกิงสามัญ/สากล/อย่างง่าย/ร่วมที่มีอยู่ ซึ่งล้วนฟิตเซมิวาริโอแกรมระดับรวม (หรือหน้าต่างเลื่อนเดียว) ที่ต้องยอมรับด้วยมือเพียงชุดเดียว.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดนำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขบนเลเยอร์นำเข้าที่ต้องการประมาณค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์การทำนาย หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วย CRS ค่าเริ่มต้น: กำหนดขนาดให้แกนที่ยาวกว่าของกริดมีประมาณ 150 เซลล์."
              },
              "subset_size": {
                "label": "ขนาดชุดย่อย",
                "description": "จำนวนจุดเป้าหมายต่อชุดย่อยเฉพาะที่ (ค่าเริ่มต้น 40, ต่ำสุด 4)."
              },
              "overlap": {
                "label": "การซ้อนทับ",
                "description": "สัดส่วนของความกว้าง/ความสูงของไทล์ชุดย่อยที่ไทล์ข้างเคียงซ้อนทับกัน (ค่าเริ่มต้น 0.25)."
              },
              "simulations": {
                "label": "การจำลอง",
                "description": "จำนวนเซมิแวริโอแกรมจำลองที่สุ่มขึ้นต่อชุดย่อยเพื่อแทนความไม่แน่นอนของโมเดล (ค่าเริ่มต้น 5, สูงสุด 50)."
              },
              "semivariogram": {
                "label": "เซมิวาริโอแกรม",
                "description": "ตระกูลโมเดลเซมิแวริโอแกรม: 'power' (ค่าเริ่มต้น), 'linear' หรือ 'exponential'."
              },
              "transform": {
                "label": "การแปลง",
                "description": "การแปลงข้อมูลก่อนทำคริกกิง: 'none' (ค่าเริ่มต้น) หรือ 'log_empirical' (ลอการิทึมธรรมชาติ; ต้องการค่าฟิลด์ > 0 ทุกจุด)."
              },
              "error_output": {
                "label": "ผลลัพธ์ความคลาดเคลื่อน",
                "description": "แรสเตอร์ผลลัพธ์ค่าความคลาดเคลื่อนมาตรฐานของการทำนาย เป็นตัวเลือก."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับตัวสร้างเลขสุ่มของการจำลองเซมิแวริโอแกรมแบบคงที่ (ค่าเริ่มต้น 42)."
              }
            }
          },
          "enclose_multipatch": {
            "name": "ปิดล้อมมัลติแพตช์",
            "description": "แปลงพื้นผิวเมชสามเหลี่ยม 3 มิติแบบเปิดให้เป็นทรงตันปิดสนิทกันน้ำได้ โดยปิดวงขอบเขต เพื่อให้เป็นข้อมูลนำเข้าที่ถูกต้องสำหรับการวิเคราะห์เชิงปริมาตร (ArcGIS Enclose Multipatch) is_closed_3d วินิจฉัยเมชแบบเปิดได้แต่ไม่มีเครื่องมือใดซ่อมได้ และ union_3d / intersect_3d / difference_3d / inside_3d ล้วนปฏิเสธหรือรายงานเมชแบบเปิดผิดพลาด ซึ่งเป็นสภาพปกติของขอบเขตอาคารที่ถูกอัดขึ้นรูป เปลือกภูมิประเทศ และพื้นผิวอาคารที่นำเข้ามา.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์พื้นผิว 3 มิติ (MultiPolygon แบบตาข่ายสามเหลี่ยมที่มีค่า Z)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ฟีเจอร์ของแข็งแบบปิดผลลัพธ์ หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "drop_failed": {
                "label": "ตัดรายการที่ล้มเหลวออก",
                "description": "ละเว้นฟีเจอร์ที่ไม่สามารถทำให้ปิดสนิทได้ (ค่าเริ่มต้น false: ฟีเจอร์เหล่านั้นจะถูกส่งออกพร้อม CAP_FAILED = true เพื่อให้เห็นความล้มเหลวแทนที่จะเงียบหายไป)."
              }
            }
          },
          "enforce_river_monotonicity": {
            "name": "บังคับความเป็นเอกภาพของแม่น้ำ",
            "description": "เซาะ DEM ให้ระดับความสูงลดลงอย่างต่อเนื่องไปทางท้ายน้ำตามโพลีไลน์แม่น้ำที่ทำแผนที่ไว้ — ขั้นตอนการบังคับทางอุทกวิทยาสำหรับแบบจำลองชลศาสตร์และน้ำท่วม เช่นเดียวกับ ArcGIS Enforce River Monotonicity ต่างจาก fill_depressions/fill_burn (ซึ่งกำจัดหลุมปิด) เครื่องมือนี้บังคับให้โปรไฟล์ลดลงทางเดียวไปตามเวกเตอร์แม่น้ำที่ทราบ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นหลายส่วนของแม่น้ำนำเข้า (LineString / MultiLineString) ที่ใช้ CRS เดียวกับ DEM."
              },
              "surface": {
                "label": "พื้นผิว",
                "description": "แรสเตอร์ระดับความสูง (DEM) ที่ต้องการปรับแก้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ DEM ที่ปรับแก้แล้วเป็นผลลัพธ์ (รูปแบบกำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าลดลงของระดับความสูงขั้นต่ำที่บังคับใช้ต่อหนึ่งขั้นที่เพิ่มความหนาแน่น ในหน่วย Z (ค่าเริ่มต้น 0 = ไม่เพิ่มขึ้น) ค่าบวกจะบังคับให้โปรไฟล์ลดลงอย่างเข้มงวด."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ช่วงการเพิ่มความหนาแน่นในหน่วย CRS ตามแนวเส้นแม่น้ำแต่ละเส้น ค่าเริ่มต้น: ขนาดเซลล์ของแรสเตอร์ (≈ หนึ่งตัวอย่างต่อหนึ่งเซลล์)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของ DEM ที่ต้องการปรับแก้ โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "estimate_time_to_event": {
            "name": "ประมาณเวลาถึงเหตุการณ์",
            "description": "ประมาณเวลาจนกว่าเหตุการณ์จะเกิดด้วยเส้นโค้งการอยู่รอดแบบ Kaplan-Meier (เช่นเดียวกับ ArcGIS Estimate Time To Event): จากฟิลด์ระยะเวลาและฟิลด์เหตุการณ์/การตัดปลายข้อมูล คำนวณความน่าจะเป็นการอยู่รอดของแต่ละฟีเจอร์และเวลาถึงเหตุการณ์มัธยฐานของชั้นภูมินั้น โดยเลือกแบ่งชั้นภูมิตามฟิลด์เชิงหมวดหมู่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดหรือโพลิกอนนำเข้าที่มีฟิลด์ระยะเวลาและฟิลด์เหตุการณ์/การตัดข้อมูล."
              },
              "age_field": {
                "label": "ฟิลด์อายุ",
                "description": "ฟิลด์ที่เก็บระยะเวลาที่สังเกตได้ของแต่ละฟีเจอร์ (เวลาจนถึงเหตุการณ์ หรือเวลาจนถึงการตัดข้อมูล) เป็นจำนวนที่ไม่ติดลบ."
              },
              "event_field": {
                "label": "ฟิลด์เหตุการณ์",
                "description": "ฟิลด์ที่ระบุว่าเหตุการณ์เกิดขึ้นหรือไม่ (ค่าจริง: 1/true) หรือการสังเกตถูกตัดข้อมูล (ค่าเท็จ: 0/false)."
              },
              "stratify_field": {
                "label": "ฟิลด์แบ่งชั้น",
                "description": "ฟิลด์เชิงหมวดหมู่สำหรับปรับเส้นโค้งการรอดชีพแยกตามกลุ่ม เป็นตัวเลือก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์ที่เพิ่มฟิลด์ km_survival, km_median และ km_stratum เข้าไป หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              }
            }
          },
          "estimate_variogram": {
            "name": "ประมาณวาริโอแกรม",
            "description": "คำนวณเซมิวาริโอแกรมเชิงประจักษ์จากค่าสังเกตแบบจุดเพื่ออธิบายโครงสร้างสหสัมพันธ์เชิงพื้นที่ เป็นขั้นตอนแรกที่จำเป็นในกระบวนการทางธรณีสถิติ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าที่มีค่า"
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ที่เก็บค่าที่วัดได้"
              },
              "lag_distance": {
                "label": "ระยะทางแล็ก",
                "description": "ขนาดบินแล็กในหน่วยแผนที่ (ค่าเริ่มต้น: 100.0)"
              },
              "lag_tolerance": {
                "label": "ค่าเผื่อแล็ก",
                "description": "ค่าเผื่อสำหรับการแบ่งบินแล็ก (ค่าเริ่มต้น: 50.0)"
              },
              "max_lag_count": {
                "label": "จำนวนแล็กสูงสุด",
                "description": "จำนวนแล็กสูงสุดที่จะเก็บไว้ (ค่าเริ่มต้น: 20)"
              }
            }
          },
          "euclidean_direction": {
            "name": "ทิศทางแบบยูคลิด",
            "description": "คำนวณแอซิมัทเข็มทิศจากแต่ละเซลล์ไปยังเซลล์แหล่งที่ใกล้ที่สุด พร้อมแรสเตอร์ระยะทางและทิศทางย้อนกลับเป็นตัวเลือก (ArcGIS Euclidean Direction) เติมเต็มตระกูลยูคลิดที่มีอยู่ ซึ่งมี euclidean_distance (ไกลเท่าใด) และ euclidean_allocation (แหล่งใด) แต่ไม่มีทิศทาง ใช้การแปลงระยะทางที่แม่นยำซึ่งพาพิกัดของแหล่งที่ใกล้ที่สุดไปด้วย และหากมีแรสเตอร์สิ่งกีดขวางจะอ้อมสิ่งกีดขวางแทน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์แหล่งกำเนิด: เซลล์ที่ไม่ใช่ no-data และไม่ใช่ศูนย์จะถือเป็นแหล่งกำเนิด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ทิศทางผลลัพธ์ (องศาตามเข็มนาฬิกาจากทิศเหนือ) เป็นตัวเลือก หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "output_distance": {
                "label": "ผลลัพธ์ระยะทาง",
                "description": "พาธสำหรับแรสเตอร์ระยะทางที่มาคู่กัน เป็นตัวเลือก."
              },
              "output_back_direction": {
                "label": "ผลลัพธ์ทิศทางย้อนกลับ",
                "description": "พาธสำหรับแรสเตอร์ทิศทางย้อนกลับ เป็นตัวเลือก: ทิศทางที่ต้องเดินทางจากเซลล์นี้ย้อนกลับไปยังแหล่งกำเนิดที่ใกล้ที่สุด มีค่าเท่ากับแรสเตอร์ทิศทางเมื่อไม่มีการระบุสิ่งกีดขวาง; หากมีสิ่งกีดขวาง ค่านี้คือขั้นแรกของเส้นทางย้อนกลับ."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "แรสเตอร์สิ่งกีดขวาง เป็นตัวเลือก; เซลล์ที่ไม่เป็นศูนย์และไม่ใช่ no-data จะขวางเส้นทางแนวตรง ทำให้ต้องหาเส้นทางอ้อม."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "เซลล์ที่อยู่ไกลจากแหล่งกำเนิดใดๆ เกินกว่าค่านี้จะถูกเขียนเป็น no-data."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของแรสเตอร์แหล่งกำเนิดที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "evaluate_bin_sizes": {
            "name": "ประเมินขนาดถัง",
            "description": "กวาดขนาดถังการรวมกลุ่มที่เป็นไปได้และรายงานค่าวินิจฉัยที่บ่งชี้ว่าขนาดใดเผยโครงสร้างได้ดีที่สุด เช่นเดียวกับ ArcGIS Evaluate Bin Sizes.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์จุดที่จะนำมารวมกลุ่ม."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์การวินิจฉัย เป็นตัวเลือก หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "bin_shape": {
                "label": "รูปร่างถัง",
                "description": "hexagon (ค่าเริ่มต้น; การประมาณแบบเลื่อนแถว ดูเอกสารประกอบ) | square."
              },
              "sizes": {
                "label": "ขนาด",
                "description": "ขนาดบินที่เป็นตัวเลือก คั่นด้วยจุลภาค (หน่วยแผนที่) หากไม่ระบุ จะสร้างการกวาดค่าแบบเรขาคณิตจากระยะทางเฉลี่ยไปยังเพื่อนบ้านที่ใกล้ที่สุด."
              },
              "steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนตัวเลือกในการกวาดค่าที่สร้างขึ้น (ค่าเริ่มต้น 8, สูงสุด 64)."
              },
              "analysis_field": {
                "label": "ฟิลด์วิเคราะห์",
                "description": "ฟิลด์ตัวเลขที่จะนำมารวมผลรวมต่อบินแทนการนับจุด เป็นตัวเลือก."
              }
            }
          },
          "evaluate_variable_influence": {
            "name": "ประเมินอิทธิพลของตัวแปร",
            "description": "รายงานความสำคัญแบบสับเปลี่ยนและเส้นโค้งการพึ่งพาบางส่วนสำหรับโมเดลฟอเรสต์ที่ฟิตจากตาราง เพื่อตอบว่าโมเดลใช้ตัวแปรอธิบายใดจริง ๆ และผลของแต่ละตัวมีรูปร่างอย่างไร (ArcGIS Evaluate Variable Influence) แคตตาล็อกฟิตโมเดลได้ — generalized_linear_regression, exploratory_regression, geographically_weighted_regression, forest_based_forecast, แรนดอมฟอเรสต์ของ whitebox — แต่ไม่มีตัวใดรายงานค่าทั้งสองนี้ ArcGIS อ่านไฟล์โมเดล .ssm ที่ฝึกไว้แล้ว แต่ชุดเครื่องมือนี้ไม่มีรูปแบบโมเดลที่พกพาได้ เครื่องมือจึงฟิตฟอเรสต์ของตัวเองแล้วอธิบายผล ผลลัพธ์กำหนดได้แน่นอนทั้งหมด: ใช้การสุ่มตัวอย่างแบบก้าวข้ามและการสับเปลี่ยนคงที่ ไม่มีตัวสร้างเลขสุ่ม.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์หรือตารางที่เก็บข้อมูลสังเกตสำหรับฝึกสอน."
              },
              "dependent_field": {
                "label": "ฟิลด์ตัวแปรตาม",
                "description": "ฟิลด์ที่ต้องการทำนาย."
              },
              "explanatory_fields": {
                "label": "ฟิลด์ตัวแปรอธิบาย",
                "description": "ฟิลด์ตัวเลขที่ต้องการประเมิน คั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ตารางผลลัพธ์ของความสำคัญของแต่ละตัวแปร หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "output_partial_dependence": {
                "label": "ผลลัพธ์ Partial Dependence",
                "description": "ตารางผลลัพธ์ของเส้นโค้งการพึ่งพาบางส่วน หนึ่งแถวต่อหนึ่งตัวแปรและหนึ่งจุดกริด สร้างเสมอ; จัดเก็บในหน่วยความจำเมื่อไม่ได้ระบุพาธ."
              },
              "model_type": {
                "label": "ชนิดโมเดล",
                "description": "'regression' (ค่าเริ่มต้น) สำหรับเป้าหมายแบบต่อเนื่อง หรือ 'classification' สำหรับเป้าหมายเชิงหมวดหมู่."
              },
              "number_of_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ในกลุ่มโมเดล (ค่าเริ่มต้น 50)."
              },
              "max_depth": {
                "label": "ความลึกสูงสุด",
                "description": "ความลึกสูงสุดของต้นไม้ (ค่าเริ่มต้น 8)."
              },
              "min_samples_leaf": {
                "label": "จำนวนตัวอย่างต่ำสุดต่อใบ",
                "description": "จำนวนค่าสังเกตน้อยที่สุดที่ใบหนึ่งสามารถมีได้ (ค่าเริ่มต้น 3)."
              },
              "grid_points": {
                "label": "จุดกริด",
                "description": "จำนวนจุดต่อเส้นโค้งการพึ่งพาบางส่วน (ค่าเริ่มต้น 12)."
              },
              "permutation_repeats": {
                "label": "จำนวนรอบการสับเปลี่ยน",
                "description": "จำนวนการสับเปลี่ยนที่แตกต่างกันซึ่งนำมาเฉลี่ยต่อหนึ่งตัวแปร (ค่าเริ่มต้น 3) ค่าที่มากขึ้นจะเสถียรกว่าแต่ช้ากว่า."
              }
            }
          },
          "excel_to_table": {
            "name": "Excel เป็นตาราง",
            "description": "อ่านแผ่นงานจากสมุดงาน .xlsx/.xls/.xlsb/.ods เข้าสู่ตารางแอตทริบิวต์ โดยอนุมานว่าคอลัมน์ใดเป็นตัวเลขหรือข้อความ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวิร์กบุ๊ก Excel/OpenDocument นำเข้า (.xlsx, .xls, .xlsb หรือ .ods)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์; แนะนำ GeoParquet .parquet) เป็นตัวเลือก หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "sheet": {
                "label": "ชีต",
                "description": "เวิร์กชีตที่จะอ่าน ระบุโดยชื่อหรือดัชนีที่เริ่มนับจาก 0 ค่าเริ่มต้น: ชีตแรก."
              },
              "cell_range": {
                "label": "ช่วงเซลล์",
                "description": "ช่วงในรูปแบบ A1 ที่ต้องการนำเข้า เช่น 'B2:E40' เป็นตัวเลือก ค่าเริ่มต้น: ทั้งช่วงที่ใช้งานของชีต."
              },
              "field_names_row": {
                "label": "แถวชื่อฟิลด์",
                "description": "แถวที่เก็บชื่อคอลัมน์ภายในช่วงที่เลือก โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1) แถวที่อยู่เหนือขึ้นไปจะถูกข้าม; ค่า 0 หมายถึงไม่มีแถวส่วนหัว (สร้างชื่อ Field1, Field2, ... โดยอัตโนมัติ)."
              }
            }
          },
          "expand_shrink": {
            "name": "ขยาย / หด",
            "description": "ขยายหรือหดคลาสที่เลือกของแรสเตอร์เชิงหมวดหมู่ตามจำนวนเซลล์ที่กำหนด โดยไม่กระทบคลาสอื่น — เป็นการทำความสะอาดมาตรฐานสำหรับสิ่งปกคลุมดินที่จำแนกแล้วก่อนแปลงเป็นโพลิกอน เช่นเดียวกับ ArcGIS Expand / Shrink.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าแบบจัดหมวดหมู่ (ค่าเป็นจำนวนเต็ม)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "classes": {
                "label": "คลาส",
                "description": "ค่าคลาสที่ต้องการขยายหรือหด คั่นด้วยจุลภาค."
              },
              "cells": {
                "label": "เซลล์",
                "description": "จำนวนเซลล์ที่จะขยายหรือหด (>= 1)."
              },
              "mode": {
                "label": "โหมด",
                "description": "'expand' (ขยายคลาสที่เลือก; ค่าเริ่มต้น) หรือ 'shrink' (กัดกร่อนให้เล็กลง)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "exploratory_interpolation": {
            "name": "การประมาณค่าเชิงสำรวจ",
            "description": "รันวิธีประมาณค่าหลายวิธี (IDW, เพื่อนบ้านใกล้สุด, พื้นผิวแนวโน้มอันดับหนึ่ง/อันดับสอง) ตรวจสอบไขว้แบบละทิ้งทีละหนึ่งกับแต่ละวิธี แล้วจัดอันดับตามความแม่นยำของการทำนาย (RMSE/MAE) หรือความเอนเอียง (ME) — เช่นเดียวกับ ArcGIS Exploratory Interpolation รายงานตารางเปรียบเทียบรายวิธีที่จัดอันดับแล้ว และสามารถให้แรสเตอร์การทำนายของวิธีที่ดีที่สุดได้ ครอบคลุมความต้องการการตรวจสอบไขว้แบบแยกเครื่องมือด้วย.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าของค่าที่วัดได้."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขบนจุดที่เก็บค่าที่ต้องการประมาณค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ตารางเปรียบเทียบผลลัพธ์ที่จัดอันดับแล้ว — เป็น CSV (นามสกุล .csv) หรือตารางเวกเตอร์ที่ไม่มีเรขาคณิต หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "methods": {
                "label": "วิธี",
                "description": "ชุดย่อยของวิธีที่ต้องการเปรียบเทียบ คั่นด้วยจุลภาค/ขีดตั้ง: 'idw', 'nearest', 'trend1', 'trend2' ค่าเริ่มต้น: ทั้งสี่วิธี."
              },
              "criterion": {
                "label": "เกณฑ์",
                "description": "เกณฑ์การจัดอันดับ: 'rmse' (ค่าเริ่มต้น, ความคลาดเคลื่อนต่ำสุด), 'mae' (ความคลาดเคลื่อนสัมบูรณ์ต่ำสุด) หรือ 'me' (มีความเอนเอียงน้อยที่สุด, |ค่าเฉลี่ยความคลาดเคลื่อน| น้อยที่สุด)."
              },
              "power": {
                "label": "ยกกำลัง",
                "description": "เลขชี้กำลังการลดทอนตามระยะทางของ IDW (ค่าเริ่มต้น 2)."
              },
              "output_raster": {
                "label": "แรสเตอร์ผลลัพธ์",
                "description": "GeoTIFF ผลลัพธ์ เป็นตัวเลือก: วิธีที่ได้อันดับดีที่สุดซึ่งปรับกับตัวอย่างทั้งหมด แล้วประเมินผลบนกริดที่ครอบคลุมขอบเขตของตัวอย่าง."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ของแรสเตอร์ผู้ชนะในหน่วย CRS (องศาสำหรับ CRS เชิงภูมิศาสตร์) ค่าเริ่มต้น: กำหนดขนาดให้แกนที่ยาวกว่าครอบคลุมประมาณ 256 เซลล์."
              }
            }
          },
          "exploratory_regression": {
            "name": "การถดถอยเชิงสำรวจ",
            "description": "แจกแจงโมเดล OLS ทุกชุดผสมของฟิลด์ตัวแปรอธิบายที่เป็นไปได้ และคัดกรองแต่ละโมเดลด้วยค่า R2 ปรับแก้ นัยสำคัญของสัมประสิทธิ์ ภาวะร่วมเส้นตรงพหุ VIF ความเป็นปกติของค่าคงเหลือแบบ Jarque-Bera และสหสัมพันธ์เชิงพื้นที่ของค่าคงเหลือด้วย Moran's I โดยรายงานทุกโมเดลพร้อมชุดที่ผ่านเกณฑ์ซึ่งจัดอันดับแล้ว และสรุปนัยสำคัญรายตัวแปร — เช่นเดียวกับ ArcGIS Exploratory Regression.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์นำเข้าที่มีเรขาคณิต (ใช้สำหรับพื้นที่ข้างเคียงของค่า Moran's I ของส่วนตกค้าง)."
              },
              "dependent_field": {
                "label": "ฟิลด์ตัวแปรตาม",
                "description": "ฟิลด์ตัวเลขของตัวแปรตาม (ตัวแปรตอบสนอง)."
              },
              "explanatory_fields": {
                "label": "ฟิลด์ตัวแปรอธิบาย",
                "description": "ฟิลด์ตัวเลขที่เป็นตัวแปรอธิบายซึ่งเป็นตัวเลือกสำหรับการค้นหา คั่นด้วยจุลภาค."
              },
              "min_vars": {
                "label": "จำนวนตัวแปรต่ำสุด",
                "description": "จำนวนตัวแปรอธิบายขั้นต่ำต่อโมเดลที่เป็นตัวเลือก (ค่าเริ่มต้น 1)."
              },
              "max_vars": {
                "label": "จำนวนตัวแปรสูงสุด",
                "description": "จำนวนตัวแปรอธิบายสูงสุดต่อโมเดลที่เป็นตัวเลือก (ค่าเริ่มต้น: min(จำนวนตัวเลือก, 6))."
              },
              "max_coef_p": {
                "label": "ค่า p สัมประสิทธิ์สูงสุด",
                "description": "ค่า p สูงสุดที่ยอมรับได้สำหรับสัมประสิทธิ์ของตัวแปรอธิบายทุกตัว (ค่าเริ่มต้น 0.05)."
              },
              "min_adj_r2": {
                "label": "R2 ปรับแล้วต่ำสุด",
                "description": "ค่า R-squared ปรับแก้ขั้นต่ำ (ค่าเริ่มต้น 0.5)."
              },
              "max_vif": {
                "label": "VIF สูงสุด",
                "description": "ค่าตัวประกอบการขยายความแปรปรวนสูงสุดที่ยอมรับได้ต่อหนึ่งเทอม (ค่าเริ่มต้น 7.5)."
              },
              "min_jb_p": {
                "label": "ค่า p ของ JB ต่ำสุด",
                "description": "ค่า p ขั้นต่ำของ Jarque-Bera สำหรับความเป็นปกติของส่วนตกค้าง (ค่าเริ่มต้น 0.1)."
              },
              "min_moran_p": {
                "label": "ค่า p ของ Moran ต่ำสุด",
                "description": "ค่า p ขั้นต่ำสำหรับสหสัมพันธ์เชิงพื้นที่ของส่วนตกค้าง (Moran's I); ค่าที่สูงกว่านี้แสดงว่าส่วนตกค้างไม่ได้เกาะกลุ่มกันอย่างมีนัยสำคัญ (ค่าเริ่มต้น 0.1)."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านที่ใกล้ที่สุดซึ่งกำหนดน้ำหนักเชิงพื้นที่สำหรับการทดสอบ Moran's I ของส่วนตกค้าง (ค่าเริ่มต้น 8)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางรายงานผลลัพธ์ — เป็น CSV (นามสกุล .csv) หรือตารางเวกเตอร์ที่ไม่มีเรขาคณิต."
              }
            }
          },
          "extract_locations_from_text": {
            "name": "สกัดตำแหน่งจากข้อความ",
            "description": "กวาดข้อความรูปแบบอิสระเพื่อหาพิกัดที่ฝังอยู่ — องศาทศนิยม (DD), องศา-ลิปดาทศนิยม (DDM), องศา-ลิปดา-พิลิปดา (DMS) และการอ้างอิงกริด MGRS/USNG — แล้วสร้างจุด WGS84 หนึ่งจุดต่อผลลัพธ์ที่พบ เช่นเดียวกับ ArcGIS Extract Locations From Text (ส่วนของพิกัด) เป็นการกวาดหารูปแบบล้วน ๆ ไม่มีบริการหาพิกัดจากที่อยู่.",
            "params": {
              "input_text": {
                "label": "ข้อความนำเข้า",
                "description": "ข้อความรูปแบบอิสระที่ต้องการสแกน อาจเป็นตัวข้อความโดยตรง หรือพาธไปยังไฟล์ข้อความ UTF-8 (จะถูกอ่านเมื่อค่านั้นชี้ไปยังไฟล์ที่มีอยู่จริง)."
              },
              "notations": {
                "label": "รูปแบบการเขียน",
                "description": "ชุดย่อยของสัญกรณ์ที่ต้องการสแกน คั่นด้วยจุลภาค/ช่องว่าง: DD, DDM, DMS, MGRS (USNG เป็นชื่อพ้องของ MGRS) ค่าเริ่มต้น: ทั้งสี่แบบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "extract_ocean_winds": {
            "name": "สกัดลมมหาสมุทร",
            "description": "หาความเร็วลมเหนือมหาสมุทรที่ระดับ 10 ม. แบบสมมูลสภาวะเป็นกลางจากค่าการกระเจิงกลับ SAR ที่ปรับเทียบแล้ว โดยการผกผันฟังก์ชันแบบจำลองเชิงธรณีฟิสิกส์ CMOD5.N (ArcGIS Extract Ocean Winds) ห่วงโซ่การประมวลผล SAR ทั้งหมดที่มีอยู่อยู่ในโดเมนเชิงรังสีและไม่มีเครื่องมือใดแปลงค่าการกระเจิงกลับเป็นปริมาณเชิงธรณีฟิสิกส์ ซึ่งเป็นสิ่งที่แยกบริเวณลมสงบออกจากคราบน้ำมันด้วย.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ค่าการกระเจิงกลับที่ปรับเทียบแล้ว (sigma0)."
              },
              "units": {
                "label": "หน่วย",
                "description": "หน่วยของ 'input': 'dn', 'amplitude', 'intensity' หรือ 'db' (ค่าเริ่มต้น 'db')."
              },
              "incidence_angle": {
                "label": "มุมตกกระทบ",
                "description": "มุมตกกระทบต่อเซลล์เป็นองศา: พาธของแรสเตอร์ หรือค่าคงที่."
              },
              "wind_direction": {
                "label": "ทิศทางลม",
                "description": "ทิศทางลมทางอุตุนิยมวิทยาเป็นองศา (ทิศทางที่ลมพัดมาจาก) ระบุเป็นพาธของแรสเตอร์หรือค่าคงที่ เป็นค่าตั้งต้นที่จำเป็น: CMOD มีตัวแปรที่ไม่ทราบค่าสองตัวแต่มีค่าสังเกตเพียงค่าเดียว."
              },
              "look_direction": {
                "label": "ทิศทางการมอง",
                "description": "มุมอะซิมุทการมองของเรดาร์เป็นองศา ระบุเป็นพาธของแรสเตอร์หรือค่าคงที่ ใช้เพื่อแปลงทิศทางลมให้เป็นมุมสัมพัทธ์ที่ CMOD ใช้."
              },
              "polarization": {
                "label": "โพลาไรเซชัน",
                "description": "'vv' (ค่าเริ่มต้น, CMOD5.N ดั้งเดิม) หรือ 'hh' (ใช้อัตราส่วนโพลาไรเซชันโดยประมาณ)."
              },
              "polarization_ratio_alpha": {
                "label": "Alpha ของอัตราส่วนโพลาไรเซชัน",
                "description": "ค่าแอลฟาในอัตราส่วนโพลาไรเซชันจาก HH เป็น VV (ค่าเริ่มต้น 0.6) ใช้เฉพาะเมื่อโพลาไรเซชันเป็น 'hh'."
              },
              "water_mask": {
                "label": "มาสก์แหล่งน้ำ",
                "description": "เลเยอร์โพลิกอนหรือแรสเตอร์ที่จำกัดผลลัพธ์ให้อยู่เฉพาะพื้นน้ำ เป็นตัวเลือก; ค่าที่สะท้อนกลับจากพื้นดินไม่มีความหมายในที่นี้."
              },
              "max_wind": {
                "label": "ความเร็วลมสูงสุด",
                "description": "ขอบบนของช่วงการผกผัน หน่วย m/s (ค่าเริ่มต้น 50)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ความเร็วลมในหน่วย m/s หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              }
            }
          },
          "extract_scanned_features": {
            "name": "สกัดฟีเจอร์จากภาพสแกน",
            "description": "แปลงแรสเตอร์ไบนารี (จากการสแกน/การใช้ค่าเกณฑ์) เป็นเวกเตอร์ให้เป็นเส้นที่สะอาด (การติดตามโครงกระดูก) หรือโพลิกอน พร้อมการกำจัดสัญญาณรบกวน การเติมรู การปิดช่องว่าง และการลดรูป.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าแบบไบนารี/จำแนกแล้วที่ต้องการแปลงเป็นเวกเตอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "feature_type": {
                "label": "ชนิดฟีเจอร์",
                "description": "'lines' (ค่าเริ่มต้น): ทำให้เป็นโครงกระดูกและลากเส้นกึ่งกลาง 'polygons': แปลงบริเวณที่ถูกเติมให้เป็นเวกเตอร์."
              },
              "foreground_value": {
                "label": "ค่าพื้นหน้า",
                "description": "ค่าเซลล์ที่ระบุว่าเป็นพื้นหน้า หากไม่ระบุ เซลล์ที่มีค่า >= 'threshold' (หรือหากไม่มีค่านั้น จะใช้เซลล์ที่ถูกต้องซึ่งไม่เป็นศูนย์ใดๆ) จะถือเป็นพื้นหน้า."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "พื้นหน้าคือเซลล์ที่มีค่า >= ค่านี้ (ใช้เมื่อไม่ได้ระบุ 'foreground_value')."
              },
              "noise_size": {
                "label": "ขนาดสัญญาณรบกวน",
                "description": "ลบองค์ประกอบพื้นหน้าที่มีขนาดเล็กกว่าจำนวนเซลล์นี้ (ค่าเริ่มต้น 4)."
              },
              "hole_size": {
                "label": "ขนาดรู",
                "description": "เติมรูของพื้นหลังที่มีขนาดเล็กกว่าจำนวนเซลล์นี้ (ค่าเริ่มต้น 4)."
              },
              "gap_distance": {
                "label": "ระยะทางช่องว่าง",
                "description": "สำหรับเส้น: เชื่อมช่องว่างที่ไม่เกินระยะทางนี้ (หน่วย CRS) ระหว่างจุดปลายของเส้นที่เกือบอยู่ในแนวเดียวกัน ค่าเริ่มต้น 0 (ปิด)."
              },
              "simplify_tolerance": {
                "label": "ค่าเผื่อการลดรูป",
                "description": "ค่าเผื่อแบบ Douglas-Peucker (หน่วย CRS) สำหรับเรขาคณิตผลลัพธ์ ค่าเริ่มต้นประมาณ 1 เซลล์."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "extract_sinks": {
            "name": "สกัดแอ่งปิด",
            "description": "สกัดแอ่งรับน้ำ (ขอบเขตแอ่งสูงสุด) จาก DEM (lidar filling.py).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์ DEM นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์แอ่งผลลัพธ์ เป็นตัวเลือก หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "จำนวนพิกเซลขั้นต่ำสำหรับแอ่งหนึ่งแห่ง (จะเก็บไว้เมื่อมากกว่าค่านี้เท่านั้น; ค่าเริ่มต้น 10)."
              },
              "region_output": {
                "label": "ผลลัพธ์ภูมิภาค",
                "description": "พาธผลลัพธ์สำหรับแรสเตอร์บริเวณที่ติดป้ายกำกับแล้ว เป็นตัวเลือก."
              },
              "depth_output": {
                "label": "ผลลัพธ์ความลึก",
                "description": "พาธผลลัพธ์สำหรับแรสเตอร์ความลึกของการเติม เป็นตัวเลือก."
              },
              "filled_output": {
                "label": "ผลลัพธ์ที่เติมแล้ว",
                "description": "พาธผลลัพธ์สำหรับ DEM ที่เติมแอ่งแล้ว เป็นตัวเลือก."
              },
              "csv_output": {
                "label": "ผลลัพธ์ CSV",
                "description": "พาธผลลัพธ์สำหรับ CSV แอตทริบิวต์ของแต่ละบริเวณ เป็นตัวเลือก."
              },
              "vector_output": {
                "label": "ผลลัพธ์เวกเตอร์",
                "description": "พาธผลลัพธ์สำหรับโพลิกอนของบริเวณในรูปแบบ GeoJSON (เชื่อมแอตทริบิวต์เข้าไปด้วย) เป็นตัวเลือก."
              },
              "flat_increment": {
                "label": "ค่าเพิ่มพื้นที่ราบ",
                "description": "ค่าเพิ่มคงที่ที่ใส่ระหว่างการเติมเพื่อบังคับให้เกิดการระบายน้ำ (ค่าเริ่มต้น 0)."
              }
            }
          },
          "extract_spectra_from_image": {
            "name": "สกัดสเปกตรัมจากภาพ",
            "description": "สร้างคลังสเปกตรัมจากภาพหลายแบนด์และพื้นที่ฝึกสอน โดยได้หนึ่งสเปกตรัมต่อคลาส ในรูปแบบ CSV ที่ spectral_library_matching อ่านได้ (ArcGIS Extract Spectra From Image) spectral_library_matching, spectral_angle_mapper และ matched_filter_target_detection ล้วนใช้คลังสเปกตรัมแต่ไม่มีเครื่องมือใดสร้างขึ้นมา ชุดเครื่องมือสเปกตรัมจึงใช้ได้เฉพาะกับคลังที่ตีพิมพ์ไว้แล้วเท่านั้น.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ภาพแบบหลายแบนด์."
              },
              "training_features": {
                "label": "ฟีเจอร์ฝึกสอน",
                "description": "เลเยอร์โพลิกอนหรือจุดที่กำหนดขอบเขตของแต่ละคลาสหรือเป้าหมาย."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "แอตทริบิวต์ที่เก็บป้ายกำกับคลาส ฟีเจอร์ที่มีป้ายกำกับเดียวกันจะถูกรวมเข้าเป็นสเปกตรัมเดียว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV ของคลังสเปกตรัมผลลัพธ์ ('name,b1,b2,...' ต่อหนึ่งคลาส) พร้อมใช้เป็น 'library_csv' ของ spectral_library_matching."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "การลดรูปข้อมูลจากเซลล์ที่ครอบคลุม: 'mean' (ค่าเริ่มต้น), 'median', 'max', 'min'."
              },
              "trim_percent": {
                "label": "ร้อยละการตัดแต่ง",
                "description": "ร้อยละที่ตัดทิ้งจากแต่ละหางของแต่ละแบนด์ก่อนลดรูปข้อมูล เพื่อลดอิทธิพลของพิกเซลขอบที่ปะปนกัน (ค่าเริ่มต้น 0, สูงสุด 49)."
              },
              "min_cells": {
                "label": "จำนวนเซลล์ต่ำสุด",
                "description": "คลาสที่ครอบคลุมเซลล์น้อยกว่าค่านี้จะถูกรายงานและข้ามไป แทนที่จะสร้าง 'สเปกตรัม' จากพิกเซลเดียว (ค่าเริ่มต้น 1)."
              },
              "wavelengths": {
                "label": "ความยาวคลื่น",
                "description": "ความยาวคลื่นต่อแบนด์คั่นด้วยเครื่องหมายจุลภาค เป็นตัวเลือก บันทึกเป็นส่วนหัวคำอธิบายในไลบรารีและใน output_stats."
              },
              "output_stats": {
                "label": "ผลลัพธ์สถิติ",
                "description": "ไฟล์ CSV เป็นตัวเลือกสำหรับรับส่วนเบี่ยงเบนมาตรฐานและจำนวนเซลล์ต่อคลาสต่อแบนด์ แยกไว้ต่างหากเพื่อให้ไลบรารียังคงแยกวิเคราะห์ได้."
              }
            }
          },
          "extract_water_sar": {
            "name": "สกัดแหล่งน้ำ (SAR)",
            "description": "กำหนดขอบเขตแหล่งน้ำเปิดและพื้นที่น้ำท่วมจากค่าการกระเจิงกลับ SAR ด้วยค่าเกณฑ์ Otsu รายภาพบนหน่วยเดซิเบล พร้อมตัวกรองความลาดชันจาก DEM และความสูงเหนือค่าต่ำสุดเป็นตัวเลือกที่ตัดเงาเรดาร์และพื้นผิวมืดที่แห้งออก (ArcGIS Extract Water) ไม่มีรีจิสทรีใดทำสิ่งนี้จากเรดาร์ได้: NDWI/MNDWI ของ spectral_index ต้องใช้แบนด์การสะท้อนสีเขียว/NIR/SWIR ซึ่ง SAR ไม่มี ส่วน depth_to_water จำลองว่าน้ำควรอยู่ที่ใดจากภูมิประเทศแทนที่จะสังเกตจริง และค่าเกณฑ์ที่ตั้งด้วยมือใน raster_calculator ใช้ข้ามภาพไม่ได้เพราะเส้นแบ่งน้ำ/แผ่นดินเลื่อนไปตามลมและมุมตกกระทบ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์การกระเจิงกลับ SAR."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนน้ำผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_raster": {
                "label": "แรสเตอร์ผลลัพธ์",
                "description": "มาสก์น้ำแบบไบนารีผลลัพธ์ (1 คือน้ำ, 0 คือพื้นดิน) สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ได้ระบุพาธ."
              },
              "dem": {
                "label": "DEM",
                "description": "DEM เป็นตัวเลือก ที่ลงทะเบียนพิกัดตรงกับข้อมูลนำเข้า เพื่อเปิดใช้งานตัวกรองความลาดชันและความสูง."
              },
              "threshold_db": {
                "label": "ค่าเกณฑ์ (dB)",
                "description": "ค่าเกณฑ์คงที่ในหน่วย dB เซลล์ที่มีค่าเท่ากับหรือต่ำกว่าถือเป็นน้ำ ค่านี้จะแทนที่ค่าเกณฑ์ Otsu อัตโนมัติ."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "ตัดแหล่งน้ำที่มีพื้นที่เล็กกว่าค่านี้ออก ในหน่วยแผนที่ยกกำลังสอง."
              },
              "max_slope": {
                "label": "ความลาดชันสูงสุด",
                "description": "เมื่อมี DEM จะปฏิเสธน้ำบนภูมิประเทศที่ชันเกินกว่าจำนวนองศานี้ (ค่าเริ่มต้น 5) น้ำนิ่งไม่สามารถอยู่บนความลาดชันสูงได้ แต่เงาเรดาร์ในบริเวณนั้นก็มืดพอ ๆ กัน."
              },
              "max_height_above_min": {
                "label": "ความสูงสูงสุดเหนือค่าต่ำสุด",
                "description": "เมื่อมี DEM จะปฏิเสธเซลล์ที่เป็นตัวเลือกซึ่งอยู่สูงกว่าเซลล์ DEM ต่ำสุดในบริเวณเชื่อมต่อเดียวกันเกินกว่าจำนวนหน่วย z นี้."
              },
              "mask_features": {
                "label": "ฟีเจอร์มาสก์",
                "description": "เลเยอร์โพลิกอนที่จำกัดพื้นที่การวิเคราะห์."
              },
              "mask_type": {
                "label": "ชนิดมาสก์",
                "description": "'land_polygon' (ค่าเริ่มต้น; วิเคราะห์นอกโพลิกอน) หรือ 'water_polygon' (วิเคราะห์ภายในโพลิกอน)."
              },
              "histogram_bins": {
                "label": "จำนวนถังฮิสโทแกรม",
                "description": "จำนวนบินที่ใช้สำหรับฮิสโทแกรมของ Otsu (ค่าเริ่มต้น 256)."
              },
              "input_units": {
                "label": "หน่วยนำเข้า",
                "description": "'intensity' (ค่าเริ่มต้น), 'dn', 'amplitude' หรือ 'db'."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะใช้ค่าเกณฑ์ (ค่าเริ่มต้น 1)."
              }
            }
          },
          "extrude_between": {
            "name": "ยืดระหว่าง",
            "description": "สร้างทรงตันปิดกันน้ำได้ที่กินพื้นที่ระหว่างพื้นผิวสองชุดภายในแต่ละโพลิกอนนำเข้า พร้อมปริมาตรรายฟีเจอร์ที่แม่นยำ (ArcGIS Extrude Between) cut_fill ให้การเปลี่ยนแปลงปริมาตรรายเซลล์ระหว่างแรสเตอร์สองชุดแต่ให้ผลลัพธ์เป็นแรสเตอร์ จำกัดเฉพาะขอบเขตที่ต้องการไม่ได้ และไม่มีแอตทริบิวต์ ส่วน buffer_3d และ minimum_bounding_volume สร้างทรงตันจากฟีเจอร์แทนที่จะสร้างจากคู่พื้นผิว ผลลัพธ์ป้อนเข้า union_3d, intersect_3d, difference_3d และ inside_3d ได้โดยตรง.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ขอบเขตโพลิกอนที่กำหนดขอบเขตด้านข้างของแต่ละรูปทรงตัน ใช้เฉพาะวงแหวนแรกของส่วนแรกเท่านั้น รูภายในและส่วนเพิ่มเติมของ MultiPolygon จะถูกละเว้น ดังนั้นควรแยกขอบเขตแบบหลายส่วนและเติมรูให้เรียบร้อยก่อนอัดขึ้นรูป."
              },
              "surface_upper": {
                "label": "พื้นผิวบน",
                "description": "แรสเตอร์พื้นผิวขอบเขตด้านบน."
              },
              "surface_lower": {
                "label": "พื้นผิวล่าง",
                "description": "แรสเตอร์พื้นผิวขอบเขตด้านล่าง ที่ลงทะเบียนพิกัดตรงกับพื้นผิวด้านบน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ฟีเจอร์รูปทรงตันแบบปิด (MultiPolygon ตาข่ายสามเหลี่ยมที่มีค่า Z) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ระยะห่างของการสุ่มตัวอย่างขอบเขตและการเพิ่มความหนาแน่นของเส้นขอบ ในหน่วย CRS ค่าเริ่มต้น: ขนาดเซลล์ของพื้นผิวที่ละเอียดกว่า."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะอ่านจากแรสเตอร์พื้นผิวแต่ละชั้น (ค่าเริ่มต้น 1)."
              }
            }
          },
          "feature_outline_masks": {
            "name": "มาสก์เส้นขอบฟีเจอร์",
            "description": "สร้างโพลิกอนมาสก์เชิงแผนที่ที่ระยะขอบรอบฟีเจอร์ (เส้นรอบรูปที่แม่นยำ คอนเวกซ์ฮัลล์ หรือกล่องขอบเขต) โดยเลือกตัดด้วยเลเยอร์ที่สองได้ (Intersecting Layers Masks).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (เรขาคณิตชนิดใดก็ได้) ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "margin": {
                "label": "ระยะขอบ",
                "description": "ระยะขอบของมาสก์ ใช้หน่วยเมตรสำหรับ CRS เชิงภูมิศาสตร์ (EPSG:4326 หรือไม่ทราบ ซึ่งจะถูกแปลงเป็นองศา) มิฉะนั้นใช้หน่วยของ CRS ของเลเยอร์ ต้องเป็นค่าบวก."
              },
              "mask_kind": {
                "label": "ชนิดมาสก์",
                "description": "รูปร่างของมาสก์: 'exact' (ค่าเริ่มต้น เส้นขอบฟีเจอร์ที่ทำบัฟเฟอร์), 'convex_hull' (คอนเวกซ์ฮัลล์ที่ขยายออก) หรือ 'box' (กรอบขอบเขต + ระยะขอบ)."
              },
              "masked_layer": {
                "label": "เลเยอร์ที่ถูกมาสก์",
                "description": "เลเยอร์โพลิกอนที่สองเป็นตัวเลือก เมื่อระบุ มาสก์จะถูกตัดตามส่วนที่ตัดกันกับเลเยอร์นี้ (Intersecting Layers Masks) มาสก์ที่ไม่ซ้อนทับกันจะถูกทิ้ง."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์ต้นทางเป็นตัวเลือก ซึ่งค่าจะถูกคัดลอกไปยังแต่ละมาสก์เป็น 'source_id' ค่าเริ่มต้นคือดัชนีฟีเจอร์ต้นทาง."
              }
            }
          },
          "feature_to_line": {
            "name": "ฟีเจอร์เป็นเส้น",
            "description": "ทำให้ฟีเจอร์เส้น/ขอบเขตโพลิกอนเป็นระนาบเดียว โดยแตกเป็นเซกเมนต์เส้นที่มีโหนดและไม่ซ้อนทับกัน แยกที่ทุกจุดตัดทั้งระหว่างกันและกับตัวเอง เช่นเดียวกับ ArcGIS Feature To Line — เป็นตัวสร้างทอพอโลยีเบื้องต้นที่ polygons_to_lines และ split_vector_lines ที่มีอยู่ไม่รองรับ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นหรือโพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "cluster_tolerance": {
                "label": "ค่าเผื่อคลัสเตอร์",
                "description": "สแนปจุดแยกเข้ากับกริดหน่วยแผนที่นี้เพื่อรวมโหนดที่เกือบทับกัน (ค่าเริ่มต้น 1e-9)."
              },
              "attributes": {
                "label": "แอตทริบิวต์",
                "description": "เมื่อเป็นจริง (ค่าเริ่มต้น) จะกำกับเซกเมนต์ผลลัพธ์แต่ละอันด้วย 'src_fid' ซึ่งเป็นรหัสฟีเจอร์ต้นทาง."
              }
            }
          },
          "feature_vertices_to_points": {
            "name": "จุดยอดของฟีเจอร์เป็นจุด",
            "description": "สร้างเลเยอร์จุดจากจุดยอดของฟีเจอร์ที่เลือก — ALL, START, END, BOTH_ENDS, MID (จุดกึ่งกลางตามความยาวส่วนโค้ง) หรือ DANGLE (จุดปลายเส้นที่ไม่ได้ใช้ร่วมกัน) — พร้อมฟิลด์ FID ต้นทาง เช่นเดียวกับ ArcGIS Feature Vertices To Points.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าชนิดเส้น โพลิกอน หรือจุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "point_location": {
                "label": "ตำแหน่งจุด",
                "description": "จุดยอดที่จะสกัด: ALL | START | END | BOTH_ENDS | MID | DANGLE ค่าเริ่มต้น ALL."
              }
            }
          },
          "features_to_gpx": {
            "name": "ฟีเจอร์เป็น GPX",
            "description": "เขียนฟีเจอร์จุดเป็นเวย์พอยต์ GPX และฟีเจอร์เส้นเป็นแทร็ก GPX โดยจับคู่ฟิลด์แอตทริบิวต์เข้ากับชื่อ/คำอธิบาย/ระดับความสูง/เวลา.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดหรือเส้นที่จะส่งออก (ถือว่าเป็น WGS84 / EPSG:4326)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ .gpx ผลลัพธ์."
              },
              "name_field": {
                "label": "ฟิลด์ชื่อ",
                "description": "ฟิลด์แอตทริบิวต์ที่แมปกับอิลิเมนต์ <name> ของ GPX (เป็นตัวเลือก)."
              },
              "description_field": {
                "label": "ฟิลด์คำอธิบาย",
                "description": "ฟิลด์แอตทริบิวต์ที่แมปกับอิลิเมนต์ <desc> ของ GPX (เป็นตัวเลือก)."
              },
              "z_field": {
                "label": "ฟิลด์ Z",
                "description": "ฟิลด์แอตทริบิวต์ที่แมปกับระดับความสูง <ele> ของ GPX (เป็นตัวเลือก จะย้อนกลับไปใช้ค่า Z ของเรขาคณิตเมื่อมี)."
              },
              "date_field": {
                "label": "ฟิลด์วันที่",
                "description": "ฟิลด์แอตทริบิวต์ที่แมปกับเวลาประทับ <time> ของ GPX ซึ่งเป็นสตริง ISO-8601 (เป็นตัวเลือก)."
              }
            }
          },
          "features_to_gtfs": {
            "name": "ฟีเจอร์เป็น GTFS",
            "description": "ส่งออกฟีเจอร์จุดเป็น GTFS stops.txt และฟีเจอร์เส้นเป็น GTFS shapes.txt เพื่อปิดวงจรการแปลงไป-กลับของ GTFS.",
            "params": {
              "stops_input": {
                "label": "ข้อมูลนำเข้าจุดจอด",
                "description": "เลเยอร์เวกเตอร์จุดที่จะเขียนเป็น stops.txt (ใช้ฟิลด์แอตทริบิวต์ stop_id/stop_name เมื่อมี)."
              },
              "shapes_input": {
                "label": "ข้อมูลนำเข้ารูปร่างเส้นทาง",
                "description": "เลเยอร์เวกเตอร์เส้นที่จะเขียนเป็น shapes.txt (ใช้ฟิลด์แอตทริบิวต์ shape_id เมื่อมี)."
              },
              "output_dir": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ที่จะเขียนไฟล์ข้อความ GTFS (stops.txt / shapes.txt) จะถูกสร้างขึ้นหากยังไม่มี."
              }
            }
          },
          "features_to_kml": {
            "name": "ฟีเจอร์เป็น KML",
            "description": "เขียนเลเยอร์เวกเตอร์เป็นเอกสาร KML 2.2 (หรือ KMZ ที่บีบอัด) โดยเก็บแอตทริบิวต์เป็น ExtendedData พร้อมสไตล์ร่วมเป็นตัวเลือก (ArcGIS Layer To KML / Map To KML) kml_to_features อ่าน KML ได้อยู่แล้วแต่ไม่มีเครื่องมือใดเขียนได้ ต่างจากคู่ GPX, GTFS และ GeoParquet ที่สมมาตรกัน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า ต้องอยู่ในระบบพิกัด EPSG:4326 lon/lat ซึ่งเป็น CRS เดียวที่ KML กำหนดไว้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ .kml หรือ .kmz ผลลัพธ์."
              },
              "name_field": {
                "label": "ฟิลด์ชื่อ",
                "description": "แอตทริบิวต์ที่ใช้เป็น <name> ของแต่ละ Placemark."
              },
              "description_field": {
                "label": "ฟิลด์คำอธิบาย",
                "description": "แอตทริบิวต์ที่ใช้เป็น <description> เมื่อไม่ระบุ แอตทริบิวต์ทั้งหมดจะถูกเขียนเป็น <ExtendedData>."
              },
              "z_field": {
                "label": "ฟิลด์ Z",
                "description": "แอตทริบิวต์ที่ให้ค่าระดับความสูง ซึ่งจะเขียนเป็นพิกัดที่สาม."
              },
              "altitude_mode": {
                "label": "โหมดความสูง",
                "description": "'clampToGround' (ค่าเริ่มต้น), 'relativeToGround' หรือ 'absolute'."
              },
              "color": {
                "label": "สี",
                "description": "สีเส้น/เส้นขอบเป็นเลขฐานสิบหกแบบ aabbggrr ของ KML (เช่น 'ff0000ff' สำหรับสีแดงทึบ)."
              },
              "line_width": {
                "label": "ความกว้างเส้น",
                "description": "ความกว้างเส้นเป็นพิกเซล (ค่าเริ่มต้น 1.0)."
              },
              "fill_color": {
                "label": "สีเติม",
                "description": "สีเติมโพลิกอนเป็นเลขฐานสิบหกแบบ aabbggrr ของ KML ละไว้หากไม่ต้องการเติมสี."
              }
            }
          },
          "fence_diagram": {
            "name": "แผนภาพรั้ว",
            "description": "สร้างแผงหน้าตัดแนวดิ่ง 3 มิติที่แนวเส้นตัดผ่านชุดพื้นผิวซ้อนกัน — วิธีมาตรฐานในการแสดงภาพชั้นหินใต้ผิวดินหรือการแบ่งชั้นบรรยากาศ (ArcGIS Fence Diagram) profile, long_profile และ stack_profile สุ่มค่าพื้นผิวตามแนวเส้นแต่คืนค่าเป็นเส้นโปรไฟล์ 2 มิติหรือตาราง โดยไม่มีเรขาคณิตของช่องว่างระหว่างพื้นผิวที่อยู่ติดกัน ส่วน voxel_isosurface สกัดพื้นผิวระดับหนึ่งจากปริมาตรแทนที่จะเป็นหน้าตัด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์เส้นที่กำหนดแนวภาคตัด."
              },
              "surfaces": {
                "label": "พื้นผิว",
                "description": "รายการแรสเตอร์พื้นผิวที่ลงทะเบียนพิกัดตรงกัน คั่นด้วยเครื่องหมายจุลภาค เรียงจากบนลงล่าง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แผงภาคตัด 3 มิติ หนึ่งแผงต่อหนึ่งแนวต่อหนึ่งคู่พื้นผิว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ระยะห่างของการสุ่มตัวอย่างตามแนว ในหน่วย CRS ค่าเริ่มต้น: ขนาดเซลล์ของพื้นผิวที่ละเอียดที่สุด."
              },
              "floor_height": {
                "label": "ความสูงพื้น",
                "description": "ขอบเขตล่างคงที่เป็นตัวเลือก: พื้นผิวด้านล่างเสมือนที่ระดับความสูงนี้ เพื่อปิดแผงที่ลึกที่สุด."
              },
              "ceiling_height": {
                "label": "ความสูงเพดาน",
                "description": "ขอบเขตบนคงที่เป็นตัวเลือก: พื้นผิวด้านบนเสมือนที่ระดับความสูงนี้."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะอ่านจากแรสเตอร์พื้นผิวแต่ละชั้น (ค่าเริ่มต้น 1)."
              }
            }
          },
          "fill_missing_values": {
            "name": "เติมค่าที่หายไป",
            "description": "ประมาณและเติมค่าว่างในฟิลด์แอตทริบิวต์เชิงตัวเลขโดยใช้เพื่อนบ้านเชิงพื้นที่ (k ใกล้สุดหรือแถบระยะทาง) โดยเลือกจำกัดภายในหน้าต่างเวลาได้ พร้อมตัวประมาณค่าที่เลือกได้ (mean/median/min/max/temporal_trend) แถวที่ถูกเติมค่าจะถูกทำเครื่องหมายด้วยฟิลด์ธง (ArcGIS Fill Missing Values).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าที่มีฟิลด์ที่จะเติมค่า."
              },
              "fill_field": {
                "label": "ฟิลด์เติม",
                "description": "ฟิลด์ตัวเลขที่จะประมาณและเติมค่าว่าง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "estimator": {
                "label": "ตัวประมาณ",
                "description": "วิธีรวมค่าเพื่อนบ้าน: 'mean' (ค่าเริ่มต้น), 'median', 'min', 'max' หรือ 'temporal_trend' (กำลังสองน้อยที่สุดตามเวลา ต้องใช้ time_field)."
              },
              "neighbourhood": {
                "label": "บริเวณใกล้เคียง",
                "description": "การเลือกเชิงพื้นที่: 'knn' (ค่าเริ่มต้น เพื่อนบ้านใกล้สุด k ตัว) หรือ 'distance_band' (ทั้งหมดภายใน search_radius)."
              },
              "k": {
                "label": "K",
                "description": "จำนวนเพื่อนบ้านใกล้ที่สุดสำหรับ 'knn' (ค่าเริ่มต้น 8)."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมี (หน่วย CRS) สำหรับการเลือกแบบ 'distance_band'."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ตัวเลขเป็นตัวเลือกที่ระบุเวลา/ลำดับของแต่ละฟีเจอร์ (จำเป็นสำหรับ 'temporal_trend')."
              },
              "time_window": {
                "label": "กรอบเวลา",
                "description": "เป็นตัวเลือก: จำกัดเพื่อนบ้านเฉพาะที่อยู่ภายในระยะเวลานี้จากเป้าหมาย (ต้องใช้ time_field)."
              },
              "flag_field": {
                "label": "ฟิลด์ธง",
                "description": "ชื่อฟิลด์บูลีนที่ใช้กำกับแถวที่เติมค่า (ค่าเริ่มต้น 'imputed')."
              }
            }
          },
          "fill_spill_merge": {
            "name": "เติม-ล้น-รวม",
            "description": "นำพาปริมาตรน้ำผิวดินที่จำกัดไปตาม DEM เพื่อสร้างขอบเขตทะเลสาบ/น้ำท่วมที่สมจริง (การเติมแอ่งบางส่วนพร้อมการล้นและการรวม) เป็นการนำ Fill-Spill-Merge ของ RichDEM มาเขียนใหม่.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า (ระดับความสูง)."
              },
              "water_level": {
                "label": "ระดับน้ำ",
                "description": "ความลึกน้ำผิวดินสม่ำเสมอที่ใช้กับทุกเซลล์ ระบุค่านี้หรือ 'surface_water'."
              },
              "surface_water": {
                "label": "น้ำผิวดิน",
                "description": "แรสเตอร์ความลึกน้ำผิวดินรายเซลล์ (จัดตำแหน่งตรงกับ DEM) จะแทนที่ 'water_level' เมื่อระบุทั้งสองค่า."
              },
              "ocean_level": {
                "label": "ระดับน้ำทะเล",
                "description": "ระดับน้ำทะเลเป็นตัวเลือก: เซลล์ที่มีระดับความสูงเท่ากับหรือต่ำกว่าค่านี้และเชื่อมต่อกับขอบกริดจะกลายเป็นมหาสมุทร (เส้นฐานน้ำท่วมชายฝั่ง)."
              },
              "edge_outlet": {
                "label": "ทางออกที่ขอบ",
                "description": "ถือว่าทุกเซลล์ที่ขอบกริดเป็นทางออกอิสระ (ค่าเริ่มต้นเป็นจริง) น้ำที่ไหลถึงขอบจะออกจาก DEM."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ความลึกน้ำนิ่งเป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "water_surface": {
                "label": "ผิวน้ำ",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับพื้นผิวชลศาสตร์ (DEM + ความลึกน้ำ)."
              },
              "flood_extent": {
                "label": "ขอบเขตน้ำท่วม",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับมาสก์ขอบเขตน้ำท่วม (1 เมื่อมีน้ำนิ่ง มิฉะนั้นเป็น 0)."
              }
            }
          },
          "find_argument_statistics": {
            "name": "ค้นหาสถิติอาร์กิวเมนต์",
            "description": "สถิติเชิงตำแหน่งรายพิกเซลบนสแตกแรสเตอร์ (เช่นเดียวกับ ArcGIS Find Argument Statistics): ดัชนีสไลซ์ (หรือวันที่) ของค่าสูงสุด/ต่ำสุด ตำแหน่งมัธยฐาน จำนวนสไลซ์ที่เกินค่าเกณฑ์ (ระยะเวลา) หรือช่วงต่อเนื่องที่ยาวที่สุด — คำตอบเชิงตำแหน่งที่การรวมค่าของ cell-statistics และ image_stack_profile ที่มีอยู่ให้ไม่ได้.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือหนึ่งสไลซ์) หรือรายการแรสเตอร์ที่ลงทะเบียนพิกัดตรงกันคั่นด้วยเครื่องหมายจุลภาค เรียงตามลำดับเวลา."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์แบนด์เดียวผลลัพธ์ของดัชนีสไลซ์ / วันที่ / จำนวน หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "'argmax' (ค่าเริ่มต้น), 'argmin', 'median_position', 'duration' หรือ 'longest_run'."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ตัวเลขสำหรับ 'duration'/'longest_run' (จำเป็นสำหรับวิธีเหล่านี้)."
              },
              "comparison": {
                "label": "การเปรียบเทียบ",
                "description": "การเปรียบเทียบสำหรับ 'duration'/'longest_run': '>' (ค่าเริ่มต้น), '>=', '<' หรือ '<='."
              },
              "dates": {
                "label": "วันที่",
                "description": "วันที่แบบตัวเลขคั่นด้วยเครื่องหมายจุลภาคต่อสไลซ์ เป็นตัวเลือก (เช่น วันที่ของปี) argmax/argmin/median จะให้ผลลัพธ์เป็นวันที่ที่ตรงกันแทนดัชนีสไลซ์."
              },
              "min_valid": {
                "label": "จำนวนค่าที่ถูกต้องต่ำสุด",
                "description": "จำนวนการสังเกตที่ไม่ใช่ NoData ขั้นต่ำต่อพิกเซล (ค่าเริ่มต้น 1)."
              }
            }
          },
          "find_dwell_locations": {
            "name": "ค้นหาตำแหน่งที่หยุดพัก",
            "description": "ตรวจหาตำแหน่งที่วัตถุเคลื่อนที่หยุดอยู่กับที่: ช่วงของจุดติดตามที่อยู่ภายในค่าเผื่อระยะทางนานอย่างน้อยตามค่าเผื่อเวลา โดยให้ผลลัพธ์เป็นจุดติดตาม จุดศูนย์กลางเฉลี่ย หรือคอนเวกซ์ฮัลล์ เช่นเดียวกับ ArcGIS Find Dwell Locations.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์จุดที่มีเวลาประทับ (จุดบันทึกเส้นทาง)."
              },
              "track_field": {
                "label": "ฟิลด์เส้นทางเคลื่อนที่",
                "description": "ฟิลด์ที่ระบุเส้นทางที่จุดบันทึกแต่ละจุดสังกัดอยู่."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์เวลาประทับ (ตัวเลขหน่วยวินาที หรือข้อความ ISO-8601)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "distance_tolerance": {
                "label": "ค่าเผื่อระยะทาง",
                "description": "ระยะทางสูงสุด (หน่วยแผนที่) ที่จุดบันทึกอาจอยู่ห่างจากเซนทรอยด์เคลื่อนที่ของการหยุดพัก."
              },
              "time_tolerance": {
                "label": "ค่าเผื่อเวลา",
                "description": "ระยะเวลาขั้นต่ำ (หน่วยเดียวกับ time_field) ที่ช่วงหยุดนิ่งต้องมีจึงจะนับเป็นการหยุดพัก."
              },
              "output_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "dwell_features (ค่าเริ่มต้น) | mean_centers | convex_hulls | all_features."
              }
            }
          },
          "find_identical": {
            "name": "ค้นหาฟีเจอร์ที่เหมือนกัน",
            "description": "ค้นหาฟีเจอร์ที่เหมือนกันทั้งเรขาคณิตและ/หรือฟิลด์ที่เลือก โดยจัดกลุ่มรายการซ้ำ โหมด 'report' เพิ่มคอลัมน์ dup_group/dup_seq ส่วนโหมด 'delete' เก็บไว้เฉพาะรายการแรกของแต่ละกลุ่ม เช่นเดียวกับ ArcGIS Find Identical / Delete Identical.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าที่จะกำจัดข้อมูลซ้ำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ที่จะเปรียบเทียบ คั่นด้วยเครื่องหมายจุลภาค ละไว้เพื่อเปรียบเทียบเฉพาะเรขาคณิต ใช้ร่วมกับ 'compare_geometry'."
              },
              "compare_geometry": {
                "label": "เปรียบเทียบเรขาคณิต",
                "description": "ระบุว่าเรขาคณิตเป็นส่วนหนึ่งของการทดสอบเอกลักษณ์หรือไม่ (ค่าเริ่มต้นเป็นจริง ตั้งเป็นเท็จเพื่อเปรียบเทียบเฉพาะฟิลด์)."
              },
              "xy_tolerance": {
                "label": "ค่าเผื่อ XY",
                "description": "ค่าเผื่อการสแนปสำหรับการเปรียบเทียบเรขาคณิต (จุดยอดจะถูกปัดเข้ากับกริดนี้ก่อนทำแฮช) ค่าเริ่มต้น 0 (ตรงทุกประการ)."
              },
              "mode": {
                "label": "โหมด",
                "description": "'report' (ค่าเริ่มต้น เพิ่ม dup_group/dup_seq) หรือ 'delete' (เก็บรายการแรกของแต่ละกลุ่ม)."
              }
            }
          },
          "find_meeting_locations": {
            "name": "ค้นหาตำแหน่งที่พบกัน",
            "description": "ตรวจหาการมารวมตัวกันที่หลายแทร็กต่างกันอยู่ด้วยกันภายในระยะทางหนึ่งนานอย่างน้อยตามระยะเวลาต่ำสุด (เช่นเดียวกับ ArcGIS Find Meeting Locations) — เป็นการเกิดร่วมกันของ N แทร็กที่ trace_proximity_events (แบบคู่) และ reconstruct_tracks (การหยุดอยู่ของแทร็กเดียว) ที่เขียนไว้ไม่ครอบคลุม ให้ผลลัพธ์เป็นฮัลล์ของพื้นที่และจุดตัวแทน พร้อมจำนวนผู้ร่วม เวลาเริ่ม/สิ้นสุด และระยะเวลา.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดเส้นทางที่มีเวลาประทับ (CRS แบบฉาย ระยะทางเป็นหน่วยแผนที่)."
              },
              "track_field": {
                "label": "ฟิลด์เส้นทางเคลื่อนที่",
                "description": "ฟิลด์ที่ระบุแต่ละเส้นทาง/เอนทิตี."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: เป็นวินาทีเชิงตัวเลขหรือเวลาแบบ ISO-8601."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะทางสูงสุด (หน่วยแผนที่) ที่ถือว่าเส้นทางอยู่ร่วมกัน."
              },
              "min_meeting_duration": {
                "label": "ระยะเวลาพบกันต่ำสุด",
                "description": "ระยะเวลาขั้นต่ำ (หน่วยเวลา) ที่การรวมกลุ่มต้องคงอยู่จึงจะรายงาน."
              },
              "max_meeting_duration": {
                "label": "ระยะเวลาพบกันสูงสุด",
                "description": "ระยะเวลาสูงสุดเป็นตัวเลือก การรวมกลุ่มที่นานกว่านี้จะถูกทิ้ง."
              },
              "min_participants": {
                "label": "จำนวนผู้เข้าร่วมต่ำสุด",
                "description": "จำนวนเส้นทางที่แตกต่างกันขั้นต่ำในการรวมกลุ่ม (ค่าเริ่มต้น 2)."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "ความกว้างของช่วงเวลา (หน่วยเวลา) ค่าเริ่มต้น: min_meeting_duration."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์จุดตัวแทนผลลัพธ์ (หนึ่งจุดต่อหนึ่งการพบกัน) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_area": {
                "label": "ผลลัพธ์พื้นที่",
                "description": "เลเยอร์พื้นที่ผลลัพธ์เป็นตัวเลือก (โพลิกอนคอนเวกซ์ฮัลล์ต่อหนึ่งการพบกัน) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "find_space_time_matches": {
            "name": "ค้นหาการจับคู่เชิงพื้นที่-เวลา",
            "description": "จับคู่ฟีเจอร์ระหว่างเลเยอร์จุดที่มีเวลากำกับสองเลเยอร์ที่อยู่ภายในระยะทางค้นหาเชิงพื้นที่และภายในหน้าต่างเวลาของกันและกัน (ก่อน/หลัง/อย่างใดอย่างหนึ่ง) โดยให้ผลลัพธ์เป็นคู่ที่จับคู่ได้พร้อมระยะทางและผลต่างเวลา เช่นเดียวกับ ArcGIS Find Space Time Matches.",
            "params": {
              "primary": {
                "label": "หลัก",
                "description": "เลเยอร์จุดหลัก (แต่ละฟีเจอร์จะถูกจับคู่กับเลเยอร์รอง)."
              },
              "secondary": {
                "label": "รอง",
                "description": "เลเยอร์จุดรองที่จะใช้จับคู่."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์เวลาประทับที่มีอยู่ในทั้งสองเลเยอร์ (ตัวเลขหรือ ISO-8601)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์การจับคู่ผลลัพธ์ (หนึ่งเส้นเชื่อมต่อหนึ่งคู่ที่จับคู่ได้) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะทางเชิงพื้นที่สูงสุดระหว่างฟีเจอร์หลักกับฟีเจอร์รอง (หน่วยแผนที่)."
              },
              "time_window": {
                "label": "กรอบเวลา",
                "description": "ระยะห่างเวลาสูงสุด: จำนวนวินาที หรือระยะเวลาเช่น '2h', '30m', '7d'."
              },
              "temporal_relationship": {
                "label": "ความสัมพันธ์เชิงเวลา",
                "description": "'either' (ค่าเริ่มต้น), 'before' (ฟีเจอร์รองก่อนฟีเจอร์หลัก) หรือ 'after' (ฟีเจอร์รองหลังฟีเจอร์หลัก)."
              },
              "primary_id_field": {
                "label": "ฟิลด์รหัสหลัก",
                "description": "ฟิลด์ที่ใช้ตั้งชื่อฟีเจอร์หลักแต่ละรายการในผลลัพธ์ (ค่าเริ่มต้น: ดัชนีฟีเจอร์)."
              },
              "secondary_id_field": {
                "label": "ฟิลด์รหัสรอง",
                "description": "ฟิลด์ที่ใช้ตั้งชื่อฟีเจอร์รองแต่ละรายการในผลลัพธ์ (ค่าเริ่มต้น: ดัชนีฟีเจอร์)."
              }
            }
          },
          "fit_variogram": {
            "name": "ฟิตโมเดลวาริโอแกรม",
            "description": "ฟิตโมเดลวาริโอแกรมเชิงทฤษฎี (Spherical, Exponential, Gaussian) เข้ากับข้อมูลเซมิวาริโอแกรมเชิงประจักษ์เพื่อใช้ในการทำคริกกิง.",
            "params": {
              "lags_json": {
                "label": "JSON ของแล็ก",
                "description": "อาร์เรย์ JSON ของช่วง lag จาก estimate_variogram"
              },
              "model_family": {
                "label": "ตระกูลโมเดล",
                "description": "โมเดล: spherical, exponential หรือ gaussian"
              }
            }
          },
          "flatten_interferogram": {
            "name": "ปรับอินเตอร์เฟอโรแกรมให้ราบ",
            "description": "กำจัดองค์ประกอบเฟสจากภูมิประเทศออกจากอินเตอร์เฟอโรแกรมที่ยังไม่คลายเฟส โดยใช้ DEM และเส้นฐานอินเตอร์เฟอโรเมตริก เหลือไว้เพียงสัญญาณการเปลี่ยนรูปและบรรยากาศ (โหมดปรับแบน TOPO ของ ArcGIS Generate Interferogram) sar_coherence สร้างอินเตอร์เฟอโรแกรมเองได้อยู่แล้วผ่าน output_phase แต่ไม่มีเครื่องมือใดในทั้งสองรีจิสทรีที่จำลองและลบเฟสจากภูมิประเทศได้ — และบนภูมิประเทศที่มีความต่างระดับ องค์ประกอบนั้นจะเด่นจนอินเตอร์เฟอโรแกรมที่ยังไม่ปรับแบนใช้กับงานการเปลี่ยนรูปไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เฟสอินเทอร์เฟอโรเมตริกแบบพันในหน่วยเรเดียน (ตามที่ output_phase ของ sar_coherence สร้างออกมา) หรืออินเทอร์เฟอโรแกรม I/Q สองแบนด์."
              },
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ระดับความสูงที่ลงทะเบียนพิกัดตรงกัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์เฟสแบบพันที่ปรับให้แบนแล้ว และพันกลับเข้าสู่ช่วง (-pi, pi] หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "perpendicular_baseline": {
                "label": "เส้นฐานตั้งฉาก",
                "description": "เส้นฐานตั้งฉาก B_perp ในหน่วยเมตร จำเป็นต้องระบุ เนื่องจากเป็นตัวกำหนดความไวของความสูงต่อเฟส และไม่มีค่าเริ่มต้นที่สมเหตุสมผล."
              },
              "wavelength": {
                "label": "ความยาวคลื่น",
                "description": "ความยาวคลื่นเรดาร์ในหน่วยเมตร (ค่าเริ่มต้น 0.05546576, Sentinel-1 C-band)."
              },
              "incidence_angle": {
                "label": "มุมตกกระทบ",
                "description": "มุมตกกระทบในหน่วยองศา: ค่าคงที่ (ค่าเริ่มต้น 39.0 ซึ่งเป็นค่ากลางแนวกวาดทั่วไปของ Sentinel-1 IW) หรือพาธแรสเตอร์ที่ลงทะเบียนพิกัดตรงกัน."
              },
              "slant_range": {
                "label": "ระยะเฉียง",
                "description": "ระยะเฉียงจากเซนเซอร์ถึงพื้นดิน R ในหน่วยเมตร (ค่าเริ่มต้น 800000)."
              },
              "reference_elevation": {
                "label": "ระดับความสูงอ้างอิง",
                "description": "ระดับความสูงที่ถือว่ามีเฟสภูมิประเทศเป็นศูนย์ ค่าเริ่มต้น: ค่าเฉลี่ยของ DEM เพื่อให้ผลลัพธ์ไม่มีออฟเซ็ตรวมที่กำหนดขึ้นเอง."
              },
              "out_topographic_phase": {
                "label": "ผลลัพธ์เฟสภูมิประเทศ",
                "description": "แรสเตอร์เฟสภูมิประเทศจำลอง ซึ่งพันเข้าสู่ช่วง (-pi, pi] เช่นเดียวกับผลลัพธ์ที่ปรับให้แบน ไม่ใช่เฟสจำลองแบบสัมบูรณ์ สร้างขึ้นเสมอ และจะย้อนกลับไปใช้แฮนเดิลในหน่วยความจำเมื่อไม่ได้ระบุพาธ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่เก็บค่าเฟส ละไว้สำหรับแรสเตอร์เฟสแบนด์เดียวหรืออินเทอร์เฟอโรแกรม I/Q สองแบนด์ (ซึ่งจะตรวจหาอัตโนมัติ) และระบุค่านี้เพื่ออ่านเฟสจริงจากแบนด์ที่เจาะจงของสแต็กหลายแบนด์ แรสเตอร์ที่มีมากกว่าสองแบนด์จำเป็นต้องระบุพารามิเตอร์นี้ เพราะสามแบนด์ขึ้นไปไม่ใช่คู่ I/Q และการเดาจะให้ค่าเฟสที่ดูสมเหตุสมผลแต่ผิด."
              }
            }
          },
          "flip_line": {
            "name": "พลิกเส้น",
            "description": "กลับลำดับจุดยอด (เริ่ม↔สิ้นสุด) ของฟีเจอร์โพลีไลน์เพื่อพลิกทิศทางการดิจิไทซ์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์เส้นนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือใช้ตัวอ้างอิงในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "focal_flow": {
            "name": "การไหลเฉพาะจุด",
            "description": "เข้ารหัสว่าเพื่อนบ้านทั้งแปดของเซลล์ตัวใดไหลเข้าสู่เซลล์นั้นในรูปมาสก์ 8 บิต (ArcGIS Focal Flow) ต่างจากเครื่องมือการสะสมแบบ D8/D-infinity ที่มีอยู่ ซึ่งนำพาแต่ละเซลล์ลงลาดไปตามทิศทางเดียว เครื่องมือนี้บันทึกเพื่อนบ้านที่ไหลเข้าทุกตัว — จึงจับการลู่เข้าสู่หลุม แอ่งรับน้ำ และอานม้าได้ ค่าน้ำหนักบิตเรียงทวนเข็มนาฬิกาเริ่มจากทิศตะวันออก (1, 2, 4, 8, 16, 32, 64, 128) ค่า 0 คือจุดสูงเฉพาะที่ ส่วน 255 คือหลุม.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์พื้นผิวนำเข้า (ระดับความสูงหรือพื้นผิวต่อเนื่องใด ๆ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "เซลล์เพื่อนบ้านจะนับว่าไหลเข้าก็ต่อเมื่อมีค่าสูงกว่าเซลล์กลางมากกว่าค่านี้ (ค่าเริ่มต้น 0)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "focal_statistics": {
            "name": "สถิติเฉพาะจุด",
            "description": "สถิติเพื่อนบ้านแบบหน้าต่างเลื่อน (สี่เหลี่ยมผืนผ้า/วงกลม/วงแหวน/รูปลิ่ม ทั้งเชิงตัวเลขและเชิงหมวดหมู่).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "statistics": {
                "label": "สถิติ",
                "description": "สถิติ: mean, majority, maximum, median, minimum, minority, percentile, range, std, sum หรือ variety (ค่าเริ่มต้น mean)."
              },
              "neighborhood": {
                "label": "บริเวณใกล้เคียง",
                "description": "รูปร่างเพื่อนบ้าน: rectangle, circle, annulus หรือ wedge (ค่าเริ่มต้น rectangle)."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างสี่เหลี่ยมผืนผ้าเป็นจำนวนเซลล์ (ค่าเริ่มต้น 3)."
              },
              "height": {
                "label": "ความสูง",
                "description": "ความสูงสี่เหลี่ยมผืนผ้าเป็นจำนวนเซลล์ (ค่าเริ่มต้น 3)."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีเป็นจำนวนเซลล์สำหรับ circle / wedge และรัศมีนอกสำหรับ annulus (ค่าเริ่มต้น 1)."
              },
              "inner_radius": {
                "label": "รัศมีใน",
                "description": "รัศมีในเป็นจำนวนเซลล์สำหรับเพื่อนบ้านแบบ annulus (ค่าเริ่มต้น 0)."
              },
              "start_angle": {
                "label": "มุมเริ่มต้น",
                "description": "มุมเริ่มต้นของ wedge ในหน่วยองศา (0 = ทิศตะวันออก ทวนเข็มนาฬิกา ค่าเริ่มต้น 0)."
              },
              "end_angle": {
                "label": "มุมสิ้นสุด",
                "description": "มุมสิ้นสุดของ wedge ในหน่วยองศา (0 = ทิศตะวันออก ทวนเข็มนาฬิกา ค่าเริ่มต้น 90)."
              },
              "percentile_value": {
                "label": "ค่าเปอร์เซ็นไทล์",
                "description": "เปอร์เซ็นไทล์ในช่วง [0, 100] สำหรับสถิติเปอร์เซ็นไทล์ (ค่าเริ่มต้น 90)."
              },
              "ignore_nodata": {
                "label": "ละเว้น NoData",
                "description": "หากเป็นจริง (ค่าเริ่มต้น) จะคำนวณเฉพาะเซลล์ที่ใช้ได้ หากเป็นเท็จ เซลล์ NoData ใด ๆ ในหน้าต่างจะทำให้ผลลัพธ์เป็น NoData."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะประมวลผล (ค่าเริ่มต้น 1)."
              }
            }
          },
          "forest_based_forecast": {
            "name": "การพยากรณ์แบบใช้ป่าสุ่ม",
            "description": "พยากรณ์ค่าล่วงหน้าที่แต่ละตำแหน่งด้วยแรนดอมฟอเรสต์ที่ฝึกจากหน้าต่างแล็กแบบเลื่อนของประวัติของตำแหน่งนั้นเอง เช่นเดียวกับ ArcGIS Forest-based Forecast.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์ที่มีเวลาประทับซึ่งมีรหัสตำแหน่ง ฟิลด์เวลา และฟิลด์ค่า."
              },
              "location_field": {
                "label": "ฟิลด์ตำแหน่ง",
                "description": "ฟิลด์ที่ระบุตำแหน่งที่การสังเกตแต่ละรายการสังกัดอยู่."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์เวลาแบบตัวเลขที่ใช้เรียงลำดับอนุกรมของแต่ละตำแหน่ง."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่จะพยากรณ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางพยากรณ์ผลลัพธ์เป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "forecast_steps": {
                "label": "จำนวนขั้นพยากรณ์",
                "description": "จำนวนขั้นที่จะพยากรณ์ไปข้างหน้า (ค่าเริ่มต้น 3)."
              },
              "time_window": {
                "label": "กรอบเวลา",
                "description": "จำนวนค่าก่อนหน้าที่ใช้เป็นตัวทำนาย (ค่าเริ่มต้น: หนึ่งในสี่ของความยาวอนุกรม แต่อย่างน้อย 2)."
              },
              "validation_steps": {
                "label": "จำนวนขั้นตรวจสอบ",
                "description": "จำนวนขั้นท้ายที่กันไว้เพื่อประเมิน RMSE (ค่าเริ่มต้น 0 คือไม่ตรวจสอบ)."
              },
              "n_trees": {
                "label": "จำนวนต้นไม้",
                "description": "จำนวนต้นไม้ในฟอเรสต์ (ค่าเริ่มต้น 50 สูงสุด 500)."
              },
              "min_leaf_size": {
                "label": "ขนาดใบต่ำสุด",
                "description": "จำนวนแถวข้อมูลฝึกสอนขั้นต่ำในหนึ่งใบ (ค่าเริ่มต้น 2)."
              },
              "max_depth": {
                "label": "ความลึกสูงสุด",
                "description": "ความลึกสูงสุดของต้นไม้ (ค่าเริ่มต้น 8)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับ RNG แบบกำหนดได้ที่ขับเคลื่อนการทำ bootstrapping และการสุ่มเลือกชุดย่อยของฟีเจอร์ (ค่าเริ่มต้น 42)."
              }
            }
          },
          "frequency_comparison": {
            "name": "การเปรียบเทียบความถี่",
            "description": "นับรายเซลล์ว่ามีแรสเตอร์กี่ชั้นในสแตกที่มีค่าเท่ากับ / มากกว่า / น้อยกว่าเซลล์ที่สอดคล้องกันของแรสเตอร์ค่าอ้างอิง (ArcGIS Equal To Frequency, Greater Than Frequency และ Less Than Frequency พร้อมตัวดำเนินการแบบรวมเท่ากับและแบบปฏิเสธ) ไม่มีรีจิสทรีใดรวมผลการเปรียบเทียบข้ามสแตกได้: cell_statistics ไม่มีข้อมูลอ้างอิงนำเข้า raster_calculator แสดงการเปรียบเทียบได้ครั้งละหนึ่งอย่างแต่นับข้ามสแตกที่มีความยาวใดก็ได้ไม่ได้ และ conditional_evaluation เป็นตัวเลือกแบบเงื่อนไขเดียว.",
            "params": {
              "value_raster": {
                "label": "แรสเตอร์ค่า",
                "description": "แรสเตอร์อ้างอิงที่ใช้เปรียบเทียบกับแต่ละเลเยอร์ในสแต็ก ลงทะเบียนพิกัดตรงกับข้อมูลนำเข้า แรสเตอร์อ้างอิงแบบแบนด์เดียวจะถูกกระจายไปยังทุกกลุ่มแบนด์ ส่วนแรสเตอร์อ้างอิงหลายแบนด์ต้องมีหนึ่งแบนด์ต่อหนึ่งกลุ่มและจะเลื่อนไปพร้อมกัน."
              },
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือหนึ่งเลเยอร์) หรือรายการแรสเตอร์ที่ซ้อนทับตรงกันคั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์จำนวนนับผลลัพธ์ (0..n) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "comparison": {
                "label": "การเปรียบเทียบ",
                "description": "'equal' (ค่าเริ่มต้น), 'greater', 'less', 'greater_equal', 'less_equal' หรือ 'not_equal'."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อสัมบูรณ์สำหรับ 'equal'/'not_equal' บนข้อมูลทศนิยม (ค่าเริ่มต้น 0 = ตรงทุกประการ)."
              },
              "ignore_nodata": {
                "label": "ละเว้น NoData",
                "description": "ข้ามการสังเกตที่เป็น NoData ในแต่ละเซลล์ (ค่าเริ่มต้นคือจริง) เมื่อเป็นเท็จ การสังเกตที่เป็น NoData เพียงค่าเดียวจะทำให้เซลล์นั้นเป็น NoData."
              },
              "process_as_multiband": {
                "label": "ประมวลผลเป็นหลายแบนด์",
                "description": "'single_band' (ค่าเริ่มต้น): ทุกแบนด์ของข้อมูลนำเข้าทุกไฟล์เป็นหนึ่งเลเยอร์ในสแต็กเดียวกัน 'multi_band': แบนด์ที่ i ของข้อมูลนำเข้าทุกไฟล์จะรวมเป็นสแต็กของตนเอง ให้ผลลัพธ์เป็นแรสเตอร์หลายแบนด์."
              }
            }
          },
          "fuzzy_overlay": {
            "name": "ซ้อนทับแบบฟัซซี",
            "description": "ปรับสเกลแรสเตอร์เป็นพื้นผิวค่าสมาชิกฟัซซี 0..1 (linear/gaussian/small/large/ms_small/ms_large) หรือรวมแรสเตอร์ค่าสมาชิกหลายชั้นด้วยฟัซซี AND/OR/PRODUCT/SUM/GAMMA เช่นเดียวกับ ArcGIS Fuzzy Membership + Fuzzy Overlay.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "โหมดสมาชิกภาพ: แรสเตอร์นำเข้าที่จะแปลงเป็นพื้นผิวค่า 0..1."
              },
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "โหมดการซ้อนทับ: รายการแรสเตอร์สมาชิกภาพตั้งแต่ 2 ชั้นขึ้นไปที่จะรวมกัน คั่นด้วยเครื่องหมายจุลภาค มีลำดับความสำคัญเหนือ 'input'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "function": {
                "label": "ฟังก์ชัน",
                "description": "ฟังก์ชันสมาชิกภาพ: 'linear' (ค่าเริ่มต้น), 'gaussian', 'small', 'large', 'ms_small', 'ms_large'."
              },
              "overlay": {
                "label": "ซ้อนทับ",
                "description": "ตัวดำเนินการซ้อนทับ: 'and' (ค่าต่ำสุด, ค่าเริ่มต้น), 'or' (ค่าสูงสุด), 'product', 'sum', 'gamma'."
              },
              "midpoint": {
                "label": "จุดกึ่งกลาง",
                "description": "linear: ค่าที่แมปไปยัง 0.5 จะถูกละเว้น (ใช้ min/max แทน); gaussian/small/large: จุดกึ่งกลางของฟังก์ชัน; ms_small/ms_large: ตัวคูณค่าเฉลี่ย (ค่าเริ่มต้นจากสถิติของแบนด์)."
              },
              "spread": {
                "label": "การกระจาย",
                "description": "gaussian/small/large: ค่าการกระจาย (ค่าเริ่มต้น gaussian 0.1, small/large 5); ms_small/ms_large: ตัวคูณส่วนเบี่ยงเบนมาตรฐาน (ค่าเริ่มต้น 1)."
              },
              "min": {
                "label": "ค่าต่ำสุด",
                "description": "linear: ค่าที่แมปไปยังสมาชิกภาพ 0 (ค่าเริ่มต้นคือค่าต่ำสุดของแบนด์) หาก min>max ทางลาดจะลดลง."
              },
              "max": {
                "label": "ค่าสูงสุด",
                "description": "linear: ค่าที่แมปไปยังสมาชิกภาพ 1 (ค่าเริ่มต้นคือค่าสูงสุดของแบนด์)."
              },
              "gamma": {
                "label": "Gamma",
                "description": "เลขชี้กำลังการซ้อนทับแบบ gamma ในช่วง [0,1] (ค่าเริ่มต้น 0.9)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะแปลงในโหมดสมาชิกภาพ (ค่าเริ่มต้น 1)."
              }
            }
          },
          "gaussian_geostatistical_simulations": {
            "name": "การจำลองธรณีสถิติแบบเกาส์เซียน",
            "description": "การจำลองแบบเกาส์เซียนตามลำดับ: การสร้างสนามข้อมูลแบบมีเงื่อนไข N ชุดที่มีความน่าจะเป็นเท่ากันและสอดคล้องกับข้อมูลตัวอย่าง (เช่นเดียวกับ ArcGIS Gaussian Geostatistical Simulations) — ผลลัพธ์แบบหลายชุดที่มีเงื่อนไขซึ่ง empirical_bayesian_kriging / คริกกิงสามัญที่ให้พื้นผิวเดียว และ turning_bands_simulation แบบไม่มีเงื่อนไข ให้ไม่ได้ กำหนดค่าเริ่มต้นสุ่มได้และผลลัพธ์แน่นอน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดนำเข้าที่มีค่าเงื่อนไข (CRS แบบฉาย)."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่เก็บค่าที่จะจำลอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์หลายแบนด์ผลลัพธ์ (หนึ่งแบนด์ต่อหนึ่งการจำลอง) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "num_realizations": {
                "label": "จำนวนการจำลองจริง",
                "description": "จำนวนการจำลอง / แบนด์ผลลัพธ์ (ค่าเริ่มต้น 10)."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วย CRS ค่าเริ่มต้น: ด้านยาวของขอบเขต / 100."
              },
              "variogram_model": {
                "label": "โมเดลวาริโอแกรม",
                "description": "'exponential' (ค่าเริ่มต้น), 'spherical' หรือ 'gaussian'."
              },
              "nugget": {
                "label": "นักเก็ต",
                "description": "ค่า nugget กำหนดเอง ละไว้เพื่อประมาณค่าจากข้อมูล."
              },
              "sill": {
                "label": "ซิลล์",
                "description": "ค่า partial sill กำหนดเอง ละไว้เพื่อประมาณค่าจากข้อมูล."
              },
              "range": {
                "label": "พิสัย",
                "description": "ค่า range กำหนดเอง ละไว้เพื่อประมาณค่าจากข้อมูล."
              },
              "max_neighbors": {
                "label": "จำนวนเพื่อนบ้านสูงสุด",
                "description": "จำนวนจุดที่ทราบค่าสูงสุดที่ใช้ในการทำคริกกิงของแต่ละเซลล์ (ค่าเริ่มต้น 16)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับตัวสร้างเลขสุ่มแบบกำหนดได้ (ค่าเริ่มต้น 1)."
              },
              "output_mean": {
                "label": "ผลลัพธ์ค่าเฉลี่ย",
                "description": "พาธแรสเตอร์เป็นตัวเลือกสำหรับค่าเฉลี่ยของกลุ่มการจำลอง."
              },
              "output_std": {
                "label": "ผลลัพธ์ส่วนเบี่ยงเบนมาตรฐาน",
                "description": "พาธแรสเตอร์เป็นตัวเลือกสำหรับส่วนเบี่ยงเบนมาตรฐานของกลุ่มการจำลอง."
              }
            }
          },
          "generalized_linear_regression": {
            "name": "การถดถอยเชิงเส้นทั่วไป",
            "description": "การถดถอยระดับรวม (gaussian/OLS, poisson หรือ logistic) ของฟิลด์ตัวแปรตามบนฟิลด์ตัวแปรอธิบายด้วยวิธี IRLS พร้อมฟิลด์ผลลัพธ์ค่าฟิตและค่าคงเหลือ และค่าวินิจฉัยครบถ้วน: สัมประสิทธิ์รายเทอม ความคลาดเคลื่อนมาตรฐาน t/z ความน่าจะเป็น และ VIF พร้อม AICc, R²/ดีวิแอนซ์ และการทดสอบความแปรปรวนไม่คงที่แบบ Koenker (Breusch–Pagan) ที่ทำสติวเดนต์ไทซ์แล้ว — เช่นเดียวกับ ArcGIS Generalized Linear Regression.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์นำเข้า (จุด หรือเรขาคณิตอื่น ๆ โดยเรขาคณิตจะถูกส่งผ่านไปโดยไม่เปลี่ยนแปลง)."
              },
              "dependent_field": {
                "label": "ฟิลด์ตัวแปรตาม",
                "description": "ฟิลด์ตัวเลขตัวแปรตาม (ผลตอบสนอง) สำหรับ 'logistic' ต้องเป็น 0/1."
              },
              "explanatory_fields": {
                "label": "ฟิลด์ตัวแปรอธิบาย",
                "description": "ฟิลด์ตัวเลขของตัวแปรอธิบาย คั่นด้วยจุลภาค."
              },
              "family": {
                "label": "ตระกูล",
                "description": "ตระกูลโมเดล: 'gaussian' (OLS, ค่าเริ่มต้น), 'poisson' (log link, ข้อมูลนับ) หรือ 'logistic' (logit link, 0/1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "report": {
                "label": "รายงาน",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับรายงานสัมประสิทธิ์ + การวินิจฉัยโมเดล."
              }
            }
          },
          "generate_breach_lines": {
            "name": "สร้างเส้นเจาะทะลุ",
            "description": "เมื่อมีโพลิกอนแอ่งและ DEM ให้สร้างโพลีไลน์แนวที่แต่ละแอ่งจะถูกเจาะเพื่อระบายน้ำ โดยใช้เกณฑ์ต้นทุนการเจาะต่ำสุด เส้นทางสั้นที่สุด หรือการเปลี่ยนแปลงระดับความสูงน้อยที่สุด พร้อมความลึกของการตัดและปริมาตรที่ขุดออกต่อการเจาะหนึ่งครั้ง เช่นเดียวกับ ArcGIS Generate Breach Lines.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "โพลิกอนแอ่ง (เช่น ผลลัพธ์จาก delineate_depressions)."
              },
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์พื้นผิวที่จะขุดร่องผ่าน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเส้นร่องผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "connection_points": {
                "label": "จุดเชื่อมต่อ",
                "description": "ฟีเจอร์จุดเป็นตัวเลือกที่จำกัดตำแหน่งที่ร่องอาจสิ้นสุด."
              },
              "method": {
                "label": "วิธี",
                "description": "'minimum_breaching_cost' (ค่าเริ่มต้น), 'shortest_path' หรือ 'minimum_elevation_change'."
              },
              "max_length": {
                "label": "ความยาวสูงสุด",
                "description": "ตัดร่องที่ยาวเกินค่านี้ออก (หน่วยแผนที่) แอ่งดังกล่าวจะไม่ถูกขุดร่อง."
              }
            }
          },
          "generate_near_table": {
            "name": "สร้างตารางความใกล้",
            "description": "สำหรับแต่ละฟีเจอร์นำเข้า แสดงรายการฟีเจอร์ใกล้เคียง k อันดับแรก (หรือทั้งหมดภายในรัศมีค้นหา) พร้อมระยะทาง อันดับ มุมทิศทางเป็นตัวเลือก และพิกัด XY ของจุดที่ใกล้ที่สุด — เป็นตารางความใกล้เคียงแบบหลายเพื่อนบ้าน เช่นเดียวกับ ArcGIS Generate Near Table.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (จุด เส้น หรือโพลิกอน) ที่จะวัดความใกล้."
              },
              "near_features": {
                "label": "ฟีเจอร์ใกล้เคียง",
                "description": "เลเยอร์เวกเตอร์ใกล้เคียงที่จะใช้ค้นหา (จุด เส้น หรือโพลิกอน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (หนึ่งจุดต่อหนึ่งการจับคู่ใกล้เคียง) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "เก็บเฉพาะฟีเจอร์ใกล้เคียงที่อยู่ภายในระยะทางนี้ (หน่วยแผนที่) จำเป็นเมื่อ closest_count = 0 (ทั้งหมดภายในรัศมี)."
              },
              "closest_count": {
                "label": "จำนวนที่ใกล้ที่สุด",
                "description": "จำนวนฟีเจอร์ใกล้เคียงที่ใกล้ที่สุดต่อหนึ่งฟีเจอร์นำเข้า (k, ค่าเริ่มต้น 1) ใช้ 0 เพื่อคืนค่าฟีเจอร์ใกล้เคียงทุกรายการภายใน search_radius."
              },
              "angle": {
                "label": "มุม",
                "description": "เพิ่ม NEAR_ANGLE (มุมทิศเชิงคณิตศาสตร์ในหน่วยองศา ทิศตะวันออก = 0 ทวนเข็มนาฬิกา) ค่าเริ่มต้นเป็นเท็จ."
              },
              "location": {
                "label": "ตำแหน่ง",
                "description": "เพิ่มคอลัมน์ NEAR_X / NEAR_Y สำหรับตำแหน่งใกล้เคียง ค่าเริ่มต้นเป็นเท็จ."
              }
            }
          },
          "generate_network_swm": {
            "name": "สร้าง SWM ของโครงข่าย",
            "description": "สร้างเมทริกซ์น้ำหนักเชิงพื้นที่ที่เพื่อนบ้านและน้ำหนักมาจากระยะทางการเดินทางไปตามโครงข่ายเส้น แทนที่จะเป็นเรขาคณิตเส้นตรง (ArcGIS Generate Network Spatial Weights) generate_spatial_weights_matrix ให้เฉพาะแนวคิดแบบยูคลิดและแบบทอพอโลยี (knn, แถบระยะทางคงที่, ระยะทางผกผัน, การประชิด, Delaunay) สำหรับปรากฏการณ์ที่ถูกจำกัดด้วยโครงข่ายจึงเชื่อมฟีเจอร์ที่ไปหากันไม่ได้และทำให้สถิติทุกตัวในขั้นถัดไปเอนเอียง ผลลัพธ์ใช้สคีมาตารางเดียวกัน global_morans_i, local_morans_i_lisa, getis_ord_gi_star และ compare_spatial_weights จึงใช้ได้ทันทีโดยไม่ต้องแก้ไข.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์จุดที่จะถ่วงน้ำหนัก."
              },
              "network": {
                "label": "โครงข่าย",
                "description": "โครงข่ายเส้นที่ใช้วัดระยะทางการเดินทาง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ตารางน้ำหนัก (CSV ตามนามสกุลไฟล์ หรือตารางเวกเตอร์ที่ไม่มีเรขาคณิต) ในสคีมา origin/neighbor/weight เดียวกับที่ generate_spatial_weights_matrix สร้างออกมา หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์ที่เก็บรหัสเฉพาะของแต่ละฟีเจอร์ ค่าเริ่มต้น: ดัชนีฟีเจอร์ที่เริ่มนับจาก 0 ซึ่งตรงกับ generate_spatial_weights_matrix."
              },
              "impedance_field": {
                "label": "ฟิลด์อิมพีแดนซ์",
                "description": "ฟิลด์ต้นทุนของโครงข่าย ค่าเริ่มต้น: ความยาวเชิงเรขาคณิตของแต่ละเซกเมนต์."
              },
              "distance_cutoff": {
                "label": "ระยะทางตัด",
                "description": "ค่าอิมพีแดนซ์โครงข่ายสูงสุดที่เพื่อนบ้านอาจอยู่ห่างได้ ค่าเริ่มต้น: ไม่จำกัด."
              },
              "max_neighbors": {
                "label": "จำนวนเพื่อนบ้านสูงสุด",
                "description": "ขีดจำกัดจำนวนเพื่อนบ้านต่อหนึ่งจุดต้นทาง โดยเก็บรายการที่ใกล้ที่สุด ค่าเริ่มต้น: ไม่จำกัด."
              },
              "conceptualization": {
                "label": "แนวคิดความสัมพันธ์เชิงพื้นที่",
                "description": "'fixed' (ค่าเริ่มต้น น้ำหนักไบนารีเท่ากับ 1 ภายในระยะตัด) หรือ 'inverse' (น้ำหนัก = 1 / อิมพีแดนซ์^เลขชี้กำลัง)."
              },
              "exponent": {
                "label": "เลขชี้กำลัง",
                "description": "เลขชี้กำลังการลดทอนสำหรับ 'inverse' (ค่าเริ่มต้น 1)."
              },
              "row_standardization": {
                "label": "การปรับมาตรฐานตามแถว",
                "description": "หารน้ำหนักของแต่ละจุดต้นทางด้วยผลรวมของแถว เพื่อให้ทุกจุดต้นทางมีผลรวมเท่ากับ 1 ค่าเริ่มต้นเป็นเท็จ ซึ่งตรงกับ generate_spatial_weights_matrix."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ระยะทางที่จุดยอดสองจุดของโครงข่ายจะถูกเชื่อมรวมเป็นโหนดเดียว ในหน่วย CRS (ค่าเริ่มต้น 1e-6) โครงข่ายที่เซกเมนต์เกือบบรรจบกันจะขาดการเชื่อมต่อโดยไม่แจ้งเตือน และทุกจุดต้นทางที่ได้รับผลกระทบจะให้ผลลัพธ์เป็นศูนย์แถว."
              },
              "search_tolerance": {
                "label": "ค่าเผื่อการค้นหา",
                "description": "ระยะสแนปสูงสุดจากจุดไปยังโครงข่าย จุดที่อยู่ไกลกว่านี้จะถูกรายงานว่าไม่ได้สแนป แทนที่จะถูกผนวกเข้ากับโหนดที่อยู่ไกลโดยไม่แจ้งเตือน."
              }
            }
          },
          "generate_od_links": {
            "name": "สร้างลิงก์ต้นทาง-ปลายทาง",
            "description": "ลากเส้นความต้องการเดินทางเป็นเส้นตรงจากจุดต้นทางไปยังจุดปลายทาง — จับคู่ด้วยรหัสร่วม ภายในระยะทางที่กำหนด และ/หรือไปยัง k จุดที่ใกล้ที่สุด — โดยแต่ละเส้นมีรหัสต้นทาง/ปลายทางและความยาว เช่นเดียวกับ ArcGIS Generate Origin-Destination Links.",
            "params": {
              "origins": {
                "label": "ต้นทาง",
                "description": "เลเยอร์จุดต้นทาง (Point หรือ MultiPoint)."
              },
              "destinations": {
                "label": "ปลายทาง",
                "description": "เลเยอร์จุดปลายทาง (Point หรือ MultiPoint)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "num_nearest": {
                "label": "จำนวนที่ใกล้ที่สุด",
                "description": "เก็บเฉพาะจุดปลายทางที่ใกล้ที่สุด k แห่งต่อหนึ่งจุดต้นทาง (หลังจากกรองด้วยรหัส/ระยะทางแล้ว)."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "เก็บเฉพาะจุดปลายทางที่อยู่ภายในระยะทางนี้จากจุดต้นทาง (หน่วยแผนที่)."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์ที่มีอยู่ในทั้งสองเลเยอร์ เชื่อมเฉพาะคู่ที่มีค่าตรงกัน และจะถูกเขียนเป็น 'link_id' ด้วย."
              },
              "origin_id_field": {
                "label": "ฟิลด์รหัสต้นทาง",
                "description": "ฟิลด์ในจุดต้นทางที่จะเขียนเป็น 'origin_id' (ค่าเริ่มต้น: ดัชนีฟีเจอร์)."
              },
              "dest_id_field": {
                "label": "ฟิลด์รหัสปลายทาง",
                "description": "ฟิลด์ในจุดปลายทางที่จะเขียนเป็น 'dest_id' (ค่าเริ่มต้น: ดัชนีฟีเจอร์)."
              }
            }
          },
          "generate_points_along_3d_lines": {
            "name": "สร้างจุดตามแนวเส้น 3 มิติ",
            "description": "สร้างจุดที่มีระยะห่างเท่ากันไปตามเส้น 3 มิติ โดยวัดด้วยระยะทาง 3 มิติจริง (ไม่ใช่ความยาวบนระนาบ 2 มิติที่ points_along_lines ที่มีอยู่ใช้) พร้อมค่า Z ที่ประมาณค่าแล้ว จุดปลายเป็นตัวเลือก และฟิลด์ระยะสะสม 3 มิติ เช่นเดียวกับ ArcGIS Generate Points Along 3D Lines.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์โพลีไลน์ 3 มิติที่นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธจุดผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'distance' (ค่าเริ่มต้น), 'percentage' หรือ 'distance_field'."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ระยะห่างในหน่วยแผนที่สำหรับวิธี 'distance'."
              },
              "percentage": {
                "label": "ร้อยละ",
                "description": "ระยะห่างเป็นร้อยละ (0-100) ของความยาว 3 มิติของแต่ละเส้น สำหรับวิธี 'percentage'."
              },
              "distance_field": {
                "label": "ฟิลด์ระยะทาง",
                "description": "ฟิลด์ที่ให้ค่าระยะห่างรายฟีเจอร์สำหรับวิธี 'distance_field'."
              },
              "include_end_points": {
                "label": "รวมจุดปลาย",
                "description": "สร้างจุดยอดเริ่มต้นและสิ้นสุดของแต่ละเส้นด้วย (ค่าเริ่มต้นเป็นเท็จ)."
              },
              "add_chainage": {
                "label": "เพิ่มระยะสะสม",
                "description": "เขียนฟิลด์ CHAINAGE ที่เก็บระยะทาง 3 มิติสะสมจากจุดเริ่มต้นของเส้น (ค่าเริ่มต้นเป็นเท็จ)."
              }
            }
          },
          "generate_spatial_weights_matrix": {
            "name": "สร้างเมทริกซ์น้ำหนักเชิงพื้นที่",
            "description": "สร้างตารางเพื่อนบ้าน/น้ำหนักรูปแบบยาวที่นำกลับมาใช้ได้ (origin_id, neighbor_id, weight) จากแนวคิดที่เลือก — KNN, แถบระยะทางคงที่, ระยะทางผกผัน, การประชิด (ขอบ / ขอบ+มุม) หรือ Delaunay — พร้อมการทำให้เป็นมาตรฐานรายแถวเป็นตัวเลือก เช่นเดียวกับ ArcGIS Generate Spatial Weights Matrix.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (จุด/เส้น/โพลิกอน; การวิเคราะห์ความต่อเนื่องต้องใช้โพลิกอน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์ — ไฟล์ CSV (นามสกุล .csv) หรือตารางเวกเตอร์ที่ไม่มีเรขาคณิต หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์ที่เก็บรหัสเฉพาะของแต่ละฟีเจอร์ ค่าเริ่มต้น: ดัชนีฟีเจอร์ที่เริ่มนับจาก 0."
              },
              "method": {
                "label": "วิธี",
                "description": "การกำหนดแนวคิดความสัมพันธ์เชิงพื้นที่: 'knn', 'fixed_distance_band', 'inverse_distance', 'contiguity_edges', 'contiguity_edges_corners' หรือ 'delaunay' ค่าเริ่มต้น 'knn'."
              },
              "number_of_neighbors": {
                "label": "จำนวนเพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านใกล้ที่สุด k (method = knn) ค่าเริ่มต้น 8."
              },
              "threshold_distance": {
                "label": "ระยะทางค่าเกณฑ์",
                "description": "ระยะตัดของแถบระยะทางในหน่วยแผนที่ จำเป็นสำหรับ fixed_distance_band และเป็นตัวเลือกสำหรับ inverse_distance (หากไม่กำหนด = ฟีเจอร์อื่นทั้งหมด)."
              },
              "exponent": {
                "label": "เลขชี้กำลัง",
                "description": "เลขชี้กำลังการลดทอนตามระยะทาง p สำหรับ inverse_distance (น้ำหนัก = 1/d^p) ค่าเริ่มต้น 1."
              },
              "row_standardization": {
                "label": "การปรับมาตรฐานตามแถว",
                "description": "หารน้ำหนักของแต่ละจุดต้นทางด้วยผลรวมของแถว เพื่อให้น้ำหนักของทุกจุดต้นทางรวมเป็น 1 ค่าเริ่มต้นเป็นเท็จ."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ปรับจุดยอดให้เข้ากับกริดขนาดนี้ (หน่วย CRS) ก่อนจับคู่เส้นขอบเพื่อหาความติดกัน ค่าเริ่มต้น 0 (พิกัดตรงทุกประการ)."
              }
            }
          },
          "generate_subset_polygons": {
            "name": "สร้างโพลิกอนชุดย่อย",
            "description": "แบ่งเลเยอร์จุดที่หนาแน่นออกเป็นโพลิกอนกะทัดรัดที่ไม่ซ้อนทับกันและปูเต็มขอบเขตของจุด โดยแต่ละโพลิกอนมีจำนวนจุดอยู่ระหว่างค่าต่ำสุดและค่าสูงสุด (ArcGIS Generate Subset Polygons) เป็นขั้นตอนเตรียมข้อมูลมาตรฐานสำหรับการประมาณค่าชุดจุดขนาดใหญ่มาก ต่างจากกริดคงที่ที่มีอยู่ เครื่องมือนี้ปรับตัวตามความหนาแน่น (การแบ่ง k-d ที่ค่ามัธยฐาน) ต่างจาก voronoi_diagram ตรงที่จัดกลุ่มจุดแทนที่จะสร้างเซลล์ละหนึ่งจุด และต่างจาก group_by_proximity ตรงที่ให้ผลลัพธ์เป็นโพลิกอนและเคารพขอบเขตขนาด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธโพลิกอนผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "output_points": {
                "label": "ผลลัพธ์จุด",
                "description": "พาธเป็นตัวเลือกสำหรับจุดนำเข้าที่กำกับด้วยรหัสชุดย่อยของตน หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ (ยังคงคืนค่ากลับ)."
              },
              "min_points_per_subset": {
                "label": "จำนวนจุดต่ำสุดต่อชุดย่อย",
                "description": "ขอบเขตล่างของจำนวนจุดต่อชุดย่อย (ค่าเริ่มต้น 50)."
              },
              "max_points_per_subset": {
                "label": "จำนวนจุดสูงสุดต่อชุดย่อย",
                "description": "ขอบเขตบนของจำนวนจุดต่อชุดย่อย (ค่าเริ่มต้น 200)."
              },
              "coincident_points": {
                "label": "จุดที่ซ้อนกัน",
                "description": "'single' (ค่าเริ่มต้น จุดที่ทับกันพอดีจะนับเพียงครั้งเดียวเมื่อกำหนดขนาด) หรือ 'all' (นับแต่ละจุดแยกกัน)."
              },
              "clip_to_hull": {
                "label": "ตัดตามฮัลล์",
                "description": "ตัดโพลิกอนชุดย่อยตามคอนเวกซ์ฮัลล์ของจุด เพื่อให้ผลลัพธ์แนบชิดข้อมูลแทนที่จะเป็นกรอบขอบเขต (ค่าเริ่มต้นเป็นจริง)."
              }
            }
          },
          "generate_transects_along_lines": {
            "name": "สร้างเส้นตัดขวางตามแนวเส้น",
            "description": "เดินไปตามแต่ละเส้นด้วยระยะห่างคงที่ และสร้างเส้นตัดขวางตั้งฉากที่มีความยาวตามกำหนด (จัดกึ่งกลางหรือเยื้อง) สำหรับการสุ่มตัวอย่างการเปลี่ยนแปลงชายฝั่ง พื้นที่ริมน้ำ และหน้าตัด — เช่นเดียวกับ ArcGIS Generate Transects Along Lines.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ระยะห่างระหว่างแนวตัดขวางตามแต่ละเส้น ในหน่วย CRS จำเป็นต้องระบุ."
              },
              "length": {
                "label": "ความยาว",
                "description": "ความยาวรวมของแนวตัดขวาง ในหน่วย CRS จำเป็นต้องระบุ."
              },
              "offset": {
                "label": "ออฟเซ็ต",
                "description": "ออฟเซ็ตแบบมีเครื่องหมายของจุดกึ่งกลางแนวตัดขวางจากเส้น ในหน่วย CRS (0 = อยู่กึ่งกลาง; +/- เลื่อนไปทางซ้าย/ขวา) ค่าเริ่มต้น 0."
              },
              "include_ends": {
                "label": "รวมปลาย",
                "description": "วางแนวตัดขวางที่จุดเริ่มต้นและจุดสิ้นสุดของแต่ละเส้นด้วย ค่าเริ่มต้นเป็นเท็จ."
              }
            }
          },
          "generate_trend_raster": {
            "name": "สร้างแรสเตอร์แนวโน้ม",
            "description": "ฟิตแนวโน้มเชิงเวลารายพิกเซลบนอนุกรมเวลาของแรสเตอร์ที่ซ้อนทับตรงกัน (เช่นเดียวกับ ArcGIS Generate Trend Raster): ความชัน/จุดตัดแกน/R² แบบ OLS หรือ Mann-Kendall แบบไม่อิงพารามิเตอร์ + ความชันของ Sen พร้อมค่า p — เป็นแนวโน้มเชิงเวลารายพิกเซลที่ trend_surface (เชิงพื้นที่) และ change_vector_analysis (สองวันที่) ที่มีอยู่ให้ไม่ได้.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการพาธแรสเตอร์แบนด์เดียวที่ลงทะเบียนพิกัดตรงกัน คั่นด้วยเครื่องหมายจุลภาค เรียงตามลำดับเวลา (>= 3)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ความชันผลลัพธ์ (ความชันแบบ Sen สำหรับ mann_kendall) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "times": {
                "label": "เวลา",
                "description": "เวลาแบบตัวเลขคั่นด้วยเครื่องหมายจุลภาคที่ตรงกับ 'inputs' (เช่น ปี) ค่าเริ่มต้น 0,1,2,..."
              },
              "method": {
                "label": "วิธี",
                "description": "'linear' (OLS; ค่าเริ่มต้น) หรือ 'mann_kendall' (แบบไม่อิงพารามิเตอร์ + ความชันแบบ Sen)."
              },
              "intercept_output": {
                "label": "ผลลัพธ์จุดตัดแกน",
                "description": "linear เท่านั้น: แรสเตอร์ผลลัพธ์ของจุดตัดแกนจาก OLS เป็นตัวเลือก."
              },
              "significance_output": {
                "label": "ผลลัพธ์นัยสำคัญ",
                "description": "แรสเตอร์ผลลัพธ์เป็นตัวเลือก: R² (linear) หรือค่า p สองด้านของ Mann-Kendall (mann_kendall)."
              },
              "min_valid": {
                "label": "จำนวนค่าที่ถูกต้องต่ำสุด",
                "description": "จำนวนการสังเกตที่ไม่ใช่ NoData ขั้นต่ำต่อพิกเซล (ค่าเริ่มต้น 3)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะอ่านจากข้อมูลนำเข้าแต่ละชุด (ค่าเริ่มต้น 1)."
              }
            }
          },
          "geodetic_densify": {
            "name": "เพิ่มความหนาแน่นจุดแบบจีโอเดติก",
            "description": "แทรกจุดยอดไปตามเส้นทางจีโอเดสิกจริงหรือเส้นทางรัมบ์ (ทิศคงที่) ระหว่างจุดยอดที่มีอยู่ของเลเยอร์เส้นหรือโพลิกอนในระบบพิกัดภูมิศาสตร์ (ลองจิจูด/ละติจูด) เช่นเดียวกับ Geodetic Densify ของ ArcGIS — เพื่อให้เซกเมนต์ยาวโค้งไปตามความโค้งของโลกแทนที่จะเป็นคอร์ดบนระนาบ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นหรือโพลิกอนนำเข้า ซึ่งถือว่าเป็นระบบพิกัดภูมิศาสตร์ (lon/lat แบบ EPSG:4326)."
              },
              "geodetic_type": {
                "label": "ชนิดจีโอเดติก",
                "description": "ชนิดของเส้นทางระหว่างจุดยอด: 'geodesic' (ค่าเริ่มต้น เส้นทางสั้นที่สุดบนทรงรี WGS84) หรือ 'rhumb'/'loxodrome' (มุมทิศจริงคงที่)."
              },
              "max_segment_length": {
                "label": "ความยาวเซกเมนต์สูงสุด",
                "description": "ระยะห่างสูงสุดเป้าหมายในหน่วยเมตรระหว่างจุดยอดที่ต่อเนื่องกันหลังการเพิ่มความหนาแน่น ต้องระบุ max_segment_length หรือ vertices_per_segment อย่างใดอย่างหนึ่งเท่านั้น."
              },
              "vertices_per_segment": {
                "label": "จำนวนจุดยอดต่อเซกเมนต์",
                "description": "ทางเลือกแทน max_segment_length: แทรกจุดยอดที่มีระยะห่างเท่ากันจำนวนเท่านี้ลงในทุกเซกเมนต์เดิม โดยไม่คำนึงถึงความยาว ต้องระบุ max_segment_length หรือ vertices_per_segment อย่างใดอย่างหนึ่งเท่านั้น."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "geotagged_photos_to_points": {
            "name": "ภาพถ่ายที่มีพิกัดเป็นจุด",
            "description": "อ่านโฟลเดอร์ของภาพถ่ายที่มีพิกัดกำกับและสร้างเลเยอร์จุดในระบบ WGS-84 พร้อมพาธของภาพ วันเวลาที่ถ่าย ความสูง ทิศทางกล้อง (ทิศของภาพจาก GPS) และยี่ห้อ/รุ่น — อ่านจากเมทาดาทา EXIF เท่านั้น (ไม่ถอดรหัสพิกเซล) เช่นเดียวกับ ArcGIS GeoTagged Photos To Points.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธโฟลเดอร์ที่มีรูปภาพ (JPEG/TIFF) สำหรับอ่านเมตาดาตา GPS จาก EXIF."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์จุดผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "recursive": {
                "label": "แบบเรียกซ้ำ",
                "description": "ค้นหาในโฟลเดอร์ย่อยด้วยเมื่อสแกนหารูปภาพ ค่าเริ่มต้นเป็นเท็จ."
              },
              "only_geotagged": {
                "label": "เฉพาะที่มีพิกัด",
                "description": "ข้ามภาพที่ไม่มีตำแหน่ง GPS (ค่าเริ่มต้นเป็นจริง) เมื่อเป็นเท็จ ภาพที่ไม่มีการกำกับพิกัดจะถูกสร้างออกมาพร้อมเรขาคณิตว่าง."
              }
            }
          },
          "getis_ord_general_g": {
            "name": "การจัดกลุ่มสูง/ต่ำ (Getis-Ord General G)",
            "description": "คำนวณสถิติ Getis-Ord General G ระดับรวม — ค่า z และค่า p เพียงชุดเดียวที่บอกว่าค่าสูงหรือค่าต่ำกระจุกตัวกันในภาพรวมหรือไม่ เช่นเดียวกับ ArcGIS High/Low Clustering (Getis-Ord General G).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า จุดใช้พิกัดของตัวเอง ส่วนเรขาคณิตอื่นใช้จุดตัวแทนค่าเฉลี่ยของจุดยอด (น้ำหนักแบบประชิดต้องใช้โพลิกอน)."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขที่ไม่เป็นค่าลบสำหรับทดสอบการเกาะกลุ่มค่าสูง/ค่าต่ำ."
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "รูปแบบน้ำหนักเชิงพื้นที่: 'distance_band' (ค่าเริ่มต้น), 'k_nearest', 'queen' หรือ 'rook'."
              },
              "distance_band": {
                "label": "แถบระยะทาง",
                "description": "ระยะทางค่าเกณฑ์ (หน่วย CRS) สำหรับรูปแบบ 'distance_band' ค่าเริ่มต้น: ระยะทางเพื่อนบ้านใกล้ที่สุดที่มากที่สุด (ทุกฟีเจอร์มีเพื่อนบ้าน >=1 ราย)."
              },
              "k": {
                "label": "K",
                "description": "จำนวนเพื่อนบ้านสำหรับรูปแบบ 'k_nearest' (ค่าเริ่มต้น 8)."
              },
              "row_standardize": {
                "label": "ปรับมาตรฐานตามแถว",
                "description": "ปรับมาตรฐานเมทริกซ์น้ำหนักตามแถวให้ผลรวมของแต่ละแถวเท่ากับ 1 (ค่าเริ่มต้น false)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับรายงานแบบแถวเดียว ผลลัพธ์จะส่งคืนค่านี้เสมอ."
              }
            }
          },
          "goldstein_phase_filter": {
            "name": "ตัวกรองเฟสแบบ Goldstein",
            "description": "การกรองเชิงสเปกตรัมแบบปรับตัว (Goldstein) ของเฟส SAR อินเตอร์เฟอโรเมตริก ซึ่งเป็นขั้นตอนที่ทำให้การคลายเฟสเป็นไปได้ (ArcGIS Apply Complex Data Filter) unwrap_phase ของรอบที่ 17 ล้มเหลวกับอินเตอร์เฟอโรแกรมดิบเพราะเศษสัญญาณรบกวนบังคับให้เกิดรอยตัดกิ่ง ตัวกรองตระกูล lee/frost/kuan/wiener/gaussian ที่มีอยู่ทั้งหมดทำงานกับความเข้มที่เป็นจำนวนจริงและใช้ที่นี่ไม่ได้ เพราะการเฉลี่ยเฟสที่ยังไม่คลายข้ามจุดไม่ต่อเนื่องที่ +/-pi จะทำลายข้อมูล เครื่องมือนี้กรองสัญญาณเชิงซ้อนทีละแพตช์ในโดเมนความถี่และรายงานจำนวนเศษสัญญาณก่อนและหลัง.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "อินเทอร์เฟอโรแกรม: แรสเตอร์ I/Q สองแบนด์ หรือแรสเตอร์เฟสแบบพันรอบแบนด์เดียวในหน่วยเรเดียน (สมมติว่าแอมพลิจูดเท่ากับหนึ่ง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์เชิงซ้อนที่ผ่านการกรองแบบสองแบนด์ (I, Q) เป็นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_phase": {
                "label": "ผลลัพธ์เฟส",
                "description": "ผลลัพธ์เฟสแบบพันรอบที่ผ่านการกรองแบนด์เดียวในหน่วยเรเดียน ในช่วง (-pi, pi] สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ได้ระบุพาธ."
              },
              "alpha": {
                "label": "Alpha",
                "description": "ความแรงของตัวกรองในช่วง [0, 1] (ค่าเริ่มต้น 0.5) ค่า 0 จะไม่เปลี่ยนแปลงเฟส ส่วนค่า 1 จะกรองเข้มข้นที่สุด."
              },
              "outer_window_size": {
                "label": "ขนาดหน้าต่างนอก",
                "description": "ขนาดแพตช์ FFT เป็นจำนวนเซลล์ (ค่าเริ่มต้น 32) ปัดขึ้นเป็นเลขยกกำลังสอง."
              },
              "inner_window_size": {
                "label": "ขนาดหน้าต่างใน",
                "description": "ระยะก้าวระหว่างแพตช์เป็นจำนวนเซลล์ (ค่าเริ่มต้น = outer/4) ค่าที่น้อยกว่าหมายถึงการซ้อนทับมากขึ้นและการผสมกลมกลืนที่เรียบเนียนขึ้น และต้องไม่เกินหน้าต่างชั้นนอก."
              },
              "spectrum_smoothing": {
                "label": "การทำสเปกตรัมให้เรียบ",
                "description": "ความกว้างเป็นจำนวนบินของค่าเฉลี่ยเคลื่อนที่ที่ใช้กับสเปกตรัมของแพตช์ก่อนการยกกำลัง (ค่าเริ่มต้น 3 ต้องเป็นเลขคี่)."
              }
            }
          },
          "gpx_to_features": {
            "name": "GPX เป็นฟีเจอร์",
            "description": "แจงไฟล์ GPX เป็นจุดเวย์พอยต์ และ/หรือโพลีไลน์แทร็ก/เส้นทาง โดยพา ele/time/name ไปด้วย.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไปยังไฟล์ .gpx (GPS Exchange Format XML)."
              },
              "points_output": {
                "label": "ผลลัพธ์จุด",
                "description": "พาธเวกเตอร์จุดผลลัพธ์เป็นตัวเลือกสำหรับเวย์พอยต์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ได้ระบุผลลัพธ์ใดเลย เวย์พอยต์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "lines_output": {
                "label": "ผลลัพธ์เส้น",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์เป็นตัวเลือกสำหรับแทร็กและเส้นทาง (ไดรเวอร์กำหนดจากนามสกุลไฟล์)."
              }
            }
          },
          "graphic_buffer": {
            "name": "บัฟเฟอร์กราฟิก",
            "description": "สร้างบัฟเฟอร์ให้ฟีเจอร์โดยเลือกรูปแบบปลายเส้น (มน/สี่เหลี่ยม/ตัดตรง) และรูปแบบการเชื่อมมุม (มน/แหลม/ตัดมุม) ได้ พร้อมขีดจำกัดมุมแหลม — เป็นเรขาคณิตบัฟเฟอร์แบบเหลี่ยม/แหลมที่บัฟเฟอร์แบบมนอย่างเดียวสร้างไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ระยะทางบัฟเฟอร์ในหน่วย CRS ของเลเยอร์ ต้องเป็นค่าบวก."
              },
              "cap": {
                "label": "ปลาย",
                "description": "รูปแบบปลายปิดสำหรับปลายเส้น/จุด: 'round' (ค่าเริ่มต้น), 'square' หรือ 'butt' (ชื่อพ้อง 'flat')."
              },
              "join": {
                "label": "เชื่อม",
                "description": "รูปแบบการเชื่อมมุม: 'round' (ค่าเริ่มต้น), 'miter' หรือ 'bevel'."
              },
              "miter_limit": {
                "label": "ขีดจำกัดมุมแหลม",
                "description": "อัตราส่วนของความยาว miter ต่อระยะทางบัฟเฟอร์ ซึ่งเมื่อเกินค่านี้มุมแบบ miter จะถูกลบมุมเป็น bevel (ค่าเริ่มต้นของ ArcGIS/JTS คือ 10) ต้องมีค่า >= 1 ใช้เฉพาะเมื่อ join='miter'."
              },
              "dissolve": {
                "label": "ยุบรวม",
                "description": "เมื่อเป็น true จะรวมบัฟเฟอร์ทั้งหมดเข้าด้วยกันเป็นฟีเจอร์ (มัลติ)โพลิกอนที่ยุบรวมแล้วหนึ่งฟีเจอร์ ค่าเริ่มต้นคือ false (หนึ่งบัฟเฟอร์ต่อหนึ่งฟีเจอร์นำเข้า และคงแอตทริบิวต์ไว้)."
              }
            }
          },
          "greater_than_or_equal_to": {
            "name": "มากกว่าหรือเท่ากับ",
            "description": "ทดสอบว่าแรสเตอร์ชุดแรกมีค่ามากกว่าหรือเท่ากับชุดที่สองหรือไม่ โดยเปรียบเทียบทีละเซลล์.",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "grid_index_features": {
            "name": "ฟีเจอร์ดัชนีกริด",
            "description": "สร้างกริดดัชนีชุดแผนที่เป็นสี่เหลี่ยมขนาดเท่าหน้ากระดาษ พร้อมชื่อหน้า (A1, B3, ... หรือเรียงลำดับ) การกำหนดขนาดตามมาตราส่วน และตัวกรองการตัดกับข้อมูลเป็นตัวเลือก — เช่นเดียวกับ ArcGIS Grid Index Features พร้อมโหมดแถบที่ไล่ไปตามเส้นทางด้วยหน้ากระดาษที่หมุนตามแนว เช่นเดียวกับ ArcGIS Strip Map Index Features.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า ใช้กำหนดขอบเขตเมื่อไม่ได้ระบุขอบเขตอย่างชัดเจน ใช้เป็นเส้นทางสำหรับโหมด strip และเป็นฟีเจอร์ที่ทดสอบโดย intersect_only."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์โพลิกอนผลลัพธ์ของหน้าดัชนี (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "mode": {
                "label": "โหมด",
                "description": "grid (ค่าเริ่มต้น): แบ่งขอบเขตสี่เหลี่ยมผืนผ้าออกเป็นไทล์ strip: ทอดตามแนวเส้นทางด้วยหน้าที่หมุนและซ้อนทับกัน."
              },
              "x_min": {
                "label": "X ต่ำสุด",
                "description": "ค่า X ต่ำสุดของขอบเขตที่ระบุอย่างชัดเจน (หน่วย CRS) ต้องระบุครบทั้งสี่ค่า x_min/y_min/x_max/y_max เพื่อแทนที่ขอบเขตของข้อมูลนำเข้า."
              },
              "y_min": {
                "label": "Y ต่ำสุด",
                "description": "ค่า Y ต่ำสุดของขอบเขตที่ระบุอย่างชัดเจน (หน่วย CRS)."
              },
              "x_max": {
                "label": "X สูงสุด",
                "description": "ค่า X สูงสุดของขอบเขตที่ระบุอย่างชัดเจน (หน่วย CRS)."
              },
              "y_max": {
                "label": "Y สูงสุด",
                "description": "ค่า Y สูงสุดของขอบเขตที่ระบุอย่างชัดเจน (หน่วย CRS)."
              },
              "tile_width": {
                "label": "ความกว้างไทล์",
                "description": "ความกว้างของหน้าในหน่วย CRS ต้องระบุทั้ง tile_width และ tile_height หรือใช้ page_size + map_scale."
              },
              "tile_height": {
                "label": "ความสูงไทล์",
                "description": "ความสูงของหน้าในหน่วย CRS (ความยาวของหน้าตามแนวเส้นทางในโหมด strip)."
              },
              "page_size": {
                "label": "ขนาดหน้ากระดาษ",
                "description": "ค่าสำเร็จรูปของขนาดกระดาษ (a0..a4, letter, legal, tabloid) ซึ่งขนาดในระบบเมตริกจะถูกคูณด้วย map_scale เพื่อกำหนดขนาดของแต่ละหน้า ต้องระบุ map_scale."
              },
              "map_scale": {
                "label": "มาตราส่วนแผนที่",
                "description": "ตัวส่วนของมาตราส่วนแผนที่ (เช่น 24000 สำหรับ 1:24,000) เมื่อใช้ร่วมกับ page_size ขนาดไทล์ = เมตรของกระดาษ × map_scale (สมมติว่าเป็น CRS ระบบเมตริก)."
              },
              "origin_x": {
                "label": "จุดกำเนิด X",
                "description": "ค่า X ของจุดกำเนิดกริดที่ขอบเขตไทล์จะจัดแนวตาม ค่าเริ่มต้น: ค่า X ต่ำสุดของขอบเขต."
              },
              "origin_y": {
                "label": "จุดกำเนิด Y",
                "description": "ค่า Y ของจุดกำเนิดกริดที่ขอบเขตไทล์จะจัดแนวตาม ค่าเริ่มต้น: ค่า Y ต่ำสุดของขอบเขต."
              },
              "naming": {
                "label": "การตั้งชื่อ",
                "description": "รูปแบบการตั้งชื่อหน้า: alphanumeric (ค่าเริ่มต้น; ตัวอักษรของคอลัมน์ + หมายเลขแถว เช่น A1) หรือ sequential (หมายเลขตามลำดับการอ่าน)."
              },
              "intersect_only": {
                "label": "เฉพาะที่ตัดกัน",
                "description": "เมื่อเป็น true จะตัดหน้าที่ไม่ตัดกันกับฟีเจอร์นำเข้าใดเลยออก ต้องระบุข้อมูลนำเข้า ค่าเริ่มต้นคือ false."
              },
              "route": {
                "label": "เส้นทาง",
                "description": "โหมด strip: เลเยอร์เวกเตอร์เส้นที่ใช้เป็นแนวทาง ค่าเริ่มต้นคือฟีเจอร์เส้นแรกในข้อมูลนำเข้า."
              },
              "overlap": {
                "label": "การซ้อนทับ",
                "description": "โหมด strip: สัดส่วน [0,1) ที่หน้าซึ่งอยู่ติดกันจะซ้อนทับกันตามแนวเส้นทาง ค่าเริ่มต้น 0.05."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ของผลลัพธ์เมื่อระบุขอบเขตอย่างชัดเจนและไม่มีเลเยอร์นำเข้าให้สืบทอด CRS."
              }
            }
          },
          "group_by_proximity": {
            "name": "จัดกลุ่มตามความใกล้",
            "description": "กำกับฟีเจอร์ด้วย GROUP_ID สำหรับองค์ประกอบเชื่อมโยงเชิงพื้นที่แบบ single-linkage — ฟีเจอร์ที่อยู่ภายในระยะทาง ('near') หรือสัมผัสกัน ('intersects') โดยเลือกให้ต้องมีค่าแอตทริบิวต์ร่วมกันได้ — เช่นเดียวกับ ArcGIS Group By Proximity.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (เรขาคณิตชนิดใดก็ได้)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "relationship": {
                "label": "ความสัมพันธ์",
                "description": "'near' (ภายในระยะ 'spatial_near_distance' ค่าเริ่มต้น) หรือ 'intersects' (สัมผัสกัน ระยะทาง 0)."
              },
              "spatial_near_distance": {
                "label": "ระยะทางใกล้เคียงเชิงพื้นที่",
                "description": "ระยะทางค้นหาในหน่วยแผนที่สำหรับ 'near' (ค่าเริ่มต้น 0)."
              },
              "attribute_field": {
                "label": "ฟิลด์แอตทริบิวต์",
                "description": "ฟิลด์เป็นตัวเลือก ฟีเจอร์จะจัดกลุ่มร่วมกันเฉพาะเมื่อมีค่าแอตทริบิวต์นี้ตรงกัน."
              },
              "group_field": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "ชื่อของฟิลด์รหัสกลุ่มผลลัพธ์ (ค่าเริ่มต้น 'GROUP_ID')."
              }
            }
          },
          "gtfs_to_features": {
            "name": "GTFS เป็นฟีเจอร์",
            "description": "แจงฟีดขนส่งสาธารณะ GTFS เป็นจุดป้ายจอดและเส้นเส้นทาง โดยเลือกใส่จำนวนความถี่การให้บริการรายป้ายได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไปยังโฟลเดอร์ฟีด GTFS ที่แตกไฟล์แล้ว (โฟลเดอร์ของไฟล์ *.txt: stops.txt, shapes.txt, trips.txt, ...)."
              },
              "stops_output": {
                "label": "ผลลัพธ์จุดจอด",
                "description": "พาธเวกเตอร์จุดผลลัพธ์เป็นตัวเลือกสำหรับจุดจอด (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ได้ระบุผลลัพธ์ใดเลย จุดจอดจะถูกเก็บไว้ในหน่วยความจำ."
              },
              "shapes_output": {
                "label": "ผลลัพธ์รูปร่างเส้นทาง",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์เป็นตัวเลือกสำหรับรูปทรงของเส้นทาง (ไดรเวอร์กำหนดจากนามสกุลไฟล์)."
              },
              "frequency": {
                "label": "ความถี่",
                "description": "เมื่อเป็น true จะนับจำนวนเที่ยวออกตามตารางเวลาของแต่ละจุดจอดจาก stop_times.txt ลงในฟิลด์ n_departures ค่าเริ่มต้นคือ false."
              },
              "start_time": {
                "label": "เวลาเริ่มต้น",
                "description": "ขอบล่างแบบ HH:MM:SS เป็นตัวเลือกสำหรับหน้าต่างความถี่ (เวลาของ GTFS อาจเกิน 24:00:00)."
              },
              "end_time": {
                "label": "เวลาสิ้นสุด",
                "description": "ขอบบนแบบ HH:MM:SS เป็นตัวเลือกสำหรับหน้าต่างความถี่."
              }
            }
          },
          "h3_polyfill": {
            "name": "เติมโพลิกอนด้วย H3",
            "description": "ปูโพลิกอนนำเข้าด้วยเซลล์กริดทั่วโลกแบบไม่ต่อเนื่อง H3 ที่ความละเอียดที่เลือก.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนนำเข้า (ต้องเป็นพิกัดภูมิศาสตร์ lon/lat, EPSG:4326) หรือแฮนเดิลในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ โดยไดรเวอร์กำหนดจากนามสกุลไฟล์ (.geojson, .fgb, .parquet, ...) หากไม่ระบุ เลเยอร์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียด H3 ตั้งแต่ 0 (หยาบที่สุด) ถึง 15 (ละเอียดที่สุด) ค่าเริ่มต้น 8 (เซลล์ขนาด ~0.7 km²)."
              }
            }
          },
          "h3_to_vector": {
            "name": "เซลล์ H3 เป็นโพลิกอน",
            "description": "แปลงคอลัมน์ของรหัสเซลล์ H3 เป็นโพลิกอนขอบเขตเซลล์ โดยคัดลอกแอตทริบิวต์อื่นไปด้วย.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า (หรือแฮนเดิลในหน่วยความจำ) ที่มีฟิลด์รหัสเซลล์ H3."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ โดยไดรเวอร์กำหนดจากนามสกุลไฟล์ (.geojson, .fgb, .parquet, ...) หากไม่ระบุ เลเยอร์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ข้อความที่เก็บรหัสเซลล์ H3 ค่าเริ่มต้น 'h3'."
              }
            }
          },
          "hdbscan": {
            "name": "การจัดกลุ่มแบบ HDBSCAN",
            "description": "การจัดกลุ่มตามความหนาแน่นแบบลำดับชั้น (HDBSCAN*): MST ของความเข้าถึงได้ร่วมกัน ต้นไม้คลัสเตอร์แบบย่อ และการเลือกด้วยมวลส่วนเกิน พร้อมความน่าจะเป็นการเป็นสมาชิกและคะแนนค่าผิดปกติรายจุด — รองรับความหนาแน่นที่ผันแปรโดยไม่ต้องใช้ค่าเอปไซลอน เช่นเดียวกับตัวเลือก HDBSCAN ของ ArcGIS Density-based Clustering.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า (CRS แบบฉายภาพ ระยะทางอยู่ในหน่วยของ CRS นั้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (สำเนาของข้อมูลนำเข้าพร้อมฟิลด์คลัสเตอร์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "min_cluster_size": {
                "label": "ขนาดกลุ่มต่ำสุด",
                "description": "ขนาดกลุ่มที่เล็กที่สุดที่ถือว่าเป็นคลัสเตอร์ (>= 2) ค่าเริ่มต้น 5."
              },
              "min_samples": {
                "label": "จำนวนตัวอย่างต่ำสุด",
                "description": "ขนาดของย่านใกล้เคียงสำหรับการประมาณความหนาแน่นด้วยระยะแกนกลาง (ค่ายิ่งสูง ยิ่งมีจุดถูกจัดเป็นสัญญาณรบกวนมากขึ้น) ค่าเริ่มต้น: min_cluster_size."
              }
            }
          },
          "hot_spot_analysis_comparison": {
            "name": "การเปรียบเทียบการวิเคราะห์จุดร้อน",
            "description": "เปรียบเทียบเลเยอร์ผลลัพธ์จุดร้อนแบบ Getis-Ord สองชุด: จับคู่ตำแหน่ง จำแนกการเปลี่ยนผ่านแต่ละแบบ (hot_to_hot, hot_to_cold, none_to_hot, ...) และรันการทดสอบสับเปลี่ยนที่กำหนดค่าเริ่มต้นสุ่มเพื่อวัดความสอดคล้องโดยรวม — เช่นเดียวกับ ArcGIS Hot Spot Analysis Comparison.",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "เลเยอร์ผลลัพธ์จุดร้อนชุดแรก (จุดหรือโพลิกอน)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "เลเยอร์ผลลัพธ์จุดร้อนชุดที่สอง."
              },
              "bin_field": {
                "label": "ฟิลด์ถัง",
                "description": "ฟิลด์นัยสำคัญที่มีอยู่ในข้อมูลนำเข้าทั้งสองชุด (ค่าบวก = ร้อน, ค่าลบ = เย็น)."
              },
              "significance": {
                "label": "นัยสำคัญ",
                "description": "ค่าเกณฑ์ของค่าสัมบูรณ์ ซึ่งหากต่ำกว่านี้ตำแหน่งจะถูกจัดเป็น 'none' (ค่าเริ่มต้น 0)."
              },
              "match_field": {
                "label": "ฟิลด์จับคู่",
                "description": "ฟิลด์รหัสเป็นตัวเลือกที่มีอยู่ในข้อมูลนำเข้าทั้งสองชุดสำหรับเชื่อมโยงตำแหน่ง มิฉะนั้นจะใช้เซนทรอยด์ที่ใกล้ที่สุด."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ระยะทางเซนทรอยด์สูงสุดสำหรับการจับคู่ตำแหน่งที่ใกล้ที่สุด (หน่วยแผนที่) หากไม่ระบุจะไม่จำกัด."
              },
              "permutations": {
                "label": "จำนวนการสับเปลี่ยน",
                "description": "จำนวนการสับเปลี่ยนสำหรับการทดสอบความสอดคล้องระดับโลก (ค่าเริ่มต้น 499)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับ RNG การสับเปลี่ยนแบบกำหนดผลได้แน่นอน (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "identify_narrow_polygons": {
            "name": "ระบุโพลิกอนแคบ",
            "description": "ระบุโพลิกอนที่มีบางส่วนแคบกว่าค่าเผื่อความกว้าง (เศษเสี้ยวและคอคอดบาง) โดยกำกับแต่ละอันด้วยธง is_narrow และความกว้างต่ำสุดที่ประมาณได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "width_tolerance": {
                "label": "ค่าเผื่อความกว้าง",
                "description": "ค่าเกณฑ์ความกว้างในหน่วย CRS โพลิกอนจะถือว่าแคบในบริเวณที่บางกว่าค่านี้ จำเป็นต้องระบุ."
              },
              "min_narrow_area": {
                "label": "พื้นที่แคบต่ำสุด",
                "description": "พื้นที่ส่วนแคบขั้นต่ำ (หน่วย CRS ยกกำลังสอง) ที่จำเป็นต่อการทำเครื่องหมายโพลิกอน พื้นที่แคบที่เล็กกว่านี้จะถูกละเว้นเป็นสัญญาณรบกวน ค่าเริ่มต้นคือ width_tolerance ยกกำลังสอง ซึ่งยังช่วยรองรับการมนมุมเล็กน้อยที่เกิดจากการทำ opening ด้วย."
              },
              "narrow_only": {
                "label": "เฉพาะส่วนแคบ",
                "description": "เมื่อเป็น true จะตัดฟีเจอร์ที่ไม่แคบออกและส่งออกเฉพาะโพลิกอนแคบที่ถูกทำเครื่องหมายไว้ ค่าเริ่มต้นคือ false (กำกับข้อมูลและเก็บฟีเจอร์ทั้งหมดไว้)."
              }
            }
          },
          "idw_3d": {
            "name": "IDW 3 มิติ",
            "description": "การประมาณค่าเชิงปริมาตรแบบระยะทางผกผันของค่าสังเกตแบบจุด 3 มิติเข้าสู่ชุดระดับความสูงซ้อนกัน (หนึ่งแบนด์แรสเตอร์ต่อหนึ่งระดับ) พร้อมตัวคูณขยายระดับความสูงที่จัดการความไม่เท่ากันระหว่างแนวดิ่งกับแนวราบ และจุดตรวจสอบไขว้แบบละทิ้งทีละหนึ่งเป็นตัวเลือก เช่นเดียวกับ ArcGIS IDW3D.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์จุด 3 มิตินำเข้า."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่เก็บค่าที่จะใช้ประมาณค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์หลายแบนด์ผลลัพธ์ (หนึ่งแบนด์ต่อหนึ่งระดับความสูง) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "z_field": {
                "label": "ฟิลด์ Z",
                "description": "ฟิลด์ที่ให้ค่าระดับความสูง ค่าเริ่มต้นคือค่า Z ของเรขาคณิต."
              },
              "power": {
                "label": "ยกกำลัง",
                "description": "เลขชี้กำลังของระยะทางผกผัน (ค่าเริ่มต้น 2)."
              },
              "elev_inflation_factor": {
                "label": "ตัวประกอบขยายระดับความสูง",
                "description": "ตัวคูณที่ใช้กับระยะห่างแนวดิ่งก่อนคำนวณระยะทาง 3 มิติ (ค่าเริ่มต้น 1) ค่าที่มากกว่า 1 จะทำให้ระยะทางแนวดิ่งมีน้ำหนักมากขึ้น ซึ่งสอดคล้องกับสเกลสหสัมพันธ์แนวดิ่งที่สั้นกว่าของข้อมูลเชิงปริมาตรส่วนใหญ่."
              },
              "x_spacing": {
                "label": "ระยะห่าง X",
                "description": "ขนาดเซลล์ผลลัพธ์ในแกน X (ค่าเริ่มต้น: ขอบเขต / 100)."
              },
              "y_spacing": {
                "label": "ระยะห่าง Y",
                "description": "ขนาดเซลล์ผลลัพธ์ในแกน Y (ค่าเริ่มต้น: เท่ากับ x_spacing)."
              },
              "z_spacing": {
                "label": "ระยะห่าง Z",
                "description": "ระยะห่างแนวดิ่งระหว่างระดับผลลัพธ์ (ค่าเริ่มต้น: ช่วงค่า z / 10)."
              },
              "z_min": {
                "label": "Z ต่ำสุด",
                "description": "ระดับผลลัพธ์ต่ำสุด (ค่าเริ่มต้น: ค่าต่ำสุดของข้อมูล)."
              },
              "z_max": {
                "label": "Z สูงสุด",
                "description": "ระดับผลลัพธ์สูงสุด (ค่าเริ่มต้น: ค่าสูงสุดของข้อมูล)."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนตัวอย่างสูงสุดต่อการทำนายหนึ่งครั้ง (ค่าเริ่มต้น 12)."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "ระยะทางค้นหา 3 มิติสูงสุด (แบบขยายแล้ว) เป็นตัวเลือก ตัวอย่างที่อยู่ไกลกว่านี้จะถูกละเว้น."
              },
              "output_cv_features": {
                "label": "ผลลัพธ์ฟีเจอร์ตรวจสอบไขว้",
                "description": "พาธเป็นตัวเลือกสำหรับจุดตรวจสอบไขว้แบบ leave-one-out ที่มีค่าที่สังเกตได้ ค่าที่ทำนายได้ และค่าคลาดเคลื่อนคงเหลือ."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ที่กำกับไว้บนแรสเตอร์ผลลัพธ์ (ค่าเริ่มต้น: CRS ของเลเยอร์นำเข้า)."
              }
            }
          },
          "incremental_spatial_autocorrelation": {
            "name": "สหสัมพันธ์ในตัวเชิงพื้นที่แบบเพิ่มระยะ",
            "description": "คำนวณ Moran's I ระดับรวมตลอดชุดแถบระยะทางที่เพิ่มขึ้น และรายงานเส้นโค้งค่า z พร้อมยอดแรกและยอดสูงสุด — เป็นวิธีที่ปกป้องได้ในการเลือกระยะทางของการกระจุกตัว เช่นเดียวกับ ArcGIS Incremental Spatial Autocorrelation.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า (เรขาคณิตอื่นจะใช้จุดตัวแทนค่าเฉลี่ยของจุดยอด) ควรใช้ CRS แบบฉายภาพ."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขที่จะทดสอบสหสัมพันธ์อัตโนมัติเชิงพื้นที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับตารางรายแถบระยะทาง ผลลัพธ์จะส่งคืนค่านี้เสมอ."
              },
              "begin_distance": {
                "label": "ระยะทางเริ่มต้น",
                "description": "ระยะทางของแถบแรก ในหน่วย CRS ค่าเริ่มต้น: ระยะทางเพื่อนบ้านใกล้ที่สุดที่มากที่สุด (ทุกฟีเจอร์มีเพื่อนบ้าน >=1 ราย)."
              },
              "increment": {
                "label": "เพิ่มค่า",
                "description": "ระยะทางที่เพิ่มขึ้นในแต่ละแถบ ในหน่วย CRS ค่าเริ่มต้น: ระยะทางของแถบเริ่มต้น."
              },
              "num_bands": {
                "label": "จำนวนแบนด์",
                "description": "จำนวนแถบระยะทางที่จะประเมิน (ค่าเริ่มต้น 10)."
              }
            }
          },
          "inside_3d": {
            "name": "ภายใน 3 มิติ",
            "description": "พิจารณาว่าฟีเจอร์ 3 มิติใด (จุด โพลีไลน์ หรือทรงตัน) อยู่ภายในภาชนะเชิงปริมาตรแบบปิด โดยเลือกรายงานความยาวหรือสัดส่วนจุดยอดที่อยู่ภายในได้ (ArcGIS Inside 3D) เพรดิเคตการบรรจุทุกตัวในทั้งสองรีจิสทรีฉายลงบนระนาบ XY เซนเซอร์ที่อยู่เหนือขอบเขตอาคารหรือท่อที่อยู่ใต้แปลงที่ดินจึงถูกทดสอบว่าอยู่ภายในในปัจจุบัน ภาชนะใช้แบบแผนเมชสามเหลี่ยมเดียวกับ buffer_3d และ minimum_bounding_volume ที่มีอยู่.",
            "params": {
              "target": {
                "label": "เป้าหมาย",
                "description": "ฟีเจอร์ 3 มิติที่จะทดสอบ: จุด เส้นหลายส่วน หรือทรงตันแบบตาข่ายสามเหลี่ยม."
              },
              "container": {
                "label": "คอนเทนเนอร์",
                "description": "ฟีเจอร์ 3 มิติแบบปิด (ทรงตันแบบตาข่ายสามเหลี่ยม) ที่ทำหน้าที่เป็นภาชนะบรรจุ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์เป็นตัวเลือกของคู่เป้าหมาย/ภาชนะบรรจุ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "mode": {
                "label": "โหมด",
                "description": "'simple' (ค่าเริ่มต้น) จะรายงานว่าเป้าหมายอยู่ภายในหรือไม่ ส่วน 'complex' จะเพิ่มความยาวส่วนที่บรรจุอยู่และสัดส่วนที่อยู่ภายในด้วย."
              },
              "output_features": {
                "label": "ฟีเจอร์ผลลัพธ์",
                "description": "พาธเป็นตัวเลือกสำหรับส่วนภายในของเป้าหมายที่เป็นเส้นซึ่งถูกตัดออกมา (โหมด complex) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ (และยังคงส่งคืนผลลัพธ์)."
              }
            }
          },
          "integrate": {
            "name": "ผสานรวม",
            "description": "สแนปจุดยอดทั้งหมดของทุกฟีเจอร์ที่อยู่ภายในค่าเผื่อการรวมกลุ่มไปยังตำแหน่งร่วมกัน เพื่อให้ขอบเขตร่วมที่เกือบทับกันกลายเป็นทับกันพอดี โดยเลือกแทรกจุดยอดรูปตัว T ลงบนขอบที่อยู่ใกล้เคียงได้ — เช่นเดียวกับ ArcGIS Integrate.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (เรขาคณิตชนิดใดก็ได้)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ระยะทางการรวมกลุ่มในหน่วย CRS จุดยอดที่อยู่ภายในระยะนี้จะสแนปไปยังตำแหน่งร่วมกัน จำเป็นต้องระบุ."
              },
              "snap_to_edges": {
                "label": "สแนปไปยังขอบ",
                "description": "แทรกจุดยอดเพิ่มเติมในตำแหน่งที่จุดยอดของฟีเจอร์หนึ่งตกอยู่ภายในค่าเผื่อของเซกเมนต์ของอีกฟีเจอร์หนึ่งด้วย (จุดเชื่อมรูปตัว T) ค่าเริ่มต้นคือ true."
              }
            }
          },
          "interpolate_from_spatiotemporal_points": {
            "name": "ประมาณค่าจากจุดเชิงพื้นที่-เวลา",
            "description": "จัดค่าสังเกตแบบจุดที่มีเวลากำกับลงในสไลซ์เวลาสม่ำเสมอ และประมาณค่าแต่ละสไลซ์ลงบนกริดร่วมกันหนึ่งกริด ให้ผลลัพธ์เป็นแรสเตอร์หลายมิติที่ซ้อนทับตรงกัน เช่นเดียวกับ ArcGIS Interpolate From Spatiotemporal Points.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์จุดที่มีการประทับเวลา."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่จะใช้ประมาณค่า."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์การประทับเวลา: ตัวเลขวินาทีนับจาก epoch หรือข้อความรูปแบบ ISO-8601."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับสไลซ์แรก สไลซ์ถัดไปจะถูกเขียนไว้ข้างเคียงพร้อมคำต่อท้าย _t<index> หากไม่ระบุ สไลซ์ทั้งหมดจะถูกเก็บไว้ในหน่วยความจำ."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "daily | weekly | monthly (ค่าเริ่มต้น) | quarterly | yearly."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยแผนที่ ค่าเริ่มต้นคือ 1/50 ของด้านขอบเขตที่ยาวกว่า."
              },
              "method": {
                "label": "วิธี",
                "description": "idw (ค่าเริ่มต้น) | nearest | mean | median."
              },
              "power": {
                "label": "ยกกำลัง",
                "description": "เลขชี้กำลังของระยะทางแบบ IDW (ค่าเริ่มต้น 2)."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนค่าสังเกตที่ใกล้ที่สุดที่ใช้ต่อหนึ่งเซลล์ (ค่าเริ่มต้น 8)."
              },
              "min_points": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "จำนวนค่าสังเกตขั้นต่ำที่จำเป็นต่อการประมาณค่าของสไลซ์หนึ่ง สไลซ์ที่มีข้อมูลเบาบางกว่านี้จะให้ผลเป็น NoData ทั้งหมด แทนที่จะให้พื้นผิวที่ชวนเข้าใจผิด (ค่าเริ่มต้น 3)."
              }
            }
          },
          "interpolate_shape": {
            "name": "ประมาณค่ารูปร่าง",
            "description": "คลุมจุด/เส้น/โพลิกอนลงบนแรสเตอร์พื้นผิว: เพิ่มความหนาแน่นจุด สุ่มค่า Z รายจุดยอด (แบบไบลิเนียร์หรือใกล้สุด) เขียนเรขาคณิต 3 มิติ และเพิ่มค่าวัดพื้นผิว (z_min/z_max/z_mean, ความยาวพื้นผิว 3 มิติ, ความลาดชันเฉลี่ย) เช่นเดียวกับ ArcGIS Interpolate Shape / Add Surface Information.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (จุด เส้น หรือโพลิกอน) ที่ใช้ CRS เดียวกับพื้นผิว."
              },
              "surface": {
                "label": "พื้นผิว",
                "description": "แรสเตอร์ระดับความสูง/พื้นผิวที่จะสุ่มค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ช่วงการเพิ่มความหนาแน่นของจุดในหน่วย CRS เซกเมนต์ที่ยาวจะถูกแยกออกเพื่อให้ทอดตามพื้นผิว ค่าเริ่มต้น: ขนาดเซลล์ของแรสเตอร์."
              },
              "method": {
                "label": "วิธี",
                "description": "การสุ่มค่าจากพื้นผิว: 'bilinear' (ค่าเริ่มต้น) หรือ 'nearest'."
              },
              "attributes": {
                "label": "แอตทริบิวต์",
                "description": "รายการคอลัมน์ค่าตรวจวัดที่จะเพิ่ม คั่นด้วยจุลภาค: z_min,z_max,z_mean,surf_len,avg_slope ค่าเริ่มต้น: ทั้งหมด."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์พื้นผิวที่จะสุ่มค่า โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "interpolate_with_barriers": {
            "name": "ประมาณค่าแบบมีสิ่งกีดขวาง",
            "description": "ประมาณค่าจุดวัดเป็นแรสเตอร์โดยเคารพสิ่งกีดขวางสัมบูรณ์ (แนวชายฝั่ง สันเขา รอยเลื่อน กำแพง): อิทธิพลเดินทางอ้อมสิ่งกีดขวางด้วยระยะทางตามต้นทุน/จีโอเดสิก ไม่ใช่ทะลุผ่าน — ด้วย IDW หรือเคอร์เนลพหุนามเฉพาะที่อันดับหนึ่ง เช่นเดียวกับ ArcGIS Kernel Interpolation With Barriers / Spline With Barriers เครื่องมือ idw/คริกกิง/เพื่อนบ้านธรรมชาติ/สไปลน์ที่มีอยู่ล้วนมองไม่เห็นสิ่งกีดขวาง.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าของค่าที่วัดได้."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขบนจุดที่เก็บค่าที่ต้องการประมาณค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์จากการประมาณค่า (GeoTIFF) หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์เวกเตอร์สิ่งกีดขวางเป็นตัวเลือก (เส้นหลายส่วนหรือโพลิกอน) จะถูกแปลงเป็นแรสเตอร์ในรูปเซลล์ที่ผ่านไม่ได้ ทำให้อิทธิพลต้องอ้อมไปรอบ ๆ ละเว้นค่านี้เพื่อใช้เป็นกรณีควบคุมที่ไม่มีสิ่งกีดขวาง."
              },
              "method": {
                "label": "วิธี",
                "description": "'idw' (ค่าเริ่มต้น) หรือ 'local_polynomial' (การปรับระนาบถ่วงน้ำหนักอันดับหนึ่งด้วยเคอร์เนลเกาส์เซียนบนระยะทางจีโอเดสิก)."
              },
              "power": {
                "label": "ยกกำลัง",
                "description": "เลขชี้กำลังการลดทอนตามระยะทางของ IDW (ค่าเริ่มต้น 2)."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์ของเคอร์เนลเกาส์เซียนสำหรับ local_polynomial (หน่วยระยะทาง) ค่าเริ่มต้น: รัศมีค้นหา หรือขอบเขตของกริดหากไม่ได้ระบุ."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีค้นหาในรูปของระยะทางจีโอเดสิก (ต้นทุน) ตัวอย่างที่อยู่ไกลกว่านี้จะไม่มีอิทธิพลต่อเซลล์ และเซลล์ที่เข้าไม่ถึงภายในรัศมีนี้จะกลายเป็น NoData หน่วยเป็นเมตรสำหรับ CRS เชิงภูมิศาสตร์ และเป็นหน่วย CRS ในกรณีอื่น ค่าเริ่มต้น: ไม่จำกัด."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วย CRS (องศาสำหรับ CRS เชิงภูมิศาสตร์) ค่าเริ่มต้น: กำหนดขนาดให้แกนที่ยาวกว่าครอบคลุมประมาณ 256 เซลล์."
              }
            }
          },
          "intersect_3d": {
            "name": "ตัดกัน 3 มิติ",
            "description": "คำนวณปริมาตรที่ทรงตัน 3 มิติแบบปิดซึ่งซ้อนทับกันมีร่วมกันทีละคู่ พร้อมทรงตันขอบเขตของแต่ละจุดตัดเป็นตัวเลือก (ArcGIS Intersect 3D) union_3d เป็นการซ้อนทับ 3 มิติเพียงอย่างเดียวในทั้งสองรีจิสทรีและตอบได้เฉพาะคำถามเรื่องปริมาตรรวม inside_3d เป็นเพรดิเคตการบรรจุสำหรับจุดและเส้น ส่วน polygon_volume / surface_volume วัดเทียบกับระนาบอ้างอิง ปริมาตรของแต่ละทรงตันคำนวณได้แม่นยำ ส่วนจุดตัดประมาณด้วยการนับวอกเซลที่ความละเอียดที่รายงานไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์ทรงตัน 3 มิติแบบปิด (MultiPolygon แบบตาข่ายสามเหลี่ยมที่มีค่า Z ตามที่ buffer_3d และ minimum_bounding_volume สร้างขึ้น)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "เลเยอร์ทรงตันชุดที่สองเป็นตัวเลือก หากไม่ระบุ จะนำทุกคู่ภายใน 'input' มาตัดกัน (โหมดข้อมูลนำเข้าเดียวของ ArcGIS)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ตารางผลลัพธ์ของคู่ที่ตัดกัน หนึ่งแถวต่อหนึ่งการตัดกันที่ไม่ว่างเปล่า หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "mode": {
                "label": "โหมด",
                "description": "'table' (ค่าเริ่มต้น): เฉพาะแอตทริบิวต์ 'solid': จะสร้างทรงตันขอบเขตของแต่ละการตัดกันเป็นเรขาคณิตด้วย ปริมาตรที่วัดได้จะเป็นแอตทริบิวต์เสมอ โดยไม่ได้อ้างว่าเป็นตาข่ายที่ผสานกันอย่างแม่นยำ."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "จำนวนเซลล์วอกเซลตามแกนที่ยาวที่สุดของกล่องขอบเขตร่วมของแต่ละคู่ (ค่าเริ่มต้น 64) ค่าที่สูงกว่าจะแม่นยำกว่าแต่ช้ากว่า."
              }
            }
          },
          "intersect_3d_line_with_surface": {
            "name": "ตัดเส้น 3 มิติกับพื้นผิว",
            "description": "แยกเส้น 3 มิติที่ทุกจุดซึ่งตัดผ่านพื้นผิวระดับความสูงหรือมัลติแพตช์ โดยกำกับแต่ละชิ้นว่าอยู่เหนือหรือใต้ และสร้างจุดตัด (ArcGIS Intersect 3D Line With Surface / Intersect 3D Line With Multi Patch) intersect_3d ของรอบที่ 17 รับทรงตันแบบปิดไม่ใช่เส้น inside_3d เป็นเพรดิเคตการบรรจุที่ไม่ตัดเรขาคณิตและไม่ระบุตำแหน่งจุดตัด ส่วน interpolate_shape คลุมเส้นลงบนพื้นผิวโดยทิ้งค่า z ของเส้นซึ่งเป็นสิ่งที่การเปรียบเทียบต้องใช้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้น 3 มิติ ที่มีจุดยอดซึ่งมีค่า z."
              },
              "surface": {
                "label": "พื้นผิว",
                "description": "แรสเตอร์ระดับความสูงที่ใช้เป็นตัวตัด จำเป็นต้องระบุ เว้นแต่มีการระบุ 'multipatch'."
              },
              "multipatch": {
                "label": "มัลติแพตช์",
                "description": "เลเยอร์ multipatch (มัลติโพลิกอนสามเหลี่ยม) ที่ใช้เป็นตัวตัดแทนพื้นผิวแรสเตอร์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เส้นผลลัพธ์ที่ถูกแยกที่จุดตัดทุกจุด หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_points": {
                "label": "ผลลัพธ์จุด",
                "description": "เลเยอร์จุดผลลัพธ์ของจุดตัดเหล่านั้นเอง สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ได้ระบุพาธ."
              },
              "spacing": {
                "label": "ระยะห่าง",
                "description": "ระยะก้าวการเพิ่มความหนาแน่นของจุดในมุมมองแปลน หน่วยแผนที่ (ค่าเริ่มต้น: หนึ่งเซลล์ของพื้นผิว) ค่าที่น้อยกว่าจะระบุจุดตัดได้ละเอียดขึ้นแต่ใช้ต้นทุนมากขึ้น."
              },
              "keep_above": {
                "label": "เก็บส่วนที่อยู่เหนือ",
                "description": "เก็บชิ้นส่วนที่อยู่เหนือพื้นผิวไว้ (ค่าเริ่มต้น true)."
              },
              "keep_below": {
                "label": "เก็บส่วนที่อยู่ใต้",
                "description": "เก็บชิ้นส่วนที่อยู่ใต้พื้นผิวไว้ (ค่าเริ่มต้น true)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของแรสเตอร์พื้นผิวโดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "intersecting_layers_masks": {
            "name": "มาสก์เลเยอร์ที่ตัดกัน",
            "description": "สร้างโพลิกอนมาสก์เชิงแผนที่ที่ระยะขอบรอบฟีเจอร์ของเลเยอร์ที่ถูกมาสก์ แต่เฉพาะตรงที่ตัดกับเลเยอร์มาสก์ที่สอง (เส้นรอบรูปที่แม่นยำ คอนเวกซ์ฮัลล์ หรือกล่องขอบเขต).",
            "params": {
              "masked_layer": {
                "label": "เลเยอร์ที่ถูกมาสก์",
                "description": "เลเยอร์เวกเตอร์ที่ถูกมาสก์ (เรขาคณิตชนิดใดก็ได้) ทุกฟีเจอร์ที่ตัดกันกับเลเยอร์มาสก์จะได้รับมาสก์ ตรวจหารูปแบบไฟล์โดยอัตโนมัติ (หรือเป็นแฮนเดิลในหน่วยความจำ)."
              },
              "masking_layer": {
                "label": "เลเยอร์มาสก์",
                "description": "เลเยอร์เวกเตอร์ที่ใช้ทำมาสก์ (เรขาคณิตชนิดใดก็ได้) ฟีเจอร์ที่ถูกมาสก์จะถูกมาสก์เฉพาะบริเวณที่ตัดกันกับฟีเจอร์ของเลเยอร์นี้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "margin": {
                "label": "ระยะขอบ",
                "description": "ระยะขอบของมาสก์ ใช้หน่วยเมตรสำหรับ CRS เชิงภูมิศาสตร์ (EPSG:4326 หรือไม่ทราบ ซึ่งจะถูกแปลงเป็นองศา) มิฉะนั้นใช้หน่วยของ CRS ของเลเยอร์ ต้องเป็นค่าบวก."
              },
              "mask_kind": {
                "label": "ชนิดมาสก์",
                "description": "รูปร่างของมาสก์: 'exact' (ค่าเริ่มต้น เส้นขอบฟีเจอร์ที่ทำบัฟเฟอร์), 'convex_hull' (คอนเวกซ์ฮัลล์ที่ขยายออก) หรือ 'box' (กรอบขอบเขต + ระยะขอบ)."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์เป็นตัวเลือกบนเลเยอร์ที่ถูกมาสก์ ซึ่งค่าจะถูกคัดลอกไปยังแต่ละมาสก์ในชื่อ 'source_id' ค่าเริ่มต้นคือดัชนีของฟีเจอร์ต้นทาง."
              }
            }
          },
          "intervisibility": {
            "name": "การมองเห็นระหว่างกัน",
            "description": "ทดสอบแต่ละแนวเล็งกับสิ่งกีดขวางเวกเตอร์ 3 มิติ และระบุว่ามองเห็นหรือถูกบัง พร้อมรายงานว่าสิ่งกีดขวางใดบังและบังที่ตำแหน่งใด (ArcGIS Intervisibility) line_of_sight, visibility_index, viewshed และ skyline_analysis ล้วนทำงานกับแรสเตอร์พื้นผิว ไม่มีตัวใดทดสอบกับสิ่งกีดขวางมัลติแพตช์ 3 มิติเช่นอาคารได้ ซึ่งส่วนยื่นและทางเดินโค้งจะสูญหายเมื่อถูกฝังลงใน DEM.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เส้นแนวสายตา: เส้นหลายส่วน 3 มิติที่จุดยอดแรกคือผู้สังเกตและจุดยอดสุดท้ายคือเป้าหมาย."
              },
              "obstructions": {
                "label": "สิ่งบดบัง",
                "description": "เลเยอร์สิ่งกีดขวาง 3 มิติหนึ่งเลเยอร์ขึ้นไป คั่นด้วยจุลภาค (MultiPolygon แบบตาข่ายสามเหลี่ยมที่มีค่า Z)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เส้นแนวสายตาผลลัพธ์พร้อมฟิลด์การมองเห็นที่เพิ่มเข้ามา หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "visible_field": {
                "label": "ฟิลด์การมองเห็น",
                "description": "ชื่อของฟิลด์การมองเห็นแบบบูลีน (ค่าเริ่มต้น 'VISIBLE') ให้ตรงกับพารามิเตอร์ของ ArcGIS."
              },
              "observer_offset": {
                "label": "ออฟเซ็ตผู้สังเกต",
                "description": "ความสูงที่เพิ่มให้กับจุดปลายของผู้สังเกตก่อนการทดสอบ ในหน่วย CRS (ค่าเริ่มต้น 0) ใช้จำลองความสูงระดับสายตาหรือความสูงของเครื่องมือ."
              },
              "target_offset": {
                "label": "ออฟเซ็ตเป้าหมาย",
                "description": "ความสูงที่เพิ่มให้กับจุดปลายของเป้าหมายก่อนการทดสอบ ในหน่วย CRS (ค่าเริ่มต้น 0)."
              },
              "visible_only": {
                "label": "เฉพาะที่มองเห็น",
                "description": "ส่งออกเฉพาะเส้นแนวสายตาที่ไม่ถูกบดบัง (ค่าเริ่มต้น false)."
              }
            }
          },
          "is_closed_3d": {
            "name": "ปิด 3 มิติหรือไม่",
            "description": "ระบุว่าฟีเจอร์มัลติแพตช์ 3 มิติใดเป็นทรงตันปิดกันน้ำได้และอันใดเป็นพื้นผิวเปิด พร้อมจำนวนวินิจฉัยของขอบเขตที่ไม่จับคู่ ขอบแบบไม่เป็นแมนิโฟลด์ และความสอดคล้องของทิศทางการวน (ArcGIS Is Closed 3D) เครื่องมือเชิงปริมาตรทุกตัวในแคตตาล็อก — union_3d, inside_3d, minimum_bounding_volume, buffer_3d — สมมติว่าข้อมูลนำเข้าเป็นทรงปิดและคืนค่าที่ไร้ความหมายสำหรับเมชแบบเปิด และไม่มีเครื่องมือใดให้ตรวจสอบเงื่อนไขนั้นก่อนได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์ 3 มิติ (MultiPolygon แบบตาข่ายสามเหลี่ยมที่มีค่า Z ตามที่ buffer_3d, minimum_bounding_volume และ voxel_isosurface สร้างขึ้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์: ฟีเจอร์นำเข้าพร้อมฟิลด์วินิจฉัยที่เพิ่มเข้ามา หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "closed_only": {
                "label": "เฉพาะที่ปิด",
                "description": "ส่งออกเฉพาะฟีเจอร์ที่เป็นทรงตันแบบปิด (ค่าเริ่มต้น false: ส่งออกทุกฟีเจอร์พร้อมผลการตัดสิน)."
              }
            }
          },
          "kernel_density_ratio": {
            "name": "อัตราส่วนความหนาแน่นเคอร์เนล",
            "description": "อัตราส่วนความเสี่ยงสัมพัทธ์ของพื้นผิวความหนาแน่นเคอร์เนลสองชุด: ประเมินเลเยอร์จุดตัวเศษ (กรณีศึกษา) และเลเยอร์จุดตัวส่วน (ประชากรที่มีความเสี่ยง) ด้วยเคอร์เนลควอร์ติกเดียวกันและแบนด์วิดท์ร่วมกัน แล้วหารทีละเซลล์ — เช่นเดียวกับ ArcGIS Calculate Kernel Density Ratio ค่าพื้นต่ำสุดของตัวส่วนจะเขียนค่า NoData ตรงที่ประชากรเบาบางเกินไป (ไม่มีค่า inf/NaN รั่วออกมา) และการแปลงลอการิทึมธรรมชาติเป็นตัวเลือกทำให้การมีมากเกิน/น้อยเกินสมมาตรกัน เป็นอัตราส่วนความหนาแน่นที่ heat_map แบบเลเยอร์เดียวแสดงไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดที่เป็นตัวเศษ (เช่น จำนวนผู้ป่วย / เหตุการณ์)."
              },
              "denominator": {
                "label": "ตัวหาร",
                "description": "เลเยอร์จุดที่เป็นตัวส่วน (เช่น ประชากร / การรับสัมผัสที่เสี่ยง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์อัตราส่วนผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขสำหรับถ่วงน้ำหนักจุดที่เป็นตัวเศษ (ค่าเริ่มต้น: แต่ละจุดนับเป็น 1)."
              },
              "denominator_weight_field": {
                "label": "ฟิลด์น้ำหนักตัวหาร",
                "description": "ฟิลด์ตัวเลขสำหรับถ่วงน้ำหนักจุดที่เป็นตัวส่วน (ค่าเริ่มต้น: แต่ละจุดนับเป็น 1)."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์เคอร์เนล / รัศมีค้นหาที่ใช้ร่วมกัน (หน่วยเป็นเมตรสำหรับ CRS เชิงภูมิศาสตร์ และเป็นหน่วย CRS ในกรณีอื่น) ค่าเริ่มต้น: กฎของ Silverman จากการกระจายตัวของจุดทั้งหมดรวมกัน."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วย CRS (ค่าเริ่มต้น: ด้านขอบเขตที่ยาวกว่า / 200)."
              },
              "log_ratio": {
                "label": "อัตราส่วนลอการิทึม",
                "description": "หากเป็น true จะส่งออกค่าลอการิทึมธรรมชาติของอัตราส่วน (สมมาตรรอบค่า 0) ค่าเริ่มต้นคือ false."
              },
              "denominator_floor": {
                "label": "ค่าต่ำสุดของตัวหาร",
                "description": "เซลล์ที่มีความหนาแน่นของตัวส่วนต่ำกว่าค่านี้ (หรือเป็นศูนย์) จะกลายเป็น NoData เพื่อเลี่ยงค่าที่พุ่งสูงจากการหาร ค่าเริ่มต้น 0 (มาสก์เฉพาะตัวส่วนที่เป็นศูนย์พอดี)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ที่จะกำกับผลลัพธ์ (ค่าเริ่มต้น: จากเลเยอร์ที่เป็นตัวเศษ)."
              }
            }
          },
          "kernel_interpolation_with_barriers": {
            "name": "การประมาณค่าเคอร์เนลแบบมีสิ่งกีดขวาง",
            "description": "ประมาณค่าสังเกตแบบจุดด้วยการฟิตพหุนามถ่วงน้ำหนักด้วยเคอร์เนลในหน้าต่างเลื่อน โดยวัดระยะทางเป็นเส้นทางสั้นที่สุดที่อ้อมสิ่งกีดขวางสัมบูรณ์แทนที่จะทะลุผ่าน (ArcGIS Kernel Interpolation With Barriers) เป็นส่วนเสริมของ diffusion_interpolation_with_barriers ที่มีอยู่ ซึ่งแก้สมการความร้อนแทนการใช้เคอร์เนลอย่างชัดแจ้ง ตัวประมาณค่าอื่นทุกตัวในทั้งสองรีจิสทรีใช้ระยะทางแบบยูคลิด จึงประมาณค่าทะลุแหลมและรอยเลื่อนเป็นเส้นตรงทั้งหมด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดนำเข้าที่มีค่าสังเกต."
              },
              "z_field": {
                "label": "ฟิลด์ Z",
                "description": "ฟิลด์ตัวเลขที่จะใช้ประมาณค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือกสำหรับค่าที่ทำนายได้ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_error": {
                "label": "ผลลัพธ์ความคลาดเคลื่อน",
                "description": "พาธเป็นตัวเลือกสำหรับแรสเตอร์ RMS ของค่าคลาดเคลื่อนคงเหลือแบบถ่วงน้ำหนักเฉพาะที่ ซึ่งคือการกระจายแบบถ่วงน้ำหนักของค่าคลาดเคลื่อนคงเหลือของเพื่อนบ้านรอบการปรับแบบจำลองเฉพาะที่ ค่านี้เป็นการวัดความเหมาะสมของแบบจำลอง ไม่ใช่ค่าความคลาดเคลื่อนมาตรฐานของการทำนายแบบ ArcGIS (เพราะไม่ได้คำนึงถึงทั้งองศาอิสระที่แท้จริงและค่าเลเวอเรจ) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ (และยังคงส่งคืนผลลัพธ์)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์เส้นหลายส่วนเป็นตัวเลือกที่แทนสิ่งกีดขวางแบบสัมบูรณ์ หากไม่ได้ระบุ เครื่องมือจะลดรูปเป็นการประมาณค่าด้วยเคอร์เนลแบบธรรมดา."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วย CRS ค่าเริ่มต้นคือประมาณ 1/100 ของด้านขอบเขตที่ยาวกว่า."
              },
              "kernel": {
                "label": "เคอร์เนล",
                "description": "exponential, gaussian, quartic, epanechnikov, polynomial5 (ค่าเริ่มต้น) หรือ constant."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์ของเคอร์เนลในหน่วย CRS ค่าเริ่มต้นคือค่าที่คำนวณจากข้อมูล โดยอิงระยะห่างเฉลี่ยของเพื่อนบ้านที่ใกล้ที่สุด."
              },
              "power": {
                "label": "ยกกำลัง",
                "description": "อันดับพหุนามเฉพาะที่: 0 (ค่าเฉลี่ยถ่วงน้ำหนัก) หรือ 1 (ค่าเริ่มต้น การปรับระนาบ)."
              },
              "ridge": {
                "label": "สันเขา",
                "description": "พารามิเตอร์ ridge ที่ช่วยให้การปรับกำลังสองน้อยที่สุดเฉพาะที่มีเสถียรภาพเมื่อย่านใกล้เคียงมีลักษณะเสื่อม (ค่าเริ่มต้น 1e-6)."
              },
              "max_neighbors": {
                "label": "จำนวนเพื่อนบ้านสูงสุด",
                "description": "ขีดจำกัดจำนวนค่าสังเกตที่ใช้ในการปรับแบบจำลองเฉพาะที่แต่ละครั้ง (ค่าเริ่มต้น 32)."
              }
            }
          },
          "kml_to_features": {
            "name": "KML เป็นฟีเจอร์",
            "description": "อ่าน Placemark จากไฟล์ .kml/.kmz เข้าสู่เลเยอร์จุด เส้น และโพลิกอน พร้อมแอตทริบิวต์ชื่อ/คำอธิบาย.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไปยังไฟล์ .kml หรือไฟล์บีบอัด .kmz (KML ที่ถูกบีบอัดแบบ zip)."
              },
              "points_output": {
                "label": "ผลลัพธ์จุด",
                "description": "พาธเวกเตอร์จุดผลลัพธ์เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) เขียนไฟล์เฉพาะเมื่อ KML มีเพลสมาร์กแบบจุด."
              },
              "lines_output": {
                "label": "ผลลัพธ์เส้น",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) เขียนไฟล์เฉพาะเมื่อ KML มีเพลสมาร์กแบบเส้น."
              },
              "polygons_output": {
                "label": "ผลลัพธ์โพลิกอน",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) เขียนไฟล์เฉพาะเมื่อ KML มีเพลสมาร์กแบบโพลิกอน."
              }
            }
          },
          "landtrendr": {
            "name": "LandTrendr",
            "description": "การแบ่งส่วนเชิงเวลาแบบ LandTrendr ของชุดภาพรายปี (เช่นเดียวกับ ArcGIS Analyze Changes Using LandTrendr): กำจัดค่ากระโดด ฟิตเชิงเส้นเป็นช่วงโดยเลือกจุดยอดแบบละโมบ และสกัดการรบกวนที่รุนแรงที่สุด (ปี ขนาด ระยะเวลา) รายพิกเซล เป็นการแบ่งส่วนประวัติการเปลี่ยนแปลงรายพิกเซลที่ change_vector_analysis แบบสองวันที่และ generate_trend_raster แบบแนวโน้มเดียวทำไม่ได้.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธของแรสเตอร์รายปีเรียงตามลำดับเวลา คั่นด้วยจุลภาค (เช่น ผลลัพธ์ NBR จาก spectral_index; >= 4)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์: ปีที่เกิดการรบกวนมากที่สุดของแต่ละพิกเซล หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "years": {
                "label": "ปี",
                "description": "ปีที่สอดคล้องกับ 'inputs' คั่นด้วยจุลภาค (ค่าเริ่มต้น 0,1,2,...)."
              },
              "magnitude_output": {
                "label": "ผลลัพธ์ขนาด",
                "description": "แรสเตอร์เป็นตัวเลือกของขนาดการรบกวน (การเปลี่ยนแปลงของดัชนี)."
              },
              "duration_output": {
                "label": "ผลลัพธ์ระยะเวลา",
                "description": "แรสเตอร์เป็นตัวเลือกของระยะเวลาการรบกวน (ปี)."
              },
              "direction": {
                "label": "ทิศทาง",
                "description": "ทิศทางการรบกวนในดัชนี: 'loss' (ค่าลดลง ค่าเริ่มต้น) หรือ 'gain' (ค่าเพิ่มขึ้น)."
              },
              "max_segments": {
                "label": "จำนวนเซกเมนต์สูงสุด",
                "description": "จำนวนเซกเมนต์สูงสุด (ค่าเริ่มต้น 6)."
              },
              "spike_threshold": {
                "label": "ค่าเกณฑ์ค่าพุ่ง",
                "description": "ความแรงของการกำจัดค่าแหลม 0..1 (สัดส่วนของช่วงค่าในอนุกรม ค่าเริ่มต้น 0.75 ค่า 1 คือปิดใช้งาน)."
              },
              "min_valid": {
                "label": "จำนวนค่าที่ถูกต้องต่ำสุด",
                "description": "จำนวนค่าสังเกตที่ใช้ได้ขั้นต่ำต่อพิกเซล (ค่าเริ่มต้น 4)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะอ่านจากข้อมูลนำเข้าแต่ละชุด (ค่าเริ่มต้น 1)."
              }
            }
          },
          "las_height_metrics": {
            "name": "ดัชนีความสูงจาก LAS",
            "description": "สร้างแรสเตอร์ค่าวัดความสูงเรือนยอดรายเซลล์จากค่าความสูง LiDAR (เช่นเดียวกับ ArcGIS LAS Height Metrics): ค่าเฉลี่ย ส่วนเบี่ยงเบนมาตรฐาน ความเบ้ ความโด่ง MAD และเปอร์เซ็นไทล์ความสูง เป็นกริดหลายแบนด์ — ชุดค่าโมเมนต์/เปอร์เซ็นไทล์ทางป่าไม้ที่ height_above_ground และ lidar_point_stats ที่มีอยู่ไม่ได้ให้ในรอบเดียว.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "กลุ่มจุด LAS/LAZ นำเข้าที่เป็นค่าความสูงเหนือพื้นดิน (ให้ปรับมาตรฐานด้วย height_above_ground ก่อน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์หลายแบนด์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "metrics": {
                "label": "เมตริก",
                "description": "ชุดย่อยของ mean,std,skewness,kurtosis,mad คั่นด้วยจุลภาค (ค่าเริ่มต้น 'mean,std,skewness,kurtosis,mad')."
              },
              "height_percentiles": {
                "label": "เปอร์เซ็นไทล์ความสูง",
                "description": "เปอร์เซ็นไทล์ในช่วง [0,100] คั่นด้วยจุลภาค เช่น '50,95,99' (ค่าเริ่มต้น '50,95,99' เว้นว่างไว้เพื่อไม่ใช้)."
              },
              "min_height": {
                "label": "ความสูงต่ำสุด",
                "description": "ไม่รวมจุดที่มีความสูงต่ำกว่าค่านี้ (ค่าตัดสำหรับพื้นดิน/สัญญาณรบกวน) ค่าเริ่มต้น 0."
              },
              "min_points": {
                "label": "จำนวนจุดต่ำสุด",
                "description": "เซลล์ที่มีจุดที่ใช้ได้น้อยกว่านี้จะกลายเป็น NoData ค่าเริ่มต้น 4."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วย CRS ค่าเริ่มต้น 10."
              }
            }
          },
          "less_than_or_equal_to": {
            "name": "น้อยกว่าหรือเท่ากับ",
            "description": "ทดสอบว่าแรสเตอร์ชุดแรกมีค่าน้อยกว่าหรือเท่ากับชุดที่สองหรือไม่ โดยเปรียบเทียบทีละเซลล์.",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "แรสเตอร์นำเข้าตัวแรก (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "แรสเตอร์นำเข้าตัวที่สอง (สตริงพาธหรืออ็อบเจกต์แรสเตอร์แบบมีชนิด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์แรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะคงอยู่ในหน่วยความจำและถูกคืนค่าเป็นแฮนเดิลแรสเตอร์แบบ memory://."
              }
            }
          },
          "line_density": {
            "name": "ความหนาแน่นเส้น",
            "description": "ความหนาแน่นของฟีเจอร์เชิงเส้น (ความยาวต่อหน่วยพื้นที่) ในเพื่อนบ้านทรงกลมรอบแต่ละเซลล์แรสเตอร์ — ความหนาแน่นถนน ลำน้ำ หรือรอยเลื่อน — โดยตัดแต่ละเซกเมนต์เส้นด้วยวงกลมรัศมีค้นหา (แบบรูปแบบปิด) แล้วหารผลรวมความยาวถ่วงน้ำหนักด้วย pi*r^2 เช่นเดียวกับ ArcGIS Line Density เป็นคู่ขนานสำหรับเส้นเวกเตอร์ที่ heat_map ซึ่งรองรับเฉพาะจุด และ edge_density แบบเชิงหมวดหมู่ที่มีอยู่ยังขาดไป.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลีไลน์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ความหนาแน่นผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขสำหรับถ่วงน้ำหนักแต่ละเส้น (เช่น จำนวนช่องจราจร ปริมาณจราจร ประชากร) ค่าเริ่มต้น: ทุกเส้นมีน้ำหนักเท่ากับ 1."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีของย่านใกล้เคียง (หน่วยเป็นเมตรสำหรับ CRS เชิงภูมิศาสตร์ และเป็นหน่วย CRS ในกรณีอื่น) ค่าเริ่มต้น: ด้านขอบเขตที่สั้นกว่า / 25."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ (หน่วยเดียวกับ search_radius) ค่าเริ่มต้น: search_radius / 10."
              },
              "area_units": {
                "label": "หน่วยพื้นที่",
                "description": "หน่วยพื้นที่ของค่าความหนาแน่น: 'square_map_units' (ค่าเริ่มต้น), 'square_meters', 'square_kilometers', 'square_miles' หรือ 'square_feet'."
              }
            }
          },
          "line_of_sight": {
            "name": "เส้นสายตา",
            "description": "การมองเห็นระหว่างจุดต่อจุดบน DEM: สำหรับแต่ละคู่ผู้สังเกต-เป้าหมาย ให้แนวเล็งที่แบ่งเป็นเซกเมนต์ที่มองเห็นและถูกบัง พร้อมธงว่าเป้าหมายมองเห็นได้หรือไม่ เช่นเดียวกับ ArcGIS Line Of Sight.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ระดับความสูงนำเข้า (CRS แบบฉายภาพ ระยะทาง/ความสูงอยู่ในหน่วยของ CRS นั้น)."
              },
              "observers": {
                "label": "ผู้สังเกต",
                "description": "เลเยอร์เวกเตอร์จุดของผู้สังเกต."
              },
              "targets": {
                "label": "เป้าหมาย",
                "description": "เลเยอร์เวกเตอร์จุดของเป้าหมาย."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "observer_offset": {
                "label": "ออฟเซ็ตผู้สังเกต",
                "description": "ความสูงของผู้สังเกตเหนือพื้นดิน ในหน่วยของ DEM (ค่าเริ่มต้น 1.75)."
              },
              "target_offset": {
                "label": "ออฟเซ็ตเป้าหมาย",
                "description": "ความสูงของเป้าหมายเหนือพื้นดิน ในหน่วยของ DEM (ค่าเริ่มต้น 0)."
              },
              "pair_field": {
                "label": "ฟิลด์คู่",
                "description": "ฟิลด์เป็นตัวเลือกที่มีอยู่ในทั้งสองเลเยอร์ ผู้สังเกตและเป้าหมายจะจับคู่กันเมื่อค่าฟิลด์นี้ตรงกัน (แทนการจับคู่แบบทุกต่อทุก)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของ DEM ที่จะสุ่มค่า (ค่าเริ่มต้น 1)."
              }
            }
          },
          "line_statistics": {
            "name": "สถิติเส้น",
            "description": "สร้างแรสเตอร์ของสถิติเพื่อนบ้านของแอตทริบิวต์เส้น (ค่าเฉลี่ย ค่าที่พบมากที่สุด ค่ามัธยฐาน ค่าต่ำสุด/สูงสุด พิสัย ความหลากหลาย หรือความยาวรวม) โดยตัดแต่ละเซกเมนต์ด้วยวงกลมรัศมีค้นหาและถ่วงน้ำหนักค่าตามความยาว — เช่นเดียวกับ ArcGIS Line Statistics เป็นส่วนเติมเต็มด้านพื้นผิวแอตทริบิวต์ของ line_density ที่ชุดเครื่องมือที่มีอยู่ยังขาด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลีไลน์นำเข้า."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขที่จะสรุป จำเป็นต้องระบุสำหรับทุกค่าสถิติ ยกเว้น 'length'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "'mean' (ค่าเริ่มต้น), 'majority', 'maximum', 'median', 'minimum', 'minority', 'range', 'variety' หรือ 'length'."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "รัศมีของย่านใกล้เคียงในหน่วย CRS ค่าเริ่มต้น: ด้านขอบเขตที่สั้นกว่า / 25."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วย CRS ค่าเริ่มต้น: search_radius / 10."
              }
            }
          },
          "local_bivariate_relationships": {
            "name": "ความสัมพันธ์สองตัวแปรเฉพาะที่",
            "description": "สำหรับแต่ละฟีเจอร์ จำแนกว่าตัวแปรสองตัวสัมพันธ์กันอย่างไรในเพื่อนบ้านเฉพาะที่ (ไม่มีนัยสำคัญ เชิงเส้นบวก/ลบ เว้า นูน ไม่ระบุ) จากการฟิตเชิงเส้นและกำลังสองเฉพาะที่ สถิติการพึ่งพาแบบลดเอนโทรปี และค่า p จากการทดสอบสับเปลี่ยนที่กำหนดค่าเริ่มต้นสุ่ม — เช่นเดียวกับ ArcGIS Local Bivariate Relationships.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าที่มีฟิลด์ตัวแปรสองฟิลด์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (สำเนาของข้อมูลนำเข้าพร้อมฟิลด์ความสัมพันธ์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "field1": {
                "label": "ฟิลด์ 1",
                "description": "ชื่อฟิลด์ของตัวแปรที่หนึ่ง (ตัวแปรอธิบาย)."
              },
              "field2": {
                "label": "ฟิลด์ 2",
                "description": "ชื่อฟิลด์ของตัวแปรที่สอง (ตัวแปรตาม)."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านที่ใกล้ที่สุด k ที่กำหนดตัวอย่างเฉพาะที่แต่ละชุด (ค่าเริ่มต้น 12 ต้องมีค่า >= 5)."
              },
              "permutations": {
                "label": "จำนวนการสับเปลี่ยน",
                "description": "จำนวนการสับเปลี่ยนสำหรับการทดสอบนัยสำคัญ (ค่าเริ่มต้น 199; 0 คือปิดใช้งาน)."
              },
              "significance": {
                "label": "นัยสำคัญ",
                "description": "ค่าเกณฑ์ pseudo p-value สำหรับตัดสินว่าความสัมพันธ์มีนัยสำคัญ (ค่าเริ่มต้น 0.05)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการสับเปลี่ยน (ค่าเริ่มต้น 1) เพื่อให้ได้ผลลัพธ์ที่ทำซ้ำได้."
              }
            }
          },
          "local_outlier_analysis": {
            "name": "การวิเคราะห์ค่าผิดปกติเฉพาะที่",
            "description": "การวิเคราะห์ค่าผิดปกติเฉพาะที่เชิงพื้นที่-เวลา (Anselin Local Moran's I บนคิวบ์พื้นที่-เวลาแบบ H3): จำแนกแต่ละเซลล์ x ถังเวลาเป็นคลัสเตอร์ High-High/Low-Low หรือค่าผิดปกติ High-Low/Low-High พร้อมค่า p จากการสับเปลี่ยนที่กำหนดค่าเริ่มต้นสุ่ม แล้วสรุปรายเซลล์ตามเวลา — เช่นเดียวกับ ArcGIS Local Outlier Analysis เป็นส่วนขยายเชิงพื้นที่-เวลาของ local_morans_i_lisa ที่มีอยู่ซึ่งรองรับเฉพาะเชิงพื้นที่.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดนำเข้าของเหตุการณ์ที่มีการบันทึกเวลา (ลองจิจูด/ละติจูด)."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: เป็นตัวเลขหรือเวลาแบบ ISO-8601."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์สรุปโพลิกอน H3 ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่จะรวมค่าในแต่ละบิน (ค่าเริ่มต้น: จำนวนจุด)."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "ความกว้างของหนึ่งช่วงเวลาในหน่วยของ time_field (ค่าเริ่มต้น 1)."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียด H3 ระหว่าง 0..15 (ค่าเริ่มต้น 7)."
              },
              "kring": {
                "label": "K ของวงแหวน",
                "description": "รัศมี k-ring ของย่านใกล้เคียงเชิงพื้นที่ (ค่าเริ่มต้น 1)."
              },
              "time_window": {
                "label": "กรอบเวลา",
                "description": "ครึ่งความกว้างของย่านใกล้เคียงเชิงเวลา เป็นจำนวนขั้น (ค่าเริ่มต้น 1)."
              },
              "permutations": {
                "label": "จำนวนการสับเปลี่ยน",
                "description": "จำนวนการสับเปลี่ยนสำหรับการทดสอบนัยสำคัญ (ค่าเริ่มต้น 99 ค่า 0 คือปิดใช้งาน)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับ RNG การสับเปลี่ยน (ค่าเริ่มต้น 1)."
              }
            }
          },
          "local_polynomial_interpolation": {
            "name": "การประมาณค่าพหุนามเฉพาะที่",
            "description": "ฟิตพหุนามอันดับ 1/2/3 ภายในเพื่อนบ้านแบบหน้าต่างเลื่อนที่ถ่วงน้ำหนักด้วยเคอร์เนลที่ทุกเซลล์ ให้ผลลัพธ์เป็นพื้นผิวการทำนาย พื้นผิวความคลาดเคลื่อนมาตรฐานของการทำนาย หรือพื้นผิวเลขคอนดิชัน ต่างจาก trend_surface ระดับรวมที่มีอยู่ พหุนามจะถูกฟิตใหม่เฉพาะที่ เช่นเดียวกับ ArcGIS Local Polynomial Interpolation.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์จุดนำเข้าที่มีค่าที่จะใช้ประมาณค่า."
              },
              "z_field": {
                "label": "ฟิลด์ Z",
                "description": "ฟิลด์ตัวเลขที่เก็บค่าที่จะใช้ประมาณค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยแผนที่ (ค่าเริ่มต้น: ขอบเขตของข้อมูลนำเข้า / 200)."
              },
              "order": {
                "label": "อันดับ",
                "description": "อันดับพหุนาม: 1 (ค่าเริ่มต้น), 2 หรือ 3."
              },
              "kernel": {
                "label": "เคอร์เนล",
                "description": "'exponential' (ค่าเริ่มต้น), 'gaussian', 'quartic', 'epanechnikov', 'fifth_order' หรือ 'constant'."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "แบนด์วิดท์เคอร์เนลแบบคงที่ในหน่วยแผนที่ หากไม่ระบุ จะใช้แบนด์วิดท์แบบปรับตัว คือระยะทางไปยังตัวอย่างที่ใกล้ที่สุดลำดับที่ 'neighbors'."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนตัวอย่างต่อการปรับแบบจำลองเฉพาะที่หนึ่งครั้งสำหรับแบนด์วิดท์แบบปรับตัว (ค่าเริ่มต้น: 3 เท่าของจำนวนพจน์พหุนาม)."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์น้ำหนักการวัดรายค่าสังเกตเป็นตัวเลือก."
              },
              "condition_number": {
                "label": "เลขเงื่อนไข",
                "description": "ไม่ทำนายค่าในบริเวณที่ค่า condition number ของเมทริกซ์ออกแบบเฉพาะที่เกินค่าเกณฑ์นี้ (ค่าเริ่มต้น: ไม่จำกัด)."
              },
              "output_type": {
                "label": "ชนิดผลลัพธ์",
                "description": "'prediction' (ค่าเริ่มต้น), 'standard_error' หรือ 'condition_number'."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ที่กำกับไว้บนแรสเตอร์ผลลัพธ์ (ค่าเริ่มต้น: CRS ของเลเยอร์นำเข้า)."
              }
            }
          },
          "locate_lines_along_routes": {
            "name": "ระบุตำแหน่งเส้นตามเส้นทาง",
            "description": "ซ้อนทับฟีเจอร์เส้นหรือโพลิกอนบนเส้นทางที่มีค่าวัด เพื่อสร้างเหตุการณ์แบบเส้นที่มีค่าวัดเริ่มต้น/สิ้นสุด (RID, FMEAS, TMEAS) เช่นเดียวกับ ArcGIS Locate Features Along Routes (เหตุการณ์แบบเส้น/โพลิกอน).",
            "params": {
              "input_features": {
                "label": "ฟีเจอร์นำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นหรือโพลิกอนนำเข้าที่จะระบุตำแหน่งตามแนวเส้นทาง."
              },
              "routes": {
                "label": "เส้นทาง",
                "description": "เลเยอร์เวกเตอร์เส้นทาง (เส้น) ที่ให้ค่าการอ้างอิงตำแหน่งเชิงเส้น."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์บนเลเยอร์เส้นทางที่เก็บรหัสประจำเส้นทาง (RID) หากไม่ระบุ จะใช้ดัชนีฟีเจอร์ของเส้นทางที่เริ่มนับจาก 0."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "รัศมีค้นหาในหน่วย CRS จุดยอดของฟีเจอร์ที่อยู่ภายในระยะนี้จากเส้นทางจะถือว่าอยู่ตรงกัน จำเป็นต้องระบุ (> 0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เหตุการณ์เชิงเส้นผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "locate_regions": {
            "name": "ระบุตำแหน่งภูมิภาค",
            "description": "ค้นหาภูมิภาคต่อเนื่องที่ดีที่สุดของพื้นที่เป้าหมายจากแรสเตอร์ความเหมาะสม (เช่นเดียวกับ ArcGIS Locate Regions): ขยายภูมิภาคแบบดีที่สุดก่อนจากยอดความเหมาะสม พร้อมการควบคุมรูปร่าง/ความกะทัดรัดและระยะห่างระหว่างภูมิภาค — เป็นขั้นตอนการเลือกที่ตั้งที่เปลี่ยนพื้นผิวจาก fuzzy_overlay/weighted_overlay ให้เป็นภูมิภาคจริง ซึ่งการจับกลุ่มและการใช้ค่าเกณฑ์ทำไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ความเหมาะสม (ค่ายิ่งสูง ยิ่งเหมาะสมมาก)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ของรหัสภูมิภาคที่เริ่มนับจาก 1 (บริเวณอื่นเป็น NoData) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "total_area": {
                "label": "พื้นที่รวม",
                "description": "พื้นที่เป้าหมายรวมของทุกภูมิภาค ในหน่วยพื้นที่ของ CRS (ค่าเริ่มต้น: ร้อยละ 5 ของพื้นที่ที่ใช้ได้)."
              },
              "num_regions": {
                "label": "จำนวนภูมิภาค",
                "description": "จำนวนภูมิภาคที่จะค้นหาตำแหน่ง (ค่าเริ่มต้น 1) แต่ละภูมิภาคมีเป้าหมายเท่ากับ total_area / num_regions."
              },
              "shape": {
                "label": "รูปร่าง",
                "description": "น้ำหนักความกระชับ 0..1: 0 = ใช้ความเหมาะสมล้วน, 1 = เอนเอียงไปทางภูมิภาคทรงกลมอย่างมาก (ค่าเริ่มต้น 0.3)."
              },
              "min_distance": {
                "label": "ระยะทางต่ำสุด",
                "description": "ระยะทางขั้นต่ำระหว่างภูมิภาค ในหน่วย CRS (ค่าเริ่มต้น 0)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "matched_filter_target_detection": {
            "name": "การตรวจจับเป้าหมายด้วยตัวกรองจับคู่ (CEM/ACE)",
            "description": "ให้คะแนนทุกพิกเซลของภาพหลายแบนด์เทียบกับสเปกตรัมเป้าหมายที่ทราบ โดยใช้สถิติของทั้งภาพเพื่อกดพื้นหลัง — Constrained Energy Minimization (CEM) หรือ Adaptive Coherence Estimator (ACE) — พร้อมมาสก์ค่าเกณฑ์เปอร์เซ็นไทล์เป็นตัวเลือก เช่นเดียวกับ ArcGIS Detect Target Using Spectra.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าแบบหลายแบนด์ (2 แบนด์ขึ้นไป)."
              },
              "target_spectrum": {
                "label": "สเปกตรัมเป้าหมาย",
                "description": "สเปกตรัมเป้าหมาย: หนึ่งค่าต่อหนึ่งแบนด์ ในรูปแบบอาร์เรย์ JSON หรือรายการที่คั่นด้วยจุลภาค/ช่องว่าง (ความยาวต้องเท่ากับจำนวนแบนด์)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์คะแนนการตรวจจับผลลัพธ์ (F32) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'cem' (Constrained Energy Minimization, ค่าเริ่มต้น) หรือ 'ace' (Adaptive Coherence Estimator, คะแนนอยู่ในช่วง 0..1)."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "เปอร์เซ็นไทล์ (0-100) ของการแจกแจงคะแนน เป็นตัวเลือก โดยค่าที่สูงกว่านี้จะถูกเขียนเป็นมาสก์การตรวจจับแบบไบนารี."
              },
              "mask_output": {
                "label": "ผลลัพธ์มาสก์",
                "description": "พาธผลลัพธ์สำหรับมาสก์การตรวจจับแบบไบนารี (ต้องระบุ 'threshold') หากไม่ระบุแต่มีค่าเกณฑ์ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "maximum_likelihood_classification": {
            "name": "การจำแนกแบบความควรจะเป็นสูงสุด",
            "description": "ตัวจำแนกแบบมีผู้สอนด้วยความควรจะเป็นสูงสุดแบบเกาส์เซียน: จำลองแต่ละคลาสฝึกสอนเป็นการแจกแจงปกติหลายตัวแปร (ค่าเฉลี่ย + ความแปรปรวนร่วมรายคลาส) จำแนกทุกพิกเซลของภาพหลายแบนด์ด้วยค่าลอการิทึมความควรจะเป็นแบบเกาส์เซียนที่สูงสุด โดยเลือกน้ำหนักความน่าจะเป็นก่อนหน้าแบบเท่ากันหรือตามจำนวนตัวอย่างได้ และสามารถสร้างแรสเตอร์ความน่าจะเป็น/ความเชื่อมั่นรายพิกเซล พร้อมปฏิเสธเซลล์ที่มีความเชื่อมั่นต่ำที่สุด เช่นเดียวกับ ArcGIS Maximum Likelihood Classification.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์ที่นำเข้าเพื่อจำแนก (1 แบนด์ขึ้นไป ทุกแบนด์ถือเป็นฟีเจอร์)."
              },
              "training": {
                "label": "ข้อมูลฝึกสอน",
                "description": "แรสเตอร์ข้อมูลฝึกสอนที่ติดป้ายกำกับด้วยจำนวนเต็มบนกริดเดียวกับ 'input': จำนวนเต็มบวกแต่ละค่าที่ต่างกันคือหนึ่งคลาส ส่วนเซลล์ NoData / ไม่เป็นบวก / ไม่จำกัดค่า ถือว่าไม่มีป้ายกำกับ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ที่จำแนกแล้วซึ่งมีรหัสคลาสจากข้อมูลฝึกสอน หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "prob_output": {
                "label": "ผลลัพธ์ความน่าจะเป็น",
                "description": "แรสเตอร์ผลลัพธ์ชนิด F32 เป็นตัวเลือก แสดงความน่าจะเป็นภายหลัง (ความเชื่อมั่น) ของคลาสที่ชนะ ในช่วง [0,1]."
              },
              "a_priori": {
                "label": "ความน่าจะเป็นก่อน",
                "description": "น้ำหนักคลาสแบบเบื้องต้น: 'equal' (ค่าเริ่มต้น, 1/K) หรือ 'sample' (เป็นสัดส่วนกับจำนวนพิกเซลฝึกสอนของแต่ละคลาส)."
              },
              "reject_fraction": {
                "label": "สัดส่วนการปฏิเสธ",
                "description": "สัดส่วนในช่วง [0,1) ของเซลล์ที่จำแนกแล้วซึ่งมีความเชื่อมั่นต่ำที่สุด ที่จะปล่อยไว้โดยไม่จำแนก (NoData) ค่าเริ่มต้น 0."
              }
            }
          },
          "median_center": {
            "name": "จุดศูนย์กลางมัธยฐาน",
            "description": "ค่ามัธยฐานเชิงเรขาคณิต (จุด Weiszfeld ที่ทำให้ผลรวมระยะทางแบบยูคลิดไปยังจุดนำเข้าทั้งหมด ซึ่งอาจถ่วงน้ำหนัก มีค่าน้อยที่สุด) — จุดศูนย์กลางที่ทนทานหนึ่งจุดต่อกลุ่มกรณี พร้อมแอตทริบิวต์ค่ามัธยฐานรายฟิลด์เป็นตัวเลือก (ArcGIS Median Center).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขเป็นตัวเลือก สำหรับถ่วงน้ำหนักแรงดึงของแต่ละจุดที่มีต่อค่ามัธยฐาน."
              },
              "case_field": {
                "label": "ฟิลด์กรณี",
                "description": "ฟิลด์เป็นตัวเลือกสำหรับจัดกลุ่มจุด หนึ่งค่ามัธยฐานต่อหนึ่งค่าที่แตกต่างกัน."
              },
              "attribute_fields": {
                "label": "ฟิลด์แอตทริบิวต์",
                "description": "ฟิลด์ตัวเลขคั่นด้วยจุลภาค เป็นตัวเลือก โดยค่ามัธยฐานรายกลุ่มของแต่ละฟิลด์จะถูกเพิ่มเป็น '<field>_med'."
              }
            }
          },
          "merge_divided_roads": {
            "name": "รวมถนนที่แบ่งช่อง",
            "description": "แทนที่คู่ช่องจราจรของถนนแยกทิศทางที่จับคู่กันได้ด้วยเส้นกึ่งกลางเส้นเดียว โดยคงความเชื่อมต่อของทางแยกไว้ จับคู่เฉพาะช่องจราจรที่มีฟิลด์การรวมร่วมกันและวิ่งสวนทางกันภายในระยะห่างที่กำหนด และสร้างโพลิกอนการเลื่อนตำแหน่งสำหรับ propagate_displacement เช่นเดียวกับ ArcGIS Merge Divided Roads.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์เส้นกึ่งกลางถนน."
              },
              "merge_field": {
                "label": "ฟิลด์รวม",
                "description": "ฟิลด์ที่มีค่าตรงกันจะทำให้สองเส้นเป็นคู่ช่องทางจราจรที่เป็นไปได้ (เช่น ชื่อถนนหรือคลาส)."
              },
              "merge_distance": {
                "label": "ระยะทางการรวม",
                "description": "ระยะห่างสูงสุดระหว่างช่องทางจราจรที่จับคู่กัน ในหน่วยแผนที่."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์ของเส้นกึ่งกลางที่รวมแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_displacement_features": {
                "label": "ผลลัพธ์ฟีเจอร์การเคลื่อนตำแหน่ง",
                "description": "โพลิกอนเป็นตัวเลือก แสดงตำแหน่งที่เรขาคณิตถูกเลื่อน สำหรับ propagate_displacement."
              },
              "character_field": {
                "label": "ฟิลด์อักขระ",
                "description": "ฟิลด์เป็นตัวเลือก ฟีเจอร์ที่มีค่าไม่เป็นศูนย์ / ไม่ว่างเปล่า จะถูกยกเว้นจากการรวม."
              },
              "output_table": {
                "label": "ตารางผลลัพธ์",
                "description": "ตารางแสดงที่มาเป็นตัวเลือก สำหรับเชื่อมโยงฟีเจอร์ผลลัพธ์กลับไปยังฟีเจอร์ต้นทาง."
              }
            }
          },
          "merge_lines_by_pseudo_node": {
            "name": "รวมเส้นด้วยโหนดเทียม",
            "description": "ยุบรวมสายโซ่ของเซกเมนต์เส้นที่บรรจบกันที่โหนดเทียมระดับ 2 ให้เป็นโพลีไลน์เดียว โดยคงจุดตัดที่แท้จริงและ (เป็นตัวเลือก) จุดเปลี่ยนแอตทริบิวต์ไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์เส้นนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือใช้ตัวอ้างอิงในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "dissolve_fields": {
                "label": "ฟิลด์ยุบรวม",
                "description": "ชื่อฟิลด์แอตทริบิวต์คั่นด้วยจุลภาค สองเซกเมนต์จะรวมกันได้ก็ต่อเมื่อมีค่าตรงกันทุกฟิลด์ หากไม่ระบุ เซกเมนต์จะรวมกันที่โหนดดีกรี 2 ทุกจุดโดยไม่คำนึงถึงแอตทริบิวต์."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "จุดปลายที่อยู่ภายในระยะนี้ (หน่วย CRS) จะถือเป็นโหนดเดียวกัน ค่าเริ่มต้น 1e-6."
              }
            }
          },
          "merge_multidimensional_rasters": {
            "name": "รวมแรสเตอร์หลายมิติ",
            "description": "เชื่อมคิวบ์แรสเตอร์หลายชุดที่ซ้อนทับตรงกันให้เป็นชุดเดียว เรียงตามพิกัดของมิติ และแก้ปัญหาพิกัดซ้ำรายเซลล์ (ArcGIS Merge Multidimensional Rasters) aggregate_multidimensional_raster ลดทอนคิวบ์ และ composite_bands ซ้อนแรสเตอร์แบนด์เดียวให้เป็นหลายแบนด์ แต่ไม่มีเครื่องมือใดเชื่อมคิวบ์ตามมิติร่วมกันได้.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธของคิวบ์ (แรสเตอร์หลายแบนด์) คั่นด้วยจุลภาคหรืออัฒภาค อย่างน้อยสองรายการ."
              },
              "dimension_values": {
                "label": "ค่ามิติ",
                "description": "พิกัดรายสไลซ์เป็นตัวเลือก ครอบคลุมทุกสไลซ์ของข้อมูลนำเข้าทุกชุด ตามลำดับที่นำเข้า ไม่จำเป็นต้องเรียงลำดับหรือไม่ซ้ำกัน เพราะนั่นคือสิ่งที่เครื่องมือนี้จัดการให้ หากไม่ระบุ ข้อมูลนำเข้าจะถูกต่อกันตามลำดับที่ให้มา."
              },
              "dimension": {
                "label": "มิติ",
                "description": "ชื่อของมิติ ใช้ในการรายงานเท่านั้น (ค่าเริ่มต้น 'slice')."
              },
              "resolve_overlap": {
                "label": "แก้ไขการซ้อนทับ",
                "description": "กฎสำหรับพิกัดที่ซ้ำกัน: 'first' (ค่าเริ่มต้น), 'last', 'mean', 'min', 'max' หรือ 'error'."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อสัมพัทธ์สำหรับถือว่าพิกัดสองค่าเท่ากัน (ค่าเริ่มต้น 1e-9)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์คิวบ์ผลลัพธ์ หนึ่งแบนด์ต่อหนึ่งสไลซ์ที่รวมแล้ว เรียงตามลำดับมิติ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "mgwr": {
            "name": "การถดถอยถ่วงน้ำหนักเชิงภูมิศาสตร์หลายมาตราส่วน",
            "description": "GWR ที่แต่ละเทอมตัวแปรอธิบายมีแบนด์วิดท์ของตัวเองผ่านการฟิตย้อนกลับด้วย AICc (MGWR): สัมประสิทธิ์รายฟีเจอร์ R2 เฉพาะที่ ค่าคงเหลือ เลขคอนดิชัน พร้อมแบนด์วิดท์ที่เหมาะที่สุดของแต่ละเทอมพร้อมการตีความระดับเฉพาะที่/ภูมิภาค/รวม และค่าวินิจฉัย AICc / R2 ระดับรวม.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์นำเข้า (จุด หรือเรขาคณิตอื่นผ่านจุดตัวแทนของฟีเจอร์นั้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "dependent_field": {
                "label": "ฟิลด์ตัวแปรตาม",
                "description": "ฟิลด์ตัวเลขของตัวแปรตาม (ตัวแปรตอบสนอง)."
              },
              "explanatory_fields": {
                "label": "ฟิลด์ตัวแปรอธิบาย",
                "description": "ฟิลด์ตัวเลขเชิงอธิบายคั่นด้วยจุลภาค แต่ละฟิลด์ปรับพอดีด้วยแบนด์วิดท์ของตัวเอง."
              },
              "kernel": {
                "label": "เคอร์เนล",
                "description": "เคอร์เนลการลดทอนตามระยะทาง: 'gaussian' (ค่าเริ่มต้น) หรือ 'bisquare'."
              },
              "bandwidth_type": {
                "label": "ชนิดแบนด์วิดท์",
                "description": "'adaptive' (ค่าเริ่มต้น; แบนด์วิดท์ = เพื่อนบ้านใกล้สุด k ตัว) หรือ 'fixed' (แบนด์วิดท์ = ระยะทาง) ใช้กับการค้นหาแบนด์วิดท์ของทุกพจน์."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อการลู่เข้าของการปรับพอดีย้อนกลับ: หยุดเมื่อการเปลี่ยนแปลงสัมพัทธ์ของ RSS ระหว่างรอบต่ำกว่าค่านี้ (ค่าเริ่มต้น 0.001)."
              },
              "max_iterations": {
                "label": "จำนวนรอบวนซ้ำสูงสุด",
                "description": "จำนวนรอบการปรับพอดีย้อนกลับสูงสุดสำหรับทุกพจน์ (ค่าเริ่มต้น 30)."
              }
            }
          },
          "minimum_bounding_volume": {
            "name": "ปริมาตรล้อมรอบเล็กสุด",
            "description": "คำนวณปริมาตรล้อมรอบเล็กสุด (คอนเวกซ์ฮัลล์ ทรงกลม หรือกล่องขอบเขต) รอบฟีเจอร์ 3 มิติ รายฟีเจอร์ รายกลุ่ม หรือทั้งหมดที่นำเข้า โดยให้ทรงตันเป็นหน้าสามเหลี่ยมที่มีค่า Z พร้อมแอตทริบิวต์ปริมาตรและพื้นที่ผิว เช่นเดียวกับ ArcGIS Minimum Bounding Volume.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์จุด มัลติพอยต์ หรือเส้นแบบ 3 มิติ ที่นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์สำหรับหน้าของปริมาตร หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "z_value": {
                "label": "ค่า Z",
                "description": "'geometry' (ค่าเริ่มต้น) เพื่อนำค่า Z จากเรขาคณิต หรือชื่อฟิลด์ตัวเลขที่ให้ค่า Z."
              },
              "geometry_type": {
                "label": "ชนิดเรขาคณิต",
                "description": "'convex_hull' (ค่าเริ่มต้น), 'sphere' หรือ 'envelope' ('concave_hull' ยังไม่รองรับในเวอร์ชันนี้)."
              },
              "group_option": {
                "label": "ตัวเลือกการจัดกลุ่ม",
                "description": "'none' (หนึ่งปริมาตรต่อหนึ่งฟีเจอร์ ค่าเริ่มต้น), 'all' (ปริมาตรเดียวครอบคลุมข้อมูลนำเข้าทั้งหมด) หรือ 'list' (หนึ่งปริมาตรต่อหนึ่งค่าของ 'group_field')."
              },
              "group_field": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "ฟิลด์ที่กำหนดกลุ่มเมื่อ 'group_option' เป็น 'list'."
              },
              "mbv_fields": {
                "label": "ฟิลด์ MBV",
                "description": "เพิ่มฟิลด์ MBV_VOLUME และ MBV_AREA (ค่าเริ่มต้น false)."
              }
            }
          },
          "multicriteria_overlay": {
            "name": "ซ้อนทับแบบหลายเกณฑ์",
            "description": "รวมสแตกของแรสเตอร์เกณฑ์ให้เป็นพื้นผิวความเหมาะสมเดียวด้วย MCDA ที่อิงอันดับ: weighted_sum, weighted_geometric_mean, OWA (การเฉลี่ยถ่วงน้ำหนักตามลำดับ) หรือ TOPSIS (ความใกล้จุดอุดมคติ) พร้อมน้ำหนักรายแรสเตอร์และการปรับสเกล from_scale/to_scale เช่นเดียวกับ ArcGIS Multicriteria Overlay.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "รายการแรสเตอร์เกณฑ์ที่ซ้อนทับตรงกันตั้งแต่ 2 รายการขึ้นไป คั่นด้วยจุลภาค (ค่ายิ่งสูงยิ่งเหมาะสม แต่ละรายการจะถูกปรับสเกลแบบ min-max เป็น 0..1 ก่อนนำมารวมกัน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีการรวม: 'weighted_sum' (ค่าเริ่มต้น), 'weighted_geometric_mean', 'owa', 'topsis'."
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "น้ำหนักความสำคัญรายแรสเตอร์คั่นด้วยจุลภาค หนึ่งค่าต่อหนึ่งข้อมูลนำเข้า (ค่าเริ่มต้นเท่ากันทุกค่า) จะถูกปรับให้ผลรวมเป็น 1."
              },
              "order_weights": {
                "label": "น้ำหนักตามอันดับ",
                "description": "ใช้กับ OWA เท่านั้น: น้ำหนักลำดับคั่นด้วยจุลภาค หนึ่งค่าต่อหนึ่งข้อมูลนำเข้า ใช้กับเกณฑ์ที่เรียงจากสูงไปต่ำในแต่ละเซลล์ (ค่าเริ่มต้นเท่ากันทุกค่า ซึ่งทำให้ OWA เท่ากับค่าเฉลี่ยถ่วงน้ำหนัก) จะถูกปรับให้ผลรวมเป็น 1."
              },
              "from_scale": {
                "label": "จากมาตราส่วน",
                "description": "ขอบล่างของสเกลการประเมินผลลัพธ์ (ค่าเริ่มต้น 0)."
              },
              "to_scale": {
                "label": "ถึงมาตราส่วน",
                "description": "ขอบบนของสเกลการประเมินผลลัพธ์ (ค่าเริ่มต้น 1)."
              }
            }
          },
          "multidimensional_anomaly": {
            "name": "สร้างความผิดปกติหลายมิติ",
            "description": "คิวบ์ความผิดปกติเชิงเวลารายสไลซ์จากสแตกแรสเตอร์อนุกรมเวลา (เช่นเดียวกับ ArcGIS Generate Multidimensional Anomaly): สำหรับแต่ละพิกเซล คำนวณเส้นฐานเชิงเวลา (ค่าเฉลี่ย/ส่วนเบี่ยงเบนมาตรฐาน หรือค่ามัธยฐานตลอดมิติสไลซ์) แล้วเขียนทุกสไลซ์เวลาใหม่เป็นค่าเบี่ยงเบนจากเส้นฐานนั้น — ผลต่างจากค่าเฉลี่ย ร้อยละของค่าเฉลี่ย ค่า z หรือผลต่างจากค่ามัธยฐาน — ให้ผลลัพธ์เป็นสแตกความผิดปกติที่มีหนึ่งสไลซ์ต่อสไลซ์นำเข้าหนึ่งสไลซ์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งชุด (แต่ละแบนด์คือหนึ่งช่วงเวลา) หรือรายการแรสเตอร์ที่ซ้อนทับตรงกันคั่นด้วยจุลภาค เรียงตามลำดับเวลา."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ค่าผิดปกติแบบหลายแบนด์ที่เป็นผลลัพธ์ (หนึ่งแบนด์ต่อหนึ่งสไลซ์ที่นำเข้า) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "การคำนวณค่าผิดปกติ: 'difference_from_mean' (ค่าเริ่มต้น), 'percent_of_mean', 'z_score' หรือ 'difference_from_median'."
              },
              "reference_range": {
                "label": "พิสัยอ้างอิง",
                "description": "ช่วงสไลซ์ 'start-end' แบบนับจาก 1 และรวมปลายทั้งสอง เป็นตัวเลือก ใช้คำนวณค่าฐานรายพิกเซล (ค่าเริ่มต้น: ทุกสไลซ์)."
              },
              "min_valid": {
                "label": "จำนวนค่าที่ถูกต้องต่ำสุด",
                "description": "จำนวนการสังเกตที่ไม่ใช่ NoData ขั้นต่ำต่อพิกเซลภายในช่วงอ้างอิง (ค่าเริ่มต้น 1) หากต่ำกว่านี้พิกเซลจะเป็น NoData."
              }
            }
          },
          "multidimensional_principal_components": {
            "name": "องค์ประกอบหลักหลายมิติ",
            "description": "แยกคิวบ์แรสเตอร์ออกเป็นโหมดที่แท้จริงไม่กี่โหมดที่เป็นพื้นฐานของอนุกรมเวลายาว โดยให้แรสเตอร์องค์ประกอบ น้ำหนักองค์ประกอบ และค่าไอเกน ในรูปแบบการลดมิติหรือการลดเชิงพื้นที่ (ArcGIS Multidimensional Principal Components) principal_component_analysis ที่มีอยู่แยกปริภูมิแบนด์ภายในภาพเดียว องค์ประกอบจึงผสมแบนด์เชิงสเปกตรัมแทนที่จะเป็นเวลา ส่วน dimension_reduction ทำงานกับตารางแอตทริบิวต์เวกเตอร์ การลดทั้งสองแบบมาจากความแปรปรวนร่วมในปริภูมิสไลซ์เดียวกัน เพราะการทำในปริภูมิพิกเซลจะได้เมทริกซ์จัตุรัสขนาดหลายล้านแถว.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายแบนด์หนึ่งไฟล์ (แต่ละแบนด์คือหนึ่งสไลซ์) หรือรายการแรสเตอร์ที่ซ้อนทับกันพอดีคั่นด้วยจุลภาค."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์หลายแบนด์ผลลัพธ์: คะแนนองค์ประกอบสำหรับ 'dimension_reduction' และค่าน้ำหนักองค์ประกอบสำหรับ 'spatial_reduction' หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_loadings": {
                "label": "ผลลัพธ์ค่าน้ำหนักองค์ประกอบ",
                "description": "ตารางผลลัพธ์ของค่าน้ำหนักองค์ประกอบรายสไลซ์ (หรืออนุกรมองค์ประกอบรายสไลซ์ในโหมด 'spatial_reduction') สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "output_eigenvalues": {
                "label": "ผลลัพธ์ค่าไอเกน",
                "description": "ตารางผลลัพธ์ของค่าไอเกนและความแปรปรวนที่แต่ละค่าอธิบายได้ สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "mode": {
                "label": "โหมด",
                "description": "'dimension_reduction' (ค่าเริ่มต้น; องค์ประกอบคือรูปแบบเชิงพื้นที่) หรือ 'spatial_reduction' (องค์ประกอบคืออนุกรมตามมิตินั้น)."
              },
              "dimension": {
                "label": "มิติ",
                "description": "ชื่อของมิติ ใช้ในรายงานเท่านั้น (ค่าเริ่มต้น 'slice')."
              },
              "dimension_values": {
                "label": "ค่ามิติ",
                "description": "พิกัดของแต่ละสไลซ์คั่นด้วยจุลภาค ต้องเพิ่มขึ้นอย่างเคร่งครัด ค่าเริ่มต้นคือดัชนีสไลซ์ที่เริ่มนับจาก 1."
              },
              "number_of_pc": {
                "label": "จำนวนองค์ประกอบหลัก",
                "description": "จำนวนองค์ประกอบที่จะเก็บไว้ (ค่าเริ่มต้น: ทุกสไลซ์)."
              },
              "correlation": {
                "label": "สหสัมพันธ์",
                "description": "แยกส่วนเมทริกซ์สหสัมพันธ์แทนเมทริกซ์ความแปรปรวนร่วม (ค่าเริ่มต้น false) ใช้เมื่อสไลซ์อยู่คนละสเกล."
              }
            }
          },
          "multidimensional_raster_correlation": {
            "name": "สหสัมพันธ์แรสเตอร์หลายมิติ",
            "description": "หาสหสัมพันธ์ระหว่างคิวบ์แรสเตอร์สองชุดทีละเซลล์ตามมิติร่วมกัน ให้ผลลัพธ์เป็นแผนที่สัมประสิทธิ์ Pearson, Spearman หรือ Kendall และ — ในโหมดสหสัมพันธ์ไขว้ — ค่าแล็กที่ความสัมพันธ์ของแต่ละเซลล์สูงสุด (ArcGIS Multidimensional Raster Correlation) ไม่มีเครื่องมือใดในทั้งสองรีจิสทรีทำแผนที่นี้ได้: image_correlation ยุบคู่ภาพให้เหลือค่าสเกลาร์เดียว time_series_cross_correlation ของรอบที่ 17 รองรับเฉพาะเวกเตอร์ attribute_correlation เป็นการดำเนินการกับตาราง และ bivariate_spatial_association เปรียบเทียบแรสเตอร์แบนด์เดียวสองชุดโดยไม่มีแกนเวลา.",
            "params": {
              "input1": {
                "label": "ข้อมูลนำเข้า 1",
                "description": "คิวบ์ชุดแรก: แรสเตอร์หลายแบนด์หนึ่งชุด (แต่ละแบนด์คือหนึ่งสไลซ์) หรือรายการแรสเตอร์ที่ซ้อนทับตรงกันคั่นด้วยจุลภาค."
              },
              "input2": {
                "label": "ข้อมูลนำเข้า 2",
                "description": "คิวบ์ชุดที่สอง ซ้อนทับตรงกันกับชุดแรกและมีจำนวนสไลซ์เท่ากัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์สหสัมพันธ์ผลลัพธ์ในช่วง [-1, 1] หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_lag": {
                "label": "ผลลัพธ์แล็ก",
                "description": "แรสเตอร์ผลลัพธ์ของค่าแล็กที่ดีที่สุดในแต่ละเซลล์ (โหมดสหสัมพันธ์ไขว้) หรือค่าแล็กคงที่ทุกเซลล์ในกรณีอื่น สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "output_count": {
                "label": "ผลลัพธ์จำนวนนับ",
                "description": "แรสเตอร์ผลลัพธ์ของจำนวนตัวอย่างคู่ที่ใช้คำนวณสัมประสิทธิ์แต่ละค่า สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "method": {
                "label": "วิธี",
                "description": "'pearson' (ค่าเริ่มต้น), 'spearman' หรือ 'kendall'."
              },
              "lag": {
                "label": "แล็ก",
                "description": "จำนวนสไลซ์คงที่ที่จะเลื่อนคิวบ์ชุดที่สองไปข้างหน้าก่อนจับคู่ (ค่าเริ่มต้น 0) จะถูกละเว้นในโหมดสหสัมพันธ์ไขว้."
              },
              "cross_correlation": {
                "label": "สหสัมพันธ์ไขว้",
                "description": "ค้นหาทุกค่าแล็กในช่วง -max_lag..=max_lag แล้วเก็บสัมประสิทธิ์ที่แรงที่สุด (ค่าเริ่มต้น false)."
              },
              "max_lag": {
                "label": "แล็กสูงสุด",
                "description": "ครึ่งความกว้างของการค้นหาแล็ก หน่วยเป็นสไลซ์ (ค่าเริ่มต้น 3) ใช้ในโหมดสหสัมพันธ์ไขว้เท่านั้น."
              },
              "use_absolute": {
                "label": "ใช้ค่าสัมบูรณ์",
                "description": "ในโหมดสหสัมพันธ์ไขว้ ให้จัดอันดับแล็กด้วยค่าสัมบูรณ์ของสหสัมพันธ์ เพื่อให้ความสัมพันธ์เชิงลบที่แรงชนะได้ (ค่าเริ่มต้น true)."
              },
              "min_valid": {
                "label": "จำนวนค่าที่ถูกต้องต่ำสุด",
                "description": "จำนวนตัวอย่างคู่ขั้นต่ำก่อนที่จะเขียนค่าสัมประสิทธิ์ (ค่าเริ่มต้น 3)."
              }
            }
          },
          "multilook": {
            "name": "มัลติลุก",
            "description": "ลดสเปกเคิลของ SAR โดยการเฉลี่ยลุคที่อยู่ติดกันในแนวระยะและแนวแอซิมัทแบบไม่อาพันธ์ ให้ภาพความเข้มที่มีพิกเซลเป็นสี่เหลี่ยมจัตุรัส (ArcGIS Multilook) ไม่มีรีจิสทรีใดมีเครื่องมือ SAR เลย ตัวกรองตระกูล lee_filter ที่มีอยู่ทำงานกับความเข้มที่ตรวจจับแล้ว เครื่องมือนี้จึงเติมขั้นตอนต้นน้ำที่เปลี่ยนข้อมูลเชิงซ้อนแบบลุคเดียวให้เป็นภาพที่ตรวจจับแล้วตามที่ตัวกรองเหล่านั้นต้องการ ข้อมูลเชิงซ้อนนำเข้าอ่านเป็นคู่ I/Q สองแบนด์ การตรวจจับเกิดขึ้นก่อนการเฉลี่ย และมีการรายงานจำนวนลุคสมมูลสำหรับการกรองสเปกเคิลในขั้นถัดไป.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ SAR ที่นำเข้า: คู่ I/Q สองแบนด์สำหรับข้อมูลเชิงซ้อน (SLC) หรือแบนด์เดียวของข้อมูลที่ตรวจจับแล้ว (ดู 'input_domain')."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "input_domain": {
                "label": "โดเมนนำเข้า",
                "description": "สำหรับข้อมูลนำเข้าที่ไม่ใช่เชิงซ้อน ระบุว่าแบนด์ 1 เก็บค่าใดอยู่: 'intensity' (ค่าเริ่มต้น) หรือ 'amplitude' แอมพลิจูดจะถูกยกกำลังสองเป็นความเข้มก่อนหาค่าเฉลี่ย เนื่องจากการเฉลี่ยแบบไม่อาพันธ์ถูกต้องเฉพาะในโดเมนความเข้มเท่านั้น."
              },
              "complex": {
                "label": "เชิงซ้อน",
                "description": "ถือว่าข้อมูลนำเข้าเป็นคู่ I/Q เชิงซ้อน (ค่าเริ่มต้น: true เมื่อแรสเตอร์มี 2 แบนด์ขึ้นไป มิฉะนั้นเป็น false)."
              },
              "range_looks": {
                "label": "จำนวนลุกในแนวพิสัย",
                "description": "จำนวนลุคในแนวระยะ (x) ค่าเริ่มต้น 1 หรือคำนวณให้เมื่อตั้งค่า auto_looks."
              },
              "azimuth_looks": {
                "label": "จำนวนลุกในแนวอะซิมัท",
                "description": "จำนวนลุคในแนวอะซิมุท (y) ค่าเริ่มต้น 1 หรือคำนวณให้เมื่อตั้งค่า auto_looks."
              },
              "auto_looks": {
                "label": "จำนวนลุกอัตโนมัติ",
                "description": "หากเป็น true (ค่าเริ่มต้น) และไม่ได้ระบุจำนวนลุคไว้อย่างชัดเจน จะคำนวณจากอัตราส่วนระยะห่างพิกเซล เพื่อให้พิกเซลภาคพื้นดินของผลลัพธ์เป็นสี่เหลี่ยมจัตุรัสโดยประมาณ."
              },
              "output_units": {
                "label": "หน่วยผลลัพธ์",
                "description": "amplitude, intensity (ค่าเริ่มต้น) หรือ db."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "mean (ค่าเริ่มต้น) หรือ median โดย median ทนทานกว่าเมื่อมีตัวกระเจิงที่แรงครอบงำหน้าต่างลุค."
              }
            }
          },
          "multipatch_footprint": {
            "name": "ขอบเขตมัลติแพตช์",
            "description": "ฉายฟีเจอร์มัลติแพตช์ 3 มิติลงบนระนาบ XY แล้วยุบรวมให้เป็นโพลิกอนขอบเขต 2 มิติ หนึ่งอันต่อฟีเจอร์หรือต่อฟิลด์กลุ่ม (ArcGIS Multipatch Footprint) layer_footprint_vector คืนค่าเป็นสี่เหลี่ยมขอบเขตเดียวของทั้งเลเยอร์ ไม่ใช่เส้นรอบรูปรายฟีเจอร์ ปัจจุบันจึงไม่มีวิธีป้อน buffer_3d / voxel_isosurface / ทรงตันอาคารที่นำเข้ามา เข้าสู่กระบวนการ regularize_building_footprints ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์มัลติแพตช์ 3 มิติ (MultiPolygon แบบเมชสามเหลี่ยมที่มีค่า Z)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "โพลิกอนรอยพื้นที่แบบ 2 มิติที่เป็นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "group_field": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "ฟิลด์เป็นตัวเลือกที่ใช้ยุบรวมรอยพื้นที่เข้าด้วยกันตามค่า (หนึ่งโพลิกอนผลลัพธ์ต่อหนึ่งค่าที่แตกต่างกัน) ค่าเริ่มต้น: หนึ่งผลลัพธ์ต่อหนึ่งฟีเจอร์นำเข้า."
              },
              "simplify_tolerance": {
                "label": "ค่าเผื่อการลดรูป",
                "description": "ค่าเผื่อแบบ Douglas-Peucker เป็นตัวเลือก (หน่วย CRS) ใช้กับรอยพื้นที่ที่ยุบรวมแล้ว โดยค่าเริ่มต้นจะไม่ใช้ เพื่อรักษาเส้นขอบดิบไว้สำหรับ regularize_building_footprints."
              }
            }
          },
          "multipatch_to_mesh": {
            "name": "มัลติแพตช์เป็นเมช",
            "description": "ส่งออกเรขาคณิตมัลติแพตช์และทรงตัน 3 มิติเป็น OBJ หรือ glTF 2.0 / GLB สำหรับโปรแกรมดู 3 มิติหรือบนเว็บ (ArcGIS Multipatch To Collada) ชุดเครื่องมือ union_3d / difference_3d / enclose_multipatch / voxel_isosurface ไม่มีเส้นทางส่งออกเลย — ไม่มีรูปแบบเมชใดในรีจิสทรี — ผลลัพธ์ 3 มิติจึงอ่านกลับได้เฉพาะด้วยแคตตาล็อกนี้เท่านั้น.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์มัลติแพตช์ / โพลิกอน 3 มิติ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ผลลัพธ์ .glb, .gltf หรือ .obj นามสกุลไฟล์จะเป็นตัวกำหนดรูปแบบ เว้นแต่จะระบุ 'format'."
              },
              "format": {
                "label": "รูปแบบ",
                "description": "'glb' (ค่าเริ่มต้นสำหรับ .glb), 'gltf' (JSON ที่ฝังบัฟเฟอร์ base64) หรือ 'obj' ค่าเริ่มต้นมาจากนามสกุลไฟล์ผลลัพธ์."
              },
              "origin": {
                "label": "จุดกำเนิด",
                "description": "การเลื่อนจุดกำเนิดเฉพาะที่: 'centroid' (ค่าเริ่มต้น), 'min_corner' หรือ 'none' จำเป็นสำหรับความแม่นยำ เนื่องจากตำแหน่งใน glTF เป็นเลขทศนิยม 32 บิต."
              },
              "y_up": {
                "label": "Y ชี้ขึ้น",
                "description": "สลับไปใช้แบบแผน Y ขึ้นของ glTF จากแบบแผน Z ขึ้นเชิงภูมิสารสนเทศ (ค่าเริ่มต้น true สำหรับ glTF/GLB และ false สำหรับ OBJ)."
              },
              "name_field": {
                "label": "ฟิลด์ชื่อ",
                "description": "แอตทริบิวต์ที่ใช้ตั้งชื่อเมชของแต่ละฟีเจอร์ในผลลัพธ์."
              }
            }
          },
          "multiple_ring_buffer": {
            "name": "บัฟเฟอร์หลายวง",
            "description": "สร้างบัฟเฟอร์ให้ฟีเจอร์ที่ระยะทางหลายค่าเป็นแถบซ้อนศูนย์กลางเดียวกัน — จานซ้อนกันหรือวงแหวนที่ไม่ซ้อนทับกัน — โดยเลือกยุบรวมรายระยะทางได้ พร้อมเก็บระยะทางของแถบเป็นแอตทริบิวต์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ที่นำเข้า (จุด เส้น หรือโพลิกอน) ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "distances": {
                "label": "ระยะทาง",
                "description": "รายการระยะบัฟเฟอร์คั่นด้วยจุลภาค หน่วยเป็นหน่วย CRS เช่น \"100,250,500\" จะเรียงจากน้อยไปมาก และตัดค่าซ้ำกับค่าที่ไม่เป็นบวกออก."
              },
              "ring_type": {
                "label": "ชนิดวง",
                "description": "'rings' (ค่าเริ่มต้น) สำหรับแถบวงแหวนที่ไม่ซ้อนทับกัน หรือ 'disks' สำหรับบัฟเฟอร์สะสมซ้อนกัน."
              },
              "dissolve": {
                "label": "ยุบรวม",
                "description": "'none' (ค่าเริ่มต้น) เก็บหนึ่งแถบต่อหนึ่งฟีเจอร์ต้นทาง ส่วน 'per_ring' จะรวมแถบของทุกฟีเจอร์ที่ระยะเดียวกันเข้าเป็นโพลิกอนเดียว."
              },
              "distance_field": {
                "label": "ฟิลด์ระยะทาง",
                "description": "ชื่อของแอตทริบิวต์ผลลัพธ์ที่เก็บระยะของแต่ละแถบ ค่าเริ่มต้นคือ 'distance'."
              }
            }
          },
          "multitemporal_coherence": {
            "name": "ความสอดคล้องหลายช่วงเวลา",
            "description": "คำนวณความอาพันธ์อินเตอร์เฟอโรเมตริกตลอดสแตกของภาพ SAR ที่ซ้อนทับตรงกัน แล้วลดทอนเป็นค่าเฉลี่ย/ต่ำสุด/สูงสุด/ส่วนเบี่ยงเบนมาตรฐาน และความชันของการสูญเสียความอาพันธ์ตามเวลา โดยเลือกสร้างคิวบ์ความอาพันธ์รายคู่ได้ (ArcGIS Generate Multitemporal Coherence) sar_coherence รองรับเพียงสองภาพเท่านั้น การเลือกตัวกระเจิงถาวรและการหาช่วงเวลาที่ความอาพันธ์เปลี่ยนแปลงจึงทำไม่ได้.",
            "params": {
              "inputs": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ SLC เชิงซ้อนที่ซ้อนทับตรงกัน คั่นด้วยจุลภาคหรืออัฒภาค (รายการละสองแบนด์: I แล้วตามด้วย Q) อย่างน้อยสองรายการ."
              },
              "dates": {
                "label": "วันที่",
                "description": "เวลาที่ได้รับข้อมูลเป็นตัวเลือก หนึ่งค่าต่อหนึ่งข้อมูลนำเข้า เป็นตัวเลขในหน่วยเดียวกัน (เช่น วัน) จำเป็นสำหรับสถิติ 'decorrelation_slope'."
              },
              "pairs": {
                "label": "คู่",
                "description": "'consecutive' (ค่าเริ่มต้น จับคู่ i กับ i+1), 'all' (ทุกคู่แบบไม่เรียงลำดับ) หรือ 'reference' (ทุกฉากเทียบกับ reference_index)."
              },
              "reference_index": {
                "label": "ดัชนีอ้างอิง",
                "description": "ดัชนีแบบนับจาก 0 ของฉากอ้างอิงสำหรับ pairs='reference' (ค่าเริ่มต้น 0)."
              },
              "window_size": {
                "label": "ขนาดหน้าต่าง",
                "description": "หน้าต่างการประมาณค่าในหน่วยเซลล์ เป็นค่าเดียวหรือ 'range,azimuth' (ค่าเริ่มต้น 5) ค่าคู่จะถูกปัดขึ้นเป็นค่าคี่."
              },
              "bias_correction": {
                "label": "การแก้ไขความเอนเอียง",
                "description": "ใช้การแก้ไขความเอนเอียงของความอาพันธ์สำหรับตัวอย่างขนาดเล็ก (ค่าเริ่มต้น true)."
              },
              "statistics": {
                "label": "สถิติ",
                "description": "คั่นด้วยจุลภาค: 'mean' (ค่าเริ่มต้น), 'min', 'max', 'std', 'decorrelation_slope' หนึ่งแบนด์ผลลัพธ์ต่อหนึ่งสถิติ เรียงตามลำดับนี้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ หนึ่งแบนด์ต่อหนึ่งสถิติที่ร้องขอ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_pairs": {
                "label": "ผลลัพธ์คู่",
                "description": "แรสเตอร์เป็นตัวเลือกสำหรับรับคิวบ์ความอาพันธ์รายคู่ หนึ่งแบนด์ต่อหนึ่งคู่."
              }
            }
          },
          "multivariate_clustering": {
            "name": "การจัดกลุ่มหลายตัวแปร",
            "description": "จัดกลุ่มฟีเจอร์เวกเตอร์ตามความคล้ายของค่าแอตทริบิวต์ที่ทำให้เป็นมาตรฐานแล้ว (k-means หรือ k-medoids ที่กำหนดค่าเริ่มต้นสุ่มได้) โดยเลือกจำนวนกลุ่มอัตโนมัติด้วยค่า pseudo-F ของ Calinski-Harabasz เมื่อไม่ได้ระบุ เช่นเดียวกับ ArcGIS Multivariate Clustering.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ที่นำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขสำหรับวิเคราะห์ คั่นด้วยจุลภาค (ปริภูมิแอตทริบิวต์ที่ใช้จัดคลัสเตอร์)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (สำเนาของข้อมูลนำเข้าพร้อม cluster_id/silhouette) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "num_clusters": {
                "label": "จำนวนกลุ่ม",
                "description": "จำนวนคลัสเตอร์ k หากไม่ระบุหรือใส่ 0 จะประเมิน k = 2..15 โดยอัตโนมัติด้วยค่า pseudo-F แบบ Calinski-Harabasz."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีจัดคลัสเตอร์: 'kmeans' (ค่าเริ่มต้น) หรือ 'kmedoids' (PAM เหมาะกับจำนวนฟีเจอร์ที่น้อยกว่า)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการกำหนดค่าตั้งต้นแบบ k-means++ / เมดอยด์ ให้ผลเหมือนเดิมทุกครั้ง (ค่าเริ่มต้น 1)."
              }
            }
          },
          "near_3d": {
            "name": "ใกล้ที่สุด 3 มิติ",
            "description": "ค้นหาฟีเจอร์ที่ใกล้ที่สุดด้วยระยะทาง 3 มิติจริง พร้อมรายงานระยะทาง ตำแหน่งที่ใกล้ที่สุด มุม และผลต่างรายแกน เช่นเดียวกับ ArcGIS Near 3D.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์ที่นำเข้า (จุดยอด 3 มิติ หากไม่มีค่า Z จะถือเป็น 0)."
              },
              "near_features": {
                "label": "ฟีเจอร์ใกล้เคียง",
                "description": "รายการเลเยอร์ที่จะใช้ค้นหา คั่นด้วยจุลภาค หากไม่ระบุ จะเชื่อมกับเลเยอร์ที่นำเข้าเอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "พิจารณาเฉพาะฟีเจอร์ที่อยู่ใกล้ภายในระยะทาง 3 มิตินี้ (หน่วยแผนที่) หากไม่ระบุ จะไม่จำกัดระยะ."
              },
              "location": {
                "label": "ตำแหน่ง",
                "description": "เพิ่มพิกัดของจุดที่ใกล้ที่สุดเป็น near_x / near_y / near_z (ค่าเริ่มต้น false)."
              },
              "angle": {
                "label": "มุม",
                "description": "เพิ่มมุมทิศแนวราบ (near_bearing องศาจากทิศเหนือ) และมุมแนวดิ่ง (near_vert_angle องศาจากแนวราบ) ไปยังจุดที่ใกล้ที่สุด (ค่าเริ่มต้น false)."
              },
              "delta": {
                "label": "เดลตา",
                "description": "เพิ่มออฟเซ็ตรายแกน near_dx / near_dy / near_dz (ค่าเริ่มต้น false)."
              }
            }
          },
          "neighborhood_summary_statistics": {
            "name": "สถิติสรุปตามบริเวณใกล้เคียง",
            "description": "สำหรับแต่ละฟีเจอร์ สรุปฟิลด์เชิงตัวเลขที่เลือกจากเพื่อนบ้าน (k ใกล้สุด ภายในระยะทาง หรือการประชิดที่ใช้ขอบร่วมกัน) โดยเพิ่ม <field>_nbr_mean/median/std/min/max/sum และจำนวนเพื่อนบ้าน เช่นเดียวกับ ArcGIS Neighborhood Summary Statistics.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (จุด เส้น หรือโพลิกอน)."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขคั่นด้วยจุลภาคที่จะสรุปค่าจากเพื่อนบ้าน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (สำเนาข้อมูลนำเข้า + คอลัมน์สถิติของเพื่อนบ้าน) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "neighborhood": {
                "label": "บริเวณใกล้เคียง",
                "description": "'knn' (ค่าเริ่มต้น), 'distance_band' หรือ 'contiguity' (โพลิกอนที่ใช้ขอบร่วมกัน)."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "ค่า k สำหรับ knn (ค่าเริ่มต้น 8)."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "ระยะแถบสำหรับ distance_band (หน่วยแผนที่)."
              },
              "weights": {
                "label": "น้ำหนัก",
                "description": "'uniform' (ค่าเริ่มต้น) หรือ 'inverse_distance' (ถ่วงน้ำหนักค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐาน)."
              }
            }
          },
          "non_maximum_suppression": {
            "name": "การกดค่าที่ไม่ใช่ค่าสูงสุด",
            "description": "เก็บผลการตรวจจับที่มีความเชื่อมั่นสูงสุดในแต่ละกลุ่มที่ซ้อนทับกัน และทิ้งโพลิกอนที่มีคะแนนต่ำกว่าซึ่งมีค่า intersection-over-union เกินค่าเกณฑ์ (เช่นเดียวกับ ArcGIS Non Maximum Suppression) — เป็นตัวกำจัดรายการซ้ำที่อิงคะแนนสำหรับผลลัพธ์การตรวจจับวัตถุ/OBIA ที่ count_overlapping_features (นับและเก็บทั้งหมด) resolve_building_conflicts (เลื่อนตำแหน่ง) และ find_identical (ตรงกันพอดีเท่านั้น) ไม่รองรับ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "โพลิกอนการตรวจจับที่นำเข้า (อาจซ้อนทับกันได้)."
              },
              "confidence_score_field": {
                "label": "ฟิลด์คะแนนความเชื่อมั่น",
                "description": "ฟิลด์ตัวเลขที่เก็บค่าความเชื่อมั่น/คะแนนของแต่ละการตรวจจับ ค่าที่สูงกว่าจะชนะ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธโพลิกอนผลลัพธ์ที่มีการตรวจจับที่เหลืออยู่ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "max_overlap_ratio": {
                "label": "อัตราส่วนการซ้อนทับสูงสุด",
                "description": "ค่า IoU ที่สูงกว่านี้จะทำให้การตรวจจับที่มีคะแนนต่ำกว่าถูกระงับ (0-1 ค่าเริ่มต้น 0.5)."
              },
              "class_value_field": {
                "label": "ฟิลด์ค่าคลาส",
                "description": "ฟิลด์เป็นตัวเลือก การตรวจจับจะระงับกันเองเฉพาะเมื่ออยู่ในคลาสเดียวกัน."
              }
            }
          },
          "observer_points": {
            "name": "จุดผู้สังเกต",
            "description": "ระบุว่าผู้สังเกตรายใดจากทั้งหมดไม่เกิน 32 รายมองเห็นแต่ละเซลล์ได้ ในรูปมาสก์บิตรายผู้สังเกต และเขียนแรสเตอร์ระดับเหนือพื้นดินที่บอกว่าเป้าหมายต้องถูกยกสูงขึ้นเท่าใดจึงจะมองเห็นได้ (ArcGIS Observer Points / Viewshed 2 ในโหมด OBSERVERS) viewshed ที่มีอยู่คืนค่าเพียงจำนวนสถานีที่มองเห็นได้ ซึ่งกู้คำตอบทั้งสองอย่างกลับมาไม่ได้: จำนวน 1 ไม่ได้บอกว่าเสาต้นใดครอบคลุมแปลงที่ดิน และจำนวน 0 ก็ไม่ได้แยกความต่างระหว่างสูงไม่พอสองเมตรกับอยู่หลังภูเขา.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ระดับความสูงที่นำเข้า (DEM หรือ DSM)."
              },
              "observers": {
                "label": "ผู้สังเกต",
                "description": "เลเยอร์จุดของตำแหน่งผู้สังเกต ไม่เกิน 32 จุด."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์การมองเห็นที่เป็นผลลัพธ์: บิตมาสก์ของผู้สังเกต หรือค่าจำนวนนับเมื่อ analysis_type เป็น 'frequency' หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_agl": {
                "label": "ผลลัพธ์ AGL",
                "description": "แรสเตอร์ผลลัพธ์ระดับเหนือพื้นดิน: ความสูงที่เป้าหมายต้องถูกยกขึ้นเพื่อให้มองเห็นได้ สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "output_table": {
                "label": "ตารางผลลัพธ์",
                "description": "ตารางผลลัพธ์ที่มีหนึ่งแถวต่อหนึ่งผู้สังเกต พร้อมจำนวนเซลล์และพื้นที่ที่มองเห็นได้ สร้างขึ้นเสมอ และเก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "analysis_type": {
                "label": "ชนิดการวิเคราะห์",
                "description": "'observers' (ค่าเริ่มต้น; เป็นบิตมาสก์) หรือ 'frequency' (เป็นจำนวนนับ ให้ผลตรงกับเครื่องมือ viewshed ที่มาพร้อมกัน)."
              },
              "observer_offset": {
                "label": "ออฟเซ็ตผู้สังเกต",
                "description": "ความสูงของผู้สังเกตแต่ละรายเหนือพื้นผิว ในหน่วย z (ค่าเริ่มต้น 2.0)."
              },
              "observer_offset_field": {
                "label": "ฟิลด์ออฟเซ็ตผู้สังเกต",
                "description": "แอตทริบิวต์ที่เก็บความสูงรายผู้สังเกต ซึ่งจะแทนที่ค่า 'observer_offset'."
              },
              "target_offset": {
                "label": "ออฟเซ็ตเป้าหมาย",
                "description": "ความสูงของเป้าหมายเหนือพื้นผิว ในหน่วย z (ค่าเริ่มต้น 0.0)."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ไม่พิจารณาเซลล์ที่อยู่ไกลจากผู้สังเกตเกินระยะนี้ ในหน่วยแผนที่ ค่าเริ่มต้นคือไม่จำกัด."
              },
              "curvature": {
                "label": "ความโค้ง",
                "description": "ใช้การแก้ไขความโค้งของโลกและการหักเหของแสง (ค่าเริ่มต้น false คือถือว่าโลกแบน)."
              },
              "refractivity_coefficient": {
                "label": "สัมประสิทธิ์การหักเห",
                "description": "สัมประสิทธิ์การหักเหของบรรยากาศที่ใช้ร่วมกับ 'curvature' (ค่าเริ่มต้น 0.13)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของแรสเตอร์ระดับความสูงแบบนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "optics_clustering": {
            "name": "การจัดกลุ่มแบบ OPTICS",
            "description": "การจัดกลุ่มตามความหนาแน่นหลายมาตราส่วนด้วย OPTICS (เช่นเดียวกับตัวเลือก OPTICS ของ ArcGIS Density-based Clustering): สร้างลำดับความเข้าถึงได้และสกัดคลัสเตอร์ที่มีความหนาแน่นต่างกันด้วยวิธี ξ-steep — เป็นสมาชิกแบบหลายมาตราส่วนของกลุ่มสามอย่าง DBSCAN/HDBSCAN/OPTICS ที่ dbscan และ hdbscan ที่เขียนไว้ไม่ครอบคลุม.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า (CRS แบบฉายภาพ ระยะทางอยู่ในหน่วยของ CRS นั้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (สำเนาของข้อมูลนำเข้าพร้อมฟิลด์คลัสเตอร์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "min_features_cluster": {
                "label": "จำนวนฟีเจอร์ต่ำสุดต่อกลุ่ม",
                "description": "จำนวนจุดขั้นต่ำสำหรับการประมาณความหนาแน่นด้วยระยะแกนกลาง และขนาดคลัสเตอร์ที่เล็กที่สุด (>= 2) ค่าเริ่มต้น 5."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะการเข้าถึงสูงสุด (max epsilon) เป็นตัวเลือก ค่าเริ่มต้น: ไม่จำกัด (ทุกสเกล)."
              },
              "cluster_sensitivity": {
                "label": "ความไวการจัดกลุ่ม",
                "description": "0-100 ค่ายิ่งสูงยิ่งตรวจพบคลัสเตอร์มากขึ้น/กระชับขึ้น แปลงเป็น xi = 1 - sensitivity/100 ค่าเริ่มต้น 95 (xi = 0.05)."
              }
            }
          },
          "optimal_corridor_connections": {
            "name": "การเชื่อมต่อทางเดินเชื่อมที่เหมาะสมที่สุด",
            "description": "คำนวณโครงข่ายโพลิกอนทางเชื่อมต้นทุนต่ำสุดที่มีความกว้างคงที่ ซึ่งเชื่อมทุกภูมิภาคนำเข้าเข้าด้วยกันอย่างเหมาะที่สุดข้ามพื้นผิวต้นทุน พร้อมเส้นกึ่งกลางของทางเชื่อม ต่างจาก cost_connectivity (เส้นที่ไม่มีความกว้าง) หรือ corridor (พื้นผิวต้นทุนของคู่เดียว) เครื่องมือนี้ให้โพลิกอนทางเชื่อมที่พร้อมใช้งานสำหรับทั้งโครงข่ายภูมิภาค เช่นเดียวกับ ArcGIS Optimal Corridor Connections.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์โพลิกอนของภูมิภาคที่จะเชื่อมต่อกัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธโพลิกอนคอร์ริดอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "cost_raster": {
                "label": "แรสเตอร์ต้นทุน",
                "description": "พื้นผิวต้นทุนเป็นตัวเลือก หากไม่ระบุ ต้นทุนจะสม่ำเสมอ (แบบยุคลิด)."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "ฟีเจอร์โพลิกอนเป็นตัวเลือก ที่ถือว่าผ่านไม่ได้."
              },
              "corridor_width": {
                "label": "ความกว้างทางเดินเชื่อม",
                "description": "ความกว้างคอร์ริดอร์ในหน่วยแผนที่ (ค่าเริ่มต้น: 10 เซลล์)."
              },
              "output_lines": {
                "label": "ผลลัพธ์เส้น",
                "description": "พาธเป็นตัวเลือกสำหรับเส้นกึ่งกลางคอร์ริดอร์."
              },
              "neighbor_option": {
                "label": "ตัวเลือกเพื่อนบ้าน",
                "description": "'spanning_tree' (ค่าเริ่มต้น) เก็บเฉพาะคอร์ริดอร์ที่จำเป็นต่อการเชื่อมทุกภูมิภาค ส่วน 'all_pairs' จะสร้างคอร์ริดอร์สำหรับทุกคู่ภูมิภาค."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์สำหรับการวิเคราะห์เมื่อไม่ได้ระบุแรสเตอร์ต้นทุน (ค่าเริ่มต้น: ขอบเขตของภูมิภาค / 200)."
              }
            }
          },
          "optimal_interpolation": {
            "name": "การประมาณค่าที่เหมาะสมที่สุด",
            "description": "แก้ไขสนามแรสเตอร์พื้นหลังด้วยค่าสังเกตแบบจุดผ่านขั้นตอนวิเคราะห์แบบการประมาณค่าเหมาะที่สุด/การผสานข้อมูล x_a = x_b + B Hᵀ (H B Hᵀ + R)⁻¹ (y − H x_b) โดยใช้สหสัมพันธ์เชิงพื้นที่แบบเกาส์เซียนตามความยาวสหสัมพันธ์ที่กำหนด และความแปรปรวนของความคลาดเคลื่อนรายค่าสังเกต/พื้นหลัง (เช่นเดียวกับ Optimal Interpolation ของ ArcGIS) ต่างจาก IDW/คริกกิง/EBK ที่ประมาณค่าจากจุดเพียงอย่างเดียว เครื่องมือนี้ผสมสนามกริดตั้งต้นกับค่าสังเกต และสามารถสร้างแรสเตอร์ความแปรปรวนของความคลาดเคลื่อนจากการวิเคราะห์ได้.",
            "params": {
              "background": {
                "label": "พื้นหลัง",
                "description": "ฟิลด์แรสเตอร์พื้นหลัง (ค่าก่อนหน้า) ที่จะถูกแก้ไข."
              },
              "observations": {
                "label": "ค่าสังเกต",
                "description": "เลเยอร์จุดสังเกตการณ์."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขบนเลเยอร์สังเกตการณ์ที่เก็บค่าที่สังเกตได้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ที่แก้ไขแล้ว (การวิเคราะห์) ที่เป็นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "correlation_length": {
                "label": "ความยาวสหสัมพันธ์",
                "description": "ความยาวสหสัมพันธ์เชิงพื้นที่ L ในหน่วย CRS (แบบเกาส์เซียน) ค่าเริ่มต้น: 5% ของด้านที่ยาวกว่าของพื้นหลัง."
              },
              "background_error_variance": {
                "label": "ความแปรปรวนความคลาดเคลื่อนพื้นหลัง",
                "description": "ความแปรปรวนของความคลาดเคลื่อนพื้นหลัง σ_b² (ค่าเริ่มต้น 1.0) ค่ายิ่งมากยิ่งเชื่อถือข้อมูลสังเกตการณ์มากขึ้น."
              },
              "obs_error_variance": {
                "label": "ความแปรปรวนความคลาดเคลื่อนค่าสังเกต",
                "description": "ความแปรปรวนของความคลาดเคลื่อนการสังเกตการณ์ σ_o² (ค่าเริ่มต้น 1.0) ใช้เมื่อไม่ได้ระบุฟิลด์ความคลาดเคลื่อนรายจุด ค่ายิ่งมากยิ่งเชื่อถือค่าพื้นหลังมากขึ้น."
              },
              "error_field": {
                "label": "ฟิลด์ความคลาดเคลื่อน",
                "description": "ฟิลด์เป็นตัวเลือกบนเลเยอร์สังเกตการณ์ที่ให้ค่าความแปรปรวนของความคลาดเคลื่อนของแต่ละจุด (แทนที่ obs_error_variance เมื่อมีค่าและมากกว่า 0)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์พื้นหลังแบบนับจาก 1 ที่จะแก้ไข (ค่าเริ่มต้น 1)."
              },
              "max_obs": {
                "label": "จำนวนค่าสังเกตสูงสุด",
                "description": "จำนวนข้อมูลสังเกตการณ์ที่ใกล้ที่สุดสูงสุดที่ใช้ในการแก้สมการเฉพาะที่ของแต่ละเซลล์ (ค่าเริ่มต้น 50 ช่วง 1..=200)."
              },
              "analysis_error": {
                "label": "ความคลาดเคลื่อนการวิเคราะห์",
                "description": "แรสเตอร์ผลลัพธ์เป็นตัวเลือก แสดงความแปรปรวนของความคลาดเคลื่อนการวิเคราะห์ σ_a² (≤ σ_b²)."
              }
            }
          },
          "optimal_path_as_line": {
            "name": "เส้นทางที่เหมาะสมที่สุดเป็นเส้น",
            "description": "ติดตามแรสเตอร์ลิงก์ย้อนกลับตามต้นทุนจากแต่ละจุดปลายทางกลับไปยังแหล่งต้นทาง แล้วสร้างเส้นทางต้นทุนต่ำสุดเป็นโพลีไลน์ (ArcGIS Optimal Path As Line / Cost Path As Polyline) cost_pathway ทำเครื่องหมายเส้นทางเป็นเซลล์แรสเตอร์เท่านั้น และ cost_connectivity ครอบคลุมเฉพาะกรณีโครงข่าย N จุด เส้นทางจากต้นทางไปปลายทางแบบธรรมดาจึงไม่มีรูปแบบเวกเตอร์.",
            "params": {
              "destination": {
                "label": "ปลายทาง",
                "description": "ปลายทางที่จะลากเส้นทางย้อนกลับ: แรสเตอร์ (เซลล์ใดก็ตามที่ไม่เป็นศูนย์และไม่ใช่ NoData) หรือเลเยอร์เวกเตอร์ชนิดจุด/มัลติพอยต์."
              },
              "backlink": {
                "label": "ลิงก์ย้อนกลับ",
                "description": "แรสเตอร์ทิศทางย้อนกลับจาก cost_back_link (0 = ต้นทาง, 1-8 = ทิศทางไปยังต้นทาง โดย 1 = ทิศตะวันออก นับทวนเข็มนาฬิกา)."
              },
              "accumulation": {
                "label": "การสะสม",
                "description": "แรสเตอร์ต้นทุนสะสมเป็นตัวเลือก (out_distance ของ cost_back_link) ให้ค่าต้นทุนรวมของแต่ละเส้นทาง และจำเป็นสำหรับ path_type แบบ 'each_zone' และ 'best_single'."
              },
              "path_type": {
                "label": "ชนิดเส้นทาง",
                "description": "หนึ่งใน 'each_cell' (ค่าเริ่มต้น หนึ่งเส้นทางต่อหนึ่งเซลล์ปลายทาง), 'each_zone' (หนึ่งเส้นทางต่อหนึ่งโซนปลายทาง เริ่มจากเซลล์ที่มีต้นทุนต่ำสุด) หรือ 'best_single' (เส้นทางเดียวที่มีต้นทุนต่ำที่สุด)."
              },
              "zone_field": {
                "label": "ฟิลด์โซน",
                "description": "แอตทริบิวต์ที่เก็บรหัสโซนสำหรับปลายทางแบบเวกเตอร์เมื่อ path_type เป็น 'each_zone' ส่วนปลายทางแบบแรสเตอร์จะใช้ค่าของเซลล์เป็นโซน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เส้นหลายส่วนที่เป็นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "optimized_hot_spot_analysis": {
            "name": "การวิเคราะห์จุดร้อนแบบปรับให้เหมาะสม",
            "description": "รวมกลุ่มเหตุการณ์อัตโนมัติ เลือกแถบระยะทางสำหรับการวิเคราะห์อัตโนมัติ รัน Getis-Ord Gi* และรายงานถังจุดร้อน/จุดเย็นที่ปรับแก้ด้วย FDR (เช่นเดียวกับ ArcGIS Optimized Hot Spot Analysis) — เป็นตัวห่อกระบวนการที่ getis_ord_gi_star แบบดิบที่มีอยู่ยังขาด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์ที่นำเข้า (จุดเหตุการณ์ หรือฟีเจอร์ที่มีฟิลด์สำหรับวิเคราะห์)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์จุดผลลัพธ์พร้อมผลลัพธ์ Gi* หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "analysis_field": {
                "label": "ฟิลด์วิเคราะห์",
                "description": "ฟิลด์ตัวเลขที่จะวิเคราะห์ (ถ่วงน้ำหนัก ไม่มีการรวมกลุ่ม) หากไม่ระบุ จะนับจำนวนเหตุการณ์."
              },
              "aggregation": {
                "label": "การรวมกลุ่ม",
                "description": "การรวมกลุ่มเหตุการณ์เมื่อไม่ได้ระบุ analysis_field: 'fishnet' (นับด้วยกริด ค่าเริ่มต้น) หรือ 'snap' (รวมจุดที่ทับกันพอดี)."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์รวมกลุ่ม/ระยะสแนป ในหน่วย CRS ค่าเริ่มต้น: ด้านที่ยาวกว่าของขอบเขต / 30."
              },
              "distance_band": {
                "label": "แถบระยะทาง",
                "description": "แถบระยะทางสำหรับวิเคราะห์ ในหน่วย CRS ค่าเริ่มต้น: เลือกอัตโนมัติจากความเข้มของการจับกลุ่มสูงสุด."
              }
            }
          },
          "optimized_outlier_analysis": {
            "name": "การวิเคราะห์ค่าผิดปกติแบบปรับให้เหมาะสม",
            "description": "รวมกลุ่มเหตุการณ์อัตโนมัติ เลือกแถบระยะทางสำหรับการวิเคราะห์อัตโนมัติ รัน Anselin Local Moran's I และรายงานชนิดคลัสเตอร์/ค่าผิดปกติ (HH/LL/HL/LH) ที่ปรับแก้ด้วย FDR — เช่นเดียวกับ ArcGIS Optimized Outlier Analysis เป็นตัวห่อ Local Moran แบบไม่อิงเวลาที่ local_morans_i_lisa แบบดิบที่มีอยู่และ local_outlier_analysis เชิงพื้นที่-เวลาไม่รองรับ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์ที่นำเข้า (จุดเหตุการณ์ หรือฟีเจอร์ที่มีฟิลด์สำหรับวิเคราะห์)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์จุดผลลัพธ์พร้อมผลลัพธ์ Local Moran หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "analysis_field": {
                "label": "ฟิลด์วิเคราะห์",
                "description": "ฟิลด์ตัวเลขที่จะวิเคราะห์ (ถ่วงน้ำหนัก ไม่มีการรวมกลุ่ม) หากไม่ระบุ จะนับจำนวนเหตุการณ์."
              },
              "aggregation": {
                "label": "การรวมกลุ่ม",
                "description": "การรวมกลุ่มเหตุการณ์เมื่อไม่ได้ระบุ analysis_field: 'fishnet' (นับด้วยกริด ค่าเริ่มต้น) หรือ 'snap' (รวมจุดที่ทับกันพอดี)."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์รวมกลุ่ม/ระยะสแนป ในหน่วย CRS ค่าเริ่มต้น: ด้านที่ยาวกว่าของขอบเขต / 30."
              },
              "distance_band": {
                "label": "แถบระยะทาง",
                "description": "แถบระยะทางสำหรับวิเคราะห์ ในหน่วย CRS ค่าเริ่มต้น: เลือกอัตโนมัติจากความเข้มของการจับกลุ่มสูงสุด."
              },
              "fdr_alpha": {
                "label": "Alpha ของ FDR",
                "description": "ระดับ False Discovery Rate สำหรับนัยสำคัญของ COType (ค่าเริ่มต้น 0.05)."
              }
            }
          },
          "ordinary_cokriging": {
            "name": "การประมาณค่าแบบโคคริกกิงสามัญ",
            "description": "ทำการประมาณค่าเชิงพื้นที่แบบหลายตัวแปรโดยใช้ตัวแปรเสริมเพื่อปรับปรุงการทำนายตัวแปรหลัก เหมาะเมื่อข้อมูลหลักเบาบางแต่มีข้อมูลรองที่สัมพันธ์กันอยู่มาก.",
            "params": {
              "primary_points": {
                "label": "จุดหลัก",
                "description": "เลเยอร์เวกเตอร์ที่มีจุดฝึกสอนของตัวแปรหลัก"
              },
              "primary_field": {
                "label": "ฟิลด์หลัก",
                "description": "ฟิลด์ที่มีค่าของตัวแปรหลัก"
              },
              "auxiliary_inputs": {
                "label": "ข้อมูลนำเข้าเสริม",
                "description": "รายการพาธไฟล์ของตัวแปรเสริม คั่นด้วยจุลภาค"
              },
              "auxiliary_fields": {
                "label": "ฟิลด์เสริม",
                "description": "ชื่อฟิลด์สำหรับตัวแปรเสริม คั่นด้วยจุลภาค (เว้นว่างไว้สำหรับแรสเตอร์)"
              },
              "template_raster": {
                "label": "แรสเตอร์แม่แบบ",
                "description": "แรสเตอร์ต้นแบบที่กำหนดกริดผลลัพธ์และ CRS"
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ที่ผ่านการคริกกิง"
              },
              "output_variance": {
                "label": "ผลลัพธ์ความแปรปรวน",
                "description": "พาธแรสเตอร์ความแปรปรวนของการคริกกิงที่เป็นผลลัพธ์ เป็นตัวเลือก"
              },
              "neighborhood_size": {
                "label": "ขนาดบริเวณใกล้เคียง",
                "description": "จำนวนเพื่อนบ้านใกล้ที่สุดสำหรับการโคคริกกิงเฉพาะที่ (ค่าเริ่มต้น: ทั้งหมด)"
              }
            }
          },
          "pairwise_comparison_weights": {
            "name": "น้ำหนักจากการเปรียบเทียบเป็นคู่",
            "description": "หาน้ำหนักของเกณฑ์จากเมทริกซ์การเปรียบเทียบเป็นคู่แบบ AHP (มาตรา Saaty 1-9) ในรูปเวกเตอร์ไอเกนหลักที่ทำให้เป็นมาตรฐานแล้ว พร้อมการตรวจสอบความสอดคล้อง (lambda_max, ดัชนีความสอดคล้อง, อัตราส่วนความสอดคล้อง) — เช่นเดียวกับ ArcGIS Assign Weights By Pairwise Comparison.",
            "params": {
              "matrix": {
                "label": "เมทริกซ์",
                "description": "เมทริกซ์เปรียบเทียบแบบส่วนกลับขนาด n x n ในรูปแบบอาร์เรย์ 2 มิติของ JSON เช่น [[1,3,5],[0.333,1,2],[0.2,0.5,1]] ระบุค่านี้หรือ `input` อย่างใดอย่างหนึ่ง."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ไฟล์ CSV ที่เก็บเมทริกซ์เปรียบเทียบ (แถวตัวเลขล้วน หรือมีป้ายกำกับด้วยแถวหัวตารางและคอลัมน์ชื่อนำหน้า) ระบุค่านี้หรือ `matrix` อย่างใดอย่างหนึ่ง."
              },
              "criteria": {
                "label": "เกณฑ์",
                "description": "ชื่อเกณฑ์คั่นด้วยจุลภาค (ต้องตรงกับลำดับในเมทริกซ์) จะแทนที่ป้ายกำกับใน CSV ค่าเริ่มต้นคือ C1..Cn."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์ — เป็นไฟล์ CSV (นามสกุล .csv) หรือตารางเวกเตอร์ที่ไม่มีเรขาคณิต (criterion, weight, rank) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "path_distance": {
            "name": "ระยะทางตามเส้นทาง",
            "description": "ระยะทางต้นทุนต่ำสุดสะสมที่แต่ละก้าวคิดระยะทางบนพื้นผิว 3 มิติจริง (จาก DEM) คูณด้วยตัวคูณแนวดิ่งที่ขึ้นกับความลาดชัน (Tobler hiking, เชิงเส้น, ไบนารี) คูณด้วยความเสียดทาน เช่นเดียวกับ ArcGIS Path Distance.",
            "params": {
              "source": {
                "label": "ต้นทาง",
                "description": "แรสเตอร์ต้นทาง เซลล์ที่มีค่าเป็นบวกและไม่ใช่ NoData จะเป็นจุดกำเนิด (ต้นทุนสะสมเท่ากับ 0)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ต้นทุนสะสมที่เป็นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "cost": {
                "label": "ต้นทุน",
                "description": "แรสเตอร์ความเสียดทาน/ต้นทุนการเคลื่อนผ่านเป็นตัวเลือก (ค่าเริ่มต้นสม่ำเสมอเท่ากับ 1)."
              },
              "surface": {
                "label": "พื้นผิว",
                "description": "แรสเตอร์ระดับความสูง (DEM) เป็นตัวเลือก ช่วยให้คำนวณระยะทางบนพื้นผิว 3 มิติ และตัวคูณแนวดิ่งตามความลาดชันได้."
              },
              "vertical_factor": {
                "label": "ตัวประกอบแนวดิ่ง",
                "description": "'tobler' (ค่าเริ่มต้น), 'linear', 'sym_linear', 'inverse_linear' หรือ 'binary'."
              },
              "slope_factor": {
                "label": "ตัวประกอบความลาดชัน",
                "description": "สัมประสิทธิ์การลงโทษตามความลาดชันสำหรับตัวคูณเชิงเส้น (ค่าเริ่มต้น 1)."
              },
              "zero_factor": {
                "label": "ตัวประกอบศูนย์",
                "description": "ค่าต่ำสุดของตัวคูณแนวดิ่ง (ลงเนิน) สำหรับ linear/inverse_linear (ค่าเริ่มต้น 0.1)."
              },
              "max_slope": {
                "label": "ความลาดชันสูงสุด",
                "description": "สำหรับ 'binary': ความลาดชันที่ชันกว่าค่าองศานี้จะถือว่าผ่านไม่ได้ (ค่าเริ่มต้น 30)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์แบบนับจาก 1 สำหรับแรสเตอร์ทุกชุด (ค่าเริ่มต้น 1)."
              }
            }
          },
          "percentile_contours": {
            "name": "เส้นชั้นเปอร์เซ็นไทล์",
            "description": "สร้างโพลิกอนซ้อนกันที่ล้อมรอบเซลล์ที่มีค่าสุดขั้วที่สุดของพื้นผิว โดยกำหนดค่าเกณฑ์ตามเปอร์เซ็นไทล์ของค่าหรือเปอร์เซ็นไทล์ของมวลสะสม (ปริมาตร).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์พื้นผิวต่อเนื่องที่นำเข้า (ความหนาแน่น ความเหมาะสม ระดับความสูง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "percentiles": {
                "label": "เปอร์เซ็นไทล์",
                "description": "เปอร์เซ็นไทล์ในช่วง [0,100] คั่นด้วยจุลภาค (เช่น \"50,90,95\") ค่าเริ่มต้น \"90\"."
              },
              "mode": {
                "label": "โหมด",
                "description": "'value' (ค่าเริ่มต้น): เซลล์ที่มีค่าเท่ากับหรือสูงกว่าค่าเปอร์เซ็นไทล์ที่ p ส่วน 'volume': เซลล์ที่มีค่าสูงสุดซึ่งรวมกันเป็น (100-p)% แรกของค่าสะสม."
              },
              "ignore_negative": {
                "label": "ละเว้นค่าติดลบ",
                "description": "ไม่นำค่าเซลล์ที่เป็นลบมาจัดอันดับและแสดงในผลลัพธ์ ค่าเริ่มต้น false."
              },
              "smooth": {
                "label": "ทำให้เรียบ",
                "description": "ลดรูปโพลิกอนตามขอบเซลล์ด้วยวิธี Douglas-Peucker (ค่าเผื่อประมาณ 1.5 เซลล์) เพื่อลดลักษณะขั้นบันได ค่าเริ่มต้น false."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "pivot_table": {
            "name": "ตารางไพวอต",
            "description": "เปลี่ยนรูปตารางแอตทริบิวต์จากรูปแบบยาวเป็นรูปแบบกว้าง: หนึ่งแถวผลลัพธ์ต่อหนึ่งชุดผสมที่ไม่ซ้ำกันของฟิลด์ระบุตัวตน และหนึ่งคอลัมน์ต่อค่าที่แตกต่างกันของฟิลด์หมุน โดยเติมค่าจากฟิลด์ค่า เช่นเดียวกับ ArcGIS Pivot Table.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์หรือตารางแอตทริบิวต์ที่นำเข้าในรูปแบบยาว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์คั่นด้วยจุลภาค/อัฒภาคที่ระบุแถวผลลัพธ์ จะถูกส่งต่อไปโดยไม่เปลี่ยนแปลง."
              },
              "pivot_field": {
                "label": "ฟิลด์ไพวอต",
                "description": "ฟิลด์ที่ค่าต่าง ๆ จะกลายเป็นคอลัมน์ใหม่."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ที่ให้ค่าของเซลล์."
              },
              "aggregate": {
                "label": "รวมกลุ่ม",
                "description": "ใช้เมื่อเซลล์แถว/คอลัมน์หนึ่งมีระเบียนต้นทางหลายรายการ: 'first' (ค่าเริ่มต้น), 'sum', 'mean', 'min', 'max', 'count'."
              }
            }
          },
          "pmtiles_extract": {
            "name": "สกัด PMTiles",
            "description": "สกัดชุดย่อยตามกล่องขอบเขต/ระดับซูมของคลัง PMTiles ออกเป็นคลังใหม่ (เช่น แผนที่ฐานสำหรับใช้งานออฟไลน์จากไฟล์ planet ของ Protomaps).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์ .pmtiles ที่นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ .pmtiles ที่เป็นผลลัพธ์."
              },
              "bbox": {
                "label": "กรอบขอบเขต",
                "description": "กรอบขอบเขต WGS84 ในรูปแบบ 'min_lon,min_lat,max_lon,max_lat'."
              },
              "min_zoom": {
                "label": "ซูมต่ำสุด",
                "description": "ระดับซูมต่ำสุดที่จะรวมไว้ (ค่าเริ่มต้น 0 เพื่อให้แผนที่ยังใช้งานได้เมื่อซูมออก)."
              },
              "max_zoom": {
                "label": "ซูมสูงสุด",
                "description": "ระดับซูมสูงสุดที่จะรวมไว้ (ค่าเริ่มต้น: ระดับซูมสูงสุดของไฟล์เก็บถาวรต้นทาง)."
              },
              "max_tiles": {
                "label": "จำนวนไทล์สูงสุด",
                "description": "ยกเลิกการทำงานหากการเลือกครอบคลุมไทล์มากกว่าจำนวนนี้ (ค่าเริ่มต้น 2000000)."
              },
              "url": {
                "label": "URL",
                "description": "URL ของ PMTiles แบบ HTTP(S) ระบุ url หรือ input อย่างใดอย่างหนึ่ง แหล่งข้อมูล HTTP จะใช้คำขอแบบช่วงไบต์ (โฮสต์ต้องอนุญาตการอ่านแบบ Range ข้ามต้นทาง)."
              },
              "bbox_crs": {
                "label": "CRS ของกรอบขอบเขต",
                "description": "รหัส EPSG ของพิกัดกรอบขอบเขต ค่าเริ่มต้นคือ 4326 (WGS84 lon/lat) ส่วน CRS อื่นจะถูกแปลงระบบพิกัดเป็น 4326."
              }
            }
          },
          "point_statistics": {
            "name": "สถิติจุด",
            "description": "สร้างแรสเตอร์ของสถิติแบบหน้าต่างเลื่อนของแอตทริบิวต์ฟีเจอร์จุด: สำหรับแต่ละเซลล์ผลลัพธ์ เพื่อนบ้าน (วงกลมหรือสี่เหลี่ยมผืนผ้า) จะรวบรวมค่าของฟิลด์เชิงตัวเลขที่เลือกจากจุดที่อยู่ภายใน แล้วลดทอนเป็นค่าเฉลี่ย/ค่าที่พบมากที่สุด/ค่าสูงสุด/ค่ามัธยฐาน/ค่าต่ำสุด/ค่าที่พบน้อยที่สุด/พิสัย/ส่วนเบี่ยงเบนมาตรฐาน/ผลรวม/ความหลากหลาย เช่นเดียวกับ ArcGIS Point Statistics เป็นส่วนเสริมของ line_density/heat_map ที่ให้เฉพาะความหนาแน่น และ neighborhood_summary_statistics ที่รองรับเฉพาะเวกเตอร์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดที่นำเข้า (Point / MultiPoint)."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์แอตทริบิวต์ตัวเลขที่จะสรุปค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "statistic": {
                "label": "สถิติ",
                "description": "สถิติต่อหนึ่งพื้นที่ใกล้เคียง: mean (ค่าเริ่มต้น), majority, maximum, median, minimum, minority, range, std, sum หรือ variety."
              },
              "neighborhood": {
                "label": "บริเวณใกล้เคียง",
                "description": "รูปทรงของพื้นที่ใกล้เคียง: 'circle' (ค่าเริ่มต้น ใช้ 'radius') หรือ 'rectangle' (สี่เหลี่ยมจัตุรัสด้านละ 2*radius)."
              },
              "radius": {
                "label": "รัศมี",
                "description": "รัศมีของพื้นที่ใกล้เคียง / ครึ่งด้านของสี่เหลี่ยม (หน่วยเมตรสำหรับ CRS เชิงภูมิศาสตร์ มิฉะนั้นเป็นหน่วย CRS) ค่าเริ่มต้น: ด้านที่สั้นกว่าของขอบเขต / 20."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ของผลลัพธ์ (หน่วยเดียวกับรัศมี) ค่าเริ่มต้น: รัศมี / 5."
              },
              "epsg": {
                "label": "EPSG",
                "description": "แทนที่รหัส EPSG ของ CRS ที่นำเข้า (เช่น เมื่อเลเยอร์ไม่ได้ระบุไว้) ค่า 4326 จะเปิดใช้การฉายแผนที่หน่วยเมตร."
              }
            }
          },
          "points_to_line": {
            "name": "จุดเป็นเส้น",
            "description": "สร้างฟีเจอร์โพลีไลน์จากจุด: หนึ่งเส้นต่อค่า line_field ที่แตกต่างกัน จุดยอดเรียงตาม sort_field พร้อมธงปิดเส้นเป็นตัวเลือก.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์จุดที่นำเข้า (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "line_field": {
                "label": "ฟิลด์เส้น",
                "description": "แอตทริบิวต์ที่ค่าต่าง ๆ จะแบ่งจุดออกเป็นเส้นแยกกัน (หนึ่งเส้นหลายส่วนต่อหนึ่งค่า) หากไม่ระบุ จุดทั้งหมดจะรวมเป็นเส้นเดียว."
              },
              "sort_field": {
                "label": "ฟิลด์เรียงลำดับ",
                "description": "แอตทริบิวต์ที่กำหนดลำดับจุดยอดภายในแต่ละเส้น ค่าตัวเลขจะเรียงแบบตัวเลข ส่วนข้อความจะเรียงตามพจนานุกรม หากไม่ระบุ จะใช้ลำดับฟีเจอร์ที่นำเข้า."
              },
              "close_line": {
                "label": "ปิดเส้น",
                "description": "เพิ่มจุดยอดแรกไว้ท้ายเส้นแต่ละเส้น เพื่อปิดให้เป็นวงแหวน ค่าเริ่มต้น false."
              }
            }
          },
          "points_to_path": {
            "name": "จุดเป็นเส้นทาง",
            "description": "เชื่อมจุดให้เป็นฟีเจอร์โพลีไลน์ เรียงตามฟิลด์และ (เป็นตัวเลือก) จัดกลุ่มเป็นหนึ่งเส้นทางต่อค่า พร้อมการเรียงแบบธรรมชาติและการปิดเส้นทางเป็นตัวเลือก.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์จุดที่นำเข้า (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "order_field": {
                "label": "ฟิลด์ลำดับ",
                "description": "แอตทริบิวต์ที่กำหนดลำดับการเชื่อมจุดภายในแต่ละเส้นทาง ค่าตัวเลขจะเรียงแบบตัวเลข ส่วนข้อความจะเรียงตามพจนานุกรม หากไม่ระบุ จะใช้ลำดับฟีเจอร์ที่นำเข้า."
              },
              "group_field": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "แอตทริบิวต์ที่แบ่งจุดออกเป็นเส้นทางแยกกัน (หนึ่งเส้นต่อหนึ่งค่าที่แตกต่างกัน) หากไม่ระบุ จุดทั้งหมดจะรวมเป็นเส้นทางเดียว."
              },
              "natural_sort": {
                "label": "เรียงลำดับแบบธรรมชาติ",
                "description": "เรียงค่าลำดับที่เป็นข้อความแบบธรรมชาติ เพื่อให้ 'a9' มาก่อน 'a10' ค่าเริ่มต้น false."
              },
              "close_path": {
                "label": "ปิดเส้นทาง",
                "description": "เพิ่มจุดยอดแรกไว้ท้ายเส้นทางแต่ละเส้น เพื่อปิดให้เป็นวงแหวน ค่าเริ่มต้น false."
              }
            }
          },
          "polygon_neighbors": {
            "name": "โพลิกอนข้างเคียง",
            "description": "สร้างตารางการประชิดของโพลิกอน: คู่ที่เป็นเพื่อนบ้านกันพร้อมความยาวขอบร่วมและจำนวนจุดที่สัมผัสกัน เช่นเดียวกับ ArcGIS Polygon Neighbors.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์ — ไฟล์ CSV (นามสกุล .csv) หรือตารางเวกเตอร์ที่ไม่มีเรขาคณิต หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์ที่ระบุแต่ละโพลิกอนในตาราง ค่าเริ่มต้น: ดัชนีของฟีเจอร์."
              },
              "both_sides": {
                "label": "ทั้งสองด้าน",
                "description": "สร้างคู่เพื่อนบ้านแต่ละคู่สองครั้ง (src→nbr และ nbr→src) ค่าเริ่มต้น false (หนึ่งครั้งต่อคู่)."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ปัดจุดยอดลงบนกริดขนาดนี้ (หน่วย CRS) ก่อนจับคู่เส้นขอบ ค่าเริ่มต้น 0 (ใช้พิกัดที่แม่นยำ)."
              }
            }
          },
          "polygon_volume": {
            "name": "ปริมาตรโพลิกอน",
            "description": "ปริมาตรและพื้นที่ผิว 3 มิติรายโพลิกอนของแรสเตอร์พื้นผิวที่อยู่เหนือ/ใต้ระดับระนาบอ้างอิงของแต่ละฟีเจอร์ เช่นเดียวกับ ArcGIS Polygon Volume — เป็นคู่ขนานรายโซนของ surface_volume.",
            "params": {
              "surface": {
                "label": "พื้นผิว",
                "description": "แรสเตอร์พื้นผิวระดับความสูงที่นำเข้า."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอน (โซน)."
              },
              "height_field": {
                "label": "ฟิลด์ความสูง",
                "description": "ฟิลด์แอตทริบิวต์ที่ระบุระดับความสูงของระนาบอ้างอิงของแต่ละโพลิกอน."
              },
              "direction": {
                "label": "ทิศทาง",
                "description": "ด้านใดของแต่ละระนาบที่จะทำการอินทิเกรต: 'above' (ค่าเริ่มต้น), 'below' หรือ 'both'."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะอ่านจากพื้นผิว (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "porous_puff": {
            "name": "การพ่นในตัวกลางพรุน",
            "description": "การพาและการแพร่กระจายเชิงวิเคราะห์ของก้อนสารปนเปื้อนที่ปล่อยทันทีผ่านน้ำใต้ดิน (เช่นเดียวกับ ArcGIS Porous Puff): เคลื่อนศูนย์กลางของก้อนจากจุดปล่อยไปตามสนามความเร็วดาร์ซี (ขนาด+ทิศทาง ตามที่ darcy_flow สร้าง) แล้วประเมินความเข้มข้นของก้อนแบบเกาส์เซียน 2 มิติในรูปแบบปิดบนพิกัดที่จัดแนวตามเส้นทาง โดยปรับสเกลด้วยความพรุน ความหนา การหน่วง และการสลายตัวอันดับหนึ่ง.",
            "params": {
              "magnitude": {
                "label": "ขนาด",
                "description": "แรสเตอร์ขนาดความเร็วดาร์ซี ตามที่สร้างโดย 'output' ของ darcy_flow ขนาดเซลล์/ขอบเขตถูกนำมาจากแรสเตอร์นี้."
              },
              "direction": {
                "label": "ทิศทาง",
                "description": "แรสเตอร์ทิศทางการไหลแบบดาร์ซี (มุมแอซิมัทเป็นองศาจากทิศเหนือ ตามเข็มนาฬิกา ตามทิศลาดลง) ตามที่สร้างโดย 'direction' ของ darcy_flow ต้องลงทะเบียนพิกัดร่วมกับ 'magnitude'."
              },
              "x": {
                "label": "X",
                "description": "พิกัด X ของจุดปล่อย (หน่วยแผนที่ ระบบพิกัดเดียวกับแรสเตอร์ความเร็ว)."
              },
              "y": {
                "label": "Y",
                "description": "พิกัด Y ของจุดปล่อย (หน่วยแผนที่)."
              },
              "mass": {
                "label": "มวล",
                "description": "มวลสารปนเปื้อนที่ปล่อยออก (ต้องเป็นค่าบวก)."
              },
              "porosity": {
                "label": "ความพรุน",
                "description": "ความพรุนประสิทธิผล: เป็นค่าคงที่เชิงตัวเลขในช่วง (0, 1] หรือพาธของแรสเตอร์ที่ลงทะเบียนพิกัดร่วมกับ 'magnitude'."
              },
              "thickness": {
                "label": "ความหนา",
                "description": "ความหนาของชั้นน้ำบาดาล: เป็นค่าคงที่เชิงตัวเลขที่เป็นบวก หรือพาธของแรสเตอร์ที่ลงทะเบียนพิกัดร่วมกับ 'magnitude'."
              },
              "dispersivity_long": {
                "label": "การกระจายตามยาว",
                "description": "ค่าการกระจายตัวตามแนวยาว (หน่วยความยาว ต้องเป็นค่าบวก)."
              },
              "dispersivity_trans": {
                "label": "การกระจายตามขวาง",
                "description": "ค่าการกระจายตัวตามแนวขวาง (หน่วยความยาว ต้องเป็นค่าบวก)."
              },
              "retardation": {
                "label": "การหน่วง",
                "description": "ตัวประกอบการหน่วง (ค่าเริ่มต้น 1 ต้องมีค่า >= 1)."
              },
              "decay": {
                "label": "การสลายตัว",
                "description": "ค่าคงที่การสลายตัวอันดับหนึ่ง (ค่าเริ่มต้น 0 ต้องมีค่า >= 0; หน่วยเวลาเดียวกับ 'time')."
              },
              "time": {
                "label": "เวลา",
                "description": "รายการเวลาที่ผ่านไปซึ่งเป็นค่าบวกหนึ่งค่าหรือมากกว่า คั่นด้วยจุลภาค เวลาสุดท้ายจะถูกเขียนไปยัง 'output'; ทุกเวลา (รวมถึงเวลาสุดท้าย) จะถูกรายงานในผลลัพธ์ 'time_series'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ความเข้มข้นสำหรับเวลาสุดท้ายใน 'time' หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะอ่านจากแรสเตอร์ magnitude/direction (ค่าเริ่มต้น 1)."
              },
              "step": {
                "label": "ขั้น",
                "description": "ความยาวก้าวการเคลื่อนที่ของศูนย์กลางกลุ่มควันในหน่วยระบบพิกัด (ค่าเริ่มต้น: ขนาดเซลล์ของแรสเตอร์ magnitude)."
              },
              "max_steps": {
                "label": "จำนวนขั้นสูงสุด",
                "description": "จำนวนก้าวการเคลื่อนที่สูงสุดต่อหนึ่งเวลาที่ร้องขอ (ค่าเริ่มต้น 1000)."
              }
            }
          },
          "predict_using_trend_raster": {
            "name": "ทำนายด้วยแรสเตอร์แนวโน้ม",
            "description": "ประเมินแรสเตอร์ความชัน/จุดตัดแกนที่ generate_trend_raster ฟิตไว้ ณ เวลาหนึ่งเวลาหรือมากกว่า เพื่อสร้างพื้นผิวที่ทำนายได้ เช่นเดียวกับ ArcGIS Predict Using Trend Raster.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ความชัน (แนวโน้ม) ที่เขียนโดย generate_trend_raster."
              },
              "intercept": {
                "label": "จุดตัดแกน",
                "description": "แรสเตอร์จุดตัดแกนที่เขียนโดย generate_trend_raster (ผลลัพธ์ 'intercept_output') ซึ่งลงทะเบียนพิกัดร่วมกับแรสเตอร์ความชัน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์สำหรับเวลาทำนายแรก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "times": {
                "label": "เวลา",
                "description": "เวลาที่ต้องการทำนาย คั่นด้วยจุลภาค บนสเกลเดียวกับที่ใช้ในการปรับพอดี (เช่น '12,18,24') ค่านี้จะแทนที่ start/end/interval."
              },
              "start": {
                "label": "เริ่มต้น",
                "description": "เวลาแรกของช่วงที่สร้างขึ้น (ใช้เมื่อไม่ระบุ 'times')."
              },
              "end": {
                "label": "สิ้นสุด",
                "description": "เวลาสุดท้ายของช่วงที่สร้างขึ้น (รวมค่านี้ด้วย; ใช้เมื่อไม่ระบุ 'times')."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ระยะก้าวระหว่างเวลาที่สร้างขึ้น (ค่าเริ่มต้น 1; ใช้เมื่อไม่ระบุ 'times')."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะอ่านจากแรสเตอร์สัมประสิทธิ์แต่ละชั้น (ค่าเริ่มต้น 1)."
              }
            }
          },
          "presence_only_prediction": {
            "name": "การทำนายแบบมีเฉพาะข้อมูลการปรากฏ",
            "description": "การสร้างแบบจำลองความเหมาะสมของชนิดพันธุ์/ถิ่นอาศัยแบบ MaxEnt: ฟิตโมเดลลอจิสติกที่ปรับด้วย L1 โดยเปรียบเทียบจุดที่พบกับตัวอย่างพื้นหลังที่สุ่มจากแรสเตอร์ตัวแปรอธิบาย (การขยายฐานแบบเชิงเส้น/กำลังสอง/บานพับ) แล้วทำนายพื้นผิวความน่าจะเป็นของการพบ พร้อมรายงานความสำคัญของตัวแปร — เช่นเดียวกับ ArcGIS Presence-only Prediction (MaxEnt).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดการปรากฏที่นำเข้า (การพบเห็นที่สังเกตได้)."
              },
              "explanatory": {
                "label": "ตัวแปรอธิบาย",
                "description": "รายการพาธแรสเตอร์ตัวแปรอธิบาย คั่นด้วยจุลภาค (ชุดตัวแปรร่วม) สุ่มตัวอย่าง ณ ตำแหน่งการปรากฏและตำแหน่งพื้นหลัง แรสเตอร์แรกเป็นตัวกำหนดกริดผลลัพธ์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ความน่าจะเป็นของการปรากฏ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "report": {
                "label": "รายงาน",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับตาราง CSV ของสัมประสิทธิ์ / ความสำคัญของตัวแปร."
              },
              "features": {
                "label": "ฟีเจอร์",
                "description": "คลาสฟีเจอร์การขยายฐาน คั่นด้วยจุลภาค: เลือกได้จาก 'linear', 'quadratic', 'hinge' ค่าเริ่มต้น 'linear,quadratic'."
              },
              "background": {
                "label": "พื้นหลัง",
                "description": "จำนวนตัวอย่างพื้นหลังที่สุ่มจากชุดแรสเตอร์ ค่าเริ่มต้น 1000 (จำกัดไม่เกินจำนวนเซลล์ที่ใช้งานได้)."
              },
              "regularization": {
                "label": "การทำให้เป็นปกติ",
                "description": "ความแรงของการทำเรกูลาไรเซชันแบบ L1 (lasso) บนฟีเจอร์ที่ทำให้เป็นมาตรฐาน ค่ายิ่งมาก โมเดลยิ่งเรียบง่าย ค่าเริ่มต้น 0.01."
              },
              "hinge_knots": {
                "label": "จุดหักของ Hinge",
                "description": "จำนวนปมภายในต่อหนึ่งตัวแปรร่วมสำหรับฟีเจอร์แบบ hinge (ใช้เฉพาะเมื่อเปิดใช้งาน 'hinge') ค่าเริ่มต้น 10."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับตัวอย่างพื้นหลังแบบกำหนดได้แน่นอน (ค่าเริ่มต้น 1)."
              }
            }
          },
          "propagate_displacement": {
            "name": "ถ่ายทอดการเคลื่อนตำแหน่ง",
            "description": "กระจายการเลื่อนตำแหน่งที่เกิดจาก resolve_road_conflicts (หรือเลเยอร์เส้นเชื่อมการเลื่อนแบบสองจุดใด ๆ) ไปยังฟีเจอร์ใกล้เคียง โดยประมาณค่าเส้นเชื่อมที่กระจัดกระจายให้เป็นสนาม IDW ที่ราบรื่น: ฟีเจอร์แข็ง (อาคาร แปลงที่ดิน) จะถูกเลื่อนด้วยค่าเฉลี่ยเดียว ส่วนเส้นที่ยืดหยุ่นจะโค้งงอรายจุดยอดที่ทำให้เรียบตามความยาวส่วนโค้ง เช่นเดียวกับ ArcGIS Propagate Displacement.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าที่ต้องการปรับ (เรขาคณิตชนิดใดก็ได้)."
              },
              "links": {
                "label": "ลิงก์",
                "description": "ลิงก์การเคลื่อนย้าย: เลเยอร์เส้นที่มี 2 จุดยอดต่อหนึ่งลิงก์ จุดยอดแรก = ตำแหน่งเดิม จุดยอดสุดท้าย = ตำแหน่งที่เคลื่อนย้ายไป (เป็นสคีมาเดียวกับที่ผลลัพธ์ 'links' ของ resolve_road_conflicts และข้อมูลนำเข้า 'links' ของ rubbersheet_features ใช้)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "adjustment_style": {
                "label": "รูปแบบการปรับ",
                "description": "'auto' (ค่าเริ่มต้น: เลื่อนแบบแข็งเกร็งสำหรับจุด/โพลิกอน และดัดโค้งรายจุดยอดสำหรับเส้น), 'preserve_orientation' (เลื่อนแบบแข็งเกร็งด้วยค่าเฉลี่ยของสนามเวกเตอร์ทั่วรอยพื้นที่) หรือ 'solid' (เลื่อนแบบแข็งเกร็งด้วยค่าสนามเวกเตอร์ที่สุ่มตัวอย่างเพียงครั้งเดียว ณ จุดตัวแทนของฟีเจอร์)."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะทางสูงสุด (หน่วยระบบพิกัด) ที่ลิงก์หนึ่งจะส่งผลต่อจุดตัวอย่าง ลิงก์ที่ไกลกว่านี้จะถูกละเว้น ค่าเริ่มต้น: ไม่จำกัด (ทุกลิงก์ส่งผลทุกที่)."
              }
            }
          },
          "pycnophylactic_interpolation": {
            "name": "การประมาณค่าแบบพิกโนฟิแลกติก",
            "description": "การประมาณค่าเชิงพื้นที่แบบรักษามวลของ Tobler: เปลี่ยนค่านับที่รวมรายโซนให้เป็นพื้นผิวความหนาแน่นที่ราบรื่นซึ่งผลรวมรายโซนตรงกับข้อมูลนำเข้าพอดี (เช่นเดียวกับ ArcGIS Areal Interpolation) — เป็นทางเลือกที่ราบรื่นแทนสมมติฐานความหนาแน่นสม่ำเสมอของ apportion_polygon.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนนำเข้าที่มีฟิลด์จำนวนนับ (ตัวแปรเชิงปริมาณรวม)."
              },
              "count_field": {
                "label": "ฟิลด์จำนวนนับ",
                "description": "ฟิลด์ที่เก็บจำนวนนับรวมของแต่ละโซน (ประชากร ฯลฯ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ความหนาแน่นผลลัพธ์ (ค่าต่อเซลล์; ผลรวมรายโซนเท่ากับข้อมูลนำเข้า) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยระบบพิกัด (ค่าเริ่มต้น: ขอบเขต / 200)."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำสูงสุดของการทำให้เรียบ (ค่าเริ่มต้น 100)."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "หยุดเมื่อการเปลี่ยนแปลงสูงสุดต่อเซลล์ลดลงต่ำกว่าสัดส่วนนี้ของความหนาแน่นเฉลี่ย (ค่าเริ่มต้น 0.001)."
              },
              "non_negative": {
                "label": "ไม่ติดลบ",
                "description": "ตรึงค่าติดลบให้เป็น 0 และกระจายใหม่เพื่อรักษามวลไว้ (ค่าเริ่มต้น true)."
              }
            }
          },
          "radiometric_terrain_flattening": {
            "name": "การปรับภูมิประเทศให้ราบเชิงรังสี",
            "description": "กำจัดสัญญาณความสว่างที่เกิดจากภูมิประเทศออกจากค่าการกระเจิงกลับ SAR ที่ปรับเทียบแล้ว โดยแทนที่พื้นที่อ้างอิงแบบโลกแบนด้วยพื้นที่ที่ถูกส่องสว่างเฉพาะที่ซึ่งได้จาก DEM และระบุบริเวณภาพซ้อนทับและเงาเรดาร์ (ArcGIS Apply Radiometric Terrain Flattening) apply_radiometric_calibration ของรอบที่ 17 ทำให้เป็นมาตรฐานด้วยมุมตกกระทบบนทรงรี บนพื้นที่ลาดเอียงค่า sigma0/gamma0 จึงแปรตามภูมิประเทศมากกว่าสิ่งปกคลุมดิน — โดยทั่วไปเกิน 6 dB ซึ่งมากกว่าผลต่างระหว่างป่ากับดินเปล่าที่ต้องการวัด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์การกระเจิงกลับ SAR ที่ปรับเทียบแล้ว (ค่าเริ่มต้นเป็นเบตานอต; ดู 'input_calibration')."
              },
              "dem": {
                "label": "DEM",
                "description": "แบบจำลองระดับความสูงเชิงเลข ที่ลงทะเบียนพิกัดร่วมกับแรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์การกระเจิงกลับที่ปรับแก้ภูมิประเทศแล้วเป็นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_scattering_area": {
                "label": "ผลลัพธ์พื้นที่กระเจิง",
                "description": "ผลลัพธ์อัตราส่วนระหว่างพื้นที่ที่ถูกส่องสว่างจริงกับพื้นที่แบบโลกราบ สร้างขึ้นเสมอ; เก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "output_geometry_mask": {
                "label": "ผลลัพธ์มาสก์เรขาคณิต",
                "description": "มาสก์ผลลัพธ์: 0 ปกติ, 1 เงาซ้อนทับ (layover), 2 เงาเรดาร์ สร้างขึ้นเสมอ; เก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "incidence_angle": {
                "label": "มุมตกกระทบ",
                "description": "มุมตกกระทบบนทรงรีเป็นองศา: เป็นค่าคงที่ หรือพาธของแรสเตอร์รายเซลล์ จำเป็นต้องระบุ."
              },
              "look_azimuth": {
                "label": "อะซิมัทการมอง",
                "description": "มุมแอซิมัทเข็มทิศเป็นองศาจากเป้าหมายไปยังเซนเซอร์ (ค่าเริ่มต้น 270 กล่าวคือวงโคจรขาขึ้นที่มองไปทางขวา) วงโคจรขาลงที่มองไปทางขวาของ Sentinel-1 มีค่าประมาณ 283."
              },
              "input_calibration": {
                "label": "การปรับเทียบนำเข้า",
                "description": "ข้อมูลนำเข้าเป็นค่าชนิดใดอยู่แล้ว: 'beta0' (ค่าเริ่มต้น), 'sigma0_ellipsoid' หรือ 'gamma0_ellipsoid' สองชนิดหลังจะถูกแปลงกลับเป็นเบตานอตโดยใช้มุมบนทรงรีก่อนการปรับแก้ภูมิประเทศ."
              },
              "calibration_type": {
                "label": "ชนิดการปรับเทียบ",
                "description": "รูปแบบผลลัพธ์: 'gamma0' (ค่าเริ่มต้น) หรือ 'sigma0'."
              },
              "input_units": {
                "label": "หน่วยนำเข้า",
                "description": "'intensity' (ค่าเริ่มต้น), 'dn', 'amplitude' หรือ 'db'."
              },
              "output_units": {
                "label": "หน่วยผลลัพธ์",
                "description": "'linear' (ค่าเริ่มต้น) หรือ 'db'."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณสำหรับแปลงหน่วย z ของ DEM เป็นหน่วย XY ของแรสเตอร์ (ค่าเริ่มต้น 1.0)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ของแรสเตอร์นำเข้าที่จะทำการปรับแก้ภูมิประเทศ (ค่าเริ่มต้น 1)."
              }
            }
          },
          "raster_domain": {
            "name": "ขอบเขตโดเมนแรสเตอร์",
            "description": "ติดตามขอบเขตของบริเวณที่มีข้อมูลถูกต้องในแรสเตอร์ให้เป็นโพลิกอน (หรือโพลีไลน์ปิด) โดยคงรู NoData ภายในไว้ (ArcGIS Raster Domain) layer_footprint_raster ที่มีอยู่คืนค่าเป็นขอบเขตสี่เหลี่ยมเต็ม ซึ่งสำหรับภาพที่หมุน ลุ่มน้ำที่ถูกตัด หรือไทล์โมเสกที่ขอบขรุขระ อาจใหญ่กว่าพื้นที่ครอบคลุมจริงหลายเท่า polygonize ทำได้แต่ต้องใช้มาสก์ความถูกต้อง 0/1 ที่ผู้เรียกต้องสร้างขึ้นก่อน ซึ่งนั่นคือทั้งหมดของงานนี้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้าที่ต้องการหารอยพื้นที่ของข้อมูลที่ใช้งานได้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนหรือเส้นผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "geometry_type": {
                "label": "ชนิดเรขาคณิต",
                "description": "'polygon' (ค่าเริ่มต้น) หรือ 'line' เพื่อให้ขอบเขตเป็นเส้นหลายเหลี่ยมแบบปิด."
              },
              "ignore_value": {
                "label": "ค่าที่ละเว้น",
                "description": "ถือว่าค่านี้ไม่ถูกต้องด้วย ควบคู่ไปกับค่า NoData ของแรสเตอร์เอง (โดยทั่วไปคือ 0 สำหรับภาพที่มีขอบสีดำ)."
              },
              "min_value": {
                "label": "ค่าต่ำสุด",
                "description": "ถือว่าค่าที่ต่ำกว่านี้ไม่ถูกต้อง."
              },
              "max_value": {
                "label": "ค่าสูงสุด",
                "description": "ถือว่าค่าที่สูงกว่านี้ไม่ถูกต้อง."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "ทิ้งส่วนของรอยพื้นที่ที่มีขนาดเล็กกว่าพื้นที่นี้ในหน่วยแผนที่กำลังสอง ซึ่งช่วยกำจัดจุดกระเซ็นรอบ ๆ ขอบที่ขรุขระ."
              },
              "fill_holes": {
                "label": "เติมรู",
                "description": "ตัดรูเจาะภายในออกและคืนค่าเป็นรอยพื้นที่แบบตัน (ค่าเริ่มต้น false)."
              },
              "all_bands": {
                "label": "ทุกแบนด์",
                "description": "กำหนดให้เซลล์ต้องใช้งานได้ในทุกแบนด์ แทนที่จะเป็นเฉพาะแบนด์ที่เลือก (ค่าเริ่มต้น false)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะทดสอบ (ค่าเริ่มต้น 1) จะถูกละเว้นเมื่อกำหนด 'all_bands'."
              }
            }
          },
          "raster_normalize": {
            "name": "ปรับมาตรฐานแรสเตอร์",
            "description": "ทำให้แบนด์แรสเตอร์เป็นมาตรฐานแบบ min-max ในช่วง [0, 1].",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะทำให้เป็นมาตรฐาน (ค่าเริ่มต้น 1)."
              }
            }
          },
          "raster_to_h3": {
            "name": "แรสเตอร์เป็นถัง H3",
            "description": "รวมค่าแบนด์แรสเตอร์เข้าสู่เซลล์กริดทั่วโลกแบบไม่ต่อเนื่อง H3 (ค่าเฉลี่ย ผลรวม ค่าต่ำสุด ค่าสูงสุด จำนวน ค่ามัธยฐาน).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า (ต้องเป็นพิกัดภูมิศาสตร์ lon/lat, EPSG:4326)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ โดยไดรเวอร์กำหนดจากนามสกุลไฟล์ (.geojson, .fgb, .parquet, ...) หากไม่ระบุ เลเยอร์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียด H3 ตั้งแต่ 0 (หยาบที่สุด) ถึง 15 (ละเอียดที่สุด) ค่าเริ่มต้น 8 (เซลล์ขนาด ~0.7 km²)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์แรสเตอร์ (เริ่มนับจาก 1) ที่จะรวมกลุ่ม (ค่าเริ่มต้น 1)."
              },
              "aggregate": {
                "label": "รวมกลุ่ม",
                "description": "วิธีรวมค่าพิกเซลต่อหนึ่งเซลล์: mean, sum, min, max, count หรือ median (ค่าเริ่มต้น mean)."
              }
            }
          },
          "raster_to_tiles": {
            "name": "แรสเตอร์เป็นไทล์ XYZ",
            "description": "หั่นแรสเตอร์เป็นพีระมิดไทล์ PNG แบบ XYZ ในระบบ Web Mercator (EPSG:3857) สำหรับแผนที่บนเว็บ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า. ต้องมีระบบพิกัดอ้างอิงต้นทาง (EPSG หรือ WKT)."
              },
              "output_dir": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ผลลัพธ์สำหรับโครงสร้างไทล์ {z}/{x}/{y}.png (เช่น /work/tiles)."
              },
              "min_zoom": {
                "label": "ซูมต่ำสุด",
                "description": "ระดับซูมต่ำสุด (ค่าเริ่มต้น: ระดับซูมดั้งเดิมระดับเดียวที่ตรงกับความละเอียดของแรสเตอร์)."
              },
              "max_zoom": {
                "label": "ซูมสูงสุด",
                "description": "ระดับซูมสูงสุด (ค่าเริ่มต้น: เท่ากับ min_zoom)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะแสดงผล (ค่าเริ่มต้น 1)."
              },
              "colormap": {
                "label": "แผนที่สี",
                "description": "แผนที่สี: viridis (ค่าเริ่มต้น), magma, turbo, terrain หรือ grayscale."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีสุ่มตัวอย่างใหม่สำหรับการแปลงระบบพิกัดและการสุ่มตัวอย่าง: bilinear (ค่าเริ่มต้น), nearest, cubic."
              },
              "min": {
                "label": "ค่าต่ำสุด",
                "description": "ค่าที่แมปไปยังปลายด้านต่ำของแผนที่สี (ค่าเริ่มต้น: ค่าต่ำสุดของแบนด์)."
              },
              "max": {
                "label": "ค่าสูงสุด",
                "description": "ค่าที่แมปไปยังปลายด้านสูงของแผนที่สี (ค่าเริ่มต้น: ค่าสูงสุดของแบนด์)."
              }
            }
          },
          "raster_to_weighted_points": {
            "name": "แรสเตอร์เป็นจุดถ่วงน้ำหนัก",
            "description": "กระจายจุดจำนวนคงที่ทั่วแรสเตอร์ให้ความหนาแน่นเป็นสัดส่วนกับค่าของเซลล์ โดยวางจุดบนแลตทิซ Fibonacci แบบกำหนดได้แน่นอน รูปแบบก้นหอย วงกลม หรือเซนทรอยด์ (ArcGIS Raster To Weighted Points) ไม่มีเครื่องมือใดในทั้งสองรีจิสทรีถ่วงน้ำหนักตามพื้นผิว: random_sample และ random_points_in_polygon กระจายสม่ำเสมอ create_spatially_balanced_points ตั้งใจกระจายจุดให้เท่ากัน และ raster_to_vector_points สร้างหนึ่งจุดต่อเซลล์โดยไม่ลดจำนวนหรือถ่วงน้ำหนัก การจัดสรรใช้วิธีเศษเหลือมากที่สุดและไม่ต้องใช้ตัวสร้างเลขสุ่ม ผลลัพธ์จึงทำซ้ำได้ใน WASM.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์พื้นผิวนำเข้า; ค่าของเซลล์คือค่าน้ำหนัก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์จุดผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "max_number_of_points": {
                "label": "จำนวนจุดสูงสุด",
                "description": "จำนวนจุดทั้งหมดที่จะกระจาย (ค่าเริ่มต้น 1000)."
              },
              "method": {
                "label": "วิธี",
                "description": "การวางตำแหน่งภายในเซลล์: 'fibonacci_lattice' (ค่าเริ่มต้น), 'fibonacci_spiral', 'circular' หรือ 'centroid'."
              },
              "min_value": {
                "label": "ค่าต่ำสุด",
                "description": "เซลล์ที่มีน้ำหนักเท่ากับหรือต่ำกว่าค่านี้จะไม่ได้รับจุดใด ๆ (ค่าเริ่มต้น 0) น้ำหนักที่เป็นลบจะถูกคัดออกเสมอ."
              },
              "max_points_per_cell": {
                "label": "จำนวนจุดสูงสุดต่อเซลล์",
                "description": "จำกัดจำนวนจุดที่เซลล์ใดเซลล์หนึ่งจะได้รับ เพื่อไม่ให้เซลล์ที่มีค่าสูงเซลล์เดียวดูดซับโควตาทั้งหมดไป."
              },
              "include_weight": {
                "label": "รวมน้ำหนัก",
                "description": "เขียนค่าเซลล์ต้นทางลงบนแต่ละจุด (ค่าเริ่มต้น true)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่ให้ค่าน้ำหนัก (ค่าเริ่มต้น 1)."
              }
            }
          },
          "read_geoparquet": {
            "name": "อ่าน GeoParquet",
            "description": "อ่านไฟล์ GeoParquet และแปลงเป็นรูปแบบเวกเตอร์อื่น (หรือเก็บไว้ในหน่วยความจำ).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์ GeoParquet นำเข้า (เช่น /work/data.parquet)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์เป็นตัวเลือก; รูปแบบจะกำหนดจากนามสกุลไฟล์ (.geojson, .fgb, .shp, .gpkg, ...) หากไม่ระบุ เลเยอร์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "reclassify_field": {
            "name": "จำแนกฟิลด์ใหม่",
            "description": "จำแนกแอตทริบิวต์เวกเตอร์เชิงตัวเลขเป็นถังคลาส (เช่นเดียวกับ ArcGIS Reclassify Field): equal_interval, defined_interval, quantile, natural_breaks (Jenks), std_dev หรือ geometric_interval โดยเขียนฟิลด์คลาสเป็นจำนวนเต็มพร้อมฟิลด์ค่าจุดแบ่งเป็นตัวเลือก.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ (หรือตาราง) นำเข้าที่มีฟิลด์ตัวเลขที่ต้องการจำแนก."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ชื่อของฟิลด์ตัวเลขที่ต้องการจำแนก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์คลาสเข้าไป หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีการจำแนก: equal_interval, defined_interval, quantile, natural_breaks, std_dev หรือ geometric_interval (ค่าเริ่มต้น natural_breaks)."
              },
              "classes": {
                "label": "คลาส",
                "description": "จำนวนคลาสสำหรับ equal_interval/quantile/natural_breaks/geometric_interval (ค่าเริ่มต้น 5) จะถูกละเว้นโดย defined_interval และ std_dev ซึ่งจำนวนคลาสขึ้นอยู่กับข้อมูล."
              },
              "interval": {
                "label": "ช่วง",
                "description": "ความกว้างคลาสคงที่สำหรับ defined_interval (จำเป็นสำหรับวิธีนี้)."
              },
              "std_dev_interval": {
                "label": "ช่วงส่วนเบี่ยงเบนมาตรฐาน",
                "description": "ขนาดช่วงสำหรับ std_dev ในหน่วยส่วนเบี่ยงเบนมาตรฐาน (ค่าเริ่มต้น 1.0; เช่น 0.5 สำหรับแถบครึ่งซิกมา)."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ชื่อของฟิลด์คลาสชนิดจำนวนเต็มที่จะเพิ่ม (ค่าเริ่มต้น 'class')."
              },
              "break_field": {
                "label": "ฟิลด์จุดแบ่ง",
                "description": "หากระบุ จะเพิ่มฟิลด์ชนิดทศนิยมที่ระบุขีดจำกัดบนของคลาสที่แต่ละฟีเจอร์ตกอยู่ด้วย."
              }
            }
          },
          "reconstruct_tracks": {
            "name": "สร้างเส้นทางเคลื่อนที่ใหม่",
            "description": "เปลี่ยนจุดที่มีเวลากำกับให้เป็นโพลีไลน์แทร็กการเคลื่อนที่ (จัดกลุ่มตามรหัส เรียงตามเวลา แยกที่ช่องว่างของเวลา/ระยะทาง) พร้อมสถิติรายแทร็ก และเลือกค้นหาตำแหน่งที่ผู้เคลื่อนที่หยุดพักได้ — เช่นเดียวกับ ArcGIS Reconstruct Tracks / Find Dwell Locations.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้าของการสังเกตที่มีการบันทึกเวลา."
              },
              "track_field": {
                "label": "ฟิลด์เส้นทางเคลื่อนที่",
                "description": "ฟิลด์ที่ระบุแต่ละเส้นทาง/วัตถุเคลื่อนที่ (เช่น รหัสยานพาหนะหรือสัตว์)."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: เป็นวินาทีเชิงตัวเลขหรือเวลาแบบ ISO-8601."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เวกเตอร์เส้นผลลัพธ์ของเส้นทาง (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "time_gap": {
                "label": "ช่องว่างเวลา",
                "description": "เริ่มเซกเมนต์เส้นทางใหม่เมื่อช่องว่างเวลาระหว่างจุดเกินจำนวนวินาทีนี้ ค่าเริ่มต้น: ไม่แบ่งตามเวลา."
              },
              "distance_gap": {
                "label": "ช่องว่างระยะทาง",
                "description": "เริ่มเซกเมนต์เส้นทางใหม่เมื่อระยะทางระหว่างจุดเกินค่านี้ (เมตรสำหรับระบบพิกัดภูมิศาสตร์ มิฉะนั้นเป็นหน่วยระบบพิกัด) ค่าเริ่มต้น: ไม่แบ่งตามระยะทาง."
              },
              "dwells": {
                "label": "จุดหยุดพัก",
                "description": "พาธผลลัพธ์จุดเป็นตัวเลือกสำหรับตำแหน่งที่หยุดพัก (ที่ซึ่งวัตถุเคลื่อนที่หยุดนิ่ง)."
              },
              "dwell_distance": {
                "label": "ระยะทางหยุดพัก",
                "description": "รัศมีสูงสุดของการหยุดพัก ในหน่วยระยะทางข้างต้น ค่าเริ่มต้น 50."
              },
              "dwell_min_duration": {
                "label": "ระยะเวลาหยุดพักต่ำสุด",
                "description": "เวลาต่ำสุด (วินาที) ที่วัตถุเคลื่อนที่ต้องอยู่ภายใน dwell_distance จึงจะนับเป็นการหยุดพัก ค่าเริ่มต้น 300."
              }
            }
          },
          "reduce_point_density": {
            "name": "ลดความหนาแน่นจุด",
            "description": "ลดความหนาแน่นของเลเยอร์จุดเวกเตอร์เพื่อไม่ให้จุดที่เก็บไว้สองจุดใดอยู่ใกล้กันกว่าระยะห่างต่ำสุด หรือเก็บหนึ่งจุดต่อเซลล์กริด (ArcGIS Reduce Point Density) lidar_thin รองรับเฉพาะ LAS และ find_identical จับได้เฉพาะรายการซ้ำที่ตรงกันพอดี เลเยอร์การหยั่ง GPS และเซนเซอร์ที่หนาแน่นจึงลดจำนวนก่อนการประมาณค่าไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุด (หรือหลายจุด) นำเข้า."
              },
              "method": {
                "label": "วิธี",
                "description": "'spacing' (ค่าเริ่มต้น): การลดความหนาแน่นแบบละโมบด้วยระยะห่างต่ำสุด 'bin': เก็บหนึ่งจุดต่อหนึ่งเซลล์กริด."
              },
              "min_distance": {
                "label": "ระยะทางต่ำสุด",
                "description": "ระยะห่างต่ำสุดระหว่างจุดที่เก็บไว้ ในหน่วยของเลเยอร์ จำเป็นสำหรับวิธี 'spacing'."
              },
              "bin_size": {
                "label": "ขนาดถัง",
                "description": "ขนาดเซลล์กริดในหน่วยของเลเยอร์ จำเป็นสำหรับวิธี 'bin'."
              },
              "sort_field": {
                "label": "ฟิลด์เรียงลำดับ",
                "description": "แอตทริบิวต์เชิงตัวเลขที่ตัดสินว่าจุดใดชนะเมื่อเกิดความขัดแย้ง หากไม่ระบุ ลำดับของข้อมูลนำเข้าจะเป็นตัวตัดสิน."
              },
              "sort_order": {
                "label": "ลำดับการเรียง",
                "description": "'descending' (ค่าเริ่มต้น, sort_field สูงสุดชนะ) หรือ 'ascending'."
              },
              "keep_field": {
                "label": "ฟิลด์ที่คงไว้",
                "description": "แอตทริบิวต์ที่ทำเครื่องหมายจุดซึ่งต้องเก็บไว้เสมอ (ไม่เป็นศูนย์ / true / ไม่ว่าง) ใช้สำหรับสิ่งกีดขวางอันตราย เช่น ค่าหยั่งลึกบริเวณสันดอน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์ของจุดที่เก็บไว้ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_removed": {
                "label": "ผลลัพธ์ที่ถูกลบ",
                "description": "เลเยอร์เป็นตัวเลือกที่รับจุดซึ่งถูกคัดออก เพื่อใช้ตรวจสอบ."
              }
            }
          },
          "regression_kriging": {
            "name": "คริกกิงแบบถดถอย",
            "description": "คริกกิงพร้อมแนวโน้มภายนอก: ถดถอยค่าตัวอย่างบนแรสเตอร์ตัวแปรร่วมที่ครอบคลุมทั้งพื้นที่ ฟิตวาริโอแกรมกับค่าคงเหลือ แล้วบวกสนามค่าคงเหลือที่ผ่านคริกกิงกลับเข้าไปในพื้นผิวการถดถอย (ArcGIS EBK Regression Prediction) คริกกิงทุกรูปแบบที่มีอยู่จำลองแนวโน้มในพิกัดหรือต้องใช้ตัวอย่างจุดรอง ไม่มีตัวใดรับแรสเตอร์ตัวแปรร่วม ซึ่งเป็นสิ่งที่งานธรณีสถิติประยุกต์ส่วนใหญ่ต้องการจริง ๆ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดตัวอย่าง."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "แอตทริบิวต์เชิงตัวเลขที่ต้องการทำนาย."
              },
              "covariates": {
                "label": "ตัวแปรร่วม",
                "description": "พาธแรสเตอร์ตัวแปรร่วม คั่นด้วยจุลภาคหรืออัฒภาค ซึ่งครอบคลุมกริดการทำนายทั้งหมด แรสเตอร์แรกเป็นตัวกำหนดกริดผลลัพธ์."
              },
              "variogram_model": {
                "label": "โมเดลวาริโอแกรม",
                "description": "โมเดลแวริโอแกรมของค่าคงเหลือ: 'spherical' (ค่าเริ่มต้น), 'exponential' หรือ 'gaussian'."
              },
              "lag_count": {
                "label": "จำนวนแล็ก",
                "description": "จำนวนช่วงระยะ (lag bins) ที่ใช้ปรับพอดีแวริโอแกรมของค่าคงเหลือ (ค่าเริ่มต้น 12)."
              },
              "max_neighbors": {
                "label": "จำนวนเพื่อนบ้านสูงสุด",
                "description": "จำนวนตัวอย่างที่ใกล้ที่สุดที่ใช้ในระบบคริกกิงของแต่ละเซลล์ (ค่าเริ่มต้น 16)."
              },
              "bilinear": {
                "label": "ไบลิเนียร์",
                "description": "สุ่มตัวอย่างตัวแปรร่วมแบบไบลิเนียร์ ณ ตำแหน่งของจุด แทนการใช้เซลล์ที่ใกล้ที่สุด (ค่าเริ่มต้น false)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์การทำนาย หากไม่ระบุ จะจัดเก็บในหน่วยความจำ."
              },
              "output_error": {
                "label": "ผลลัพธ์ความคลาดเคลื่อน",
                "description": "แรสเตอร์ความคลาดเคลื่อนมาตรฐานของการทำนาย (ความคลาดเคลื่อนมาตรฐานคริกกิงของสนามค่าคงเหลือ) สร้างขึ้นเสมอ."
              }
            }
          },
          "regularize_adjacent_building_footprint": {
            "name": "ปรับขอบเขตอาคารที่อยู่ติดกันให้เป็นระเบียบ",
            "description": "ปรับกลุ่มขอบเขตอาคารที่อยู่ติดกันให้มีทิศทางร่วมกันหนึ่งทิศทาง เพื่อให้ผนังร่วมยังคงขนานและอยู่ในแนวเดียวกัน (เช่นเดียวกับ ArcGIS Regularize Adjacent Building Footprint) — เป็นคู่ขนานที่สอดคล้องกันทั้งกลุ่มของ regularize_building_footprints ที่ทำรายอาคาร ซึ่งปล่อยให้ขอบเขตข้างเคียงคลาดแนวกันได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนรอยฐานอาคารนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธโพลิกอนผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "group": {
                "label": "กลุ่ม",
                "description": "ฟิลด์เป็นตัวเลือกสำหรับจัดกลุ่มรอยฐานอาคารที่จะทำให้เป็นระเบียบร่วมกัน หากไม่ระบุ กลุ่มจะเกิดจากการประชิดกันของขอบเขต."
              },
              "method": {
                "label": "วิธี",
                "description": "'right_angles' (ค่าเริ่มต้น) หรือ 'right_angles_and_diagonals'."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ความยาวผนังต่ำสุด; ขอบที่สั้นกว่านี้จะถูกตัดทิ้งเป็นสัญญาณรบกวน (หน่วยระบบพิกัด) ค่าเริ่มต้น 1.0."
              },
              "precision": {
                "label": "ความละเอียดทศนิยม",
                "description": "ระยะก้าวกริดสำหรับสแนปออฟเซ็ตของผนัง เพื่อให้ผนังขนานที่อยู่ใกล้กันกลายเป็นเส้นตรงเดียวกัน (หน่วยระบบพิกัด) ค่าเริ่มต้น: tolerance."
              },
              "adjacency_distance": {
                "label": "ระยะทางความติดกัน",
                "description": "เมื่อไม่ระบุฟิลด์ 'group' รอยฐานอาคารที่มีจุดยอดอยู่ภายในระยะนี้จะถือเป็นกลุ่มเดียวกัน (หน่วยระบบพิกัด) ค่าเริ่มต้น: 2 x tolerance."
              }
            }
          },
          "regularize_building_footprints": {
            "name": "ปรับขอบเขตอาคารให้เป็นระเบียบ",
            "description": "ทำให้โพลิกอนขอบเขตอาคารที่มีสัญญาณรบกวนเป็นรูปทรงปกติ (ผนังมุมฉาก แนวทแยง มุมใดก็ได้ หรือทรงกลม).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีการทำให้เป็นระเบียบ: 'right_angles' (ค่าเริ่มต้น), 'right_angles_and_diagonals', 'any_angle' หรือ 'circle'."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ระยะทางสูงสุด (ในหน่วยระบบพิกัด) ที่รอยฐานอาคารซึ่งทำให้เป็นระเบียบแล้วจะเบี่ยงเบนจากขอบเขตเดิมได้ ค่าเริ่มต้น 1.0."
              },
              "diagonal_penalty": {
                "label": "ค่าปรับแนวทแยง",
                "description": "สำหรับ 'right_angles_and_diagonals': ระดับความชอบมุมฉากมากกว่าผนัง 45 องศาเพียงใด (ผนังจะกลายเป็นแนวทแยงก็ต่อเมื่อค่าเบี่ยงเบนเชิงมุมจากแนวทแยงคูณด้วยตัวคูณนี้ มีค่าน้อยกว่าค่าเบี่ยงเบนจากแนวแกน) ค่าเริ่มต้น 1.5; ค่ายิ่งมากยิ่งได้แนวทแยงน้อยลง."
              },
              "min_radius": {
                "label": "รัศมีต่ำสุด",
                "description": "สำหรับ 'circle': รัศมีที่ปรับพอดีได้เล็กที่สุดที่ยอมรับ; การปรับพอดีที่เล็กกว่านี้จะคงรอยฐานอาคารเดิมไว้ ค่าเริ่มต้น 0.1."
              },
              "max_radius": {
                "label": "รัศมีสูงสุด",
                "description": "สำหรับ 'circle': รัศมีที่ปรับพอดีได้ใหญ่ที่สุดที่ยอมรับ; การปรับพอดีที่ใหญ่กว่านี้จะคงรอยฐานอาคารเดิมไว้ ไม่จำกัดหากไม่ระบุ."
              }
            }
          },
          "remove_overlap_multiple": {
            "name": "ลบการซ้อนทับ (หลายรายการ)",
            "description": "จัดสรรทุกส่วนที่ซ้อนทับกันในชุดโพลิกอนให้เป็นของฟีเจอร์เดียวเท่านั้น ให้ผลลัพธ์เป็นการแบ่งส่วนของยูเนียนที่ไม่มีช่องว่างและไม่ซ้อนทับกัน (แบ่งด้วยเส้นกึ่งกลางหรือแบบ Thiessen) เช่นเดียวกับ ArcGIS Remove Overlap (Multiple).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนนำเข้า (ฟีเจอร์อาจซ้อนทับกันได้)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'center_line' (กำหนดจุดที่ซ้อนทับกันแต่ละจุดให้กับฟีเจอร์ที่จุดนั้นอยู่ลึกเข้าไปมากที่สุด ค่าเริ่มต้น) หรือ 'thiessen' (เซนทรอยด์ตัวสร้างที่ใกล้ที่สุด)."
              },
              "grid_resolution": {
                "label": "ความละเอียดกริด",
                "description": "จำนวนเซลล์ตามด้านที่ยาวกว่าของแต่ละบริเวณซ้อนทับเมื่อทำการแบ่ง (ค่าเริ่มต้น 40; ค่ายิ่งสูงเส้นแบ่งยิ่งเรียบ แต่ช้าลง)."
              }
            }
          },
          "remove_thermal_noise": {
            "name": "ลบสัญญาณรบกวนความร้อน",
            "description": "ลบพื้นสัญญาณรบกวนความร้อนแบบบวกของตัวรับออกจากค่าการกระเจิงกลับ SAR ซึ่งกำจัดแถบขวางแนวกวาดที่เด่นบนพื้นผิวมืดเช่นน้ำนิ่ง พื้นที่น้ำท่วม และเงาเรดาร์ (ArcGIS Remove Thermal Noise) ไม่มีเครื่องมือใดในทั้งสองรีจิสทรีทำสิ่งนี้: ตัวกรอง lee/frost/kuan/refined-lee ที่มีอยู่กดสเปกเคิลแบบคูณ ซึ่งเป็นคนละปริมาณ หากไม่มีขั้นตอนนี้ ค่าเกณฑ์น้ำแบบ Otsu จะไปเกาะที่ขอบเขตของแนวกวาดย่อยแทนที่จะเป็นแนวชายฝั่ง และอัตราส่วนโพลาไรเซชันไขว้จะคำนวณจากตัวเศษที่ส่วนใหญ่เป็นสัญญาณรบกวน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์การกระเจิงกลับ SAR ที่ปรับเทียบแล้ว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ที่กำจัดสัญญาณรบกวนแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_snr": {
                "label": "ผลลัพธ์ SNR",
                "description": "ผลลัพธ์อัตราส่วนสัญญาณต่อสัญญาณรบกวนในหน่วย dB สร้างขึ้นเสมอ; เก็บไว้ในหน่วยความจำเมื่อไม่ระบุพาธ."
              },
              "noise_raster": {
                "label": "แรสเตอร์สัญญาณรบกวน",
                "description": "แรสเตอร์กำลังสัญญาณรบกวนรายเซลล์ ที่ลงทะเบียนพิกัดร่วมกับข้อมูลนำเข้า มีลำดับความสำคัญเหนือกว่าอีกสองรูปแบบ."
              },
              "noise_profile": {
                "label": "โปรไฟล์สัญญาณรบกวน",
                "description": "กำลังสัญญาณรบกวนตามแนวระยะ คั่นด้วยจุลภาค ซึ่งจะถูกประมาณค่าเชิงเส้นข้ามคอลัมน์ของแรสเตอร์ ต้องมีอย่างน้อยสองค่า."
              },
              "noise_constant": {
                "label": "ค่าคงที่สัญญาณรบกวน",
                "description": "ค่าซิกมานอตเทียบเท่าสัญญาณรบกวนค่าเดียวที่ใช้กับทุกเซลล์."
              },
              "noise_units": {
                "label": "หน่วยสัญญาณรบกวน",
                "description": "หน่วยของค่าสัญญาณรบกวน: 'intensity' (ค่าเริ่มต้น), 'dn', 'amplitude' หรือ 'db'."
              },
              "input_units": {
                "label": "หน่วยนำเข้า",
                "description": "'intensity' (ค่าเริ่มต้น), 'dn', 'amplitude' หรือ 'db'."
              },
              "output_units": {
                "label": "หน่วยผลลัพธ์",
                "description": "'linear' (ค่าเริ่มต้น) หรือ 'db'."
              },
              "floor_fraction": {
                "label": "สัดส่วนค่าต่ำสุด",
                "description": "เซลล์ที่ถูกลดลงจนเป็นศูนย์หรือต่ำกว่าจะถูกตรึงไว้ที่สัดส่วนนี้ของกำลังสัญญาณรบกวนเฉพาะที่ (ค่าเริ่มต้น 0.01) ช่วยให้การแปลงเป็น dB มีค่าจำกัด."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะกำจัดสัญญาณรบกวน (ค่าเริ่มต้น 1)."
              }
            }
          },
          "render_raster_png": {
            "name": "เรนเดอร์แรสเตอร์เป็น PNG",
            "description": "เรนเดอร์แบนด์แรสเตอร์เดียวเป็นภาพ PNG ผ่านแผนที่สี (ค่า NoData จะกลายเป็นโปร่งใส).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ PNG ผลลัพธ์ (เช่น /work/preview.png)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะแสดงผล (ค่าเริ่มต้น 1)."
              },
              "colormap": {
                "label": "แผนที่สี",
                "description": "แผนที่สี: viridis (ค่าเริ่มต้น), magma, turbo, terrain หรือ grayscale."
              },
              "min": {
                "label": "ค่าต่ำสุด",
                "description": "ค่าที่แมปไปยังปลายด้านต่ำของแผนที่สี (ค่าเริ่มต้น: ค่าต่ำสุดของแบนด์)."
              },
              "max": {
                "label": "ค่าสูงสุด",
                "description": "ค่าที่แมปไปยังปลายด้านสูงของแผนที่สี (ค่าเริ่มต้น: ค่าสูงสุดของแบนด์)."
              }
            }
          },
          "render_vector_png": {
            "name": "เรนเดอร์เวกเตอร์เป็น PNG",
            "description": "วาดเลเยอร์เวกเตอร์ (จุด/เส้น/โพลิกอน) เป็นภาพแผนที่ PNG.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า หรือแฮนเดิลในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ PNG ผลลัพธ์ (เช่น /work/map.png)."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของภาพเป็นพิกเซล (ค่าเริ่มต้น 800)."
              },
              "height": {
                "label": "ความสูง",
                "description": "ความสูงของภาพเป็นพิกเซล (ค่าเริ่มต้น: จากอัตราส่วนภาพของข้อมูล)."
              },
              "fill": {
                "label": "เติม",
                "description": "สีเติมของโพลิกอน/จุด ในรูปแบบ #rrggbb หรือ #rrggbbaa (ค่าเริ่มต้นเป็นสีน้ำเงินกึ่งโปร่งใส)."
              },
              "stroke": {
                "label": "เส้นขอบ",
                "description": "สีเส้นขอบ/เส้น ในรูปแบบ #rrggbb หรือ #rrggbbaa (ค่าเริ่มต้นเป็นสีน้ำเงินเข้ม)."
              },
              "stroke_width": {
                "label": "ความกว้างเส้นขอบ",
                "description": "ความกว้างของเส้นขอบ/เส้นเป็นพิกเซล (ค่าเริ่มต้น 1)."
              },
              "background": {
                "label": "พื้นหลัง",
                "description": "สีพื้นหลังในรูปแบบ #rrggbb[aa] หรือ 'transparent' (ค่าเริ่มต้น transparent)."
              }
            }
          },
          "repair_geometry": {
            "name": "ซ่อมแซมเรขาคณิต",
            "description": "ตรวจหาและแก้ไขเรขาคณิตโพลิกอนที่ไม่ถูกต้อง — การตัดกับตัวเอง (ผ่านการรวมกับตัวเอง) ทิศทางการวนของวงแหวน จุดยอดซ้ำ และส่วนที่ว่าง/ไม่มีค่า — หรือรายงานรหัสปัญหารายฟีเจอร์ด้วย check_only เช่นเดียวกับ ArcGIS Repair Geometry / Check Geometry.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "check_only": {
                "label": "ตรวจสอบเท่านั้น",
                "description": "เมื่อเป็น true จะไม่แก้ไขเรขาคณิต: ส่งออกข้อมูลนำเข้าพร้อมคอลัมน์ 'problem_code'/'problem_desc' (เช่นเดียวกับ ArcGIS Check Geometry) ค่าเริ่มต้น false."
              }
            }
          },
          "rescale_by_function": {
            "name": "ปรับสเกลด้วยฟังก์ชัน",
            "description": "ปรับสเกลแรสเตอร์ต่อเนื่องลงบนมาตราความเหมาะสมร่วมกันผ่านฟังก์ชันถ่ายโอน (linear, inverse_linear, power, exponential, logarithmic, logistic, gaussian, near, small, large, symmetric_linear) เช่นเดียวกับ ArcGIS Rescale By Function.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ค่าต่อเนื่องนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "function": {
                "label": "ฟังก์ชัน",
                "description": "ฟังก์ชันถ่ายโอน: linear (ค่าเริ่มต้น), inverse_linear, power, exponential, logarithmic, logistic, gaussian, near, small, large, symmetric_linear."
              },
              "from_scale": {
                "label": "จากมาตราส่วน",
                "description": "ปลายด้านต่ำของสเกลผลลัพธ์ (ค่าเริ่มต้น 0)."
              },
              "to_scale": {
                "label": "ถึงมาตราส่วน",
                "description": "ปลายด้านสูงของสเกลผลลัพธ์ (ค่าเริ่มต้น 1)."
              },
              "param1": {
                "label": "พารามิเตอร์ 1",
                "description": "พารามิเตอร์รูปร่างตัวแรก (เลขชี้กำลังสำหรับ power; ความชันสำหรับ exponential/logarithmic/logistic/small/large; จุดศูนย์กลางสำหรับ gaussian/near) ค่าเริ่มต้นขึ้นอยู่กับแต่ละฟังก์ชัน."
              },
              "param2": {
                "label": "พารามิเตอร์ 2",
                "description": "พารามิเตอร์รูปร่างตัวที่สอง (การกระจายสำหรับ gaussian/near) ค่าเริ่มต้นขึ้นอยู่กับแต่ละฟังก์ชัน."
              },
              "low_threshold": {
                "label": "ค่าเกณฑ์ต่ำ",
                "description": "ค่าตัดล่างเป็นตัวเลือก: ค่าที่ต่ำกว่าจะถูกแมปไปยัง 'value_below'."
              },
              "high_threshold": {
                "label": "ค่าเกณฑ์สูง",
                "description": "ค่าตัดบนเป็นตัวเลือก: ค่าที่สูงกว่าจะถูกแมปไปยัง 'value_above'."
              },
              "value_below": {
                "label": "ค่าด้านล่าง",
                "description": "ค่าผลลัพธ์สำหรับเซลล์ที่ต่ำกว่า 'low_threshold' (ค่าเริ่มต้น = from_scale)."
              },
              "value_above": {
                "label": "ค่าด้านบน",
                "description": "ค่าผลลัพธ์สำหรับเซลล์ที่สูงกว่า 'high_threshold' (ค่าเริ่มต้น = to_scale)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะปรับสเกล (ค่าเริ่มต้น 1)."
              }
            }
          },
          "resolve_building_conflicts": {
            "name": "แก้ไขความขัดแย้งของอาคาร",
            "description": "เลื่อน ย่อ หรือซ่อนขอบเขตอาคารที่ขัดแย้งเชิงกราฟิกกับสิ่งกีดขวางถนนที่มีสัญลักษณ์ (และกับกันเอง) สำหรับการทำแผนที่มาตราส่วนเล็ก โดยกำกับแต่ละอันด้วยสถานะ เช่นเดียวกับ ArcGIS Resolve Building Conflicts.",
            "params": {
              "buildings": {
                "label": "อาคาร",
                "description": "เลเยอร์โพลิกอนอาคารนำเข้า."
              },
              "barriers": {
                "label": "สิ่งกีดขวาง",
                "description": "เลเยอร์เส้นสิ่งกีดขวาง (เช่น ถนน) ที่อาคารต้องเว้นระยะให้พ้น."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์อาคารผลลัพธ์ที่มีฟิลด์ 'status' หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "barrier_width": {
                "label": "ความกว้างสิ่งกีดขวาง",
                "description": "ความกว้างของสัญลักษณ์สิ่งกีดขวางในหน่วยแผนที่ (ทำบัฟเฟอร์ครึ่งหนึ่งของค่านี้ในแต่ละด้าน) ค่าเริ่มต้น 0."
              },
              "gap": {
                "label": "ช่องว่าง",
                "description": "ระยะห่างต่ำสุดที่ต้องคงไว้ระหว่างอาคารกับสิ่งกีดขวาง (หน่วยแผนที่) ค่าเริ่มต้น 0."
              },
              "min_size": {
                "label": "ขนาดต่ำสุด",
                "description": "พื้นที่อาคารต่ำสุด (หน่วยแผนที่²) ก่อนที่อาคารซึ่งขัดแย้งกันจะถูกซ่อนแทนการย่อขนาด ค่าเริ่มต้น 0 (ไม่ซ่อนเลย)."
              },
              "hide": {
                "label": "ซ่อน",
                "description": "จะตัดอาคารที่ถูกซ่อนออกจากผลลัพธ์หรือไม่ (ค่าเริ่มต้น false: เก็บไว้โดยมี status='hidden')."
              }
            }
          },
          "resolve_road_conflicts": {
            "name": "แก้ไขความขัดแย้งของถนน",
            "description": "เลื่อนถนนที่การแสดงผลด้วยสัญลักษณ์ (ความกว้างที่วาดจริง) ซ้อนทับหรือเบียดกันที่มาตราส่วนเป้าหมาย: ถนนลำดับชั้นต่ำกว่าจะถูกดันให้พ้นถนนลำดับชั้นสูงกว่า ด้วยการเลื่อนจุดยอดที่ตรึงปลายทั้งสองและทำให้เรียบ โดยเลือกสร้างเส้นเชื่อมการเลื่อนตำแหน่งได้ เช่นเดียวกับ ArcGIS Resolve Road Conflicts / Propagate Displacement.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นถนนนำเข้า (LineString / MultiLineString)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ถนนที่เคลื่อนย้ายแล้วเป็นผลลัพธ์ พร้อมฟิลด์ 'status' และ 'shift' หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "symbol_width": {
                "label": "ความกว้างสัญลักษณ์",
                "description": "ความกว้างของสัญลักษณ์แบบคงที่สำหรับถนนทุกสาย ในหน่วยแผนที่ (หรือมิลลิเมตรบนหน้ากระดาษเมื่อกำหนด 'scale') ใช้เมื่อไม่ระบุ 'symbol_width_field'."
              },
              "symbol_width_field": {
                "label": "ฟิลด์ความกว้างสัญลักษณ์",
                "description": "ฟิลด์ตัวเลขที่ระบุความกว้างของสัญลักษณ์ของถนนแต่ละสาย (หน่วยแผนที่ หรือมิลลิเมตรบนหน้ากระดาษเมื่อกำหนด 'scale') จะย้อนกลับไปใช้ 'symbol_width' เมื่อไม่มีค่า."
              },
              "hierarchy_field": {
                "label": "ฟิลด์ลำดับชั้น",
                "description": "ฟิลด์ตัวเลขที่จัดอันดับความสำคัญของถนน (ค่ายิ่งต่ำยิ่งสำคัญ และจะถูกตรึงไว้) หากไม่ระบุ: ถนนทุกสายจะแบ่งการเคลื่อนย้ายเท่า ๆ กัน."
              },
              "scale": {
                "label": "มาตราส่วน",
                "description": "ตัวส่วนของมาตราส่วนแผนที่เป้าหมาย เมื่อกำหนดค่านี้ ความกว้างของสัญลักษณ์จะเป็นมิลลิเมตรบนหน้ากระดาษที่แปลงเป็นหน่วยภาคพื้นดิน (มม. * มาตราส่วน / 1000) ค่าเริ่มต้น: ใช้ความกว้างเป็นหน่วยแผนที่โดยตรง."
              },
              "gap": {
                "label": "ช่องว่าง",
                "description": "ระยะห่างว่างเพิ่มเติมที่ต้องคงไว้ระหว่างแถบสัญลักษณ์ ในหน่วยแผนที่ ค่าเริ่มต้น 0."
              },
              "max_iter": {
                "label": "จำนวนรอบวนซ้ำสูงสุด",
                "description": "จำนวนรอบวนซ้ำสูงสุดของการเคลื่อนย้าย ค่าเริ่มต้น 50."
              },
              "pin_endpoints": {
                "label": "ตรึงจุดปลาย",
                "description": "ตรึงจุดยอดแรก/สุดท้ายของถนนทุกสายไว้เพื่อรักษาจุดเชื่อมต่อ/ความเชื่อมโยง (ค่าเริ่มต้น true)."
              },
              "links": {
                "label": "ลิงก์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับลิงก์การเคลื่อนย้าย (เส้นจาก→ถึง) ที่ rubbersheet_features นำไปใช้ได้."
              }
            }
          },
          "ripleys_k": {
            "name": "K ของ Ripley",
            "description": "การวิเคราะห์รูปแบบจุดหลายระยะทาง (ฟังก์ชัน K / L ของ Ripley) พร้อมเอนเวโลปความสุ่มเชิงพื้นที่สมบูรณ์แบบมอนติคาร์โล เพื่อตรวจหาการกระจุกตัวหรือการกระจายตัวตลอดช่วงระยะทาง.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า (เรขาคณิตชนิดอื่นจะใช้จุดตัวแทนที่เป็นค่าเฉลี่ยของจุดยอด)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับตาราง K/L ตารางนี้จะถูกส่งคืนในผลลัพธ์ของเครื่องมือด้วย."
              },
              "distance_bands": {
                "label": "แถบระยะทาง",
                "description": "จำนวนแถบระยะทางที่จะประเมิน (ค่าเริ่มต้น 10)."
              },
              "max_distance": {
                "label": "ระยะทางสูงสุด",
                "description": "ระยะทางมากที่สุดที่จะประเมิน ในหน่วยระบบพิกัด ค่าเริ่มต้น: หนึ่งในสี่ของด้านที่สั้นกว่าของกรอบขอบเขตของจุด."
              },
              "permutations": {
                "label": "จำนวนการสับเปลี่ยน",
                "description": "จำนวนการจำลอง CSR สำหรับกรอบนัยสำคัญ (ค่าเริ่มต้น 99; ค่า 0 ปิดใช้งานกรอบนัยสำคัญ)."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขเป็นตัวเลือกที่ให้น้ำหนักแก่แต่ละจุด."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับตัวสร้างเลขสุ่ม CSR (ค่าเริ่มต้น 1) เพื่อให้กรอบนัยสำคัญทำซ้ำได้."
              }
            }
          },
          "rubbersheet_features": {
            "name": "ยืดหดฟีเจอร์แบบยาง",
            "description": "บิดเลเยอร์เวกเตอร์ให้ตรงกับเป้าหมายด้วยเส้นเชื่อมการเลื่อนตำแหน่ง: การแปลงแบบอัฟไฟน์เป็นช่วงบน TIN แบบ Delaunay (หรือ IDW) ที่นำจุดควบคุมไปวางบนเป้าหมายและบิดทุกสิ่งระหว่างนั้นอย่างราบรื่น — เป็นการแปลงเพื่อหลอมรวมข้อมูล เช่นเดียวกับ ArcGIS Rubbersheet Features.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าที่ต้องการปรับ (เรขาคณิตชนิดใดก็ได้)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "links": {
                "label": "ลิงก์",
                "description": "เลเยอร์เส้นเป็นตัวเลือกของลิงก์การเคลื่อนย้าย (แต่ละเส้น: จุดยอดแรก = จุดต้นทาง, จุดยอดสุดท้าย = จุดปลายทาง)."
              },
              "target": {
                "label": "เป้าหมาย",
                "description": "เลเยอร์เวกเตอร์เป้าหมายเป็นตัวเลือก; ลิงก์จะถูกสร้างขึ้นโดยจับคู่จุดตัวแทนของแต่ละฟีเจอร์นำเข้ากับเป้าหมายที่ใกล้ที่สุดภายใน search_distance."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะทางสูงสุดในการจับคู่ข้อมูลนำเข้ากับเป้าหมายเมื่อสร้างลิงก์ (หน่วยระบบพิกัด) จำเป็นต้องระบุเมื่อใช้ 'target'."
              },
              "method": {
                "label": "วิธี",
                "description": "'linear' (แบบแอฟฟีนเป็นช่วง ๆ บน TIN แบบเดอโลเน, ค่าเริ่มต้น) หรือ 'idw' (ถ่วงน้ำหนักด้วยส่วนกลับของระยะทาง)."
              },
              "power": {
                "label": "ยกกำลัง",
                "description": "กำลังของ IDW สำหรับการลดทอนนอก TIN / สำหรับ method=idw ค่าเริ่มต้น 2."
              }
            }
          },
          "sar_coherence": {
            "name": "ความสอดคล้อง SAR",
            "description": "คำนวณขนาดความอาพันธ์อินเตอร์เฟอโรเมตริกที่ทำให้เป็นมาตรฐานแล้ว (และเฟสอินเตอร์เฟอโรเมตริกเป็นตัวเลือก) ระหว่างภาพ SAR เชิงซ้อนสองภาพที่ซ้อนทับตรงกัน โดยใช้หน้าต่างเลื่อน (ArcGIS Compute Coherence / Generate Interferogram) ความอาพันธ์วัดความเสถียรของเฟสมากกว่าความสว่าง จึงตรวจจับการเปลี่ยนแปลงที่การหาผลต่างความเข้มมองไม่เห็น — การพังทลาย น้ำท่วมใต้พืชพรรณ การเก็บเกี่ยว การเคลื่อนตัวของน้ำแข็ง — ได้ในทุกสภาพอากาศ ไม่มีเครื่องมือใดในทั้งสองรีจิสทรีใช้เฟสของ SAR ข้อมูลนำเข้าเป็นคู่ I/Q สองแบนด์และต้องซ้อนทับตรงกันอยู่แล้ว.",
            "params": {
              "reference": {
                "label": "ข้อมูลอ้างอิง",
                "description": "แรสเตอร์ SAR เชิงซ้อน (สองแบนด์: I และ Q) จากการรับสัญญาณครั้งแรก."
              },
              "secondary": {
                "label": "รอง",
                "description": "แรสเตอร์ SAR เชิงซ้อนที่ลงทะเบียนพิกัดร่วม (สองแบนด์: I และ Q) จากการรับสัญญาณครั้งที่สอง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์โคฮีเรนซ์ผลลัพธ์เป็นตัวเลือก (ขนาด, 0..1) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_phase": {
                "label": "ผลลัพธ์เฟส",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับแรสเตอร์เฟสอินเทอร์เฟอโรเมตริกในหน่วยเรเดียน ซึ่งพับอยู่ในช่วง (-pi, pi]."
              },
              "window_size": {
                "label": "ขนาดหน้าต่าง",
                "description": "หน้าต่างการประมาณค่าในรูปแบบ 'range,azimuth' เป็นจำนวนเซลล์ (ค่าเริ่มต้น '5,5') ตัวประมาณค่าจะยึดจุดกึ่งกลาง ดังนั้นค่าคู่จะถูกปัดขึ้นเป็นขนาดคี่ถัดไป; หน้าต่างที่ใช้จริงจะถูกรายงานกลับเป็น window_range/window_azimuth."
              },
              "bias_correction": {
                "label": "การแก้ไขความเอนเอียง",
                "description": "แก้ไขความเอนเอียงสูงเกินจริงของตัวประมาณค่าโคฮีเรนซ์เมื่อขนาดหน้าต่างเล็ก (ค่าเริ่มต้น true)."
              }
            }
          },
          "semivariogram_sensitivity": {
            "name": "ความไวของเซมิวาริโอแกรม",
            "description": "รบกวนค่านักเก็ต ซิลบางส่วน และพิสัยของวาริโอแกรมที่ฟิตไว้ ทำคริกกิงซ้ำที่ตำแหน่งประเมิน และรายงานว่าค่าทำนายและความคลาดเคลื่อนมาตรฐานเปลี่ยนไปมากเพียงใด — เป็นการตรวจสอบความน่าเชื่อถือมาตรฐานของโมเดลคริกกิง (ArcGIS GA Semivariogram Sensitivity) ชุดเครื่องมือคริกกิงที่มีอยู่ครอบคลุมกว้างและ kriging_cross_validation วัดความพอดีของโมเดล แต่ไม่มีตัวใดวัดความไว และทั้งสองอย่างเป็นอิสระต่อกัน: โมเดลที่ผ่านการตรวจสอบไขว้ได้ดีก็ยังอาจเปราะบางอย่างมากต่อพารามิเตอร์ที่นักวิเคราะห์เลือก.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดที่เก็บค่าที่วัดได้."
              },
              "field": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขที่จะทำคริกกิง."
              },
              "locations": {
                "label": "ตำแหน่ง",
                "description": "เลเยอร์จุดของตำแหน่งทำนาย ที่ใช้ประเมินความไว."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ตารางที่มีหนึ่งแถวต่อหนึ่งโมเดลที่ถูกรบกวน หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "model": {
                "label": "โมเดล",
                "description": "แบบจำลองแวริโอแกรม: 'exponential' (ค่าเริ่มต้น), 'spherical' หรือ 'gaussian'."
              },
              "nugget_span_percent": {
                "label": "ร้อยละช่วงนักเก็ต",
                "description": "ครึ่งความกว้างของการรบกวนสำหรับค่า nugget เป็นร้อยละ (ค่าเริ่มต้น 10)."
              },
              "partial_sill_span_percent": {
                "label": "ร้อยละช่วงซิลล์บางส่วน",
                "description": "ครึ่งความกว้างของการรบกวนสำหรับค่า partial sill เป็นร้อยละ (ค่าเริ่มต้น 10)."
              },
              "range_span_percent": {
                "label": "ร้อยละช่วงพิสัย",
                "description": "ครึ่งความกว้างของการรบกวนสำหรับค่า range เป็นร้อยละ (ค่าเริ่มต้น 10)."
              },
              "nugget_steps": {
                "label": "จำนวนขั้นนักเก็ต",
                "description": "จำนวนตัวอย่างตลอดช่วงของ nugget (ค่าเริ่มต้น 3; ค่า 1 จะตรึงไว้ที่ค่าที่ปรับพอดีได้)."
              },
              "partial_sill_steps": {
                "label": "จำนวนขั้นซิลล์บางส่วน",
                "description": "จำนวนตัวอย่างตลอดช่วงของ partial sill (ค่าเริ่มต้น 3)."
              },
              "range_steps": {
                "label": "จำนวนขั้นพิสัย",
                "description": "จำนวนตัวอย่างตลอดช่วงของ range (ค่าเริ่มต้น 3)."
              },
              "lag_count": {
                "label": "จำนวนแล็ก",
                "description": "จำนวนช่วงระยะของแวริโอแกรมเชิงประจักษ์ที่ใช้ในการปรับพอดีค่าฐาน (ค่าเริ่มต้น 12)."
              }
            }
          },
          "similarity_search": {
            "name": "การค้นหาความคล้ายคลึง",
            "description": "จัดอันดับฟีเจอร์ที่เป็นไปได้ตามความคล้ายของแอตทริบิวต์กับฟีเจอร์อ้างอิงหนึ่งตัวหรือมากกว่า บนฟิลด์เชิงตัวเลขที่ทำมาตรฐานด้วยค่า z (แบบยูคลิดหรือโคไซน์) โดยเลือกคล้ายที่สุด/น้อยที่สุด/ทั้งสอง — เช่นเดียวกับ ArcGIS Similarity Search.",
            "params": {
              "reference": {
                "label": "ข้อมูลอ้างอิง",
                "description": "เลเยอร์เวกเตอร์อ้างอิง (ฟีเจอร์หนึ่งรายการขึ้นไปที่กำหนดโปรไฟล์ที่ต้องการจับคู่)."
              },
              "candidates": {
                "label": "ตัวเลือก",
                "description": "เลเยอร์เวกเตอร์ผู้สมัครที่จะจัดอันดับตามความคล้ายคลึงกับข้อมูลอ้างอิง."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ฟิลด์ตัวเลขที่จะเปรียบเทียบ คั่นด้วยจุลภาค (ต้องมีอยู่ในทั้งสองเลเยอร์)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ (ผู้สมัครที่จัดอันดับแล้ว) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "match_method": {
                "label": "วิธีจับคู่",
                "description": "'euclidean' (ระยะทางที่ทำมาตรฐานด้วยค่า z; ค่าเริ่มต้น) หรือ 'cosine' (ความคล้ายคลึงเชิงมุม)."
              },
              "most_or_least": {
                "label": "มากที่สุดหรือน้อยที่สุด",
                "description": "เก็บผลลัพธ์ที่คล้ายคลึงมากที่สุด 'most' (ค่าเริ่มต้น), คล้ายคลึงน้อยที่สุด 'least' หรือทั้งสองด้าน 'both'."
              },
              "num_results": {
                "label": "จำนวนผลลัพธ์",
                "description": "จำนวนผลลัพธ์ที่จะเก็บต่อหนึ่งด้าน (0 = ผู้สมัครทั้งหมด) ค่าเริ่มต้น 10."
              }
            }
          },
          "simplify_3d_line": {
            "name": "ลดรูปเส้น 3 มิติ",
            "description": "ลดจำนวนจุดยอดของโพลีไลน์ 3 มิติด้วยการแบ่งแบบ Douglas-Peucker ที่วัดค่าเบี่ยงเบนในสามมิติ เพื่อรักษาโปรไฟล์แนวดิ่งไว้ เช่นเดียวกับ ArcGIS Simplify 3D Line.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นหลายเหลี่ยมนำเข้า (จุดยอด 3 มิติ; จุดยอด 2 มิติจะถูกจัดการเป็นกรณีพิเศษบนระนาบ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเบี่ยงเบน 3 มิติสูงสุดในหน่วยแผนที่ จุดยอดที่อยู่ใกล้คอร์ดมากกว่าค่านี้จะถูกลบออก."
              },
              "z_factor": {
                "label": "ตัวคูณ Z",
                "description": "ตัวคูณที่ใช้กับค่า Z ก่อนการทดสอบระยะทาง สำหรับข้อมูลที่หน่วย Z ต่างจาก XY (ค่าเริ่มต้น 1)."
              }
            }
          },
          "simplify_building": {
            "name": "ลดรูปอาคาร",
            "description": "ลดจำนวนจุดยอดของขอบเขตอาคารโดยปกป้องมุมฉากไว้ พร้อมค่าเกณฑ์การตัดทิ้งตามพื้นที่ต่ำสุด เช่นเดียวกับ ArcGIS Simplify Building.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "โพลิกอนรอยฐานอาคาร."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อในการลดรูปในหน่วยแผนที่: ระยะทางสูงสุดที่ขอบเขตจะขยับได้."
              },
              "minimum_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "รอยฐานอาคารที่มีพื้นที่ต่ำกว่าค่านี้จะถูกตัดทิ้ง (ค่าเริ่มต้น 0 เก็บทั้งหมด)."
              },
              "keep_collapsed_points": {
                "label": "คงจุดที่ยุบแล้ว",
                "description": "สร้างจุดที่เซนทรอยด์ของรอยฐานอาคารแต่ละแห่งที่ถูกตัดทิ้งโดย minimum_area (ค่าเริ่มต้น false)."
              },
              "corner_tolerance": {
                "label": "ค่าเผื่อมุม",
                "description": "จำนวนองศาที่มุมภายในจะถูกนับว่าเป็นมุมฉากที่ได้รับการปกป้อง (ค่าเริ่มต้น 20)."
              }
            }
          },
          "simplify_by_circular_arcs": {
            "name": "ลดรูปด้วยส่วนโค้งวงกลม",
            "description": "ลดรูปเส้นและโพลิกอนโดยแทนที่ช่วงของจุดยอดด้วยเซกเมนต์ตรงและส่วนโค้งวงกลมที่แท้จริง เพื่อรักษาเส้นโค้งที่ออกแบบไว้แทนที่จะประมาณด้วยคอร์ด (ArcGIS Simplify By Straight Lines And Circular Arcs โหมด 'tangent' ครอบคลุม Simplify By Tangent Segments) ตัวลดรูปทุกตัวในทั้งสองรีจิสทรีลบจุดยอดเพียงอย่างเดียว ซึ่งบังคับให้ต้องเลือกระหว่างเส้นโค้งที่เป็นเหลี่ยมกับจำนวนจุดยอดที่ยอมรับไม่ได้บนวงเลี้ยวปลายตัน วงเวียน และขอบเขตถังเก็บ วงกลมถูกฟิตด้วยกำลังสองน้อยที่สุดเชิงพีชคณิตแต่ยอมรับด้วยค่าเบี่ยงเบนตั้งฉากจริง การรับประกันค่าเผื่อจึงยังคงอยู่.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เส้นหรือโพลิกอนนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเบี่ยงเบนสูงสุดที่ยอมให้รูปทรงพื้นฐานที่ปรับพอดีแล้วต่างจากจุดยอดเดิม ในหน่วยระบบพิกัด."
              },
              "mode": {
                "label": "โหมด",
                "description": "'arcs' (ค่าเริ่มต้น; ปรับพอดีด้วยเซกเมนต์เส้นตรงและส่วนโค้งวงกลม) หรือ 'tangent' (เฉพาะเซกเมนต์เส้นตรง ซึ่งเป็นพฤติกรรมแบบ Simplify By Tangent Segments)."
              },
              "min_arc_angle": {
                "label": "มุมส่วนโค้งต่ำสุด",
                "description": "ส่วนโค้งที่รองรับมุมน้อยกว่าจำนวนองศานี้จะถูกส่งออกเป็นเซกเมนต์เส้นตรงแทน (ค่าเริ่มต้น 10)."
              },
              "max_radius": {
                "label": "รัศมีสูงสุด",
                "description": "ส่วนโค้งที่มีรัศมีใหญ่กว่าค่านี้จะถูกส่งออกเป็นเซกเมนต์เส้นตรง (ค่าเริ่มต้น: 1e6)."
              },
              "densify_output": {
                "label": "ผลลัพธ์เพิ่มความหนาแน่นจุด",
                "description": "เพิ่มความหนาแน่นของจุดบนส่วนโค้งที่ปรับพอดีแล้วให้ได้ตามค่าเผื่อคอร์ดขณะเขียน (ค่าเริ่มต้น true) เมื่อเป็น false จะส่งออกเฉพาะจุดปลายของส่วนโค้ง ดังนั้นเรขาคณิตเพียงอย่างเดียวจะสูญเสียความโค้งไป — ให้อ่าน 'output_arcs' เพื่อกู้คืน."
              },
              "output_arcs": {
                "label": "ผลลัพธ์ส่วนโค้ง",
                "description": "พาธเป็นตัวเลือกสำหรับตารางส่วนโค้งที่ปรับพอดีแล้ว (รหัสฟีเจอร์, จุดปลาย, จุดศูนย์กลาง, รัศมี, มุมกวาดแบบมีเครื่องหมายเป็นองศา) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ (ยังคงส่งคืนผลลัพธ์)."
              }
            }
          },
          "simplify_by_tangent_segments": {
            "name": "ลดรูปด้วยส่วนสัมผัส",
            "description": "แทนที่เรขาคณิตเส้นโค้งที่ถูกเพิ่มความหนาแน่นจุดแล้ว ด้วยสายโซ่เซกเมนต์ตรงที่สั้นที่สุดซึ่งยังอยู่ภายในระยะเยื้องตั้งฉากสูงสุด โดยเชื่อมเซกเมนต์ที่ต่อเนื่องกันที่จุดตัดของมัน ผลลัพธ์จึงยังคงสัมผัสกับรูปเดิม (ArcGIS Simplify By Tangent Segments) เป็นคู่หูเชิงเส้นของ simplify_by_circular_arcs: simplify_features (Douglas-Peucker) เก็บได้เฉพาะจุดยอดที่มีอยู่และไม่รับประกันความสัมผัส จึงทิ้งรอยหักบนเรขาคณิตที่ออกแบบไว้ ส่วน smooth_line และ smooth_natural_features เลื่อนจุดยอดแทนที่จะลดจำนวน.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์เส้นหรือโพลิกอนที่ต้องการลดรูป."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ฟีเจอร์ที่ลดรูปแล้วพร้อมฟิลด์จำนวนจุดยอดที่ผนวกเข้ามา หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "max_offset": {
                "label": "ออฟเซ็ตสูงสุด",
                "description": "ค่าเบี่ยงเบนตั้งฉากสูงสุดจากรูปเดิม ในหน่วยระบบพิกัด บน EPSG:4326 ค่านี้เป็นองศา ดังนั้นงานระดับเมตรต้องใช้ประมาณ 2e-5 ไม่ใช่ 2.0 ขอบเขตนี้ถูกบังคับใช้กับแต่ละเส้นที่ปรับพอดี ดังนั้นสายเส้นที่ส่งออกอาจเกินค่านี้เล็กน้อยบริเวณรอยต่อที่เซกเมนต์ติดกันมาบรรจบกัน."
              },
              "anchor_points": {
                "label": "จุดยึด",
                "description": "เลเยอร์จุดเป็นตัวเลือกที่ตำแหน่งต้องคงอยู่เป็นจุดยอด (anchor_points ของ ArcGIS) กลุ่มเซกเมนต์จะไม่ถูกขยายข้ามจุดยึด."
              },
              "anchor_tolerance": {
                "label": "ค่าเผื่อจุดยึด",
                "description": "ระยะทางที่จุดยอดของข้อมูลนำเข้าถือว่าตรงกับจุดยึด (หน่วย CRS) ค่าเริ่มต้น: max_offset."
              },
              "min_run": {
                "label": "ความยาวต่อเนื่องต่ำสุด",
                "description": "จำนวนจุดยอดนำเข้าขั้นต่ำที่ช่วงหนึ่งต้องครอบคลุมก่อนจะถูกยุบรวมเป็นเซกเมนต์ (ค่าเริ่มต้น 3) ช่วงที่สั้นกว่านี้จะถูกส่งออกโดยไม่เปลี่ยนแปลง."
              },
              "preserve_endpoints": {
                "label": "คงจุดปลาย",
                "description": "คงจุดยอดแรกและจุดยอดสุดท้ายของแต่ละส่วนไว้อย่างแม่นยำ (ค่าเริ่มต้น true)."
              }
            }
          },
          "simplify_shared_edges": {
            "name": "ลดรูปขอบที่ใช้ร่วมกัน",
            "description": "ลดรูปชุดโพลิกอนโดยคงขอบเขตที่ใช้ร่วมกันระหว่างโพลิกอนที่อยู่ติดกันให้ยังทับกันพอดี (ไม่มีช่องว่างหรือเศษเสี้ยว) เช่นเดียวกับ ArcGIS Simplify Shared Edges.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อการลดรูปแบบ Douglas-Peucker: ระยะทางสูงสุด (ในหน่วย CRS) ที่ส่วนโค้งซึ่งลดรูปแล้วเบี่ยงเบนจากเส้นเดิมได้ ค่าเริ่มต้น 1.0."
              },
              "simplify_boundary": {
                "label": "ลดรูปขอบเขต",
                "description": "ลดรูปส่วนโค้งบนขอบเขตด้านนอกของพื้นที่ครอบคลุมด้วย (ขอบที่เป็นของโพลิกอนเดียว) ค่าเริ่มต้น true ตั้งเป็น false เพื่อคงขอบเขตด้านนอกไว้ไม่เปลี่ยนแปลง."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ปรับจุดยอดให้อยู่บนกริดขนาดนี้ (หน่วย CRS) ก่อนสร้างโทโพโลยี เพื่อให้จุดยอดร่วมที่เกือบทับกันถูกถือเป็นจุดเดียว ค่าเริ่มต้น 0 (ใช้พิกัดตามจริง)."
              }
            }
          },
          "slice_raster": {
            "name": "หั่นแรสเตอร์",
            "description": "จำแนกแรสเตอร์ต่อเนื่องเป็นโซนเชิงอันดับ N โซน (ช่วงเท่ากัน พื้นที่เท่ากัน จุดแบ่งธรรมชาติ ช่วงเรขาคณิต หรือส่วนเบี่ยงเบนมาตรฐาน).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์ค่าต่อเนื่องที่นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์โซนผลลัพธ์ (เป็นตัวเลือก) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะจำแนก โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "number_zones": {
                "label": "จำนวนโซน",
                "description": "จำนวนโซนผลลัพธ์ (ค่าเริ่มต้น 10) ไม่มีผลกับ std_dev."
              },
              "slice_type": {
                "label": "ชนิดการหั่น",
                "description": "วิธีการจำแนก: equal_interval, equal_area, natural_breaks, geometric_interval หรือ std_dev (ค่าเริ่มต้น equal_interval)."
              },
              "base_output_zone": {
                "label": "โซนผลลัพธ์ฐาน",
                "description": "รหัสโซนที่กำหนดให้กับโซนต่ำสุด (ค่าเริ่มต้น 1)."
              },
              "class_interval_size": {
                "label": "ขนาดช่วงคลาส",
                "description": "ขนาดช่วงของส่วนเบี่ยงเบนมาตรฐานในหน่วย σ (ค่าเริ่มต้น 1.0) ใช้เฉพาะกับ std_dev."
              }
            }
          },
          "smooth_natural_features": {
            "name": "ทำฟีเจอร์ธรรมชาติให้เรียบ",
            "description": "ทำให้โพลิกอนที่เป็นเหลี่ยมพิกเซลและเส้นที่หยักฟันเลื่อย (ผลลัพธ์จากการแปลงแรสเตอร์เป็นเวกเตอร์) เรียบเป็นเส้นโค้งที่ดูเป็นธรรมชาติด้วยการตัดมุมแบบ Chaikin โดยรักษาพื้นที่ของโพลิกอนไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้าที่มีฟีเจอร์โพลิกอนหรือเส้น ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "segment_length": {
                "label": "ความยาวเซกเมนต์",
                "description": "สเกลของสัญญาณรบกวนแบบขั้นบันไดที่ต้องการกำจัด ในหน่วย CRS — ควรเท่ากับขนาดเซลล์ของแรสเตอร์ต้นทาง หากไม่ระบุ จะตรวจหาอัตโนมัติจากความยาวขอบมัธยฐานของเลเยอร์."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำของการทำให้เรียบแบบ Chaikin (1-8) ยิ่งวนซ้ำมาก ผลลัพธ์ยิ่งเรียบและมีจุดยอดมากขึ้น ค่าเริ่มต้น 3."
              },
              "preserve_area": {
                "label": "คงพื้นที่",
                "description": "คืนค่าพื้นที่เดิมของแต่ละโพลิกอนหลังการทำให้เรียบ (การตัดมุมทำให้รูปทรงนูนหดเล็กลง) ค่าเริ่มต้น true."
              }
            }
          },
          "smooth_shared_edges": {
            "name": "ทำขอบที่ใช้ร่วมกันให้เรียบ",
            "description": "ทำให้ชุดโพลิกอนเรียบโดยคงขอบเขตที่ใช้ร่วมกันระหว่างโพลิกอนที่อยู่ติดกันให้ยังทับกันพอดี (ไม่มีช่องว่างหรือเศษเสี้ยว) เช่นเดียวกับ ArcGIS Smooth Shared Edges.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์โพลิกอนนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "algorithm": {
                "label": "อัลกอริทึม",
                "description": "อัลกอริทึมการทำให้เรียบ: 'paek' (เคอร์เนลเกาส์เซียน ควบคุมด้วยค่าเผื่อ; ค่าเริ่มต้น) หรือ 'bezier' (การตัดมุมแบบ Chaikin ซึ่งไม่สนใจค่าเผื่อ)."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ความยาวการทำให้เรียบแบบ PAEK ในหน่วย CRS: หน้าต่างความยาวส่วนโค้งที่ใช้เฉลี่ยจุดยอด ค่ายิ่งมากเส้นโค้งยิ่งเรียบ ค่าเริ่มต้น 1.0 ไม่มีผลกับอัลกอริทึม 'bezier'."
              },
              "smooth_boundary": {
                "label": "ทำขอบเขตให้เรียบ",
                "description": "ทำให้ส่วนโค้งบนขอบเขตด้านนอกของพื้นที่ครอบคลุมเรียบด้วย (ขอบที่เป็นของโพลิกอนเดียว) ค่าเริ่มต้น true ตั้งเป็น false เพื่อคงขอบเขตด้านนอกไว้ไม่เปลี่ยนแปลง."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ปรับจุดยอดให้อยู่บนกริดขนาดนี้ (หน่วย CRS) ก่อนสร้างโทโพโลยี เพื่อให้จุดยอดร่วมที่เกือบทับกันถูกถือเป็นจุดเดียว ค่าเริ่มต้น 0 (ใช้พิกัดตามจริง)."
              }
            }
          },
          "snap_tracks": {
            "name": "สแนปเส้นทางเคลื่อนที่",
            "description": "จับคู่แทร็ก GPS ที่มีเวลากำกับเข้ากับโครงข่ายถนนด้วยโปรแกรมพลวัตแบบ Viterbi (ค่าปล่อย = ระยะสแนป, ค่าเปลี่ยนสถานะ = ความต่อเนื่องของเส้นทาง) เพื่อให้แทร็กที่จับคู่แล้วไปตามเส้นทางที่เป็นไปได้เส้นเดียวแทนที่จะสลับไปมาระหว่างถนนที่ขนานกัน — เช่นเดียวกับ ArcGIS Snap Tracks.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุด GPS ที่มีเวลากำกับซึ่งนำเข้า."
              },
              "network": {
                "label": "โครงข่าย",
                "description": "เลเยอร์เส้นโครงข่ายถนนที่จะจับคู่เข้าไป."
              },
              "track_field": {
                "label": "ฟิลด์เส้นทางเคลื่อนที่",
                "description": "ฟิลด์ที่ใช้ระบุแต่ละเส้นทาง/วัตถุที่เคลื่อนที่."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด (วินาทีแบบตัวเลขหรือ ISO-8601)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์จุดผลลัพธ์ที่สแนปแล้ว (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "รัศมีค้นหาผู้สมัคร: พิจารณาเฉพาะขอบโครงข่ายที่อยู่ภายในระยะทางนี้จากตำแหน่งที่วัดได้ จำเป็นต้องระบุ."
              },
              "max_candidates": {
                "label": "จำนวนตัวเลือกสูงสุด",
                "description": "จำนวนขอบผู้สมัครสูงสุดที่เก็บไว้ต่อหนึ่งตำแหน่ง (ค่าเริ่มต้น 5)."
              }
            }
          },
          "solar_radiation": {
            "name": "รังสีดวงอาทิตย์",
            "description": "รังสีดวงอาทิตย์ที่ตกกระทบ (Wh/m²) บน DEM ตลอดช่วงวันที่: ทั้งรังสีตรงและรังสีกระจาย โดยคำนึงถึงความลาดชัน/ทิศด้านลาด เงาจากขอบฟ้า และตำแหน่งดวงอาทิตย์ตามเวลา — เช่นเดียวกับ ArcGIS Raster Solar Radiation.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ระดับความสูงที่นำเข้า (ระบบพิกัดฉาย หน่วยเมตร — ความลาดชันและเส้นขอบฟ้าต้องใช้ระยะทางจริง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ของรังสีรวม (Wh/m²) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "direct_output": {
                "label": "ผลลัพธ์รังสีตรง",
                "description": "แรสเตอร์ผลลัพธ์ (เป็นตัวเลือก) สำหรับองค์ประกอบรังสีตรง (Wh/m²)."
              },
              "diffuse_output": {
                "label": "ผลลัพธ์รังสีกระจาย",
                "description": "แรสเตอร์ผลลัพธ์ (เป็นตัวเลือก) สำหรับองค์ประกอบรังสีกระจาย (Wh/m²)."
              },
              "start_day": {
                "label": "วันเริ่มต้น",
                "description": "วันแรกของปี (1-365) หรือวันที่แบบ ISO (YYYY-MM-DD) ค่าเริ่มต้น 1."
              },
              "end_day": {
                "label": "วันสิ้นสุด",
                "description": "วันสุดท้ายของปี (1-365) หรือวันที่แบบ ISO ค่าเริ่มต้น 365."
              },
              "day_interval": {
                "label": "ช่วงวัน",
                "description": "สุ่มตัวอย่างทุก ๆ กี่วันตลอดช่วงที่กำหนด (ตัวอย่างแต่ละชุดแทนจำนวนวันดังกล่าว) ค่าเริ่มต้น: span/12 (ประมาณ 12 ตัวอย่าง)."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "จำนวนชั่วโมงระหว่างการสุ่มตัวอย่างตำแหน่งดวงอาทิตย์ในแต่ละวัน ค่าเริ่มต้น 0.5."
              },
              "latitude": {
                "label": "ละติจูด",
                "description": "ละติจูดเป็นองศา ค่าเริ่มต้น: คำนวณจากจุดศูนย์กลางของ DEM สำหรับ EPSG:4326 / 3857."
              },
              "transmittivity": {
                "label": "ค่าการส่งผ่าน",
                "description": "ค่าการส่งผ่านของบรรยากาศ (0-1) ต่อมวลอากาศหนึ่งหน่วย ค่าเริ่มต้น 0.6."
              },
              "diffuse_proportion": {
                "label": "สัดส่วนรังสีกระจาย",
                "description": "สัดส่วนของความเข้มรังสีแนวราบนอกชั้นบรรยากาศที่ถือเป็นรังสีกระจายจากท้องฟ้า (0-1) ค่าเริ่มต้น 0.3."
              },
              "horizon_distance": {
                "label": "ระยะทางขอบฟ้า",
                "description": "ความยาวสูงสุดของรังสีเส้นขอบฟ้าเป็นจำนวนเซลล์ (จำกัดขอบเขตการคำนวณเงา) ค่าเริ่มต้น 100."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของ DEM โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "sort_features": {
            "name": "เรียงลำดับฟีเจอร์",
            "description": "เรียงลำดับเลเยอร์เวกเตอร์ใหม่ตามฟิลด์แอตทริบิวต์หรือไปตามเส้นโค้งเติมปริภูมิแบบ Hilbert (การเรียงเชิงพื้นที่) เช่นเดียวกับ ArcGIS Sort — การเรียงแบบ Hilbert จัดเรกคอร์ดที่อยู่ใกล้กันเชิงพื้นที่ไว้ด้วยกันเพื่อเพิ่มประสิทธิภาพการตัดข้อมูลของ GeoParquet และความใกล้เคียงเชิงตำแหน่งของ PMTiles.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์ผลลัพธ์ที่เรียงตามลำดับใหม่ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'hilbert' (เรียงตามเส้นโค้งเชิงพื้นที่; ค่าเริ่มต้น) หรือ 'attribute' (เรียงตามรายการ 'fields')."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "โหมด attribute: รายชื่อฟิลด์คั่นด้วยจุลภาค พร้อมระบุทิศทางการเรียงได้ เช่น 'pop:desc,name:asc'."
              },
              "index_field": {
                "label": "ฟิลด์ดัชนี",
                "description": "ชื่อฟิลด์ (เป็นตัวเลือก) สำหรับเก็บระยะทางบนเส้นโค้งฮิลแบร์ตของแต่ละฟีเจอร์."
              }
            }
          },
          "space_time_kernel_density": {
            "name": "ความหนาแน่นเคอร์เนลเชิงพื้นที่-เวลา",
            "description": "ความหนาแน่นเคอร์เนลเชิงพื้นที่-เวลาของจุดที่มีเวลากำกับ: หนึ่งแบนด์ความหนาแน่นต่อหนึ่งสไลซ์เวลา (แรสเตอร์หลายแบนด์) จากเคอร์เนลที่แยกได้เป็นเชิงพื้นที่ (Epanechnikov/ควอร์ติก) x เชิงเวลา (สามเหลี่ยม/Epanechnikov) แต่ละแบนด์จึงรวมจุดที่อยู่ใกล้กันทั้งในเชิงพื้นที่และเวลา เช่นเดียวกับ ArcGIS Space Time Kernel Density เป็นคู่หูที่รับรู้เวลาของ heat_map แบบ 2 มิติที่มีอยู่.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดที่นำเข้า ระบบพิกัดภูมิศาสตร์ (EPSG:4326/ลอน-แลตที่ไม่ระบุ) ใช้ระยะแบบ haversine หน่วยเมตร ส่วนระบบพิกัดฉายใช้หน่วย CRS เรขาคณิตที่ไม่ใช่จุดจะใช้จุดยอดแรกหรือจุดยอดตัวแทน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์หลายแบนด์ผลลัพธ์ (หนึ่งแบนด์ต่อหนึ่งช่วงเวลา; ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: ฟิลด์ตัวเลข (ในหน่วยของตัวเอง) หรือสตริงวันที่/วันที่และเวลาแบบ ISO-8601."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "ช่วงห่างของสไลซ์: ตัวเลขธรรมดา (เมื่อ time_field เป็นตัวเลข) หรือระยะเวลาเช่น '1w', '7d', '12h', '1M' ค่าเริ่มต้น '1w'."
              },
              "temporal_bandwidth": {
                "label": "แบนด์วิดท์เชิงเวลา",
                "description": "ครึ่งความกว้างของเคอร์เนลเชิงเวลา ใช้หน่วยและรูปแบบระยะเวลาเดียวกับ time_step ค่าเริ่มต้น: เท่ากับ time_step."
              },
              "spatial_bandwidth": {
                "label": "แบนด์วิดท์เชิงพื้นที่",
                "description": "รัศมีของเคอร์เนลเชิงพื้นที่ หน่วยเมตรสำหรับข้อมูลนำเข้าเชิงภูมิศาสตร์ หรือหน่วย CRS สำหรับระบบพิกัดฉาย ค่าเริ่มต้น: ขอบเขตสูงสุด / 20."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วย CRS (องศาสำหรับระบบพิกัดภูมิศาสตร์) ค่าเริ่มต้น: ขอบเขตสูงสุด / 200."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลข (เป็นตัวเลือก) ที่ใช้ถ่วงน้ำหนักแต่ละจุด ค่าเริ่มต้น: ทุกจุดนับเป็น 1."
              },
              "spatial_kernel": {
                "label": "เคอร์เนลเชิงพื้นที่",
                "description": "รูปทรงของเคอร์เนลเชิงพื้นที่: 'epanechnikov' (ค่าเริ่มต้น) หรือ 'quartic'."
              },
              "temporal_kernel": {
                "label": "เคอร์เนลเชิงเวลา",
                "description": "รูปทรงของเคอร์เนลเชิงเวลา: 'triangular' (ค่าเริ่มต้น) หรือ 'epanechnikov'."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ที่จะกำกับให้แรสเตอร์ผลลัพธ์ (ค่าเริ่มต้น: จากเลเยอร์นำเข้า)."
              }
            }
          },
          "spatial_association_between_zones": {
            "name": "ความสัมพันธ์เชิงพื้นที่ระหว่างโซน",
            "description": "วัดว่าแรสเตอร์โซนเชิงหมวดหมู่สองชุดสอดคล้องกันมากเพียงใดด้วยค่า V-measure (ความเป็นเนื้อเดียวกัน/ความสมบูรณ์) พร้อมคะแนนความสัมพันธ์รายโซน.",
            "params": {
              "zones1": {
                "label": "โซน 1",
                "description": "แรสเตอร์โซนเชิงประเภทชุดแรก (เช่น สิ่งปกคลุมดิน) ต้องอยู่บนกริดเดียวกับ zones2."
              },
              "zones2": {
                "label": "โซน 2",
                "description": "แรสเตอร์โซนเชิงประเภทชุดที่สอง (เช่น เขตนิเวศ) บนกริดเดียวกับ zones1."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ตาราง CSV (เป็นตัวเลือก) แยกตามคลาสของ zones1 (คลาส จำนวน ความสัมพันธ์ คลาสเด่นของ zones2 และสัดส่วน) ส่วนค่าชี้วัดโดยรวมจะส่งกลับในผลลัพธ์เสมอ."
              },
              "band1": {
                "label": "แบนด์ 1",
                "description": "แบนด์ของ zones1 ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "band2": {
                "label": "แบนด์ 2",
                "description": "แบนด์ของ zones2 ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "spatial_eigenvector_filtering": {
            "name": "การกรองด้วยเวกเตอร์ไอเกนเชิงพื้นที่ (MESF)",
            "description": "สร้างเวกเตอร์ไอเกนของ Moran (ตัวกรองเชิงพื้นที่) จากเมทริกซ์น้ำหนักเชิงพื้นที่ และเพิ่มองค์ประกอบที่มีสหสัมพันธ์ในตัวเองเป็นฟิลด์ตัวแปรอธิบาย (MEV1, MEV2, …) เช่นเดียวกับ ArcGIS Decompose Spatial Structure / Create Spatial Component Explanatory Variables สร้างเมทริกซ์การเชื่อมต่อแบบสมมาตร (การประชิดหรือ KNN ที่ทำให้สมมาตร) ทำการหักค่ากลางสองทาง (M C M) แล้วแยกค่าไอเกนด้วยตัวแก้ Jacobi แบบวนรอบที่เขียนด้วย Rust ล้วน เก็บเวกเตอร์ไอเกนที่มีค่า Moran's I ≥ min_autocorrelation เรียงจากมากไปน้อยและจำกัดที่ max_components.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ที่นำเข้า (จุด/เส้น/โพลิกอน; วิธีแบบติดกันต้องใช้โพลิกอน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ — ฟีเจอร์นำเข้าพร้อมเวกเตอร์ลักษณะเฉพาะที่เก็บไว้ ต่อท้ายเป็น MEV1, MEV2, … หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "แนวคิดของความสัมพันธ์เชิงพื้นที่: 'contiguity_edges' (แบบเรือ), 'contiguity_edges_corners' (แบบราชินี) หรือ 'knn' (ทำให้สมมาตร) ค่าเริ่มต้น 'contiguity_edges_corners'."
              },
              "number_of_neighbors": {
                "label": "จำนวนเพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านใกล้ที่สุด k สำหรับ method = knn ค่าเริ่มต้น 8."
              },
              "min_autocorrelation": {
                "label": "สหสัมพันธ์ในตัวต่ำสุด",
                "description": "ค่า Moran's I ต่ำสุดที่เวกเตอร์ลักษณะเฉพาะต้องมีจึงจะถูกเก็บไว้ (สหสัมพันธ์อัตโนมัติเชิงพื้นที่เชิงบวก) ค่าเริ่มต้น 0.25."
              },
              "max_components": {
                "label": "จำนวนองค์ประกอบสูงสุด",
                "description": "จำนวนเวกเตอร์ลักษณะเฉพาะสูงสุดที่จะส่งออก โดยเรียงตามค่า Moran's I จากมากไปน้อย ค่าเริ่มต้น 15."
              }
            }
          },
          "spatial_outlier_detection": {
            "name": "การตรวจจับค่าผิดปกติเชิงพื้นที่",
            "description": "ให้คะแนนจุดด้วยค่า Local Outlier Factor (LOF) — วัดว่าแต่ละจุดโดดเดี่ยวเพียงใดเมื่อเทียบกับความหนาแน่นเฉพาะที่ของเพื่อนบ้าน k ตัวที่ใกล้ที่สุด — และระบุค่าผิดปกติอันดับต้น ๆ เช่นเดียวกับ ArcGIS Spatial Outlier Detection เติมช่องว่างที่ป้ายกำกับสัญญาณรบกวนแบบไบนารีของ DBSCAN ทิ้งไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์จุดนำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "จุดผลลัพธ์พร้อมคะแนน LOF และธงระบุค่าผิดปกติ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "neighbors": {
                "label": "เพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านใกล้ที่สุด k (ค่าเริ่มต้น 20)."
              },
              "percent_outlier": {
                "label": "ร้อยละค่าผิดปกติ",
                "description": "ทำเครื่องหมายจุดที่มีค่า LOF สูงสุดตามร้อยละที่ระบุนี้ว่าเป็นค่าผิดปกติ (ค่าเริ่มต้น 5) ไม่มีผลหากกำหนด 'threshold'."
              },
              "threshold": {
                "label": "ค่าเกณฑ์",
                "description": "ค่าเกณฑ์ LOF ที่กำหนดชัดเจน: จุดที่มีค่า LOF สูงกว่านี้ถือเป็นค่าผิดปกติ (มีผลเหนือกว่า percent_outlier)."
              }
            }
          },
          "spatially_constrained_multivariate_clustering": {
            "name": "การจัดกลุ่มหลายตัวแปรแบบมีข้อจำกัดเชิงพื้นที่",
            "description": "แบ่งฟีเจอร์ออกเป็นภูมิภาคที่ต่อเนื่องกันเชิงพื้นที่และมีแอตทริบิวต์เป็นเนื้อเดียวกันด้วยอัลกอริทึม SKATER (ต้นไม้แผ่ทั่วน้อยที่สุดบนกราฟการประชิด ตัดเพื่อให้ความแปรปรวนระหว่างกลุ่มสูงสุด) พร้อมข้อจำกัดด้านขนาด/ความสมดุลเป็นตัวเลือก ทุกคลัสเตอร์เชื่อมต่อกันโดยโครงสร้าง ต่างจาก multivariate_clustering เช่นเดียวกับ ArcGIS Spatially Constrained Multivariate Clustering.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์โพลิกอน (หรือจุด) ที่นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์สำหรับฟีเจอร์นำเข้าพร้อมฟิลด์ CLUSTER_ID หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "analysis_fields": {
                "label": "ฟิลด์วิเคราะห์",
                "description": "ชื่อฟิลด์ตัวเลขที่ใช้จัดกลุ่มคลัสเตอร์ คั่นด้วยจุลภาคหรืออัฒภาค."
              },
              "number_of_clusters": {
                "label": "จำนวนกลุ่ม",
                "description": "จำนวนคลัสเตอร์เป้าหมาย (ค่าเริ่มต้น 5)."
              },
              "neighborhood": {
                "label": "บริเวณใกล้เคียง",
                "description": "'contiguity_edges' (แบบเรือ, ค่าเริ่มต้น), 'contiguity_edges_corners' (แบบราชินี) หรือ 'knn'."
              },
              "number_of_neighbors": {
                "label": "จำนวนเพื่อนบ้าน",
                "description": "จำนวนเพื่อนบ้านสำหรับย่านแบบ 'knn' (ค่าเริ่มต้น 8)."
              },
              "constraint": {
                "label": "ข้อจำกัด",
                "description": "'none' (ค่าเริ่มต้น), 'feature_count' หรือ 'attribute_value'."
              },
              "constraint_field": {
                "label": "ฟิลด์ข้อจำกัด",
                "description": "ฟิลด์ที่รวมผลรวมต่อคลัสเตอร์เมื่อ 'constraint' เป็น 'attribute_value'."
              },
              "min_constraint": {
                "label": "ข้อจำกัดต่ำสุด",
                "description": "จำนวนฟีเจอร์หรือผลรวมแอตทริบิวต์ขั้นต่ำต่อคลัสเตอร์ การตัดแบ่งที่ละเมิดเงื่อนไขนี้จะถูกข้าม."
              },
              "max_constraint": {
                "label": "ข้อจำกัดสูงสุด",
                "description": "จำนวนฟีเจอร์หรือผลรวมแอตทริบิวต์สูงสุดต่อคลัสเตอร์ คลัสเตอร์ที่เกินค่านี้จะถูกแยกต่อ แม้จะเกินค่า 'number_of_clusters' ก็ตาม."
              },
              "scale_data": {
                "label": "ปรับสเกลข้อมูล",
                "description": "ทำให้ฟิลด์ที่ใช้วิเคราะห์เป็นมาตรฐานแบบ Z ก่อนจัดกลุ่มคลัสเตอร์ (ค่าเริ่มต้น true)."
              },
              "output_table": {
                "label": "ตารางผลลัพธ์",
                "description": "พาธ (เป็นตัวเลือก) สำหรับสรุปรายคลัสเตอร์ (ค่าเฉลี่ย, R-squared รายตัวแปร, pseudo-F)."
              }
            }
          },
          "spectral_index": {
            "name": "ดัชนีสเปกตรัม",
            "description": "คำนวณดัชนีเชิงสเปกตรัม (NDVI, NDWI, NDBI, NBR, EVI, SAVI) จากแรสเตอร์หลายแบนด์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์หลายแบนด์ที่นำเข้า."
              },
              "index": {
                "label": "ดัชนี",
                "description": "ดัชนีที่จะคำนวณ: ndvi, ndwi, ndbi, nbr, evi หรือ savi."
              },
              "red": {
                "label": "แดง",
                "description": "หมายเลขแบนด์ (เริ่มนับจาก 1) ของแบนด์สีแดง."
              },
              "nir": {
                "label": "NIR",
                "description": "หมายเลขแบนด์ (เริ่มนับจาก 1) ของแบนด์อินฟราเรดใกล้."
              },
              "green": {
                "label": "เขียว",
                "description": "หมายเลขแบนด์ (เริ่มนับจาก 1) ของแบนด์สีเขียว."
              },
              "blue": {
                "label": "น้ำเงิน",
                "description": "หมายเลขแบนด์ (เริ่มนับจาก 1) ของแบนด์สีน้ำเงิน."
              },
              "swir": {
                "label": "SWIR",
                "description": "หมายเลขแบนด์ (เริ่มนับจาก 1) ของแบนด์อินฟราเรดคลื่นสั้น."
              },
              "soil_factor": {
                "label": "ตัวประกอบดิน",
                "description": "ตัวปรับแก้ดิน L สำหรับ SAVI (ค่าเริ่มต้น 0.5)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์เป็นตัวเลือก. หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "split_by_attributes": {
            "name": "แยกตามแอตทริบิวต์",
            "description": "แยกเลเยอร์เวกเตอร์เป็นไฟล์ผลลัพธ์หนึ่งไฟล์ต่อค่า (หรือชุดผสม) ที่ไม่ซ้ำกันของฟิลด์ที่กำหนด เช่นเดียวกับ ArcGIS Split By Attributes.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า."
              },
              "output_dir": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ผลลัพธ์ จะเขียนไฟล์หนึ่งไฟล์ต่อหนึ่งกลุ่มไว้ที่นี่ (สร้างให้หากยังไม่มี)."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ที่ใช้แยก คั่นด้วยจุลภาค (คีย์หลายฟิลด์จะเชื่อมค่าด้วย '__')."
              },
              "format": {
                "label": "รูปแบบ",
                "description": "นามสกุลรูปแบบผลลัพธ์: geojson (ค่าเริ่มต้น), fgb, parquet, shp."
              }
            }
          },
          "split_by_features": {
            "name": "แยกตามฟีเจอร์",
            "description": "ตัดเลเยอร์นำเข้าด้วยแต่ละโซนของเลเยอร์โพลิกอนที่ใช้แยก โดยเขียนไฟล์ผลลัพธ์หนึ่งไฟล์ต่อค่าฟิลด์แยกที่แตกต่างกัน โซนที่มีค่าเดียวกันจะถูกยุบรวมก่อน และโซนว่างจะถูกข้าม เช่นเดียวกับ ArcGIS Split (Analysis).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์ที่จะแยก (จุด เส้น หรือโพลิกอน)."
              },
              "split_features": {
                "label": "ฟีเจอร์แยก",
                "description": "เลเยอร์โพลิกอนที่ฟีเจอร์ของมันกำหนดโซนสำหรับการแยก."
              },
              "split_field": {
                "label": "ฟิลด์แยก",
                "description": "ฟิลด์ใน 'split_features' ที่ใช้กำหนดชื่อของผลลัพธ์แต่ละไฟล์."
              },
              "output_dir": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ที่รับไฟล์ผลลัพธ์หนึ่งไฟล์ต่อค่าการแยกที่แตกต่างกันแต่ละค่า."
              },
              "output_format": {
                "label": "รูปแบบผลลัพธ์",
                "description": "นามสกุลไฟล์/ไดรเวอร์ผลลัพธ์: 'geojson' (ค่าเริ่มต้น), 'shp', 'gpkg', 'parquet', 'csv'."
              }
            }
          },
          "split_line_at_point": {
            "name": "แยกเส้นที่จุด",
            "description": "แยกฟีเจอร์โพลีไลน์ที่ตำแหน่งของฟีเจอร์จุดซึ่งอยู่ภายในรัศมีค้นหา โดยแทรกโหนดที่จุดที่สแนปแต่ละจุด และสร้างฟีเจอร์หนึ่งอันต่อเซกเมนต์ย่อยที่ได้ (คงแอตทริบิวต์ต้นทางไว้) — เช่นเดียวกับ ArcGIS Split Line At Point.",
            "params": {
              "input_lines": {
                "label": "เส้นนำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นหลายท่อนที่นำเข้าเพื่อแยก."
              },
              "point_features": {
                "label": "ฟีเจอร์จุด",
                "description": "เลเยอร์เวกเตอร์จุด (หรือหลายจุด) ที่ตำแหน่งของมันกำหนดโหนดสำหรับการแยก."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "ระยะทางสูงสุดในหน่วย CRS ของเส้น ระหว่างจุดกับเส้น ที่จะทำให้จุดนั้นแยกเส้นดังกล่าว จำเป็นต้องระบุและต้องเป็นค่าบวก."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์เส้นผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "split_raster": {
            "name": "แยกแรสเตอร์",
            "description": "แยกแรสเตอร์เป็นไทล์อิสระตามจำนวนไทล์ ขนาดพิกเซลคงที่ หรือฟีเจอร์โพลิกอน พร้อมการซ้อนทับพิกเซลเป็นตัวเลือก — เช่นเดียวกับ ArcGIS Split Raster แต่ละไทล์คงระบบพิกัดและการอ้างอิงตำแหน่งไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า."
              },
              "output_dir": {
                "label": "โฟลเดอร์ผลลัพธ์",
                "description": "โฟลเดอร์ผลลัพธ์สำหรับไฟล์ไทล์ (สร้างให้หากยังไม่มี)."
              },
              "base_name": {
                "label": "ชื่อฐาน",
                "description": "คำนำหน้าชื่อไฟล์ผลลัพธ์ (ค่าเริ่มต้น 'tile')."
              },
              "split_method": {
                "label": "วิธีแยก",
                "description": "'count' (กริด N×M, ค่าเริ่มต้น), 'size' (ไทล์ขนาดพิกเซลคงที่) หรือ 'polygons' (ตัดหนึ่งครั้งต่อหนึ่งฟีเจอร์)."
              },
              "num_x": {
                "label": "จำนวน X",
                "description": "จำนวนคอลัมน์ของไทล์สำหรับ 'count' (ค่าเริ่มต้น 2)."
              },
              "num_y": {
                "label": "จำนวน Y",
                "description": "จำนวนแถวของไทล์สำหรับ 'count' (ค่าเริ่มต้น 2)."
              },
              "tile_size_x": {
                "label": "ขนาดไทล์ X",
                "description": "ความกว้างของไทล์เป็นพิกเซลสำหรับ 'size' (ค่าเริ่มต้น 256)."
              },
              "tile_size_y": {
                "label": "ขนาดไทล์ Y",
                "description": "ความสูงของไทล์เป็นพิกเซลสำหรับ 'size' (ค่าเริ่มต้น 256)."
              },
              "polygons": {
                "label": "โพลิกอน",
                "description": "เลเยอร์เวกเตอร์โพลิกอนสำหรับโหมด 'polygons' (หนึ่งไทล์ต่อหนึ่งฟีเจอร์)."
              },
              "overlap": {
                "label": "การซ้อนทับ",
                "description": "จำนวนพิกเซลที่ซ้อนทับเพิ่มเข้าไปรอบด้านของแต่ละไทล์ (ค่าเริ่มต้น 0)."
              },
              "format": {
                "label": "รูปแบบ",
                "description": "นามสกุลไฟล์/ไดรเวอร์ผลลัพธ์: 'tif' (ค่าเริ่มต้น) หรือ 'png'."
              }
            }
          },
          "stack_profile": {
            "name": "โปรไฟล์สแตก",
            "description": "สุ่มค่าแรสเตอร์พื้นผิวหลายชุดไปตามโพลีไลน์เดียวกัน และสร้างตารางรูปแบบยาวหนึ่งตาราง (LINE_ID, FIRST_DIST, FIRST_Z, SRC_ID, SRC_NAME) เพื่อให้เปรียบเทียบพื้นผิวเหล่านั้นในหน้าตัดบนแกนระยะทางร่วมกันได้ เช่นเดียวกับ ArcGIS Stack Profile.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์เส้นที่นำเข้าเพื่อสร้างภาพตัดขวาง."
              },
              "surfaces": {
                "label": "พื้นผิว",
                "description": "รายการพาธแรสเตอร์พื้นผิว คั่นด้วยจุลภาคหรืออัฒภาค โดยจะสุ่มตัวอย่างตามลำดับที่ระบุ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางภาพตัดขวางผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "sample_distance": {
                "label": "ระยะทางสุ่มตัวอย่าง",
                "description": "ระยะห่างระหว่างสถานีในหน่วยแผนที่ (ค่าเริ่มต้น: ขนาดเซลล์ที่ละเอียดที่สุดของข้อมูลนำเข้า)."
              },
              "line_id_field": {
                "label": "ฟิลด์รหัสเส้น",
                "description": "ฟิลด์ (เป็นตัวเลือก) ที่ใช้กำหนด LINE_ID ค่าเริ่มต้นคือดัชนีของฟีเจอร์."
              },
              "method": {
                "label": "วิธี",
                "description": "การสุ่มค่าจากพื้นผิว: 'bilinear' (ค่าเริ่มต้น) หรือ 'nearest'."
              }
            }
          },
          "storage_capacity": {
            "name": "ความจุกักเก็บ",
            "description": "กวาดระดับผิวน้ำบน DEM และรายงานพื้นที่ผิวที่ท่วมและปริมาตรกักเก็บที่แต่ละระดับ (เส้นโค้งระดับ-พื้นที่-ปริมาตร) รายโซนวิเคราะห์หรือทั้ง DEM เช่นเดียวกับ ArcGIS Storage Capacity.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "แรสเตอร์ DEM นำเข้า (ระดับความสูง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV ผลลัพธ์ (zone_id, level, elevation, area, volume)."
              },
              "zones": {
                "label": "โซน",
                "description": "เลเยอร์โพลิกอน (เป็นตัวเลือก) จะได้เส้นโค้งระดับ-พื้นที่-ปริมาตรหนึ่งเส้นต่อหนึ่งโพลิกอน หากไม่ระบุ จะถือว่า DEM ทั้งผืนเป็นโซนเดียว."
              },
              "zone_id_field": {
                "label": "ฟิลด์รหัสโซน",
                "description": "ฟิลด์ที่ใช้ตั้งชื่อแต่ละโซนในผลลัพธ์ (ค่าเริ่มต้น: ดัชนีของฟีเจอร์)."
              },
              "num_levels": {
                "label": "จำนวนระดับ",
                "description": "จำนวนขั้นระดับความสูงระหว่างค่าต่ำสุดและค่าสูงสุดของแต่ละโซน (ค่าเริ่มต้น 20) ไม่มีผลหากระบุ 'increment'."
              },
              "increment": {
                "label": "เพิ่มค่า",
                "description": "ขั้นระดับความสูงคงที่ระหว่างแต่ละระดับ (หน่วยแผนที่) มีผลเหนือกว่า 'num_levels'."
              },
              "min_elevation": {
                "label": "ระดับความสูงต่ำสุด",
                "description": "ขอบล่างของระดับความสูงสำหรับการกวาดค่า (เป็นตัวเลือก) ค่าเริ่มต้น: ระดับภูมิประเทศต่ำสุดของแต่ละโซน."
              },
              "max_elevation": {
                "label": "ระดับความสูงสูงสุด",
                "description": "ขอบบนของระดับความสูงสำหรับการกวาดค่า (เป็นตัวเลือก) ค่าเริ่มต้น: ระดับภูมิประเทศสูงสุดของแต่ละโซน."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของ DEM โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "strip_map_index_features": {
            "name": "ฟีเจอร์ดัชนีแผนที่แถบ",
            "description": "เดินไปตามแต่ละเส้นนำเข้าและสร้างลำดับสี่เหลี่ยมหน้ากระดาษที่หมุนและซ้อนทับกันพร้อมหมายเลข วางแนวตามทิศของเส้นทางเฉพาะที่ สำหรับแผนที่แถบตามทางหลวง แม่น้ำ ท่อส่ง หรือเส้นทางเดิน — เช่นเดียวกับ ArcGIS Strip Map Index Features.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์เส้นที่นำเข้าเพื่อทำดัชนี."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์ของหน้าดัชนี (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "page_length": {
                "label": "ความยาวหน้ากระดาษ",
                "description": "ความยาวของแต่ละหน้าตามแนวเส้นทาง ในหน่วย CRS จำเป็นต้องระบุ."
              },
              "page_width": {
                "label": "ความกว้างหน้ากระดาษ",
                "description": "ความกว้างของแต่ละหน้าในแนวขวางเส้นทาง ในหน่วย CRS จำเป็นต้องระบุ."
              },
              "overlap": {
                "label": "การซ้อนทับ",
                "description": "สัดส่วน [0, 1) ของ page_length ที่หน้าติดกันซ้อนทับกันตามแนวเส้นทาง ค่าเริ่มต้น 0."
              },
              "orientation": {
                "label": "แนวการวางตัว",
                "description": "along_line (ค่าเริ่มต้น): หมุนแต่ละหน้าตามทิศของคอร์ดในบริเวณนั้น horizontal/vertical: สแนปการหมุนไปยังแกนตะวันออก-ตะวันตก/เหนือ-ใต้ที่ใกล้ที่สุด."
              },
              "start_page": {
                "label": "หน้าเริ่มต้น",
                "description": "หมายเลขหน้าแรกที่จะกำหนด ค่าเริ่มต้น 1."
              }
            }
          },
          "subdivide_polygon": {
            "name": "แบ่งย่อยโพลิกอน",
            "description": "แบ่งแต่ละโพลิกอนเป็นส่วนที่มีพื้นที่เท่ากัน (ตามจำนวนส่วนที่กำหนด หรือพื้นที่เป้าหมายต่อส่วน) ด้วยรอยตัดตรงขนานกันที่มุมที่กำหนด เช่นเดียวกับ ArcGIS Subdivide Polygon.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์โพลิกอนที่นำเข้า (ใช้ระบบพิกัดฉาย/แบบพื้นที่เท่ากันเพื่อให้ได้พื้นที่เท่ากันจริง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์โพลิกอนผลลัพธ์ (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'equal_parts' (แบ่งเป็นแถบพื้นที่เท่ากันจำนวน num_parts แถบ, ค่าเริ่มต้น) หรือ 'equal_areas' (แถบละ target_area โดยเศษที่เหลืออยู่ในแถบสุดท้าย)."
              },
              "num_parts": {
                "label": "จำนวนส่วน",
                "description": "จำนวนส่วนที่มีพื้นที่เท่ากัน (สำหรับ method=equal_parts) ค่าเริ่มต้น 2."
              },
              "target_area": {
                "label": "พื้นที่เป้าหมาย",
                "description": "พื้นที่ของแต่ละส่วนในหน่วย CRS (จำเป็นสำหรับ method=equal_areas)."
              },
              "angle": {
                "label": "มุม",
                "description": "ทิศทางของแนวตัดเป็นองศา (0 = ตัดแนวตั้ง / ได้แถบแนวนอน) ค่าเริ่มต้น 0."
              }
            }
          },
          "subset_features": {
            "name": "ชุดย่อยของฟีเจอร์",
            "description": "สุ่มแยกเลเยอร์ฟีเจอร์เป็นชุดย่อยสำหรับฝึกสอนและส่วนที่เหลือ (ชุดทดสอบ) ตามร้อยละหรือจำนวนสัมบูรณ์ โดยใช้ตัวสร้างเลขสุ่มที่กำหนดค่าเริ่มต้นและให้ผลแน่นอน เลือกแบ่งชั้นภูมิตามฟิลด์กลุ่มได้ เช่นเดียวกับ ArcGIS Subset Features.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (เรขาคณิตชนิดใดก็ได้)."
              },
              "output_training": {
                "label": "ผลลัพธ์ชุดฝึกสอน",
                "description": "พาธผลลัพธ์สำหรับชุดย่อยข้อมูลฝึกสอน หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_test": {
                "label": "ผลลัพธ์ชุดทดสอบ",
                "description": "พาธผลลัพธ์ (เป็นตัวเลือก) สำหรับชุดย่อยส่วนที่เหลือ (ชุดทดสอบ) หากไม่ระบุ ชุดทดสอบจะถูกเก็บไว้ในหน่วยความจำ."
              },
              "size": {
                "label": "ขนาด",
                "description": "ขนาดของชุดย่อยข้อมูลฝึกสอน: เป็นร้อยละ (0-100) หรือจำนวนฟีเจอร์แบบสัมบูรณ์ ตามที่กำหนดใน 'size_method' (ค่าเริ่มต้น 50)."
              },
              "size_method": {
                "label": "วิธีกำหนดขนาด",
                "description": "'percentage' (ค่าเริ่มต้น) หรือ 'absolute'."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการแบ่งข้อมูลที่ทำซ้ำได้ (ค่าเริ่มต้นเป็นค่าคงที่)."
              },
              "group_field": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "ฟิลด์ (เป็นตัวเลือก) ที่ใช้แบ่งชั้น: แต่ละกลุ่มจะมีสัดส่วนของตนเองตามอัตราส่วนในชุดย่อยข้อมูลฝึกสอน."
              }
            }
          },
          "subset_multidimensional_raster": {
            "name": "ชุดย่อยของแรสเตอร์หลายมิติ",
            "description": "จำกัดคิวบ์แรสเตอร์หลายมิติให้เหลือเฉพาะชุดย่อยของสไลซ์ ตามช่วงพิกัดของมิติ ดัชนีที่ระบุชัด หรือขั้นการก้าว (ArcGIS Subset Multidimensional Raster / Select By Dimension) เครื่องมือคิวบ์ของรอบที่ 18 ล้วนรับคิวบ์ทั้งชุด จึงไม่มีวิธีวิเคราะห์เฉพาะหน้าต่างการศึกษาโดยไม่ต้องสร้างข้อมูลนำเข้าใหม่นอกแคตตาล็อก.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์หลายมิติ หรือรายการแรสเตอร์ที่ลงทะเบียนตรงกันคั่นด้วยจุลภาค ซึ่งแบนด์ทั้งหมดจะถูกต่อรวมเป็นคิวบ์เดียว."
              },
              "dimension_values": {
                "label": "ค่ามิติ",
                "description": "พิกัดรายสไลซ์ที่เพิ่มขึ้นอย่างเคร่งครัด (เป็นตัวเลือก) เช่น วันที่ ความลึก ความยาวคลื่น หนึ่งค่าต่อหนึ่งสไลซ์ จำเป็นสำหรับ 'dimension_range'."
              },
              "dimension": {
                "label": "มิติ",
                "description": "ชื่อของมิติ ใช้ในการรายงานเท่านั้น (ค่าเริ่มต้น 'slice')."
              },
              "dimension_range": {
                "label": "ช่วงมิติ",
                "description": "ช่วงพิกัดแบบรวมปลายทั้งสองในรูป 'min,max' ต้องใช้ร่วมกับ 'dimension_values' ใช้ร่วมกับ 'indices' ไม่ได้."
              },
              "indices": {
                "label": "ดัชนี",
                "description": "ดัชนีสไลซ์ที่ระบุชัดเจนโดยเริ่มนับจาก 0 เช่น '0,2,5' ใช้ร่วมกับ 'dimension_range' ไม่ได้."
              },
              "step": {
                "label": "ขั้น",
                "description": "เก็บสไลซ์ทุก ๆ ลำดับที่ N หลังผ่านตัวกรองอื่นแล้ว (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์คิวบ์ผลลัพธ์ หนึ่งแบนด์ต่อหนึ่งสไลซ์ที่เก็บไว้ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "summarize_categorical_raster": {
            "name": "สรุปแรสเตอร์เชิงกลุ่ม",
            "description": "จัดทำตารางจำนวนเซลล์ พื้นที่ และสัดส่วนของทุกคลาสในแรสเตอร์เชิงหมวดหมู่ หนึ่งแถวต่อสไลซ์สำหรับสแตกหลายแบนด์/หลายมิติ โดยเลือกจำกัดเฉพาะพื้นที่ที่สนใจได้ (ArcGIS Summarize Categorical Raster) raster_area ที่มีอยู่เขียนผลรวมรายคลาสกลับลงในเซลล์แรสเตอร์แทนที่จะเป็นตาราง และรองรับเพียงแบนด์เดียว จึงสร้างชุดพื้นที่รายคลาสรายวันที่ซึ่งการวิเคราะห์การเปลี่ยนแปลงสิ่งปกคลุมดินต้องใช้ไม่ได้ พื้นที่ของเซลล์คำนวณแบบอินทิเกรตรายแถวสำหรับแรสเตอร์ในระบบพิกัดภูมิศาสตร์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เชิงประเภทที่นำเข้า (แบนด์เดียวหรือหลายแบนด์)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์ (เป็นตัวเลือก) หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "aoi": {
                "label": "AOI",
                "description": "เลเยอร์โพลิกอน (เป็นตัวเลือก) ที่จำกัดการสรุปให้อยู่เฉพาะพื้นที่ที่สนใจ."
              },
              "aoi_id_field": {
                "label": "ฟิลด์รหัส AOI",
                "description": "ฟิลด์ใน 'aoi' ที่ใช้ระบุแต่ละพื้นที่ หากระบุไว้ จะสรุปผลแยกตามฟีเจอร์ AOI แต่ละรายการ."
              },
              "area_units": {
                "label": "หน่วยพื้นที่",
                "description": "หน่วยพื้นที่: map_units (ค่าเริ่มต้น), hectares หรือ square_kilometers."
              },
              "include_nodata": {
                "label": "รวม NoData",
                "description": "หากเป็น true จะรายงาน NoData เป็นแถวคลาสของตัวเอง (ค่าเริ่มต้น false)."
              },
              "bands": {
                "label": "แบนด์",
                "description": "รายการแบนด์ที่จะสรุปผล คั่นด้วยจุลภาคและเริ่มนับจาก 1 (ค่าเริ่มต้น: ทุกแบนด์)."
              }
            }
          },
          "summarize_nearby": {
            "name": "สรุปบริเวณใกล้เคียง",
            "description": "สร้างบัฟเฟอร์รอบฟีเจอร์นำเข้าที่ระยะทางเส้นตรงหนึ่งค่าหรือมากกว่า และสรุปเลเยอร์ที่สองภายในแต่ละบัฟเฟอร์: จำนวนฟีเจอร์ พื้นที่ที่ตัดกัน (โพลิกอน) ความยาวที่ถูกตัด (เส้น) และผลรวม/ค่าเฉลี่ยถ่วงน้ำหนักตามค่าวัดของฟิลด์เชิงตัวเลข.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้าที่ฟีเจอร์จะถูกสร้างบัฟเฟอร์ (จุด เส้น หรือโพลิกอน) ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "summary_features": {
                "label": "ฟีเจอร์สรุป",
                "description": "เลเยอร์เวกเตอร์ที่จะสรุปผลภายในแต่ละบัฟเฟอร์ (โพลิกอนสรุปตามพื้นที่ที่ตัดกัน เส้นสรุปตามความยาวที่ตัดได้ และจุดสรุปตามจำนวน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "distances": {
                "label": "ระยะทาง",
                "description": "รายการระยะบัฟเฟอร์ในหน่วย CRS คั่นด้วยจุลภาค เช่น \"1000,2000,5000\" ระบบจะเรียงจากน้อยไปมาก และตัดค่าซ้ำกับค่าที่ไม่เป็นบวกออก."
              },
              "sum_fields": {
                "label": "ฟิลด์ผลรวม",
                "description": "ฟิลด์ตัวเลข (เป็นตัวเลือก) ในเลเยอร์ที่จะสรุปผล คั่นด้วยจุลภาค แต่ละฟิลด์จะให้คอลัมน์ sum_<field> และ mean_<field> (ถ่วงน้ำหนักด้วยพื้นที่สำหรับโพลิกอน ถ่วงน้ำหนักด้วยความยาวสำหรับเส้น และคำนวณตรงสำหรับจุด)."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์ (เป็นตัวเลือก) ในเลเยอร์นำเข้าที่ใช้ระบุฟีเจอร์ต้นทางแต่ละรายการในผลลัพธ์ ค่าเริ่มต้นคือดัชนีของฟีเจอร์นำเข้า."
              }
            }
          },
          "summarize_percent_change": {
            "name": "สรุปร้อยละการเปลี่ยนแปลง",
            "description": "นับเหตุการณ์จากช่วงเวลาปัจจุบันและช่วงเวลาก่อนหน้าภายในแต่ละฟีเจอร์พื้นที่ และรายงานผลต่างของจำนวน ร้อยละการเปลี่ยนแปลง และคลาสการเปลี่ยนแปลง ร้อยละการเปลี่ยนแปลงจะเป็นค่าว่าง (คลาส 'new') เมื่อจำนวนของช่วงก่อนหน้าเป็นศูนย์ เช่นเดียวกับ ArcGIS Summarize Percent Change.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์พื้นที่ (เขตตรวจ เขตสำมะโน เซลล์กริด) ที่จะสรุปผลเข้าไป."
              },
              "current_features": {
                "label": "ฟีเจอร์ปัจจุบัน",
                "description": "ฟีเจอร์จุดเหตุการณ์สำหรับช่วงเวลาปัจจุบัน."
              },
              "previous_features": {
                "label": "ฟีเจอร์ก่อนหน้า",
                "description": "ฟีเจอร์จุดเหตุการณ์สำหรับช่วงเวลาก่อนหน้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์สำหรับพื้นที่พร้อมฟิลด์การเปลี่ยนแปลง หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "search_radius": {
                "label": "รัศมีค้นหา",
                "description": "ระยะทาง (เป็นตัวเลือก) ในหน่วยแผนที่ เหตุการณ์ที่อยู่ภายในระยะนี้จากพื้นที่จะถูกนับด้วย ไม่ใช่เฉพาะที่อยู่ภายในพื้นที่เท่านั้น โปรดทราบว่ารัศมีที่เป็นค่าบวกจะทำให้พื้นที่รับเหตุการณ์ซ้อนทับกัน เหตุการณ์หนึ่งจึงอาจถูกนับโดยพื้นที่มากกว่าหนึ่งแห่ง (ยอดรวมของชุดข้อมูลที่รายงานยังคงตัดค่าซ้ำออกแล้ว)."
              }
            }
          },
          "summarize_within": {
            "name": "สรุปภายใน",
            "description": "สรุปแอตทริบิวต์ของเลเยอร์ภายในเลเยอร์โพลิกอนที่มีอยู่ โดยถ่วงน้ำหนักฟีเจอร์ที่ซ้อนทับบางส่วนตามพื้นที่หรือความยาวที่ตัดกัน เช่นเดียวกับ ArcGIS Summarize Within.",
            "params": {
              "polygons": {
                "label": "โพลิกอน",
                "description": "เลเยอร์โพลิกอนที่จะสรุปผลเข้าไป ฟีเจอร์และแอตทริบิวต์ของเลเยอร์นี้จะถูกคงไว้."
              },
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ที่ถูกสรุปผล (จุด เส้น หรือโพลิกอน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธโพลิกอนผลลัพธ์เป็นตัวเลือก หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "คู่ 'field:statistic' คั่นด้วยจุลภาค เช่น 'pop:sum,income:mean' สถิติที่ใช้ได้: sum, mean, min, max, stddev, count."
              },
              "keep_all": {
                "label": "เก็บทั้งหมด",
                "description": "คงโพลิกอนที่ไม่มีฟีเจอร์ตัดกันไว้ (ค่าเริ่มต้น true) เมื่อเป็น false โพลิกอนที่ว่างเปล่าจะถูกตัดออก."
              },
              "shape_sum": {
                "label": "ผลรวมรูปร่าง",
                "description": "เพิ่มผลรวมของจำนวน / ความยาว / พื้นที่ของเรขาคณิตนำเข้าที่ตัดกัน (ค่าเริ่มต้น true)."
              },
              "group_field": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "ฟิลด์ (เป็นตัวเลือก) ในเลเยอร์ที่ถูกสรุปผล จะให้แถวสรุปแบบจัดกลุ่มหนึ่งแถวต่อค่าที่แตกต่างกันแต่ละค่า."
              }
            }
          },
          "summary_statistics": {
            "name": "สถิติสรุป",
            "description": "GROUP BY แบบ SQL บนฟิลด์กรณีหนึ่งฟิลด์หรือมากกว่า: สำหรับแต่ละชุดผสมของฟิลด์กรณีที่ไม่ซ้ำกัน คำนวณรายการค่ารวม (ฟิลด์, สถิติ) (count/sum/mean/min/max/std/first/last) พร้อมจำนวนเรกคอร์ดในกลุ่ม ผลลัพธ์เป็นตารางแอตทริบิวต์ล้วน หากไม่ระบุฟิลด์กรณีจะได้แถวผลรวมทั้งหมดเพียงแถวเดียว (เช่นเดียวกับ Summary Statistics ของ ArcGIS การนับอย่างเดียวให้ผลเหมือน Frequency).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์หรือตารางแอตทริบิวต์ที่นำเข้าเพื่อรวมสรุป."
              },
              "statistics": {
                "label": "สถิติ",
                "description": "รายการคู่ 'field statistic' คั่นด้วยอัฒภาคหรือจุลภาค (รองรับรูปแบบ 'field:statistic' ด้วย) เช่น 'population sum; population mean; elev max' สถิติที่ใช้ได้: count, sum, mean, min, max, std, first, last."
              },
              "case_fields": {
                "label": "ฟิลด์กรณี",
                "description": "ชื่อฟิลด์สำหรับจัดกลุ่ม (GROUP BY) เป็นตัวเลือก คั่นด้วยจุลภาคหรืออัฒภาค หากไม่ระบุ จะได้แถวสรุปเพียงแถวเดียวสำหรับทั้งตาราง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์ (เป็นตัวเลือก) โดยไดรเวอร์กำหนดจากนามสกุลไฟล์ (GeoParquet หรือ CSV) หากไม่ระบุ ตารางจะถูกเก็บไว้ในหน่วยความจำ คอลัมน์ที่ได้: ฟิลด์จัดกลุ่ม, 'count' ของจำนวนระเบียน แล้วตามด้วยคอลัมน์ '<field>_<statistic>' หนึ่งคอลัมน์ต่อคู่ที่ร้องขอ."
              }
            }
          },
          "sun_shadow_volume": {
            "name": "ปริมาตรเงาดวงอาทิตย์",
            "description": "อัดขึ้นรูปทรงตัน 3 มิติไปตามเวกเตอร์ดวงอาทิตย์ลงสู่พื้นดินเพื่อสร้างทรงตันปริมาตรเงาแบบปิดสำหรับวันและเวลาที่กำหนด (ArcGIS Sun Shadow Volume) shadow_image, shadow_animation และ time_in_daylight ล้วนทำงานกับ DSM แบบแรสเตอร์และให้ผลลัพธ์เป็นแรสเตอร์ ส่วน solar_radiation คำนวณความเข้มรังสี ไม่มีตัวใดสร้างเรขาคณิตของเงา คำถามอย่าง 'หน้าต่างนี้อยู่ในเงาหรือไม่' หรือ 'ปริมาตรอากาศเหนือแปลงนี้อยู่ในเงาเท่าใด' จึงตอบไม่ได้ ผลลัพธ์ใช้ร่วมกับ inside_3d, intersect_3d และ union_3d ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ทรงตันอาคาร 3 มิติ หรือรอยฐานอาคารที่อัดขึ้นรูป (MultiPolygon แบบตาข่ายสามเหลี่ยมที่มีค่า Z)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "ทรงตันปริมาตรเงาแบบปิด หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "datetime": {
                "label": "วันเวลา",
                "description": "วันที่และเวลาท้องถิ่นของตำแหน่งดวงอาทิตย์ ในรูป 'YYYY-MM-DDTHH:MM' หรือ 'YYYY-MM-DD HH:MM' ค่านี้รับมาเป็นพารามิเตอร์ ไม่ได้อ่านจากนาฬิกา ผลลัพธ์จึงทำซ้ำได้."
              },
              "latitude": {
                "label": "ละติจูด",
                "description": "ละติจูดเป็นองศา ใช้สำหรับเรขาคณิตของดวงอาทิตย์ จำเป็นต้องระบุ เพราะไม่สามารถคำนวณได้หากไม่มีเอนจินการแปลงระบบพิกัด."
              },
              "utc_offset": {
                "label": "ออฟเซ็ต UTC",
                "description": "จำนวนชั่วโมงที่เวลาท้องถิ่นที่ระบุต่างจาก UTC (ค่าเริ่มต้น 0)."
              },
              "adjusted_for_dst": {
                "label": "ปรับตามเวลาออมแสงแล้ว",
                "description": "ถือว่าเวลาที่ระบุปรับตามเวลาออมแสงแล้ว โดยจะลบออกหนึ่งชั่วโมงก่อนคำนวณตำแหน่งดวงอาทิตย์ (ค่าเริ่มต้น false) ซึ่งตรงกับ ArcGIS."
              },
              "ground_elevation": {
                "label": "ระดับความสูงพื้นดิน",
                "description": "ค่า Z ของพื้นดินคงที่ที่จะฉายเงาลงไป ค่าเริ่มต้น: ค่า Z ต่ำสุดของแต่ละฟีเจอร์เอง."
              },
              "max_length": {
                "label": "ความยาวสูงสุด",
                "description": "ค่าจำกัดระยะการกวาดในหน่วย CRS เพื่อไม่ให้ดวงอาทิตย์ที่อยู่ต่ำสร้างปริซึมยาวเป็นกิโลเมตร ค่าเริ่มต้น: ไม่จำกัด."
              }
            }
          },
          "surface_difference": {
            "name": "ผลต่างพื้นผิว",
            "description": "กำหนดขอบเขตว่าพื้นผิวหนึ่งอยู่เหนือ ใต้ หรือเสมอกับอีกพื้นผิวหนึ่งตรงไหน ในรูปโพลิกอน โดยแต่ละอันมีคลาส พื้นที่ ปริมาตร และสถิติผลต่างกำกับ (ArcGIS Surface Difference) cut_fill วัดปริมาณเดียวกันแต่ให้ผลลัพธ์เพียงแรสเตอร์ป้ายกำกับภูมิภาคและไฟล์ CSV ภูมิภาคของมันจึงไม่มีเรขาคณิตให้ซ้อนทับ ตัด หรือเชื่อมได้ ส่วน surface_volume และ polygon_volume วัดเทียบกับระนาบหรือภายในโพลิกอนที่มีอยู่แล้ว แทนที่จะค้นหาขอบเขตเหล่านั้นเอง.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์พื้นผิวที่จะจำแนก."
              },
              "reference": {
                "label": "ข้อมูลอ้างอิง",
                "description": "พื้นผิวอ้างอิง: พาธแรสเตอร์ที่ลงทะเบียนตรงกัน หรือค่าระดับความสูงคงที่เพื่อเปรียบเทียบกับระนาบอ้างอิงราบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนผลลัพธ์ของบริเวณที่จำแนกแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "output_raster": {
                "label": "แรสเตอร์ผลลัพธ์",
                "description": "แรสเตอร์ผลต่างแบบมีเครื่องหมายที่เป็นผลลัพธ์ (ข้อมูลนำเข้าลบด้วยข้อมูลอ้างอิง) สร้างขึ้นเสมอ และจะเก็บไว้ในหน่วยความจำหากไม่ระบุพาธ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ผลต่างที่อยู่ในช่วงนี้จากศูนย์ถือว่าทับกันพอดี (ค่าเริ่มต้น 0.0)."
              },
              "min_area": {
                "label": "พื้นที่ต่ำสุด",
                "description": "ตัดบริเวณที่มีพื้นที่เล็กกว่าค่านี้ออก โดยใช้หน่วยแผนที่กำลังสอง."
              },
              "include_coincident": {
                "label": "รวมจุดที่ซ้อนกัน",
                "description": "สร้างโพลิกอนสำหรับคลาสที่ไม่เปลี่ยนแปลงด้วย (ค่าเริ่มต้น false) ปิดไว้เป็นค่าเริ่มต้นเพราะในภาพส่วนใหญ่คลาสนี้จะเป็นโพลิกอนพื้นหลังผืนใหญ่เพียงผืนเดียว."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ของพื้นผิวนำเข้า โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "reference_band": {
                "label": "แบนด์อ้างอิง",
                "description": "แบนด์ของพื้นผิวอ้างอิง โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "surface_parameters": {
            "name": "พารามิเตอร์พื้นผิว",
            "description": "ความลาดชัน ทิศด้านลาด หรือความโค้ง (mean/profile/tangential/plan/gaussian/casorati/contour_geodesic_torsion) จาก DEM ด้วยการฟิตพื้นผิวกำลังสอง/ไบควอดราติกเฉพาะที่แบบกำลังสองน้อยที่สุดบนระยะเพื่อนบ้านที่เลือก เช่นเดียวกับ ArcGIS Surface Parameters — เป็นคู่ขนานที่ปรับตามมาตราส่วนของเครื่องมือภูมิประเทศแบบ 3×3 คงที่ที่มีอยู่.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ระดับความสูงนำเข้า (DEM)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ผลลัพธ์ (เป็นตัวเลือก) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "parameter": {
                "label": "พารามิเตอร์",
                "description": "พารามิเตอร์ที่จะคำนวณ: slope (ค่าเริ่มต้น), aspect, mean_curvature, profile_curvature, tangential_curvature, plan_curvature, gaussian_curvature, casorati_curvature, contour_geodesic_torsion."
              },
              "fit": {
                "label": "ฟิต",
                "description": "แบบจำลองพื้นผิว: 'quadratic' (6 พจน์, ค่าเริ่มต้น) หรือ 'biquadratic' (9 พจน์)."
              },
              "neighborhood_distance": {
                "label": "ระยะทางบริเวณใกล้เคียง",
                "description": "รัศมีของย่านในหน่วยแผนที่ (ค่าเริ่มต้น = ขนาดหนึ่งเซลล์ หรือหน้าต่าง 3×3)."
              },
              "neighborhood_type": {
                "label": "ชนิดบริเวณใกล้เคียง",
                "description": "'fixed' (ค่าเริ่มต้น) ใช้รัศมีเต็มทุกตำแหน่ง ส่วน 'adaptive' จะย่อหน้าต่างลงเหลือ 1 เซลล์เมื่ออยู่ติดช่องว่างข้อมูลหรือขอบ."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "surface_volume": {
            "name": "ปริมาตรพื้นผิว",
            "description": "อินทิเกรตพื้นผิวแรสเตอร์เทียบกับระนาบอ้างอิงแนวราบ พร้อมรายงานพื้นที่ 2 มิติ พื้นที่ผิว 3 มิติ และปริมาตรของส่วนที่อยู่เหนือและ/หรือใต้ระนาบ (เช่นเดียวกับ Surface Volume ของ ArcGIS) ใช้สำหรับงานตัด/ถมดินและการวิเคราะห์ความจุอ่างเก็บน้ำ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์พื้นผิวระดับความสูงที่นำเข้า."
              },
              "reference_plane": {
                "label": "ระนาบอ้างอิง",
                "description": "ระดับความสูงของระนาบอ้างอิงที่ใช้ในการอินทิเกรต (ค่าเริ่มต้น 0)."
              },
              "direction": {
                "label": "ทิศทาง",
                "description": "ด้านของระนาบที่จะอินทิเกรต: 'above', 'below' หรือ 'both' (ค่าเริ่มต้น 'above')."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่าน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV ผลลัพธ์ (เป็นตัวเลือก) สำหรับตารางผลลัพธ์ หากไม่ระบุ ผลลัพธ์จะส่งกลับในผลการประมวลผลเท่านั้น."
              }
            }
          },
          "table_to_geometry": {
            "name": "ตารางเป็นเรขาคณิต",
            "description": "สร้างฟีเจอร์เส้นหรือวงรีจากฟิลด์ในตาราง: คู่พิกัดเริ่ม/สิ้นสุด (XY To Line), จุดกำเนิด + ทิศ + ระยะทาง (Bearing Distance To Line) หรือ จุดศูนย์กลาง + แกนเอก/แกนโท + แอซิมัท (Table To Ellipse) — พร้อมการสร้างเส้นแบบระนาบ จีโอเดสิก และรัมบ์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ตารางแอตทริบิวต์หรือเลเยอร์เวกเตอร์จุดที่นำเข้า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "mode": {
                "label": "โหมด",
                "description": "'xy_to_line', 'bearing_distance' หรือ 'ellipse'."
              },
              "line_type": {
                "label": "ชนิดเส้น",
                "description": "'geodesic' (ค่าเริ่มต้น เส้นทางสั้นที่สุดบนทรงรี WGS84), 'rhumb' (ทิศคงที่) หรือ 'planar' (เซกเมนต์คาร์ทีเซียนตรงในหน่วยของข้อมูลนำเข้าเอง)."
              },
              "vertex_spacing": {
                "label": "ระยะห่างจุดยอด",
                "description": "ระยะห่างของการเพิ่มความหนาแน่นจุดสำหรับเส้นโค้ง (geodesic/rhumb) และระยะห่างการสุ่มตัวอย่างเส้นรอบวงรี หน่วยเมตรสำหรับ geodesic/rhumb หรือหน่วย CRS สำหรับ planar ค่าเริ่มต้น: ใช้จำนวนเซกเมนต์คงที่."
              },
              "polygon_output": {
                "label": "ผลลัพธ์โพลิกอน",
                "description": "เฉพาะ mode=ellipse: สร้างเป็นโพลิกอนทึบแทนเส้นรอบรูปแบบปิด ค่าเริ่มต้น false."
              },
              "start_x": {
                "label": "X เริ่มต้น",
                "description": "mode=xy_to_line: ฟิลด์ที่เก็บค่า X / ลองจิจูดของจุดเริ่มต้น."
              },
              "start_y": {
                "label": "Y เริ่มต้น",
                "description": "mode=xy_to_line: ฟิลด์ที่เก็บค่า Y / ละติจูดของจุดเริ่มต้น."
              },
              "end_x": {
                "label": "X สิ้นสุด",
                "description": "mode=xy_to_line: ฟิลด์ที่เก็บค่า X / ลองจิจูดของจุดสิ้นสุด."
              },
              "end_y": {
                "label": "Y สิ้นสุด",
                "description": "mode=xy_to_line: ฟิลด์ที่เก็บค่า Y / ละติจูดของจุดสิ้นสุด."
              },
              "x": {
                "label": "X",
                "description": "mode=bearing_distance/ellipse: ฟิลด์ที่เก็บค่า X / ลองจิจูดของจุดกำเนิด/จุดศูนย์กลาง."
              },
              "y": {
                "label": "Y",
                "description": "mode=bearing_distance/ellipse: ฟิลด์ที่เก็บค่า Y / ละติจูดของจุดกำเนิด/จุดศูนย์กลาง."
              },
              "bearing": {
                "label": "แบริง",
                "description": "mode=bearing_distance: ฟิลด์ที่เก็บค่าทิศเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ."
              },
              "distance": {
                "label": "ระยะทาง",
                "description": "mode=bearing_distance: ฟิลด์ที่เก็บระยะทางการเดินทาง (หน่วยเมตรสำหรับ geodesic/rhumb และหน่วย CRS สำหรับ planar)."
              },
              "major": {
                "label": "แกนเอก",
                "description": "mode=ellipse: ฟิลด์ที่เก็บความยาวกึ่งแกนเอก (หน่วยเมตรสำหรับ geodesic/rhumb และหน่วย CRS สำหรับ planar)."
              },
              "minor": {
                "label": "แกนโท",
                "description": "mode=ellipse: ฟิลด์ที่เก็บความยาวกึ่งแกนโท (หน่วยเดียวกับแกนเอก)."
              },
              "azimuth": {
                "label": "อะซิมัท",
                "description": "mode=ellipse: ฟิลด์ที่เก็บทิศทางของแกนเอกเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ."
              }
            }
          },
          "tabulate_intersection": {
            "name": "ตารางสรุปการตัดกัน",
            "description": "การสรุปรายโซนแบบเวกเตอร์บนเวกเตอร์: แบ่งสัดส่วนเลเยอร์คลาส (โพลิกอนตามพื้นที่ เส้นตามความยาวที่ตัดกัน หรือจุดตามจำนวน) ลงบนโพลิกอนโซน พร้อมรายงานค่าวัดที่ตัดกัน ร้อยละของโซน และฟิลด์ผลรวมถ่วงน้ำหนักตามค่าวัด.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์โพลิกอนโซน ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "class_features": {
                "label": "ฟีเจอร์คลาส",
                "description": "เลเยอร์เวกเตอร์คลาสที่จะแบ่งสัดส่วนไปตามโซนต่าง ๆ (โพลิกอนสรุปตามพื้นที่ เส้นสรุปตามความยาวที่ตัดกัน และจุดสรุปตามจำนวน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "class_field": {
                "label": "ฟิลด์คลาส",
                "description": "ฟิลด์เชิงประเภท (เป็นตัวเลือก) ในเลเยอร์คลาส ผลลัพธ์จะจัดกลุ่มตามโซน x ค่านี้ หากไม่ระบุ จะถือว่าฟีเจอร์คลาสทั้งหมดเป็นคลาสเดียว."
              },
              "sum_fields": {
                "label": "ฟิลด์ผลรวม",
                "description": "ฟิลด์ตัวเลข (เป็นตัวเลือก) ในเลเยอร์คลาส คั่นด้วยจุลภาค ที่จะแบ่งสัดส่วนเข้าสู่แต่ละโซน (ถ่วงน้ำหนักด้วยพื้นที่สำหรับโพลิกอน ถ่วงน้ำหนักด้วยความยาวสำหรับเส้น และรวมผลสำหรับจุด)."
              },
              "zone_field": {
                "label": "ฟิลด์โซน",
                "description": "ฟิลด์ (เป็นตัวเลือก) ที่ใช้ระบุแต่ละโซนในผลลัพธ์ ค่าเริ่มต้นคือดัชนีของฟีเจอร์โซน."
              }
            }
          },
          "thin_road_network": {
            "name": "ลดความหนาแน่นโครงข่ายถนน",
            "description": "ลดรายละเอียดโครงข่ายถนนสำหรับการแสดงผลมาตราส่วนเล็ก: ซ่อนถนนสั้นที่มีลำดับชั้นต่ำโดยยังคงความเชื่อมต่อไว้ และกำกับแต่ละถนนว่ามองเห็นหรือถูกลดทอน (ไม่ทำลายข้อมูล) เช่นเดียวกับ ArcGIS Thin Road Network.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์ถนน (เส้น) นำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "min_length": {
                "label": "ความยาวต่ำสุด",
                "description": "ถนนที่สั้นกว่าค่านี้ (หน่วย CRS) จะเป็นตัวเลือกสำหรับการคัดออก ส่วนถนนที่ยาวกว่าจะถูกเก็บไว้เสมอ."
              },
              "hierarchy_field": {
                "label": "ฟิลด์ลำดับชั้น",
                "description": "ฟิลด์ชั้นถนนแบบตัวเลข (เป็นตัวเลือก) ค่ายิ่งน้อยยิ่งสำคัญ (ถูกเก็บไว้นานกว่า) ตัวเลือกจะถูกคัดออกโดยเริ่มจากหมายเลขชั้นสูงสุดก่อน."
              },
              "visibility_field": {
                "label": "ฟิลด์การมองเห็น",
                "description": "ชื่อฟิลด์ธงแสดงการมองเห็นในผลลัพธ์ (1 = เก็บไว้, 0 = คัดออก) ค่าเริ่มต้น 'visible'."
              },
              "keep_only": {
                "label": "เก็บเฉพาะ",
                "description": "หากเป็น true จะส่งออกเฉพาะถนนที่มองเห็นได้ แทนการทำเครื่องหมายกำกับถนนทั้งหมด ค่าเริ่มต้น false (ไม่ทำลายข้อมูลเดิม)."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "ระยะทางที่จะถือว่าปลายถนนเป็นทางแยกเดียวกัน ค่าเริ่มต้น 1e-6."
              }
            }
          },
          "tile_grid_polygons": {
            "name": "โพลิกอนกริดไทล์",
            "description": "สร้างขอบเขตไทล์ของแผนที่บนเว็บเป็นโพลิกอนสำหรับระดับซูมหนึ่งระดับ (หรือช่วง) และขอบเขตที่กำหนด โดยแต่ละอันมี z/x/y และควอดคีย์กำกับ (ArcGIS Map Server Cache Tiling Scheme To Polygons, Create Vector Tile Index, Generate Tile Cache Tiling Scheme) เครื่องมือกริดสี่เหลี่ยม/หกเหลี่ยมที่มีอยู่สร้างกริดตามใจในระบบพิกัดของข้อมูลนำเข้า และไม่สามารถทับกันพอดีกับควอดทรี WebMercator ที่เครื่องมือ PMTiles และ raster_to_tiles ใช้.",
            "params": {
              "zoom": {
                "label": "ซูม",
                "description": "ระดับซูม ใช้ร่วมกับ 'max_zoom' เพื่อสร้างพีระมิดหลายระดับ."
              },
              "max_zoom": {
                "label": "ซูมสูงสุด",
                "description": "ระดับซูมสูงสุด (เป็นตัวเลือก) หากระบุไว้ จะสร้างทุกระดับตั้งแต่ 'zoom' ถึง 'max_zoom'."
              },
              "extent": {
                "label": "ขอบเขต",
                "description": "เลเยอร์แรสเตอร์หรือเวกเตอร์ (เป็นตัวเลือก) ที่ขอบเขตของมันใช้ตัดกริด หากไม่ระบุ จะได้ทั้งโลกที่ระดับซูมนั้น (ภายใต้ข้อจำกัดของ 'max_tiles')."
              },
              "bbox": {
                "label": "กรอบขอบเขต",
                "description": "ขอบเขตที่ระบุชัดเจน (เป็นตัวเลือก) ในรูป 'min_lon,min_lat,max_lon,max_lat' หน่วยองศา มีผลเหนือกว่า 'extent'."
              },
              "scheme": {
                "label": "โครงร่าง",
                "description": "'xyz' (ค่าเริ่มต้น แบบ Google/OSM โดย y นับลงจากทิศเหนือ) หรือ 'tms' (y นับขึ้นจากทิศใต้)."
              },
              "output_crs": {
                "label": "CRS ผลลัพธ์",
                "description": "'EPSG:3857' (ค่าเริ่มต้น ไทล์รูปสี่เหลี่ยมจัตุรัส) หรือ 'EPSG:4326' (รูปสี่เหลี่ยมตามลองจิจูด/ละติจูด)."
              },
              "max_tiles": {
                "label": "จำนวนไทล์สูงสุด",
                "description": "ค่าจำกัดสูงสุดของจำนวนไทล์ (ค่าเริ่มต้น 1000000) หากเกินจะเกิดข้อผิดพลาดพร้อมระบุจำนวนที่คำนวณได้."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอนผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "time_series_clustering": {
            "name": "การจัดกลุ่มอนุกรมเวลา",
            "description": "จัดกลุ่มเซลล์ของคิวบ์พื้นที่-เวลาแบบ H3 ตามความคล้ายของอนุกรมเวลา (ค่า โปรไฟล์ที่ทำมาตรฐานด้วยค่า z หรือสหสัมพันธ์) ด้วย k-medoids ที่ให้ผลแน่นอน เพื่อให้สถานที่ที่เปลี่ยนแปลงในลักษณะเดียวกันอยู่กลุ่มเดียวกัน เช่นเดียวกับ ArcGIS Time Series Clustering.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดที่นำเข้าในระบบ EPSG:4326 (ลอน/แลต) พร้อมฟิลด์เวลากำกับ."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์เวลากำกับ (ตัวเลข หรือวันที่/วันที่เวลาแบบ ISO-8601)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอน H3 ผลลัพธ์พร้อม cluster_id/is_medoid หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "num_clusters": {
                "label": "จำนวนกลุ่ม",
                "description": "จำนวนคลัสเตอร์ k (ค่าเริ่มต้น 4)."
              },
              "characteristic": {
                "label": "ลักษณะเฉพาะ",
                "description": "ระยะทางของอนุกรมเวลา: 'value' (ค่าดิบ), 'profile' (ปรับมาตรฐานแบบ z, ค่าเริ่มต้น) หรือ 'correlation' (1 − r)."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "ความกว้างของหนึ่งช่วงเวลา: ตัวเลขธรรมดา (เมื่อ time_field เป็นตัวเลข) หรือระยะเวลาเช่น '1w', '7d', '12h' ค่าเริ่มต้น '1w'."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่จะนำมารวมผลรวมในแต่ละบิน เป็นตัวเลือก ค่าเริ่มต้น: จำนวนจุดต่อบิน."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียด H3 ตั้งแต่ 0 (หยาบที่สุด) ถึง 15 (ละเอียดที่สุด); ค่าเริ่มต้น 7 (เซลล์ขนาด ~5 กม.²)."
              },
              "seed": {
                "label": "ค่าเริ่มต้นสุ่ม",
                "description": "ค่าเริ่มต้นสุ่มสำหรับการกำหนดค่าเริ่มต้นของเมดอยด์ที่ทำซ้ำได้ (ค่าเริ่มต้น 1)."
              }
            }
          },
          "time_series_cross_correlation": {
            "name": "สหสัมพันธ์ไขว้ของอนุกรมเวลา",
            "description": "สหสัมพันธ์ไขว้แบบมีแล็กรายเซลล์ระหว่างสแตกแรสเตอร์พื้นที่-เวลาสองชุดที่จัดแนวตรงกัน (เช่นเดียวกับ Time Series Cross Correlation / Multidimensional Raster Correlation ของ ArcGIS): สำหรับแต่ละเซลล์ เลือกกำจัดแนวโน้ม/ฤดูกาลได้ แล้วหาสหสัมพันธ์ระหว่างอนุกรม A กับอนุกรม B ตลอด min_lag..=max_lag และรายงานแล็กที่ดีที่สุดพร้อมค่าสหสัมพันธ์ Pearson ของมัน รวมถึงสหสัมพันธ์ที่แล็ก 0 และค่า p เทียมจากขนาดตัวอย่างประสิทธิผลแบบ Pyper-Peterman เป็นตัวเลือก เป็นส่วนเติมเต็มแบบสองตัวแปรที่รับรู้แล็กของเครื่องมือคิวบ์อนุกรมเดียวอย่าง generate_trend_raster / change_point_detection — ไม่มีเครื่องมือที่มีอยู่ตัวใดเชื่อมโยงสองตัวแปรผ่านเวลา.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "สแตก A: แรสเตอร์หลายแบนด์ (หนึ่งแบนด์ต่อหนึ่งช่วงเวลา) หรือรายการพาธแรสเตอร์แบนด์เดียวที่ลงทะเบียนตรงกัน คั่นด้วยจุลภาค เรียงตามลำดับเวลา."
              },
              "secondary": {
                "label": "รอง",
                "description": "สแตก B: มีรูปร่างและความยาวเดียวกับ 'input' (แรสเตอร์หลายแบนด์ หรือรายการแรสเตอร์แบนด์เดียวคั่นด้วยจุลภาค)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ของแล็กที่ดีที่สุด (ค่าแล็กจำนวนเต็มที่ทำให้ |correlation| สูงสุด) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "corr_output": {
                "label": "ผลลัพธ์สหสัมพันธ์",
                "description": "แรสเตอร์ผลลัพธ์เป็นตัวเลือกของค่าสหสัมพันธ์เพียร์สัน (แบบมีเครื่องหมาย) ที่แล็กดีที่สุด."
              },
              "corr0_output": {
                "label": "ผลลัพธ์สหสัมพันธ์ที่แล็ก 0",
                "description": "แรสเตอร์ผลลัพธ์เป็นตัวเลือกของค่าสหสัมพันธ์ที่แล็ก 0 (ณ เวลาเดียวกัน)."
              },
              "pvalue_output": {
                "label": "ผลลัพธ์ค่า p",
                "description": "แรสเตอร์ผลลัพธ์เป็นตัวเลือกของค่า p สองด้านเสมือนที่แล็กดีที่สุด (ขนาดตัวอย่างประสิทธิผลแบบ Pyper-Peterman + Fisher z)."
              },
              "min_lag": {
                "label": "แล็กต่ำสุด",
                "description": "ค่าแล็กต่ำสุดเป็นจำนวนช่วงเวลา (ค่าเริ่มต้น -6) โดย A[t] จะจับคู่กับ B[t+lag]."
              },
              "max_lag": {
                "label": "แล็กสูงสุด",
                "description": "ค่าแล็กสูงสุดเป็นจำนวนช่วงเวลา (ค่าเริ่มต้น 6) ต้องมีค่า >= min_lag."
              },
              "detrend": {
                "label": "ขจัดแนวโน้ม",
                "description": "หากเป็นจริง จะลบแนวโน้มเชิงเส้นแบบ OLS ของแต่ละอนุกรมออกก่อนคำนวณสหสัมพันธ์ (ค่าเริ่มต้น false)."
              },
              "deseasonalize": {
                "label": "ขจัดฤดูกาล",
                "description": "หากเป็นจริง จะลบวัฏจักรฤดูกาลแบบบวกของแต่ละอนุกรมที่มีคาบเท่ากับ 'season_length' ออกก่อนคำนวณสหสัมพันธ์ (ค่าเริ่มต้น false)."
              },
              "season_length": {
                "label": "ความยาวฤดูกาล",
                "description": "คาบฤดูกาล (จำนวนช่วงเวลา) ที่ใช้เมื่อ 'deseasonalize' เป็นจริง (ค่าเริ่มต้น 12)."
              },
              "min_valid": {
                "label": "จำนวนค่าที่ถูกต้องต่ำสุด",
                "description": "จำนวนคู่ข้อมูลที่ซ้อนทับกันและใช้ได้ขั้นต่ำที่ต้องมีเพื่อคำนวณสหสัมพันธ์ที่แล็กหนึ่ง ๆ (ค่าเริ่มต้น 5)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะอ่านโดยเริ่มนับจาก 1 เมื่อระบุสแตกเป็นรายการแรสเตอร์แบนด์เดียวคั่นด้วยจุลภาค (ค่าเริ่มต้น 1) จะถูกละเว้นสำหรับสแตกแบบหลายแบนด์."
              }
            }
          },
          "time_series_forecast": {
            "name": "การพยากรณ์อนุกรมเวลา",
            "description": "การพยากรณ์รายตำแหน่งบนคิวบ์พื้นที่-เวลาแบบ H3 (เช่นเดียวกับ ArcGIS Exponential Smoothing / Curve Fit Forecast): พยากรณ์อนุกรมของแต่ละเซลล์ล่วงหน้าด้วยการทำให้เรียบแบบเอกซ์โพเนนเชียลของ Holt หรือการฟิตเส้นโค้งพหุนาม โดยเลือกโมเดลที่มี RMSE บนชุดกันไว้ต่ำที่สุดรายเซลล์ พร้อมค่าพยากรณ์ของขั้นถัดไป/ขั้นสุดท้าย และครึ่งความกว้างของช่วงความเชื่อมั่น 90% เป็นการพยากรณ์เชิงเวลาที่ trend_surface เชิงพื้นที่ที่มีอยู่ทำไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดนำเข้าของเหตุการณ์ที่มีการบันทึกเวลา (ลองจิจูด/ละติจูด)."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่เก็บเวลาของแต่ละจุด: เป็นตัวเลขหรือเวลาแบบ ISO-8601."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์โพลิกอน H3 ผลลัพธ์พร้อมแอตทริบิวต์การพยากรณ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่จะรวมค่าในแต่ละบิน (ค่าเริ่มต้น: จำนวนจุด)."
              },
              "steps": {
                "label": "จำนวนขั้น",
                "description": "จำนวนช่วงเวลาที่จะพยากรณ์ล่วงหน้า (ค่าเริ่มต้น 3)."
              },
              "model": {
                "label": "โมเดล",
                "description": "'auto' (ค่า RMSE ของชุดกันไว้ทดสอบต่ำสุด; ค่าเริ่มต้น), 'exp_smoothing', 'linear' หรือ 'parabolic'."
              },
              "holdout": {
                "label": "ชุดกันไว้ทดสอบ",
                "description": "จำนวนช่วงเวลาที่กันไว้เพื่อตรวจสอบ/เลือกโมเดล (ค่าเริ่มต้น 3)."
              },
              "time_step": {
                "label": "ขั้นเวลา",
                "description": "ความกว้างของหนึ่งช่วงเวลาในหน่วยของ time_field (ค่าเริ่มต้น 1)."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียด H3 ระหว่าง 0..15 (ค่าเริ่มต้น 7)."
              }
            }
          },
          "time_series_smoothing": {
            "name": "การทำอนุกรมเวลาให้เรียบ",
            "description": "ทำให้อนุกรมเวลาภายในตัวอย่างเรียบรายตำแหน่ง (เช่นเดียวกับ ArcGIS Time Series Smoothing): จัดกลุ่มฟีเจอร์ตาม id_field เรียงแต่ละกลุ่มตาม time_field และเพิ่มค่าที่ทำให้เรียบด้วยค่าเฉลี่ยเคลื่อนที่แบบย้อนหลัง/จัดกึ่งกลาง/ไปข้างหน้า หรือการฟิตเชิงเส้นเฉพาะที่ด้วยแบนด์วิดท์แบบปรับตัว (LOESS) เรขาคณิตและแอตทริบิวต์เดิมทั้งหมดถูกคงไว้ เป็นส่วนเสริมของ time_series_forecast ซึ่งคาดการณ์ล่วงหน้าแทนที่จะทำให้อนุกรมที่สังเกตได้เรียบ.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์ฟีเจอร์นำเข้าของข้อมูลสังเกตที่มีการประทับเวลา."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ฟิลด์ตัวเลขที่จะทำให้อนุกรมเรียบ."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์ที่ใช้เรียงลำดับแต่ละอนุกรม: เป็นตัวเลขหรือการประทับเวลาแบบ ISO-8601."
              },
              "id_field": {
                "label": "ฟิลด์รหัส",
                "description": "ฟิลด์ที่ระบุแต่ละตำแหน่ง/อนุกรม หากไม่ระบุ ฟีเจอร์ทั้งหมดจะรวมเป็นอนุกรมเดียว."
              },
              "method": {
                "label": "วิธี",
                "description": "'moving_average' (ค่าเริ่มต้น) หรือ 'local_linear' (LOESS แบบแบนด์วิดท์ปรับอัตโนมัติ)."
              },
              "window": {
                "label": "หน้าต่าง",
                "description": "moving_average: จำนวนจุดในหน้าต่างการเฉลี่ย (ค่าเริ่มต้น 3)."
              },
              "bandwidth": {
                "label": "แบนด์วิดท์",
                "description": "local_linear: จำนวนจุดที่ใกล้ที่สุดตามเวลาที่ใช้ในการฟิตเฉพาะที่แต่ละครั้ง (ค่าเริ่มต้น 5)."
              },
              "alignment": {
                "label": "การจัดแนว",
                "description": "ตำแหน่งวางหน้าต่างของ moving_average: 'backward', 'centered' (ค่าเริ่มต้น) หรือ 'forward'."
              },
              "output_field": {
                "label": "ฟิลด์ผลลัพธ์",
                "description": "ชื่อของฟิลด์ค่าที่ทำให้เรียบซึ่งเพิ่มเข้ามา (ค่าเริ่มต้น 'smoothed')."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธของเลเยอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "topo_to_raster": {
            "name": "Topo เป็นแรสเตอร์",
            "description": "ประมาณค่า DEM ที่ถูกต้องทางอุทกวิทยาจากเส้นชั้นความสูง จุดระดับความสูง และเส้นลำน้ำเป็นตัวเลือก ด้วยการผ่อนคลายแบบความโค้งต่ำสุด (แผ่นบาง) พร้อมการบังคับทางระบายน้ำ — เช่นเดียวกับ ArcGIS Topo To Raster (ANUDEM) ต่างจากตัวประมาณค่า IDW/TIN/สไปลน์ที่มีอยู่ เครื่องมือนี้ไม่ทำให้เกิดขั้นบันไดตามเส้นชั้นความสูงและกำจัดแอ่งปิดที่ไม่พึงประสงค์.",
            "params": {
              "contours": {
                "label": "เส้นชั้นความสูง",
                "description": "เลเยอร์เวกเตอร์เส้นชั้นความสูงนำเข้า (อ่านระดับความสูงจาก elevation_field) ต้องระบุอย่างน้อยหนึ่งอย่างระหว่าง contours/points."
              },
              "points": {
                "label": "จุด",
                "description": "เลเยอร์เวกเตอร์จุดระดับความสูงนำเข้า (อ่านระดับความสูงจาก elevation_field)."
              },
              "streams": {
                "label": "ลำน้ำ",
                "description": "เลเยอร์เวกเตอร์เส้นลำน้ำเป็นตัวเลือก ใช้สำหรับบังคับทิศทางการระบายน้ำ (ฝังลงในพื้นผิวก่อนการกำจัดแอ่ง)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธแรสเตอร์ DEM ผลลัพธ์เป็นตัวเลือก (เลือกไดรเวอร์จากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "elevation_field": {
                "label": "ฟิลด์ระดับความสูง",
                "description": "ชื่อฟิลด์ตัวเลขระดับความสูงบนเลเยอร์เส้นชั้นความสูงและเลเยอร์จุด ค่าเริ่มต้น: ตรวจหาอัตโนมัติ (HEIGHT/ELEV/ELEVATION/Z มิฉะนั้นใช้ฟิลด์ตัวเลขแรก)."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยของ CRS ค่าเริ่มต้น: กำหนดขนาดให้แกนกริดด้านยาวมีประมาณ 400 เซลล์."
              },
              "tension": {
                "label": "ความตึง",
                "description": "ความแข็งเกร็งของพื้นผิวในช่วง [0,1]: 0 = แผ่นบางล้วน (เรียบที่สุด), 1 = เยื่อตึง ค่าเริ่มต้น 0.35."
              },
              "iterations": {
                "label": "จำนวนรอบวนซ้ำ",
                "description": "จำนวนรอบวนซ้ำ SOR สูงสุด (ค่าเริ่มต้น 2000) การวนซ้ำจะหยุดก่อนกำหนดเมื่อการเปลี่ยนแปลงสูงสุดของเซลล์ต่ำกว่าค่าเผื่อ."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเผื่อการลู่เข้า: หยุดเมื่อการเปลี่ยนแปลงของเซลล์ที่มากที่สุดในรอบวนซ้ำหนึ่งต่ำกว่าค่านี้ (หน่วยระดับความสูงของ CRS) ค่าเริ่มต้น 0.01."
              },
              "enforce_drainage": {
                "label": "บังคับการระบายน้ำ",
                "description": "กำจัดแอ่งภายในที่ผิดพลาดหลังการประมาณค่า เพื่อให้ DEM ระบายน้ำออกสู่ขอบ (ค่าเริ่มต้น true)."
              },
              "stream_burn": {
                "label": "ฝังลำน้ำ",
                "description": "ความลึก (หน่วยระดับความสูง) ที่จะลดระดับเซลล์ลำน้ำลงก่อนการกำจัดแอ่ง เพื่อนำการไหลไปตามลำน้ำ ค่าเริ่มต้น 0 (อัตโนมัติ = 1% ของความต่างระดับเมื่อมีการระบุลำน้ำ)."
              }
            }
          },
          "trace_proximity_events": {
            "name": "ติดตามเหตุการณ์ความใกล้",
            "description": "ค้นหาช่วงเวลาที่แทร็กเคลื่อนที่สองแทร็กอยู่ใกล้กันภายในระยะทางหนึ่งนานอย่างน้อยตามระยะเวลาต่ำสุด (เหตุการณ์ความใกล้ชิด) และเลือกติดตามการสัมผัสต่อเนื่องในขั้นถัดไปจากหน่วยตั้งต้นได้ เช่นเดียวกับ ArcGIS Trace Proximity Events.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดที่มีการประทับเวลา (ใช้ CRS แบบฉาย; ระยะทางอยู่ในหน่วยแผนที่)."
              },
              "track_field": {
                "label": "ฟิลด์เส้นทางเคลื่อนที่",
                "description": "ฟิลด์ที่ระบุแต่ละวัตถุเคลื่อนที่ / แต่ละแทร็ก."
              },
              "time_field": {
                "label": "ฟิลด์เวลา",
                "description": "ฟิลด์การประทับเวลา (วินาทีแบบตัวเลขหรือ ISO-8601)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เส้นผลลัพธ์ของเหตุการณ์การเข้าใกล้ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "search_distance": {
                "label": "ระยะทางค้นหา",
                "description": "ระยะห่างสูงสุดที่ถือว่าสองแทร็ก 'อยู่ใกล้กัน' (หน่วยแผนที่)."
              },
              "min_duration": {
                "label": "ระยะเวลาต่ำสุด",
                "description": "เวลาขั้นต่ำที่อยู่ใกล้กันเพื่อนับเป็นเหตุการณ์: เป็นวินาทีหรือระยะเวลาเช่น '5m', '1h' (ค่าเริ่มต้น 0)."
              },
              "entities": {
                "label": "เอนทิตี",
                "description": "รหัสแทร็กตั้งต้นคั่นด้วยจุลภาคเป็นตัวเลือก ใช้เพื่อไล่ติดตามการสัมผัสต่อเนื่องจากแทร็กเหล่านั้น (การติดตามผู้สัมผัส)."
              },
              "depth": {
                "label": "ความลึก",
                "description": "จำนวนรุ่นการไล่ติดตามสูงสุดจากจุดตั้งต้น (ค่าเริ่มต้นคือไม่จำกัด)."
              }
            }
          },
          "transform_features": {
            "name": "แปลงฟีเจอร์",
            "description": "ใช้การแปลงอัฟไฟน์ (เลื่อน หมุนรอบจุดยึด ปรับสเกลรายแกน สะท้อน) กับทุกเรขาคณิตในเลเยอร์เวกเตอร์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือแฮนเดิลในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "dx": {
                "label": "Dx",
                "description": "ระยะเลื่อนที่ใช้กับ X หลังการปรับสเกล/สะท้อน/หมุน ในหน่วยของ CRS ค่าเริ่มต้น 0."
              },
              "dy": {
                "label": "Dy",
                "description": "ระยะเลื่อนที่ใช้กับ Y หลังการปรับสเกล/สะท้อน/หมุน ในหน่วยของ CRS ค่าเริ่มต้น 0."
              },
              "angle": {
                "label": "มุม",
                "description": "การหมุนทวนเข็มนาฬิการอบจุดยึด เป็นองศา ค่าเริ่มต้น 0."
              },
              "scale_x": {
                "label": "สเกล X",
                "description": "ตัวคูณสเกลรอบจุดยึดตามแกน X ค่าเริ่มต้น 1."
              },
              "scale_y": {
                "label": "สเกล Y",
                "description": "ตัวคูณสเกลรอบจุดยึดตามแกน Y ค่าเริ่มต้น 1."
              },
              "mirror_axis": {
                "label": "แกนสะท้อน",
                "description": "สะท้อนผ่านจุดยึด: NONE (ค่าเริ่มต้น), X (พลิก Y ข้ามแกนแนวนอน) หรือ Y (พลิก X ข้ามแกนแนวตั้ง)."
              },
              "anchor": {
                "label": "จุดยึด",
                "description": "จุดหมุนสำหรับการปรับสเกล/สะท้อน/หมุน: CENTROID (ศูนย์กลางกรอบขอบเขต, ค่าเริ่มต้น), ORIGIN (0,0) หรือ XY (ใช้ anchor_x/anchor_y)."
              },
              "anchor_x": {
                "label": "จุดยึด X",
                "description": "พิกัด X ของจุดยึด; จำเป็นเมื่อ anchor=XY."
              },
              "anchor_y": {
                "label": "จุดยึด Y",
                "description": "พิกัด Y ของจุดยึด; จำเป็นเมื่อ anchor=XY."
              }
            }
          },
          "transform_fields": {
            "name": "แปลงฟิลด์",
            "description": "ทำให้ฟิลด์แอตทริบิวต์เป็นมาตรฐาน แปลง และเข้ารหัส (เช่นเดียวกับ ArcGIS Standardize/Transform/Encode Field): ค่า z, min-max, แบบทนทาน, log/log1p/sqrt/boxcox/inverse, การจัดถังแบบช่วงเท่ากัน/ควอนไทล์/ส่วนเบี่ยงเบนมาตรฐาน และการเข้ารหัสแบบ one-hot.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์นำเข้า (หรือตาราง) ที่มีฟิลด์ที่ต้องการแปลง."
              },
              "fields": {
                "label": "ฟิลด์",
                "description": "ชื่อฟิลด์ที่จะแปลงคั่นด้วยจุลภาค; จะใช้การแปลงเดียวกันกับทุกฟิลด์."
              },
              "transform": {
                "label": "การแปลง",
                "description": "การแปลงที่จะใช้: zscore, minmax, robust, log, log1p, sqrt, boxcox, inverse, bin, onehot."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์เวกเตอร์ผลลัพธ์ที่เพิ่มฟิลด์ที่แปลงแล้วเข้าไป หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "bins": {
                "label": "จำนวนถัง",
                "description": "จำนวนคลาสสำหรับ 'bin' (ค่าเริ่มต้น 5)."
              },
              "bin_method": {
                "label": "วิธีแบ่งถัง",
                "description": "วิธีการจำแนกสำหรับ 'bin': equal_interval (ค่าเริ่มต้น), quantile หรือ std_dev."
              },
              "boxcox_lambda": {
                "label": "Lambda ของ Box-Cox",
                "description": "ค่าแลมบ์ดาคงที่สำหรับ 'boxcox'; หากไม่ระบุ จะประมาณค่าด้วยวิธีภาวะน่าจะเป็นสูงสุด (การค้นหาแบบ golden-section)."
              },
              "suffix": {
                "label": "คำต่อท้าย",
                "description": "คำต่อท้ายชื่อฟิลด์ผลลัพธ์ (ค่าเริ่มต้นขึ้นอยู่กับการแปลง เช่น '_z' สำหรับ zscore)."
              },
              "drop_input": {
                "label": "ตัดข้อมูลนำเข้าออก",
                "description": "หากเป็นจริง จะลบฟิลด์ต้นฉบับออกจากผลลัพธ์หลังการแปลง (ค่าเริ่มต้น false)."
              }
            }
          },
          "transform_route_events": {
            "name": "แปลงเหตุการณ์บนเส้นทาง",
            "description": "อ้างอิงเหตุการณ์แบบจุดที่วัดบนระบบเส้นทางต้นทางใหม่ไปยังระบบเส้นทางเป้าหมาย: กู้พิกัด XY ของแต่ละเหตุการณ์จากเส้นทางต้นทางและค่าวัด แล้วย้ายไปยังเส้นทางเป้าหมายที่ใกล้ที่สุดภายในค่าเผื่อการรวมกลุ่ม โดยให้รหัสเส้นทางเป้าหมายและค่าวัด — เช่นเดียวกับ ArcGIS Transform Route Events.",
            "params": {
              "source_events": {
                "label": "เหตุการณ์ต้นทาง",
                "description": "เลเยอร์เหตุการณ์แบบจุดนำเข้า แต่ละฟีเจอร์มีรหัสเส้นทาง (route_id_field) และค่าระยะวัด (measure_field)."
              },
              "source_routes": {
                "label": "เส้นทางต้นทาง",
                "description": "ระบบเส้นทางต้นทาง: เลเยอร์เส้นที่ฟีเจอร์ถูกกำหนดคีย์ด้วย route_id_field ค่าระยะวัดคือระยะทางจากจุดยอดแรกของแต่ละเส้นทาง."
              },
              "target_routes": {
                "label": "เส้นทางเป้าหมาย",
                "description": "ระบบเส้นทางปลายทาง: เลเยอร์เส้นที่จะย้ายเหตุการณ์ไปวาง รหัสเส้นทางมาจาก target_id_field."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์จุดผลลัพธ์ (เลือกไดรเวอร์จากนามสกุลไฟล์) หากไม่ระบุ ผลลัพธ์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "route_id_field": {
                "label": "ฟิลด์รหัสเส้นทาง",
                "description": "ฟิลด์ที่ระบุรหัสเส้นทางใน source_events และ source_routes (ค่าเริ่มต้น 'route_id') หากไม่มีฟิลด์นี้ -> จะใช้ดัชนีฟีเจอร์ของเส้นทางต้นทางแทน."
              },
              "measure_field": {
                "label": "ฟิลด์ค่าระยะวัด",
                "description": "ฟิลด์ตัวเลขใน source_events ที่เก็บค่าระยะวัดของระบบต้นทาง (ค่าเริ่มต้น 'measure')."
              },
              "target_id_field": {
                "label": "ฟิลด์รหัสเป้าหมาย",
                "description": "ฟิลด์ที่ระบุรหัสเส้นทางใน target_routes (ค่าเริ่มต้น: เหมือนกับ route_id_field) หากไม่มีฟิลด์นี้ -> จะใช้ดัชนีฟีเจอร์ของเส้นทางปลายทางแทน."
              },
              "cluster_tolerance": {
                "label": "ค่าเผื่อคลัสเตอร์",
                "description": "ระยะทาง XY สูงสุด (หน่วยของ CRS) จากตำแหน่งเหตุการณ์ที่กู้คืนได้ไปยังเส้นทางปลายทาง เพื่อให้ย้ายเหตุการณ์ได้ ค่า 0 หรือไม่ระบุหมายถึงไม่จำกัด (สแนปไปยังเส้นทางปลายทางที่ใกล้ที่สุดเสมอ)."
              }
            }
          },
          "transpose_fields": {
            "name": "สลับแถวคอลัมน์ของฟิลด์",
            "description": "เปลี่ยนรูปตารางแอตทริบิวต์จากรูปแบบกว้างเป็นรูปแบบยาว: แต่ละคอลัมน์ค่าที่ระบุจะกลายเป็นแถวของตัวเอง พร้อมกำกับว่ามาจากคอลัมน์ใด (ArcGIS Transpose Fields) pivot_table แปลงได้เฉพาะจากยาวเป็นกว้าง ตารางที่มาในรูปหนึ่งคอลัมน์ต่อหนึ่งช่วงเวลาจึงป้อนเข้าเครื่องมืออนุกรมเวลาที่ต้องการหนึ่งแถวต่อหนึ่งค่าสังเกตไม่ได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์เวกเตอร์หรือตารางนำเข้า."
              },
              "transpose_fields": {
                "label": "สลับแถวคอลัมน์ของฟิลด์",
                "description": "คอลัมน์ค่าที่จะแปลงเป็นแถว (unpivot) คั่นด้วยจุลภาคหรืออัฒภาค."
              },
              "value_field": {
                "label": "ฟิลด์ค่า",
                "description": "ชื่อของคอลัมน์ผลลัพธ์ที่เก็บค่าของเซลล์ (ค่าเริ่มต้น 'VALUE')."
              },
              "transposed_field": {
                "label": "ฟิลด์ที่สลับแล้ว",
                "description": "ชื่อของคอลัมน์ผลลัพธ์ที่เก็บชื่อคอลัมน์ต้นทาง (ค่าเริ่มต้น 'FIELD')."
              },
              "field_labels": {
                "label": "ป้ายกำกับฟิลด์",
                "description": "ป้ายกำกับเป็นตัวเลือกที่จะเขียนลงใน 'transposed_field' แทนชื่อคอลัมน์ดิบ เช่น '2000,2010,2020' ต้องมีจำนวนเท่ากับ 'transpose_fields'."
              },
              "retain_fields": {
                "label": "ฟิลด์ที่คงไว้",
                "description": "แอตทริบิวต์ที่จะคัดลอกไปยังทุกแถวของผลลัพธ์ ค่าเริ่มต้นคือทุกฟิลด์ที่ไม่ได้ถูกแปลงเป็นแถว."
              },
              "drop_nulls": {
                "label": "ตัดค่าว่างออก",
                "description": "ข้ามแถวผลลัพธ์ที่มีค่าเป็น null (ค่าเริ่มต้น false)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "trim_line": {
            "name": "ตัดแต่งเส้น",
            "description": "ลบเซกเมนต์เส้นสั้นที่ค้างอยู่ (ส่วนเกินและกิ่งแขนง) ที่สั้นกว่าค่าเผื่อความยาว โดยคงจุดตัดที่แท้จริงและเส้นยาวไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์เส้นนำเข้า ตรวจหารูปแบบอัตโนมัติ (หรือใช้ตัวอ้างอิงในหน่วยความจำ)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ เป็นตัวเลือก (ไดรเวอร์กำหนดจากนามสกุลไฟล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "dangle_length": {
                "label": "ความยาวส่วนห้อย",
                "description": "ค่าเผื่อความยาวในหน่วยของ CRS เซกเมนต์ปลายลอยที่สั้นกว่าค่านี้จะถูกตัดออก ส่วนปลายลอยที่ยาวกว่าจะถูกเก็บไว้ ต้องเป็นค่าบวก."
              },
              "keep_short": {
                "label": "คงส่วนสั้น",
                "description": "เมื่อเป็นจริง (ค่าเริ่มต้น) เซกเมนต์สั้นที่ไม่เชื่อมต่อทั้งสองปลาย (โดดเดี่ยว) จะถูกเก็บไว้; เมื่อเป็นเท็จจะถูกลบออกด้วย ส่วนเซกเมนต์ที่มีปลายลอยเพียงด้านเดียวจะถูกตัดออกเสมอเมื่อสั้น."
              },
              "snap_tolerance": {
                "label": "ค่าเผื่อการสแนป",
                "description": "จุดปลายที่อยู่ภายในระยะนี้ (หน่วย CRS) จะถือเป็นโหนดเดียวกัน ค่าเริ่มต้น 1e-6."
              }
            }
          },
          "union_3d": {
            "name": "รวม 3 มิติ",
            "description": "คำนวณปริมาตรรวมของทรงตัน 3 มิติแบบปิดที่ซ้อนทับกันโดยไม่นับส่วนที่ตัดกันซ้ำ พร้อมปริมาตรที่ซ้อนทับรายคู่ (ArcGIS Union 3D) ไม่มีรีจิสทรีใดมีการซ้อนทับ 3 มิติ การรวมแคปซูลจาก buffer_3d หรือฮัลล์จาก minimum_bounding_volume ในปัจจุบันจึงนับทุกส่วนที่ซ้อนทับซ้ำ ส่วน polygon_volume และ surface_volume วัดเทียบกับระนาบอ้างอิงเท่านั้น ปริมาตรของแต่ละทรงตันคำนวณได้แม่นยำ (ผลรวมทรงสี่หน้าแบบมีเครื่องหมาย) ส่วนยูเนียนประมาณด้วยการนับวอกเซลที่ความละเอียดที่รายงานไว้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ฟีเจอร์ทรงตัน 3 มิติแบบปิด (MultiPolygon แบบตาข่ายสามเหลี่ยมที่มีค่า Z ตามที่ buffer_3d และ minimum_bounding_volume สร้างขึ้น)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางผลลัพธ์เป็นตัวเลือกของปริมาตรรายกลุ่ม หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "group_field": {
                "label": "ฟิลด์จัดกลุ่ม",
                "description": "ฟิลด์เป็นตัวเลือก; วัตถุทึบจะถูกรวมภายในแต่ละค่ากลุ่มแทนที่จะรวมทั้งเลเยอร์."
              },
              "output_overlap_table": {
                "label": "ผลลัพธ์ตารางการซ้อนทับ",
                "description": "พาธเป็นตัวเลือกสำหรับปริมาตรการซ้อนทับรายคู่ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ (ยังคงส่งคืนผลลัพธ์)."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "จำนวนตัวอย่างวอกเซลต่อแกนที่ใช้ประมาณปริมาตรการรวม ตั้งแต่ 4 ถึง 512 (ค่าเริ่มต้น 96) ค่าที่สูงกว่าจะแม่นยำกว่าแต่ช้ากว่า."
              }
            }
          },
          "unwrap_phase": {
            "name": "คลี่เฟส",
            "description": "แปลงเฟสอินเตอร์เฟอโรเมตริกที่ยังไม่คลายในช่วง (-pi, pi] ให้เป็นสนามค่าสัมบูรณ์ต่อเนื่องด้วยกำลังสองน้อยที่สุดแบบถ่วงน้ำหนัก แก้ด้วยเกรเดียนต์สังยุคที่มีตัวปรับสภาพ พร้อมการถ่วงน้ำหนักและการมาสก์ด้วยความอาพันธ์เป็นตัวเลือก (ArcGIS Unwrap Phase) ไม่มีเครื่องมือใดในทั้งสองรีจิสทรีคลายเฟสได้ — raster_calculator แสดงการแก้ปัญหาระดับรวมไม่ได้ และตัวกรองสเปกเคิลที่มีอยู่ทำให้เรียบแทนที่จะคลายเฟส — ผลลัพธ์เฟสของ sar_coherence และ flatten_interferogram จึงยังไม่มีปลายทางที่ต่อเนื่อง.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์เฟสที่พันทบเป็นหน่วยเรเดียน หรืออินเตอร์เฟอโรแกรม I/Q แบบสองแบนด์."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์เฟสต่อเนื่องที่คลายพันแล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "method": {
                "label": "วิธี",
                "description": "'least_squares_pcg' (ค่าเริ่มต้น) ตรงกับวิธีที่ ArcGIS รองรับ."
              },
              "coherence": {
                "label": "ความสอดคล้อง",
                "description": "แรสเตอร์ coherence ที่ลงทะเบียนร่วมพิกัดเป็นตัวเลือก ใช้เป็นน้ำหนักรายขอบในการแก้สมการ เพื่อให้พิกเซลที่มีค่า coherence ต่ำมีผลต่อคำตอบน้อยลง."
              },
              "coherence_threshold": {
                "label": "ค่าเกณฑ์ความสอดคล้อง",
                "description": "มาสก์พิกเซลที่มีค่า coherence ต่ำกว่าค่านี้ออก (ค่าเริ่มต้น 0.3) จะถูกละเว้นเมื่อไม่ได้ระบุแรสเตอร์ coherence การมาสก์ที่ทำให้พิกเซลที่ใช้ได้ถูกแยกออกเป็นองค์ประกอบที่ไม่เชื่อมต่อกัน จะทำให้แต่ละองค์ประกอบนอกเหนือจากองค์ประกอบที่มีพิกเซลอ้างอิง มีค่าคงที่บวกเพิ่มของตัวเองโดยพลการ."
              },
              "max_iterations": {
                "label": "จำนวนรอบวนซ้ำสูงสุด",
                "description": "ขีดจำกัดจำนวนรอบวนซ้ำ PCG (ค่าเริ่มต้น 500)."
              },
              "tolerance": {
                "label": "ค่าเผื่อ",
                "description": "ค่าเศษเหลือสัมพัทธ์ที่จะหยุดการแก้สมการ (ค่าเริ่มต้น 1e-8)."
              },
              "reference_row": {
                "label": "แถวอ้างอิง",
                "description": "แถวของพิกเซลที่ถูกตรึงให้เป็นศูนย์ เพื่อกำหนดค่าคงที่บวกเพิ่มของคำตอบ ค่าเริ่มต้น: พิกเซลแรกที่ใช้ได้."
              },
              "reference_col": {
                "label": "คอลัมน์อ้างอิง",
                "description": "คอลัมน์ของพิกเซลที่ถูกตรึง ค่าเริ่มต้น: พิกเซลแรกที่ใช้ได้."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่เก็บค่าเฟส ละไว้สำหรับแรสเตอร์เฟสแบนด์เดียวหรืออินเทอร์เฟอโรแกรม I/Q สองแบนด์ (ซึ่งจะตรวจหาอัตโนมัติ) และระบุค่านี้เพื่ออ่านเฟสจริงจากแบนด์ที่เจาะจงของสแต็กหลายแบนด์ แรสเตอร์ที่มีมากกว่าสองแบนด์จำเป็นต้องระบุพารามิเตอร์นี้ เพราะสามแบนด์ขึ้นไปไม่ใช่คู่ I/Q และการเดาจะให้ค่าเฟสที่ดูสมเหตุสมผลแต่ผิด."
              }
            }
          },
          "validate_flow_direction": {
            "name": "ตรวจสอบทิศทางการไหล",
            "description": "รายงานเซลล์ที่ทำให้แรสเตอร์ทิศทางการไหลใช้งานไม่ได้ — รหัสที่ไม่ใช่ทิศทาง D8 เซลล์ภายในที่ไม่มีทางออก การไหลเข้าสู่ NoData การไหลออกนอกขอบ และเซลล์ที่อยู่บนเส้นทางการไหลวนเป็นวง — ในรูปเลเยอร์จุดของปัญหา (ArcGIS Validate Flow Direction) ชุดเครื่องมืออุทกวิทยาที่มีอยู่ใช้แรสเตอร์ตัวชี้ในทุกที่ (d8_flow_accumulation, watershed, basins, trace_downslope_flowpaths) แต่ไม่มีเครื่องมือใดตรวจสอบความถูกต้อง แรสเตอร์ที่เสียหายจากการสุ่มตัวอย่างใหม่ การจำแนกใหม่ หรือการตัด จึงให้คำตอบที่ดูสมเหตุสมผลแต่ผิดแทนที่จะเกิดข้อผิดพลาด และวงวนการนำพาอาจทำให้ค้างได้.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์ทิศทางการไหล (พอยน์เตอร์) ที่จะตรวจสอบ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "เลเยอร์จุดผลลัพธ์ หนึ่งจุดต่อหนึ่งเซลล์ที่มีปัญหา หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "flow_direction_type": {
                "label": "ชนิดทิศทางการไหล",
                "description": "'d8' (ค่าเริ่มต้น) สำหรับรหัสเลขยกกำลังสองค่าเดียว หรือ 'mfd' ซึ่งค่าหนึ่งอาจเป็นผลรวมของหลายทิศทาง."
              },
              "report_edge_outflow": {
                "label": "รายงานการไหลออกที่ขอบ",
                "description": "รายงานเซลล์ที่การไหลออกไปนอกแรสเตอร์ (ค่าเริ่มต้น false) ถือเป็นเรื่องปกติบนขอบเขตจริง แต่เป็นข้อบกพร่องจริงบนพื้นที่ภายในที่ถูกตัด."
              },
              "check_circular": {
                "label": "ตรวจสอบการวนซ้ำ",
                "description": "ตรวจหาเส้นทางการไหลแบบวนกลับ (ค่าเริ่มต้น true)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่เก็บค่าทิศทาง โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "vector_convert": {
            "name": "แปลงเวกเตอร์",
            "description": "แปลงชุดข้อมูลเวกเตอร์เป็นรูปแบบอื่น (นามสกุลของไฟล์ผลลัพธ์เป็นตัวเลือกไดรเวอร์).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า (ตรวจหารูปแบบอัตโนมัติ) หรือแฮนเดิลในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์; ไดรเวอร์จะกำหนดจากนามสกุลไฟล์ (.geojson, .fgb, .shp, .gpkg, .parquet, ...) หากไม่ระบุ เลเยอร์จะถูกเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "vector_to_h3": {
            "name": "เวกเตอร์เป็นถัง H3",
            "description": "จัดเลเยอร์เวกเตอร์ลงในเซลล์กริดทั่วโลกแบบไม่ต่อเนื่อง H3 โดยนับจำนวนฟีเจอร์ต่อเซลล์.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า (ต้องเป็นพิกัดภูมิศาสตร์ลอน/แลต EPSG:4326) หรือแฮนเดิลในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธเวกเตอร์ผลลัพธ์ โดยไดรเวอร์กำหนดจากนามสกุลไฟล์ (.geojson, .fgb, .parquet, ...) หากไม่ระบุ เลเยอร์จะถูกเก็บไว้ในหน่วยความจำ."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ความละเอียด H3 ตั้งแต่ 0 (หยาบที่สุด) ถึง 15 (ละเอียดที่สุด) ค่าเริ่มต้น 8 (เซลล์ขนาด ~0.7 km²)."
              }
            }
          },
          "vector_to_pmtiles": {
            "name": "เวกเตอร์เป็น PMTiles",
            "description": "บรรจุเลเยอร์เวกเตอร์ลงในคลัง PMTiles ไฟล์เดียว (พีระมิด Mapbox Vector Tile).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า (GeoJSON, Shapefile, GeoPackage, FlatGeobuf, GeoParquet, ...)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ PMTiles ผลลัพธ์ (เช่น /work/roads.pmtiles)."
              },
              "min_zoom": {
                "label": "ซูมต่ำสุด",
                "description": "ระดับซูมต่ำสุด (ค่าเริ่มต้น 0)."
              },
              "max_zoom": {
                "label": "ซูมสูงสุด",
                "description": "ระดับซูมสูงสุด (ค่าเริ่มต้น 14, สูงสุด 18)."
              },
              "layer_name": {
                "label": "ชื่อเลเยอร์",
                "description": "ชื่อของเลเยอร์ภายในไทล์ ใช้ในการกำหนดสไตล์ (ค่าเริ่มต้น: ชื่อของเลเยอร์นำเข้า)."
              },
              "simplify": {
                "label": "ลดรูป",
                "description": "ลดรูปเรขาคณิตในแต่ละระดับซูม (ค่าเริ่มต้น true)."
              },
              "drop_rate": {
                "label": "อัตราการตัดออก",
                "description": "อัตราการตัดฟีเจอร์ทิ้งที่ระดับซูมต่ำ เช่นเดียวกับใน tippecanoe (ค่าเริ่มต้น: ไม่ตัดทิ้ง)."
              }
            }
          },
          "voxel_isosurface": {
            "name": "พื้นผิวไอโซของวอกเซล",
            "description": "สกัดพื้นผิวไอโซที่ผ่านการแบ่งเป็นสามเหลี่ยมที่ค่าเกณฑ์หนึ่งค่าหรือมากกว่าจากสนามวอกเซล 3 มิติ ด้วยวิธี marching tetrahedra (ArcGIS Export Voxel Isosurface) ชุดเครื่องมือสร้างเส้นชั้นทั้งหมดในทั้งสองรีจิสทรีเป็นแบบ 2 มิติ — ให้เส้นบนระนาบ ส่วนเครื่องมือนี้เป็นคู่เทียบเชิงปริมาตร ที่เปลี่ยนผลลัพธ์ของ idw_3d หรือแรสเตอร์หลายมิติให้เป็นเรขาคณิตที่เรนเดอร์ได้ ให้ผลลัพธ์ตามแบบแผนเมชสามเหลี่ยมที่ buffer_3d และ minimum_bounding_volume ใช้ จึงป้อนเข้า inside_3d ได้ทันที.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "สนามวอกเซลในรูปแรสเตอร์หลายแบนด์: แบนด์ k คือสไลซ์ Z ที่ z_min + k * z_spacing."
              },
              "values": {
                "label": "ค่า",
                "description": "ค่าเกณฑ์: เป็นตัวเลข อาร์เรย์ JSON ของตัวเลข หรือสตริงคั่นด้วยจุลภาค หนึ่งพื้นผิวต่อหนึ่งค่า."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธผลลัพธ์เป็นตัวเลือกสำหรับพื้นผิวเมชสามเหลี่ยม หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "z_min": {
                "label": "Z ต่ำสุด",
                "description": "พิกัด Z ของสไลซ์แรก (ค่าเริ่มต้น 0)."
              },
              "z_spacing": {
                "label": "ระยะห่าง Z",
                "description": "ระยะห่างแนวดิ่งระหว่างสไลซ์ (ค่าเริ่มต้น 1)."
              },
              "close_boundaries": {
                "label": "ปิดขอบเขต",
                "description": "ปิดพื้นผิวตรงที่บรรจบกับขอบของปริมาตร เพื่อให้ผลลัพธ์ล้อมเป็นวัตถุทึบปิด (ค่าเริ่มต้น true) ทำได้โดยการมาร์ชเปลือกเพิ่มอีกชั้นที่อยู่ใต้ค่าไอโซ ฝาปิดจึงเชื่อมติดกับพื้นผิว โดยอยู่ระหว่างระนาบขอบเขตกับตำแหน่งที่เลยออกไปหนึ่งเซลล์ วิธีนี้ปิดผนึกเฉพาะหน้าด้านนอกเท่านั้น: เซลล์ที่ติดกับพื้นที่ no-data ภายในจะถูกข้ามไป ดังนั้นโพรง no-data ที่ตัดกับพื้นผิวที่สกัดได้จะยังคงเหลือขอบเปิดอยู่ (โพรงที่อยู่ภายในหรือภายนอกเส้นชั้นทั้งหมดจะไม่บรรจบกับเมชเลย)."
              },
              "smooth": {
                "label": "ทำให้เรียบ",
                "description": "จำนวนรอบวนซ้ำการทำให้เรียบแบบ Laplacian ที่ใช้กับเมชที่สกัดได้ (ค่าเริ่มต้น 0)."
              }
            }
          },
          "warp_raster": {
            "name": "บิดแรสเตอร์",
            "description": "อ้างอิงตำแหน่งทางภูมิศาสตร์ให้แรสเตอร์จากจุดควบคุมภาคพื้นดิน (เช่นเดียวกับ ArcGIS Warp): ฟิตพหุนามอันดับ 1/2/3 จากคู่จุดควบคุมพิกเซลต้นทาง → พิกัดโลก แล้วสุ่มตัวอย่างใหม่ลงในกริดที่อ้างอิงตำแหน่งแล้ว (ใกล้สุด/ไบลิเนียร์) พร้อมรายงานค่าคงเหลือรายจุดควบคุมและค่าความคลาดเคลื่อน RMS เป็นครึ่งด้านแรสเตอร์ของงานหลอมรวมข้อมูลที่ rubbersheet_features ด้านเวกเตอร์ครอบคลุมอยู่แล้ว.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "แรสเตอร์นำเข้า (กริดพิกเซลของแรสเตอร์นี้คือปริภูมิพิกัดต้นทาง)."
              },
              "gcps": {
                "label": "GCP",
                "description": "จุดควบคุมภาคพื้นดินในรูปชุดค่า 'col,row,x,y' คั่นด้วย ';' (>= 3 สำหรับอันดับ 1, 6 สำหรับอันดับ 2, 10 สำหรับอันดับ 3)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ที่อ้างอิงพิกัดภูมิศาสตร์แล้ว หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "transform": {
                "label": "การแปลง",
                "description": "อันดับพหุนาม: 'poly1' (แอฟไฟน์; ค่าเริ่มต้น), 'poly2' หรือ 'poly3'."
              },
              "resampling": {
                "label": "การสุ่มตัวอย่างใหม่",
                "description": "'nearest' (ค่าเริ่มต้น) หรือ 'bilinear'."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยพิกัดโลก (ค่าเริ่มต้น: ความกว้างของข้อมูลนำเข้าที่แมปไปยังขอบเขตเป้าหมาย)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "รหัส EPSG ที่จะกำกับ CRS ของผลลัพธ์ (เป็นตัวเลือก)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ที่จะวาร์ป โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              }
            }
          },
          "weighted_voronoi": {
            "name": "Voronoi แบบถ่วงน้ำหนัก",
            "description": "แรสเตอร์การจัดสรรแบบโวโรนอยถ่วงน้ำหนัก (พื้นที่ตลาด/พื้นที่ครอบงำ): กำหนดแต่ละเซลล์ให้กับสถานที่ที่มีระยะทางถ่วงน้ำหนักน้อยที่สุด — แบบคูณ (d/w, Apollonius), แบบบวก (d-w) หรือแบบยกกำลัง (d²-w²) — เช่นเดียวกับ ArcGIS Generate Weighted Voronoi เป็นรุ่นที่สถานที่ไม่เท่ากันของ voronoi_diagram แบบไม่ถ่วงน้ำหนักที่มีอยู่.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "เลเยอร์จุดนำเข้าของที่ตั้ง."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์การจัดสรรผลลัพธ์ (ดัชนีที่ตั้งเริ่มนับจาก 1 ต่อหนึ่งเซลล์) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "weight_field": {
                "label": "ฟิลด์น้ำหนัก",
                "description": "ฟิลด์ตัวเลขที่ให้ค่าน้ำหนัก/ความน่าดึงดูดของแต่ละที่ตั้ง (ค่าเริ่มต้น: ทุกที่ตั้งมีน้ำหนัก 1)."
              },
              "weight_type": {
                "label": "ชนิดน้ำหนัก",
                "description": "'multiplicative' (d/w; ค่าเริ่มต้น), 'additive' (d-w) หรือ 'power' (d²-w²)."
              },
              "cell_size": {
                "label": "ขนาดเซลล์",
                "description": "ขนาดเซลล์ผลลัพธ์ในหน่วยของ CRS (ค่าเริ่มต้น: ขอบเขต / 400)."
              },
              "margin": {
                "label": "ระยะขอบ",
                "description": "สัดส่วนของขอบเขตที่ตั้งที่ใช้ขยายแรสเตอร์ออกไป (ค่าเริ่มต้น 0.1)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "EPSG ที่จะกำกับผลลัพธ์ (ค่าเริ่มต้น: จากเลเยอร์นำเข้า)."
              }
            }
          },
          "write_geoparquet": {
            "name": "เขียน GeoParquet",
            "description": "แปลงชุดข้อมูลเวกเตอร์ (GeoJSON, Shapefile, FlatGeobuf, GeoPackage, ...) เป็น GeoParquet โดยค่าเริ่มต้นจะเรียงแบบ Hilbert และบีบอัดด้วย ZSTD.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์เวกเตอร์นำเข้า (ตรวจหารูปแบบอัตโนมัติ) หรือแฮนเดิลในหน่วยความจำ."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ GeoParquet ผลลัพธ์ (เช่น /work/data.parquet)."
              },
              "compression": {
                "label": "การบีบอัด",
                "description": "การบีบอัดคอลัมน์: zstd (ค่าเริ่มต้น), snappy, gzip หรือ uncompressed."
              },
              "hilbert_sort": {
                "label": "เรียงลำดับแบบ Hilbert",
                "description": "เรียงลำดับฟีเจอร์ตามเส้นโค้งฮิลแบร์ตเพื่อความใกล้เคียงเชิงพื้นที่ (ค่าเริ่มต้น true)."
              }
            }
          },
          "write_pmtiles": {
            "name": "แรสเตอร์เป็น PMTiles",
            "description": "เรนเดอร์แรสเตอร์ลงในคลัง PMTiles ไฟล์เดียว (พีระมิดไทล์ PNG แบบ Web Mercator).",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "พาธไฟล์แรสเตอร์นำเข้า. ต้องมีระบบพิกัดอ้างอิงต้นทาง (EPSG หรือ WKT)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธไฟล์ PMTiles ผลลัพธ์ (เช่น /work/dem.pmtiles)."
              },
              "min_zoom": {
                "label": "ซูมต่ำสุด",
                "description": "ระดับซูมต่ำสุด (ค่าเริ่มต้น: ระดับซูมดั้งเดิมระดับเดียวที่ตรงกับความละเอียดของแรสเตอร์)."
              },
              "max_zoom": {
                "label": "ซูมสูงสุด",
                "description": "ระดับซูมสูงสุด (ค่าเริ่มต้น: เท่ากับ min_zoom)."
              },
              "band": {
                "label": "แบนด์",
                "description": "แบนด์ (เริ่มนับจาก 1) ที่จะแสดงผล (ค่าเริ่มต้น 1)."
              },
              "colormap": {
                "label": "แผนที่สี",
                "description": "แผนที่สี: viridis (ค่าเริ่มต้น), magma, turbo, terrain หรือ grayscale."
              },
              "method": {
                "label": "วิธี",
                "description": "วิธีการสุ่มตัวอย่างใหม่: bilinear (ค่าเริ่มต้น), nearest, cubic."
              },
              "min": {
                "label": "ค่าต่ำสุด",
                "description": "ค่าที่แมปไปยังปลายด้านต่ำของแผนที่สี (ค่าเริ่มต้น: ค่าต่ำสุดของแบนด์)."
              },
              "max": {
                "label": "ค่าสูงสุด",
                "description": "ค่าที่แมปไปยังปลายด้านสูงของแผนที่สี (ค่าเริ่มต้น: ค่าสูงสุดของแบนด์)."
              }
            }
          },
          "zonal_characterization": {
            "name": "ลักษณะเฉพาะรายโซน",
            "description": "คำนวณสถิติของแรสเตอร์ค่าหลายชุดบนแรสเตอร์โซนหนึ่งชุดในรอบเดียว พร้อมสถิติรายแรสเตอร์และเปอร์เซ็นไทล์ใดก็ได้ เช่นเดียวกับ ArcGIS Zonal Characterization.",
            "params": {
              "zones": {
                "label": "โซน",
                "description": "แรสเตอร์โซน; แต่ละค่าที่แตกต่างกันกำหนดเป็นหนึ่งโซน."
              },
              "rasters": {
                "label": "แรสเตอร์",
                "description": "รายการ 'path:statistic[:name]' คั่นด้วยจุลภาค เช่น 'dem.tif:mean,ndvi.tif:median' แรสเตอร์ค่าจะใช้แบนด์ 1 สถิติที่ใช้ได้: mean, sum, min, max, range, stddev, median, majority, minority, variety, count, percentile."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธตารางสถิติผลลัพธ์เป็นตัวเลือก หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              },
              "percentile": {
                "label": "เปอร์เซ็นไทล์",
                "description": "เปอร์เซ็นไทล์ (0-100) ที่ใช้กับแรสเตอร์ใดก็ตามที่มีสถิติเป็น 'percentile' (ค่าเริ่มต้น 50)."
              },
              "zone_band": {
                "label": "แบนด์โซน",
                "description": "แบนด์ที่จะอ่านจากแรสเตอร์โซน โดยเริ่มนับจาก 1 (ค่าเริ่มต้น 1)."
              },
              "ignore_nodata": {
                "label": "ละเว้น NoData",
                "description": "ข้ามเซลล์ no-data ในแรสเตอร์ค่า (ค่าเริ่มต้น true) เมื่อเป็นเท็จ ค่า no-data ใด ๆ ในโซนจะทำให้สถิติของโซนนั้นเป็น null."
              }
            }
          },
          "zonal_fill": {
            "name": "เติมรายโซน",
            "description": "เติมแต่ละโซนของแรสเตอร์เชิงหมวดหมู่ด้วยค่าต่ำสุดของแรสเตอร์น้ำหนักที่พบตามขอบเขตของโซนนั้น (เช่นเดียวกับ ArcGIS Zonal Fill) — เป็นองค์ประกอบพื้นฐานของการสร้างพื้นผิวแบบมีข้อจำกัดที่ชุดเครื่องมือที่มีอยู่ยังขาด (fill อิงการไหล ส่วน zonal_statistics ทำได้เพียงสรุปค่า).",
            "params": {
              "zones": {
                "label": "โซน",
                "description": "แรสเตอร์โซนเชิงหมวดหมู่ (ค่าจำนวนเต็มที่แตกต่างกันแต่ละค่าคือหนึ่งโซน)."
              },
              "weight": {
                "label": "น้ำหนัก",
                "description": "แรสเตอร์น้ำหนักที่ลงทะเบียนร่วมพิกัด ซึ่งค่าต่ำสุดบนขอบเขตจะเติมเข้าไปในแต่ละโซน."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ."
              }
            }
          },
          "zonal_geometry": {
            "name": "เรขาคณิตรายโซน",
            "description": "ค่าวัดเชิงเรขาคณิตรายโซนจากแรสเตอร์โซนเชิงหมวดหมู่ (เช่นเดียวกับ ArcGIS Zonal Geometry): พื้นที่ เส้นรอบรูป ความหนา เซนทรอยด์ และแกนเอก/แกนโท + ทิศทางของวงรีส่วนเบี่ยงเบนมาตรฐาน — เป็นคู่ขนานด้านรูปร่างของโซนที่ zonal_statistics และ zonal_histogram ที่อิงค่าซึ่งมีอยู่ไม่รองรับ.",
            "params": {
              "zones": {
                "label": "โซน",
                "description": "แรสเตอร์โซนเชิงหมวดหมู่ (ค่าจำนวนเต็มที่แตกต่างกันแต่ละค่าคือหนึ่งโซน)."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "แรสเตอร์ผลลัพธ์ (โหมด raster) หรือพาธ CSV (โหมด as_table) หากไม่ระบุ จะเก็บไว้ในหน่วยความจำ / ส่งคืนในผลลัพธ์เท่านั้น."
              },
              "measure": {
                "label": "ค่าระยะวัด",
                "description": "ค่าที่วัดในโหมดแรสเตอร์: 'area' (ค่าเริ่มต้น), 'perimeter', 'thickness', 'centroid_x', 'centroid_y', 'major_axis', 'minor_axis' หรือ 'orientation'."
              },
              "as_table": {
                "label": "เป็นตาราง",
                "description": "เมื่อเป็นจริง จะสร้างหนึ่งแถวต่อหนึ่งโซนพร้อมค่าที่วัดทุกค่า แทนแรสเตอร์รายเซลล์ (ค่าเริ่มต้น false)."
              }
            }
          },
          "zonal_histogram": {
            "name": "ฮิสโทแกรมรายโซน",
            "description": "จัดทำตารางการแจกแจงของเซลล์แรสเตอร์ค่าภายในแต่ละโซน: จำนวนรายคลาส (เชิงหมวดหมู่) หรือความถี่รายถัง (ต่อเนื่อง) ในรูปตารางไขว้โซน x คลาส.",
            "params": {
              "zones": {
                "label": "โซน",
                "description": "พาธไฟล์แรสเตอร์โซน (รหัสโซนแบบจำนวนเต็ม/เชิงหมวดหมู่)."
              },
              "value": {
                "label": "ค่า",
                "description": "พาธไฟล์แรสเตอร์ค่า; ต้องใช้กริดเดียวกับ 'zones'."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ CSV ผลลัพธ์: หนึ่งแถวต่อหนึ่งโซน หนึ่งคอลัมน์ต่อหนึ่งคลาส/บิน."
              },
              "mode": {
                "label": "โหมด",
                "description": "'classes' (ค่าเริ่มต้น) ถือว่าค่าที่ปัดเศษแล้วแต่ละค่าเป็นคลาสของตัวเอง สำหรับแรสเตอร์ค่าแบบจำนวนเต็ม/เชิงหมวดหมู่ ส่วน 'bins' จะจัดกลุ่มค่าต่อเนื่องลงในบินที่มีความกว้างเท่ากัน."
              },
              "bins": {
                "label": "จำนวนถัง",
                "description": "จำนวนบินความกว้างเท่ากันสำหรับโหมด 'bins' ค่าเริ่มต้น 10."
              },
              "percent": {
                "label": "ร้อยละ",
                "description": "แสดงร้อยละของเซลล์ที่ใช้ได้ในโซนสำหรับแต่ละคลาส แทนจำนวนเซลล์ดิบ ค่าเริ่มต้น false."
              },
              "zone_band": {
                "label": "แบนด์โซน",
                "description": "แบนด์ที่จะอ่านจาก 'zones' โดยเริ่มนับจาก 1 ค่าเริ่มต้น 1."
              },
              "value_band": {
                "label": "แบนด์ค่า",
                "description": "แบนด์ที่จะอ่านจาก 'value' โดยเริ่มนับจาก 1 ค่าเริ่มต้น 1."
              },
              "long_output": {
                "label": "ผลลัพธ์แบบยาว",
                "description": "พาธ CSV เป็นตัวเลือกสำหรับผลลัพธ์รูปแบบยาว (zone,class,count,percent)."
              }
            }
          },
          "extract_cog_subset": {
            "name": "สกัดชุดย่อยจาก COG",
            "description": "สกัดชุดย่อยตามกล่องขอบเขตจาก Cloud Optimized GeoTIFF ในเครื่องหรือผ่าน HTTP.",
            "params": {
              "input": {
                "label": "ข้อมูลนำเข้า",
                "description": "ไฟล์ COG ในเครื่อง ระบุอย่างใดอย่างหนึ่งระหว่าง input หรือ url."
              },
              "url": {
                "label": "URL",
                "description": "URL ของ COG ผ่าน HTTP(S) ระบุอย่างใดอย่างหนึ่งระหว่าง url หรือ input; แหล่งข้อมูล HTTP จะใช้คำขอแบบช่วงไบต์."
              },
              "bbox": {
                "label": "กรอบขอบเขต",
                "description": "กรอบขอบเขตในรูป minX,minY,maxX,maxY ในระบบ bbox_crs."
              },
              "bbox_crs": {
                "label": "CRS ของกรอบขอบเขต",
                "description": "รหัส EPSG ของพิกัด bbox."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ COG ผลลัพธ์."
              },
              "level": {
                "label": "ระดับ",
                "description": "ระดับภาพรวม (overview) ของ COG ที่จะอ่าน; 0 คือความละเอียดเต็ม."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดพิกเซลผลลัพธ์เป้าหมาย ใช้หน่วยของ output_crs เมื่อกำหนด output_crs มิฉะนั้นใช้หน่วยของ bbox_crs และจะเลือกระดับภาพรวมของ COG ที่ใกล้เคียงที่สุดเมื่อไม่ได้ระบุ level."
              },
              "output_crs": {
                "label": "CRS ผลลัพธ์",
                "description": "รหัส EPSG ของผลลัพธ์เป็นตัวเลือก เมื่อกำหนดค่านี้ ส่วนย่อยจะถูกแปลงระบบพิกัดไปยัง CRS นี้ สำหรับ CRS ต้นทางที่ไม่สามารถเขียนเป็นเมทาดาทา EPSG ได้ จะใช้ค่าเริ่มต้นเป็น bbox_crs."
              },
              "nodata": {
                "label": "NoData",
                "description": "ค่า nodata ของผลลัพธ์เป็นตัวเลือก ใช้เป็นค่าเติมในการแปลงระบบพิกัดและเขียนเป็นเมทาดาทา nodata ของผลลัพธ์."
              }
            }
          },
          "extract_wms_subset": {
            "name": "สกัดชุดย่อยจาก WMS",
            "description": "ร้องขอชุดย่อยตามกล่องขอบเขตจากปลายทาง WMS GetMap และเขียนเป็น COG แบบ Deflate.",
            "params": {
              "url": {
                "label": "URL",
                "description": "URL ของปลายทาง WMS."
              },
              "layers": {
                "label": "เลเยอร์",
                "description": "ชื่อเลเยอร์ WMS คั่นด้วยจุลภาค."
              },
              "styles": {
                "label": "สไตล์",
                "description": "ชื่อสไตล์ WMS คั่นด้วยจุลภาค ค่าเริ่มต้นเป็นค่าว่าง."
              },
              "bbox": {
                "label": "กรอบขอบเขต",
                "description": "กรอบขอบเขตในรูป minX,minY,maxX,maxY ในระบบ bbox_crs."
              },
              "bbox_crs": {
                "label": "CRS ของกรอบขอบเขต",
                "description": "รหัส EPSG ของพิกัด bbox."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ COG ผลลัพธ์."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดพิกเซลผลลัพธ์เป้าหมายในหน่วยของ output_crs เมื่อกำหนด output_crs มิฉะนั้นใช้หน่วยของ bbox_crs."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของคำขอผลลัพธ์เป็นพิกเซล ใช้เมื่อไม่ได้ระบุ resolution."
              },
              "height": {
                "label": "ความสูง",
                "description": "ความสูงของคำขอผลลัพธ์เป็นพิกเซล ใช้เมื่อไม่ได้ระบุ resolution."
              },
              "output_crs": {
                "label": "CRS ผลลัพธ์",
                "description": "รหัส EPSG ของผลลัพธ์/คำขอเป็นตัวเลือก ค่าเริ่มต้นเป็น bbox_crs."
              },
              "format": {
                "label": "รูปแบบ",
                "description": "รูปแบบภาพของ WMS ค่าเริ่มต้นเป็น image/geotiff."
              },
              "version": {
                "label": "เวอร์ชัน",
                "description": "เวอร์ชันของ WMS ค่าเริ่มต้นเป็น 1.1.1."
              },
              "nodata": {
                "label": "NoData",
                "description": "ค่า nodata ของผลลัพธ์เป็นตัวเลือก."
              }
            }
          },
          "extract_xyz_tile_subset": {
            "name": "สกัดชุดย่อยจากไทล์ XYZ",
            "description": "ดึงไทล์แรสเตอร์แบบ XYZ สำหรับกล่องขอบเขต ต่อเป็นโมเสก และเขียนเป็น COG แบบ RGB Deflate.",
            "params": {
              "url": {
                "label": "URL",
                "description": "เทมเพลต URL ของไทล์ XYZ เช่น https://.../{z}/{x}/{y}.png."
              },
              "zoom": {
                "label": "ซูม",
                "description": "ระดับซูมของ XYZ."
              },
              "bbox": {
                "label": "กรอบขอบเขต",
                "description": "กรอบขอบเขตในรูป minX,minY,maxX,maxY ในระบบ bbox_crs."
              },
              "bbox_crs": {
                "label": "CRS ของกรอบขอบเขต",
                "description": "รหัส EPSG ของพิกัด bbox."
              },
              "output": {
                "label": "ผลลัพธ์",
                "description": "พาธ COG ผลลัพธ์."
              },
              "resolution": {
                "label": "ความละเอียด",
                "description": "ขนาดพิกเซลผลลัพธ์เป้าหมายในหน่วยของ output_crs ค่าเริ่มต้นเป็นความละเอียดดั้งเดิมของไทล์."
              },
              "width": {
                "label": "ความกว้าง",
                "description": "ความกว้างของผลลัพธ์เป็นพิกเซล ใช้เมื่อไม่ได้ระบุ resolution."
              },
              "height": {
                "label": "ความสูง",
                "description": "ความสูงของผลลัพธ์เป็นพิกเซล ใช้เมื่อไม่ได้ระบุ resolution."
              },
              "output_crs": {
                "label": "CRS ผลลัพธ์",
                "description": "รหัส EPSG ของผลลัพธ์เป็นตัวเลือก ค่าเริ่มต้นเป็น bbox_crs."
              },
              "tile_size": {
                "label": "ขนาดไทล์",
                "description": "ขนาดไทล์เป็นพิกเซล ค่าเริ่มต้นเป็น 256."
              },
              "subdomains": {
                "label": "ซับโดเมน",
                "description": "ตัวอักษรซับโดเมนสำหรับ {s} เป็นตัวเลือก เช่น abc."
              },
              "nodata": {
                "label": "NoData",
                "description": "ค่า nodata ของผลลัพธ์เป็นตัวเลือก ใช้สำหรับพิกเซลที่ขาดหาย/โปร่งใส."
              }
            }
          }
        }
      },
      "whitebox": {
        "categories": {
          "conversion": "การแปลง",
          "conversionGeometryTopology": "การแปลง - เรขาคณิตและทอพอโลยี",
          "conversionRasterVectorConversion": "การแปลง - การแปลงแรสเตอร์/เวกเตอร์",
          "conversionVectorTableIO": "การแปลง - นำเข้า/ส่งออกเวกเตอร์และตาราง",
          "hydrology": "อุทกวิทยา",
          "hydrologyDepressionsStorage": "อุทกวิทยา - แอ่งและการกักเก็บ",
          "hydrologyFlowRouting": "อุทกวิทยา - การนำทางการไหล",
          "hydrologyHydrologicIndices": "อุทกวิทยา - ดัชนีอุทกวิทยา",
          "hydrologyStreamsLongitudinalAnalysis": "อุทกวิทยา - ลำน้ำ - การวิเคราะห์ตามยาว",
          "hydrologyStreamsNetworkExtraction": "อุทกวิทยา - ลำน้ำ - การสกัดโครงข่าย",
          "hydrologyStreamsOrderingMetrics": "อุทกวิทยา - ลำน้ำ - ดัชนีลำดับชั้น",
          "hydrologyWatershedsBasins": "อุทกวิทยา - ลุ่มน้ำและแอ่งน้ำ",
          "lidarAnalysisMetrics": "LiDAR - ดัชนีการวิเคราะห์",
          "lidarFilteringClassification": "LiDAR - การกรองและการจำแนก",
          "lidarIOManagement": "LiDAR - นำเข้า/ส่งออกและการจัดการ",
          "lidarInterpolationGridding": "LiDAR - การประมาณค่าและการสร้างกริด",
          "projectionAndGeoreferencing": "การฉายแผนที่และการอ้างอิงพิกัด",
          "raster": "แรสเตอร์",
          "rasterDistanceCost": "แรสเตอร์ - ระยะทางและต้นทุน",
          "rasterLocalNeighborhood": "แรสเตอร์ - เพื่อนบ้านเฉพาะที่",
          "rasterOverlayMath": "แรสเตอร์ - คณิตศาสตร์การซ้อนทับ",
          "rasterReclassifyMask": "แรสเตอร์ - จำแนกใหม่และมาสก์",
          "rasterSpatialStatistics": "แรสเตอร์ - สถิติเชิงพื้นที่",
          "remoteSensingChangeDetection": "การสำรวจระยะไกล - การตรวจจับการเปลี่ยนแปลง",
          "remoteSensingClassification": "การสำรวจระยะไกล - การจำแนก",
          "remoteSensingEdgeFeatureDetection": "การสำรวจระยะไกล - การตรวจจับขอบและลักษณะเด่น",
          "remoteSensingEnhancementContrast": "การสำรวจระยะไกล - การเพิ่มคุณภาพและคอนทราสต์",
          "remoteSensingFilters": "การสำรวจระยะไกล - ตัวกรอง",
          "remoteSensingObia": "การสำรวจระยะไกล - OBIA",
          "remoteSensingRadiometricCorrection": "การสำรวจระยะไกล - การแก้ไขเชิงรังสี",
          "remoteSensingSar": "การสำรวจระยะไกล - SAR",
          "remoteSensingSpectralAnalytics": "การสำรวจระยะไกล - การวิเคราะห์เชิงสเปกตรัม",
          "remoteSensingThermalEmissivity": "การสำรวจระยะไกล - ความร้อนและสภาพเปล่งรังสี",
          "terrain": "ภูมิประเทศ",
          "terrainDerivatives": "ภูมิประเทศ - อนุพันธ์",
          "terrainLandformIndices": "ภูมิประเทศ - ดัชนีลักษณะภูมิประเทศ",
          "terrainMultiscaleSignatures": "ภูมิประเทศ - ลายเซ็นหลายมาตราส่วน",
          "terrainRoughnessTexture": "ภูมิประเทศ - ความขรุขระและพื้นผิว",
          "terrainVisibility": "ภูมิประเทศ - การมองเห็น",
          "terrainWorkflowProducts": "ภูมิประเทศ - ผลลัพธ์กระบวนการทำงาน",
          "vector": "เวกเตอร์",
          "vectorAttributeAnalysis": "เวกเตอร์ - การวิเคราะห์แอตทริบิวต์",
          "vectorGeometryProcessing": "เวกเตอร์ - การประมวลผลเรขาคณิต",
          "vectorLinearReferencing": "เวกเตอร์ - การอ้างอิงเชิงเส้น",
          "vectorNetworkAnalysis": "เวกเตอร์ - การวิเคราะห์โครงข่าย",
          "vectorOnlineData": "เวกเตอร์ - ข้อมูลออนไลน์",
          "vectorOverlayAnalysis": "เวกเตอร์ - การวิเคราะห์การซ้อนทับ",
          "vectorSamplingGridding": "เวกเตอร์ - การสุ่มตัวอย่างและการสร้างกริด",
          "vectorShapeMetrics": "เวกเตอร์ - ดัชนีรูปร่าง",
          "vectorSpatialStatistics": "เวกเตอร์ - สถิติเชิงพื้นที่"
        },
        "menuTool": {
          "calculate_transit_service_frequency": "คำนวณความถี่การให้บริการขนส่ง",
          "excel_to_table": "Excel เป็นตาราง",
          "extract_scanned_features": "สกัดฟีเจอร์จากภาพสแกน",
          "features_to_gpx": "ฟีเจอร์เป็น GPX",
          "features_to_gtfs": "ฟีเจอร์เป็น GTFS",
          "gpx_to_features": "GPX เป็นฟีเจอร์",
          "gtfs_to_features": "GTFS เป็นฟีเจอร์",
          "h3_to_vector": "เซลล์ H3 เป็นโพลิกอน",
          "h3_polyfill": "เติมโพลิกอนด้วย H3",
          "kml_to_features": "KML เป็นฟีเจอร์",
          "pmtiles_extract": "สกัด PMTiles",
          "raster_to_h3": "แรสเตอร์เป็นถัง H3",
          "write_pmtiles": "แรสเตอร์เป็น PMTiles",
          "raster_to_tiles": "แรสเตอร์เป็นไทล์ XYZ",
          "read_geoparquet": "อ่าน GeoParquet",
          "vector_convert": "แปลงเวกเตอร์",
          "vector_to_h3": "เวกเตอร์เป็นถัง H3",
          "vector_to_pmtiles": "เวกเตอร์เป็น PMTiles",
          "write_geoparquet": "เขียน GeoParquet",
          "fix_dangling_arcs": "ซ่อมแซมอาร์กที่ห้อยลอย",
          "lines_to_polygons": "เส้นเป็นโพลิกอน",
          "multipart_to_singlepart": "หลายส่วนเป็นส่วนเดียว",
          "polygons_to_lines": "โพลิกอนเป็นเส้น",
          "remove_polygon_holes": "ลบรูในโพลิกอน",
          "singlepart_to_multipart": "ส่วนเดียวเป็นหลายส่วน",
          "topology_rule_autofix": "แก้ไขกฎทอพอโลยีอัตโนมัติ",
          "topology_rule_validate": "ตรวจสอบกฎทอพอโลยี",
          "topology_validation_report": "รายงานการตรวจสอบทอพอโลยี",
          "convert_nodata_to_zero": "แปลง NoData เป็นศูนย์",
          "modify_nodata_value": "แก้ไขค่า NoData",
          "new_raster_from_base_raster": "แรสเตอร์ใหม่จากแรสเตอร์ฐาน",
          "new_raster_from_base_vector": "แรสเตอร์ใหม่จากเวกเตอร์ฐาน",
          "raster_to_vector_lines": "แรสเตอร์เป็นเส้นเวกเตอร์",
          "raster_to_vector_points": "แรสเตอร์เป็นจุดเวกเตอร์",
          "raster_to_vector_polygons": "แรสเตอร์เป็นโพลิกอนเวกเตอร์",
          "remove_raster_polygon_holes": "ลบรูในโพลิกอนแรสเตอร์",
          "set_nodata_value": "กำหนดค่า NoData",
          "vector_lines_to_raster": "เส้นเวกเตอร์เป็นแรสเตอร์",
          "vector_points_to_raster": "จุดเวกเตอร์เป็นแรสเตอร์",
          "vector_polygons_to_raster": "โพลิกอนเวกเตอร์เป็นแรสเตอร์",
          "add_point_coordinates_to_table": "เพิ่มพิกัดจุดลงในตาราง",
          "clean_vector": "ทำความสะอาดเวกเตอร์",
          "csv_points_to_vector": "จุด CSV เป็นเวกเตอร์",
          "export_table_to_csv": "ส่งออกตารางเป็น CSV",
          "join_tables": "เชื่อมตาราง",
          "merge_table_with_csv": "รวมตารางกับ CSV",
          "merge_vectors": "รวมเวกเตอร์",
          "reinitialize_attribute_table": "รีเซ็ตตารางแอตทริบิวต์",
          "vector_summary_statistics": "สถิติสรุปของเวกเตอร์",
          "delineate_depressions": "กำหนดขอบเขตแอ่ง",
          "delineate_mounts": "กำหนดขอบเขตเนิน",
          "enforce_river_monotonicity": "บังคับความเป็นเอกภาพของแม่น้ำ",
          "extract_sinks": "สกัดแอ่งปิด",
          "fill_spill_merge": "เติม-ล้น-รวม",
          "topo_to_raster": "Topo เป็นแรสเตอร์",
          "breach_depressions_least_cost": "เจาะทะลุแอ่งแบบต้นทุนต่ำสุด",
          "breach_single_cell_pits": "เจาะทะลุหลุมเซลล์เดียว",
          "burn_streams": "ฝังลำน้ำ",
          "burn_streams_at_roads": "ฝังลำน้ำที่ถนน",
          "depth_in_sink": "ความลึกในแอ่งปิด",
          "fill_burn": "เติมและฝัง",
          "fill_depressions": "เติมแอ่ง",
          "fill_depressions_planchon_and_darboux": "เติมแอ่งแบบ Planchon และ Darboux",
          "fill_depressions_wang_and_liu": "เติมแอ่งแบบ Wang และ Liu",
          "fill_pits": "เติมหลุม",
          "flatten_lakes": "ปรับทะเลสาบให้ราบ",
          "impoundment_size_index": "ดัชนีขนาดอ่างกักเก็บ",
          "insert_dams": "แทรกเขื่อน",
          "raise_walls": "ยกกำแพง",
          "sink": "แอ่งปิด",
          "stochastic_depression_analysis": "การวิเคราะห์แอ่งแบบสุ่ม",
          "topological_breach_burn": "เจาะทะลุและฝังเชิงทอพอโลยี",
          "upslope_depression_storage": "การกักเก็บในแอ่งเหนือลาด",
          "average_flowpath_slope": "ความลาดชันเฉลี่ยของเส้นทางการไหล",
          "average_upslope_flowpath_length": "ความยาวเส้นทางการไหลเหนือลาดเฉลี่ย",
          "d8_flow_accum": "การสะสมการไหลแบบ D8",
          "d8_mass_flux": "ฟลักซ์มวลแบบ D8",
          "d8_pointer": "ตัวชี้ทิศทางการไหลแบบ D8",
          "dinf_flow_accum": "การสะสมการไหลแบบ D-infinity",
          "dinf_mass_flux": "ฟลักซ์มวลแบบ D-infinity",
          "dinf_pointer": "ตัวชี้ทิศทางการไหลแบบ D-infinity",
          "downslope_flowpath_length": "ความยาวเส้นทางการไหลลงลาด",
          "fd8_flow_accum": "การสะสมการไหลแบบ FD8",
          "fd8_pointer": "ตัวชี้ทิศทางการไหลแบบ FD8",
          "flow_accum_full_workflow": "กระบวนการสะสมการไหลแบบครบวงจร",
          "flow_length_diff": "ผลต่างความยาวการไหล",
          "max_upslope_flowpath_length": "ความยาวเส้นทางการไหลเหนือลาดสูงสุด",
          "max_upslope_value": "ค่าสูงสุดเหนือลาด",
          "mdinf_flow_accum": "การสะสมการไหลแบบ MD-infinity",
          "minimal_dispersion_flow_algorithm": "อัลกอริทึมการไหลแบบกระจายน้อยที่สุด",
          "num_inflowing_neighbours": "จำนวนเซลล์ข้างเคียงที่ไหลเข้า",
          "qin_flow_accumulation": "การสะสมการไหลแบบ Qin",
          "quinn_flow_accumulation": "การสะสมการไหลแบบ Quinn",
          "rho8_flow_accum": "การสะสมการไหลแบบ Rho8",
          "rho8_pointer": "ตัวชี้ทิศทางการไหลแบบ Rho8",
          "trace_downslope_flowpaths": "ติดตามเส้นทางการไหลลงลาด",
          "depth_to_water": "ความลึกถึงระดับน้ำ",
          "distance_to_outlet": "ระยะทางถึงทางออก",
          "downslope_distance_to_stream": "ระยะทางลงลาดถึงลำน้ำ",
          "downslope_index": "ดัชนีลงลาด",
          "edge_contamination": "การปนเปื้อนจากขอบ",
          "elev_relative_to_watershed_min_max": "ระดับความสูงสัมพัทธ์กับค่าต่ำสุด-สูงสุดของลุ่มน้ำ",
          "elevation_above_stream": "ระดับความสูงเหนือลำน้ำ",
          "elevation_above_stream_euclidean": "ระดับความสูงเหนือลำน้ำแบบยูคลิด",
          "find_noflow_cells": "ค้นหาเซลล์ที่ไม่มีการไหล",
          "find_parallel_flow": "ค้นหาการไหลขนาน",
          "hydrologic_connectivity": "การเชื่อมต่อทางอุทกวิทยา",
          "relative_stream_power_index": "ดัชนีพลังลำน้ำสัมพัทธ์",
          "sediment_transport_index": "ดัชนีการพัดพาตะกอน",
          "wetness_index": "ดัชนีความชื้น",
          "farthest_channel_head": "ต้นน้ำที่ไกลที่สุด",
          "find_main_stem": "ค้นหาลำน้ำสายหลัก",
          "length_of_upstream_channels": "ความยาวของลำน้ำต้นน้ำ",
          "long_profile": "โปรไฟล์ตามยาว",
          "long_profile_from_points": "โปรไฟล์ตามยาวจากจุด",
          "extract_streams": "สกัดลำน้ำ",
          "extract_valleys": "สกัดหุบเขา",
          "prune_vector_streams": "ตัดแต่งลำน้ำเวกเตอร์",
          "raster_streams_to_vector": "ลำน้ำแรสเตอร์เป็นเวกเตอร์",
          "rasterize_streams": "แปลงลำน้ำเป็นแรสเตอร์",
          "remove_short_streams": "ลบลำน้ำสายสั้น",
          "repair_stream_vector_topology": "ซ่อมแซมทอพอโลยีเวกเตอร์ลำน้ำ",
          "river_centerlines": "เส้นกึ่งกลางแม่น้ำ",
          "hack_stream_order": "ลำดับลำน้ำแบบ Hack",
          "horton_ratios": "อัตราส่วน Horton",
          "horton_stream_order": "ลำดับลำน้ำแบบ Horton",
          "shreve_stream_magnitude": "ขนาดลำน้ำแบบ Shreve",
          "strahler_order_basins": "แอ่งน้ำตามลำดับ Strahler",
          "strahler_stream_order": "ลำดับลำน้ำแบบ Strahler",
          "stream_link_class": "คลาสช่วงลำน้ำ",
          "stream_link_identifier": "ตัวระบุช่วงลำน้ำ",
          "stream_link_length": "ความยาวช่วงลำน้ำ",
          "stream_link_slope": "ความลาดชันช่วงลำน้ำ",
          "stream_slope_continuous": "ความลาดชันลำน้ำแบบต่อเนื่อง",
          "topological_stream_order": "ลำดับลำน้ำเชิงทอพอโลยี",
          "tributary_identifier": "ตัวระบุลำน้ำสาขา",
          "vector_stream_network_analysis": "การวิเคราะห์โครงข่ายลำน้ำเวกเตอร์",
          "basins": "แอ่งน้ำ",
          "flood_order": "ลำดับน้ำท่วม",
          "hillslopes": "ลาดเขา",
          "isobasins": "ไอโซเบซิน",
          "jenson_snap_pour_points": "สแนปจุดไหลออกแบบ Jenson",
          "longest_flowpath": "เส้นทางการไหลที่ยาวที่สุด",
          "max_branch_length": "ความยาวสาขาสูงสุด",
          "snap_pour_points": "สแนปจุดไหลออก",
          "subbasins": "ลุ่มน้ำย่อย",
          "unnest_basins": "แยกซ้อนแอ่งน้ำ",
          "watershed": "ลุ่มน้ำ",
          "watershed_from_raster_pour_points": "ลุ่มน้ำจากจุดไหลออกแบบแรสเตอร์",
          "assign_projection_lidar": "กำหนดระบบพิกัดให้ LiDAR",
          "colourize_based_on_class": "ระบายสีตามคลาส",
          "colourize_based_on_point_returns": "ระบายสีตามการสะท้อนกลับของจุด",
          "find_flightline_edge_points": "ค้นหาจุดขอบแนวบิน",
          "individual_tree_detection": "การตรวจจับต้นไม้รายต้น",
          "lidar_eigenvalue_features": "คุณลักษณะค่าไอเกนของ LiDAR",
          "lidar_histogram": "ฮิสโทแกรม LiDAR",
          "lidar_info": "ข้อมูล LiDAR",
          "lidar_kappa": "ค่า Kappa ของ LiDAR",
          "lidar_point_density": "ความหนาแน่นจุด LiDAR",
          "lidar_point_return_analysis": "การวิเคราะห์การสะท้อนกลับของจุด LiDAR",
          "lidar_point_stats": "สถิติจุด LiDAR",
          "lidar_ransac_planes": "ระนาบ RANSAC จาก LiDAR",
          "lidar_rooftop_analysis": "การวิเคราะห์หลังคาจาก LiDAR",
          "normal_vectors": "เวกเตอร์แนวฉาก",
          "classify_buildings_in_lidar": "จำแนกอาคารใน LiDAR",
          "classify_lidar": "จำแนก LiDAR",
          "classify_overlap_points": "จำแนกจุดซ้อนทับ",
          "clip_lidar_to_polygon": "ตัด LiDAR ด้วยโพลิกอน",
          "erase_polygon_from_lidar": "ลบโพลิกอนออกจาก LiDAR",
          "filter_lidar": "กรอง LiDAR",
          "filter_lidar_by_percentile": "กรอง LiDAR ด้วยเปอร์เซ็นไทล์",
          "filter_lidar_by_reference_surface": "กรอง LiDAR ด้วยพื้นผิวอ้างอิง",
          "filter_lidar_classes": "กรองคลาส LiDAR",
          "filter_lidar_noise": "กรองสัญญาณรบกวน LiDAR",
          "filter_lidar_scan_angles": "กรองมุมสแกน LiDAR",
          "height_above_ground": "ความสูงเหนือพื้นดิน",
          "improved_ground_point_filter": "ตัวกรองจุดพื้นดินแบบปรับปรุง",
          "individual_tree_segmentation": "การแบ่งส่วนต้นไม้รายต้น",
          "lidar_classify_subset": "จำแนกชุดย่อย LiDAR",
          "lidar_elevation_slice": "แบ่งชั้นความสูง LiDAR",
          "lidar_remove_outliers": "ลบค่าผิดปกติของ LiDAR",
          "lidar_segmentation": "การแบ่งส่วน LiDAR",
          "lidar_segmentation_based_filter": "ตัวกรองตามการแบ่งส่วน LiDAR",
          "modify_lidar": "แก้ไข LiDAR",
          "normalize_lidar": "ปรับมาตรฐาน LiDAR",
          "remove_duplicates": "ลบจุดซ้ำ",
          "ascii_to_las": "ASCII เป็น LAS",
          "las_to_ascii": "LAS เป็น ASCII",
          "las_to_shapefile": "LAS เป็น Shapefile",
          "lidar_colourize": "ระบายสี LiDAR",
          "lidar_join": "รวม LiDAR",
          "lidar_shift": "เลื่อน LiDAR",
          "lidar_tile": "แบ่งไทล์ LiDAR",
          "lidar_tophat_transform": "การแปลง Tophat ของ LiDAR",
          "recover_flightline_info": "กู้คืนข้อมูลแนวบิน",
          "select_tiles_by_polygon": "เลือกไทล์ด้วยโพลิกอน",
          "sort_lidar": "เรียงลำดับ LiDAR",
          "split_lidar": "แยก LiDAR",
          "flightline_overlap": "การซ้อนทับของแนวบิน",
          "lidar_block_maximum": "ค่าสูงสุดรายบล็อกของ LiDAR",
          "lidar_block_minimum": "ค่าต่ำสุดรายบล็อกของ LiDAR",
          "lidar_construct_vector_tin": "สร้าง TIN เวกเตอร์จาก LiDAR",
          "lidar_contour": "เส้นชั้นความสูงจาก LiDAR",
          "lidar_digital_surface_model": "แบบจำลองพื้นผิวเชิงเลขจาก LiDAR",
          "lidar_hex_bin": "กริดหกเหลี่ยม LiDAR",
          "lidar_hillshade": "แรเงาภูมิประเทศจาก LiDAR",
          "lidar_idw_interpolation": "การประมาณค่าแบบ IDW ของ LiDAR",
          "lidar_nearest_neighbour_gridding": "การสร้างกริดแบบเพื่อนบ้านใกล้ที่สุดของ LiDAR",
          "lidar_radial_basis_function_interpolation": "การประมาณค่าแบบ Radial Basis Function ของ LiDAR",
          "lidar_sibson_interpolation": "การประมาณค่าแบบ Sibson ของ LiDAR",
          "lidar_thin": "ลดความหนาแน่น LiDAR",
          "lidar_thin_high_density": "ลดความหนาแน่น LiDAR ในบริเวณหนาแน่นสูง",
          "lidar_tile_footprint": "ขอบเขตไทล์ LiDAR",
          "lidar_tin_gridding": "การสร้างกริดแบบ TIN ของ LiDAR",
          "build_network_topology": "สร้างทอพอโลยีโครงข่าย",
          "closest_facility_network": "สิ่งอำนวยความสะดวกใกล้ที่สุดในโครงข่าย",
          "generate_network_nodes": "สร้างโหนดโครงข่าย",
          "k_shortest_paths_network": "เส้นทางสั้นที่สุด K เส้นทางในโครงข่าย",
          "location_allocation_network": "การจัดสรรตำแหน่งที่ตั้งในโครงข่าย",
          "map_matching_v1": "การจับคู่แผนที่ V1",
          "multimodal_od_cost_matrix": "เมทริกซ์ต้นทุน OD หลายรูปแบบการเดินทาง",
          "multimodal_routes_from_od": "เส้นทางจาก OD หลายรูปแบบการเดินทาง",
          "multimodal_shortest_path": "เส้นทางสั้นที่สุดหลายรูปแบบการเดินทาง",
          "network_accessibility_metrics": "ดัชนีการเข้าถึงของโครงข่าย",
          "network_centrality_metrics": "ดัชนีความเป็นศูนย์กลางของโครงข่าย",
          "network_connected_components": "องค์ประกอบเชื่อมต่อของโครงข่าย",
          "network_node_degree": "ดีกรีโหนดของโครงข่าย",
          "network_od_cost_matrix": "เมทริกซ์ต้นทุน OD ของโครงข่าย",
          "network_routes_from_od": "เส้นทางจาก OD ของโครงข่าย",
          "network_service_area": "พื้นที่ให้บริการของโครงข่าย",
          "network_topology_audit": "ตรวจสอบทอพอโลยีโครงข่าย",
          "od_sensitivity_analysis": "การวิเคราะห์ความไวของ OD",
          "shortest_path_network": "เส้นทางสั้นที่สุดในโครงข่าย",
          "snap_points_to_network": "สแนปจุดไปยังโครงข่าย",
          "split_lines_at_intersections": "แยกเส้นที่จุดตัด",
          "transfer_attributes": "ถ่ายโอนแอตทริบิวต์",
          "travelling_salesman_problem": "ปัญหาพนักงานขายเดินทาง",
          "vehicle_routing_cvrp": "การจัดเส้นทางยานพาหนะ CVRP",
          "vehicle_routing_pickup_delivery": "การจัดเส้นทางยานพาหนะแบบรับ-ส่ง",
          "vehicle_routing_vrptw": "การจัดเส้นทางยานพาหนะ VRPTW",
          "georeference_raster_from_control_points": "อ้างอิงพิกัดแรสเตอร์จากจุดควบคุม",
          "orthorectification": "การปรับแก้ออร์โท",
          "reproject_lidar": "แปลงระบบพิกัด LiDAR",
          "reproject_vector": "แปลงระบบพิกัดเวกเตอร์",
          "aggregate_multidimensional_raster": "รวมกลุ่มแรสเตอร์หลายมิติ",
          "analyze_changes_ccdc": "วิเคราะห์การเปลี่ยนแปลงด้วย CCDC",
          "apply_radiometric_calibration": "ใช้การปรับเทียบเชิงรังสี",
          "assign_projection_raster": "กำหนดระบบพิกัดให้แรสเตอร์",
          "band_collection_statistics": "สถิติชุดแบนด์",
          "block_statistics": "สถิติรายบล็อก",
          "boundary_clean": "ทำความสะอาดขอบเขต",
          "cell_position_statistics": "สถิติตำแหน่งเซลล์",
          "cell_statistics": "สถิติเซลล์",
          "classification_accuracy_assessment": "การประเมินความถูกต้องของการจำแนก",
          "combine": "รวมกัน",
          "composite_bands": "ประกอบแบนด์",
          "compute_sar_indices": "คำนวณดัชนี SAR",
          "contour_with_barriers": "เส้นชั้นความสูงแบบมีสิ่งกีดขวาง",
          "convert_sar_units": "แปลงหน่วย SAR",
          "coregister_rasters": "ลงทะเบียนแรสเตอร์ร่วมกัน",
          "corridor": "ทางเดินเชื่อม",
          "cost_back_link": "ลิงก์ย้อนกลับของต้นทุน",
          "cut_fill": "ตัดและถม",
          "darcy_flow": "การไหลแบบ Darcy",
          "dem_filter": "ตัวกรอง DEM",
          "detect_image_anomalies": "ตรวจจับความผิดปกติในภาพ",
          "diffusion_interpolation_with_barriers": "การประมาณค่าแบบแพร่ที่มีสิ่งกีดขวาง",
          "dimensional_moving_statistics": "สถิติเคลื่อนที่เชิงมิติ",
          "empirical_bayesian_kriging": "คริกกิงแบบเบย์เชิงประจักษ์",
          "euclidean_direction": "ทิศทางแบบยูคลิด",
          "expand_shrink": "ขยาย / หด",
          "extract_cog_subset": "สกัดชุดย่อยจาก COG",
          "extract_ocean_winds": "สกัดลมมหาสมุทร",
          "extract_spectra_from_image": "สกัดสเปกตรัมจากภาพ",
          "extract_wms_subset": "สกัดชุดย่อยจาก WMS",
          "extract_xyz_tile_subset": "สกัดชุดย่อยจากไทล์ XYZ",
          "find_argument_statistics": "ค้นหาสถิติอาร์กิวเมนต์",
          "flatten_interferogram": "ปรับอินเตอร์เฟอโรแกรมให้ราบ",
          "focal_flow": "การไหลเฉพาะจุด",
          "focal_statistics": "สถิติเฉพาะจุด",
          "frequency_comparison": "การเปรียบเทียบความถี่",
          "fuzzy_overlay": "ซ้อนทับแบบฟัซซี",
          "gaussian_geostatistical_simulations": "การจำลองธรณีสถิติแบบเกาส์เซียน",
          "multidimensional_anomaly": "สร้างความผิดปกติหลายมิติ",
          "generate_trend_raster": "สร้างแรสเตอร์แนวโน้ม",
          "goldstein_phase_filter": "ตัวกรองเฟสแบบ Goldstein",
          "idw_3d": "IDW 3 มิติ",
          "interpolate_from_spatiotemporal_points": "ประมาณค่าจากจุดเชิงพื้นที่-เวลา",
          "interpolate_with_barriers": "ประมาณค่าแบบมีสิ่งกีดขวาง",
          "kernel_density_ratio": "อัตราส่วนความหนาแน่นเคอร์เนล",
          "kernel_interpolation_with_barriers": "การประมาณค่าเคอร์เนลแบบมีสิ่งกีดขวาง",
          "landtrendr": "LandTrendr",
          "las_height_metrics": "ดัชนีความสูงจาก LAS",
          "line_density": "ความหนาแน่นเส้น",
          "line_statistics": "สถิติเส้น",
          "local_polynomial_interpolation": "การประมาณค่าพหุนามเฉพาะที่",
          "locate_regions": "ระบุตำแหน่งภูมิภาค",
          "matched_filter_target_detection": "การตรวจจับเป้าหมายด้วยตัวกรองจับคู่ (CEM/ACE)",
          "maximum_likelihood_classification": "การจำแนกแบบความควรจะเป็นสูงสุด",
          "merge_multidimensional_rasters": "รวมแรสเตอร์หลายมิติ",
          "multicriteria_overlay": "ซ้อนทับแบบหลายเกณฑ์",
          "multidimensional_principal_components": "องค์ประกอบหลักหลายมิติ",
          "multidimensional_raster_correlation": "สหสัมพันธ์แรสเตอร์หลายมิติ",
          "multilook": "มัลติลุก",
          "multitemporal_coherence": "ความสอดคล้องหลายช่วงเวลา",
          "observer_points": "จุดผู้สังเกต",
          "optimal_interpolation": "การประมาณค่าที่เหมาะสมที่สุด",
          "path_distance": "ระยะทางตามเส้นทาง",
          "percentile_contours": "เส้นชั้นเปอร์เซ็นไทล์",
          "point_statistics": "สถิติจุด",
          "porous_puff": "การพ่นในตัวกลางพรุน",
          "predict_using_trend_raster": "ทำนายด้วยแรสเตอร์แนวโน้ม",
          "presence_only_prediction": "การทำนายแบบมีเฉพาะข้อมูลการปรากฏ",
          "pycnophylactic_interpolation": "การประมาณค่าแบบพิกโนฟิแลกติก",
          "radiometric_terrain_flattening": "การปรับภูมิประเทศให้ราบเชิงรังสี",
          "raster_normalize": "ปรับมาตรฐานแรสเตอร์",
          "regression_kriging": "คริกกิงแบบถดถอย",
          "remove_thermal_noise": "ลบสัญญาณรบกวนความร้อน",
          "render_raster_png": "เรนเดอร์แรสเตอร์เป็น PNG",
          "reproject_raster": "แปลงระบบพิกัดแรสเตอร์",
          "rescale_by_function": "ปรับสเกลด้วยฟังก์ชัน",
          "sar_coherence": "ความสอดคล้อง SAR",
          "slice_raster": "หั่นแรสเตอร์",
          "solar_radiation": "รังสีดวงอาทิตย์",
          "space_time_kernel_density": "ความหนาแน่นเคอร์เนลเชิงพื้นที่-เวลา",
          "spatial_association_between_zones": "ความสัมพันธ์เชิงพื้นที่ระหว่างโซน",
          "spectral_index": "ดัชนีสเปกตรัม",
          "split_raster": "แยกแรสเตอร์",
          "storage_capacity": "ความจุกักเก็บ",
          "subset_multidimensional_raster": "ชุดย่อยของแรสเตอร์หลายมิติ",
          "summarize_categorical_raster": "สรุปแรสเตอร์เชิงกลุ่ม",
          "surface_parameters": "พารามิเตอร์พื้นผิว",
          "surface_volume": "ปริมาตรพื้นผิว",
          "time_series_cross_correlation": "สหสัมพันธ์ไขว้ของอนุกรมเวลา",
          "unwrap_phase": "คลี่เฟส",
          "warp_raster": "บิดแรสเตอร์",
          "weighted_voronoi": "Voronoi แบบถ่วงน้ำหนัก",
          "zonal_characterization": "ลักษณะเฉพาะรายโซน",
          "zonal_fill": "เติมรายโซน",
          "zonal_geometry": "เรขาคณิตรายโซน",
          "zonal_histogram": "ฮิสโทแกรมรายโซน",
          "abs": "ค่าสัมบูรณ์",
          "aggregate_raster": "รวมกลุ่มแรสเตอร์",
          "anova": "ANOVA",
          "arccos": "Arccos",
          "arcosh": "Arcosh",
          "arcsin": "Arcsin",
          "arctan": "Arctan",
          "arsinh": "Arsinh",
          "artanh": "Artanh",
          "atan2": "Atan2",
          "block_maximum": "ค่าสูงสุดรายบล็อก",
          "block_minimum": "ค่าต่ำสุดรายบล็อก",
          "boundary_shape_complexity": "ความซับซ้อนรูปร่างของขอบเขต",
          "ceil": "ปัดขึ้น",
          "centroid_raster": "เซนทรอยด์แรสเตอร์",
          "clip_raster_to_polygon": "ตัดแรสเตอร์ด้วยโพลิกอน",
          "clump": "รวมกลุ่มก้อน",
          "cos": "Cos",
          "cosh": "Cosh",
          "create_plane": "สร้างระนาบ",
          "crispness_index": "ดัชนีความคมชัด",
          "cross_tabulation": "ตารางไขว้",
          "cumulative_distribution": "การแจกแจงสะสม",
          "dbscan": "DBSCAN",
          "decrement": "ลดค่า",
          "edge_proportion": "สัดส่วนขอบ",
          "equal_to": "เท่ากับ",
          "erase_polygon_from_raster": "ลบโพลิกอนออกจากแรสเตอร์",
          "exp": "Exp",
          "exp2": "Exp2",
          "fft_random_field": "สนามสุ่มแบบ FFT",
          "filter_raster_features_by_area": "กรองฟีเจอร์แรสเตอร์ตามพื้นที่",
          "find_patch_edge_cells": "ค้นหาเซลล์ขอบแพตช์",
          "floor": "ปัดลง",
          "greater_than": "มากกว่า",
          "greater_than_or_equal_to": "มากกว่าหรือเท่ากับ",
          "heat_map": "แผนที่ความร้อน",
          "idw_interpolation": "การประมาณค่าแบบ IDW",
          "image_autocorrelation": "สหสัมพันธ์ในตัวของภาพ",
          "image_correlation": "สหสัมพันธ์ของภาพ",
          "image_regression": "การถดถอยของภาพ",
          "increment": "เพิ่มค่า",
          "inplace_add": "บวกในที่",
          "inplace_divide": "หารในที่",
          "inplace_multiply": "คูณในที่",
          "inplace_subtract": "ลบในที่",
          "integer_division": "การหารจำนวนเต็ม",
          "inverse_pca": "PCA ผกผัน",
          "is_nodata": "เป็น NoData",
          "kappa_index": "ดัชนี Kappa",
          "ks_normality_test": "การทดสอบการแจกแจงปกติแบบ KS",
          "less_than": "น้อยกว่า",
          "less_than_or_equal_to": "น้อยกว่าหรือเท่ากับ",
          "list_unique_values_raster": "แสดงรายการค่าที่ไม่ซ้ำของแรสเตอร์",
          "ln": "Ln",
          "log10": "Log10",
          "log2": "Log2",
          "map_features": "ฟีเจอร์บนแผนที่",
          "max": "ค่าสูงสุด",
          "min": "ค่าต่ำสุด",
          "modified_shepard_interpolation": "การประมาณค่าแบบ Shepard ดัดแปลง",
          "narrowness_index": "ดัชนีความแคบ",
          "negate": "กลับเครื่องหมาย",
          "nibble": "กัดกร่อน (Nibble)",
          "not_equal_to": "ไม่เท่ากับ",
          "ordinary_cokriging": "การประมาณค่าแบบโคคริกกิงสามัญ",
          "paired_sample_t_test": "การทดสอบ T แบบจับคู่",
          "phi_coefficient": "สัมประสิทธิ์ Phi",
          "principal_component_analysis": "การวิเคราะห์องค์ประกอบหลัก",
          "print_geotiff_tags": "พิมพ์แท็ก GeoTIFF",
          "quantiles": "ควอนไทล์",
          "radial_basis_function_interpolation": "การประมาณค่าแบบ Radial Basis Function",
          "radius_of_gyration": "รัศมีไจเรชัน",
          "random_field": "สนามสุ่ม",
          "random_forest_classification_fit": "ฝึกโมเดลจำแนกแบบ Random Forest",
          "random_forest_classification_predict": "ทำนายด้วยโมเดลจำแนกแบบ Random Forest",
          "random_forest_regression_fit": "ฝึกโมเดลถดถอยแบบ Random Forest",
          "random_forest_regression_predict": "ทำนายด้วยโมเดลถดถอยแบบ Random Forest",
          "random_sample": "สุ่มตัวอย่าง",
          "raster_area": "พื้นที่แรสเตอร์",
          "raster_calculator": "เครื่องคำนวณแรสเตอร์",
          "raster_cell_assignment": "การกำหนดค่าเซลล์แรสเตอร์",
          "raster_histogram": "ฮิสโทแกรมแรสเตอร์",
          "raster_perimeter": "เส้นรอบรูปแรสเตอร์",
          "raster_summary_stats": "สถิติสรุปของแรสเตอร์",
          "reciprocal": "ส่วนกลับ",
          "rescale_value_range": "ปรับช่วงค่าใหม่",
          "root_mean_square_error": "รากที่สองของค่าเฉลี่ยกำลังสองของความคลาดเคลื่อน",
          "round": "ปัดเศษ",
          "shape_complexity_index_raster": "ดัชนีความซับซ้อนรูปร่างของแรสเตอร์",
          "sieve": "ร่อนตะแกรง",
          "sin": "Sin",
          "sinh": "Sinh",
          "sqrt": "รากที่สอง",
          "square": "กำลังสอง",
          "tan": "Tan",
          "tanh": "Tanh",
          "tin_interpolation": "การประมาณค่าแบบ TIN",
          "to_degrees": "เป็นองศา",
          "to_radians": "เป็นเรเดียน",
          "trend_surface": "พื้นผิวแนวโน้ม",
          "trend_surface_vector_points": "พื้นผิวแนวโน้มจากจุดเวกเตอร์",
          "truncate": "ตัดทอน",
          "turning_bands_simulation": "การจำลองแบบ Turning Bands",
          "two_sample_ks_test": "การทดสอบ KS สองตัวอย่าง",
          "wilcoxon_signed_rank_test": "การทดสอบ Wilcoxon Signed Rank",
          "z_scores": "คะแนน Z",
          "zonal_statistics": "สถิติรายโซน",
          "buffer_raster": "บัฟเฟอร์แรสเตอร์",
          "cost_allocation": "การจัดสรรตามต้นทุน",
          "cost_distance": "ระยะทางตามต้นทุน",
          "cost_pathway": "เส้นทางตามต้นทุน",
          "euclidean_allocation": "การจัดสรรแบบยูคลิด",
          "euclidean_distance": "ระยะทางแบบยูคลิด",
          "image_correlation_neighbourhood_analysis": "การวิเคราะห์สหสัมพันธ์ภาพตามบริเวณใกล้เคียง",
          "natural_neighbour_interpolation": "การประมาณค่าแบบ Natural Neighbour",
          "nearest_neighbour_interpolation": "การประมาณค่าแบบเพื่อนบ้านใกล้ที่สุด",
          "add": "บวก",
          "average_overlay": "ซ้อนทับแบบค่าเฉลี่ย",
          "bool_and": "บูลีน AND",
          "bool_not": "บูลีน NOT",
          "bool_or": "บูลีน OR",
          "bool_xor": "บูลีน XOR",
          "count_if": "นับเมื่อตรงเงื่อนไข",
          "divide": "หาร",
          "highest_position": "ตำแหน่งค่าสูงสุด",
          "lowest_position": "ตำแหน่งค่าต่ำสุด",
          "max_absolute_overlay": "ซ้อนทับแบบค่าสัมบูรณ์สูงสุด",
          "max_overlay": "ซ้อนทับแบบค่าสูงสุด",
          "min_absolute_overlay": "ซ้อนทับแบบค่าสัมบูรณ์ต่ำสุด",
          "min_overlay": "ซ้อนทับแบบค่าต่ำสุด",
          "modulo": "มอดุโล",
          "multiply": "คูณ",
          "multiply_overlay": "ซ้อนทับแบบคูณ",
          "percent_equal_to": "ร้อยละที่เท่ากับ",
          "percent_greater_than": "ร้อยละที่มากกว่า",
          "percent_less_than": "ร้อยละที่น้อยกว่า",
          "pick_from_list": "เลือกจากรายการ",
          "power": "ยกกำลัง",
          "standard_deviation_overlay": "ซ้อนทับแบบส่วนเบี่ยงเบนมาตรฐาน",
          "subtract": "ลบ",
          "sum_overlay": "ซ้อนทับแบบผลรวม",
          "update_nodata_cells": "อัปเดตเซลล์ NoData",
          "weighted_overlay": "ซ้อนทับแบบถ่วงน้ำหนัก",
          "weighted_sum": "ผลรวมถ่วงน้ำหนัก",
          "conditional_evaluation": "การประเมินตามเงื่อนไข",
          "reclass": "จำแนกใหม่",
          "reclass_equal_interval": "จำแนกใหม่แบบช่วงเท่ากัน",
          "geographically_weighted_regression_raster": "การถดถอยถ่วงน้ำหนักเชิงภูมิศาสตร์แบบแรสเตอร์",
          "getis_ord_gi_star_raster": "Getis-Ord Gi* แบบแรสเตอร์",
          "inhomogeneous_intensity_raster": "ความเข้มไม่เป็นเอกพันธ์แบบแรสเตอร์",
          "local_kriging": "คริกกิงเฉพาะที่",
          "local_morans_i_lisa_raster": "Moran's I เฉพาะที่ (LISA) แบบแรสเตอร์",
          "ordinary_kriging": "คริกกิงสามัญ",
          "simple_kriging": "คริกกิงอย่างง่าย",
          "spacetime_kriging": "คริกกิงเชิงพื้นที่-เวลา",
          "spatial_error_regression_raster": "การถดถอยแบบ Spatial Error แบบแรสเตอร์",
          "spatial_lag_regression_raster": "การถดถอยแบบ Spatial Lag แบบแรสเตอร์",
          "universal_kriging": "คริกกิงสากล",
          "change_vector_analysis": "การวิเคราะห์เวกเตอร์การเปลี่ยนแปลง",
          "image_difference_change_detection": "การตรวจจับการเปลี่ยนแปลงด้วยผลต่างภาพ",
          "pca_based_change_detection": "การตรวจจับการเปลี่ยนแปลงด้วย PCA",
          "post_classification_change": "การเปลี่ยนแปลงหลังการจำแนก",
          "write_function_memory_insertion": "การแทรกหน่วยความจำฟังก์ชันเขียน",
          "evaluate_training_sites": "ประเมินพื้นที่ฝึกสอน",
          "fuzzy_knn_classification": "การจำแนกแบบ Fuzzy KNN",
          "generalize_classified_raster": "ทำให้แรสเตอร์ที่จำแนกแล้วเป็นภาพรวม",
          "generalize_with_similarity": "ทำให้เป็นภาพรวมด้วยความคล้ายคลึง",
          "k_means_clustering": "การจัดกลุ่มแบบ K-Means",
          "knn_classification": "การจำแนกแบบ KNN",
          "knn_regression": "การถดถอยแบบ KNN",
          "logistic_regression": "การถดถอยโลจิสติก",
          "min_dist_classification": "การจำแนกแบบระยะทางน้อยที่สุด",
          "modified_k_means_clustering": "การจัดกลุ่มแบบ K-Means ดัดแปลง",
          "nnd_classification": "การจำแนกแบบ NND",
          "otsu_thresholding": "การกำหนดค่าเกณฑ์แบบ Otsu",
          "parallelepiped_classification": "การจำแนกแบบ Parallelepiped",
          "random_forest_classification": "การจำแนกแบบ Random Forest",
          "random_forest_regression": "การถดถอยแบบ Random Forest",
          "svm_classification": "การจำแนกแบบ SVM",
          "svm_regression": "การถดถอยแบบ SVM",
          "canny_edge_detection": "การตรวจจับขอบแบบ Canny",
          "corner_detection": "การตรวจจับมุม",
          "laplacian_filter": "ตัวกรอง Laplacian",
          "laplacian_of_gaussians_filter": "ตัวกรอง Laplacian of Gaussians",
          "prewitt_filter": "ตัวกรอง Prewitt",
          "roberts_cross_filter": "ตัวกรอง Roberts Cross",
          "sobel_filter": "ตัวกรอง Sobel",
          "balance_contrast_enhancement": "การเพิ่มคอนทราสต์แบบสมดุล",
          "create_colour_composite": "สร้างภาพผสมสี",
          "direct_decorrelation_stretch": "การยืดสีแบบ Direct Decorrelation",
          "false_colour_composite": "ภาพผสมสีเท็จ",
          "gamma_correction": "การแก้ไขแกมมา",
          "gaussian_contrast_stretch": "การยืดคอนทราสต์แบบเกาส์เซียน",
          "histogram_equalization": "การปรับเท่าฮิสโทแกรม",
          "histogram_matching": "การจับคู่ฮิสโทแกรม",
          "histogram_matching_two_images": "การจับคู่ฮิสโทแกรมสองภาพ",
          "ihs_to_rgb": "IHS เป็น RGB",
          "min_max_contrast_stretch": "การยืดคอนทราสต์แบบค่าต่ำสุด-สูงสุด",
          "mosaic": "โมเสก",
          "mosaic_with_feathering": "โมเสกแบบเกลี่ยขอบ",
          "normalized_difference_index": "ดัชนีผลต่างแบบปรับมาตรฐาน",
          "panchromatic_sharpening": "การเพิ่มความคมชัดด้วยแบนด์แพนโครมาติก",
          "percentage_contrast_stretch": "การยืดคอนทราสต์แบบร้อยละ",
          "piecewise_contrast_stretch": "การยืดคอนทราสต์แบบเป็นช่วง",
          "resample": "สุ่มตัวอย่างใหม่",
          "rgb_to_ihs": "RGB เป็น IHS",
          "sigmoidal_contrast_stretch": "การยืดคอนทราสต์แบบซิกมอยด์",
          "split_colour_composite": "แยกภาพผสมสี",
          "standard_deviation_contrast_stretch": "การยืดคอนทราสต์แบบส่วนเบี่ยงเบนมาตรฐาน",
          "true_colour_composite": "ภาพผสมสีจริง",
          "adaptive_filter": "ตัวกรองแบบปรับตัว",
          "anisotropic_diffusion_filter": "ตัวกรองการแพร่แบบแอนไอโซทรอปิก",
          "bilateral_filter": "ตัวกรอง Bilateral",
          "closing": "การปิด",
          "conservative_smoothing_filter": "ตัวกรองทำให้เรียบแบบอนุรักษ์",
          "diff_of_gaussians_filter": "ตัวกรองผลต่างของเกาส์เซียน",
          "diversity_filter": "ตัวกรองความหลากหลาย",
          "edge_preserving_mean_filter": "ตัวกรองค่าเฉลี่ยแบบรักษาขอบ",
          "emboss_filter": "ตัวกรองนูน",
          "fast_almost_gaussian_filter": "ตัวกรองเกาส์เซียนแบบเร็วโดยประมาณ",
          "flip_image": "พลิกภาพ",
          "frangi_filter": "ตัวกรอง Frangi",
          "gabor_filter_bank": "ชุดตัวกรอง Gabor",
          "gaussian_filter": "ตัวกรองเกาส์เซียน",
          "glcm_texture": "พื้นผิว GLCM",
          "guided_filter": "ตัวกรองแบบมีตัวนำ",
          "high_pass_bilateral_filter": "ตัวกรอง Bilateral ผ่านสูง",
          "high_pass_filter": "ตัวกรองผ่านสูง",
          "high_pass_median_filter": "ตัวกรองมัธยฐานผ่านสูง",
          "integral_image_transform": "การแปลงภาพอินทิกรัล",
          "k_nearest_mean_filter": "ตัวกรองค่าเฉลี่ย K จุดใกล้ที่สุด",
          "kuwahara_filter": "ตัวกรอง Kuwahara",
          "lee_filter": "ตัวกรอง Lee",
          "lidar_ground_point_filter": "ตัวกรองจุดพื้นดิน LiDAR",
          "line_detection_filter": "ตัวกรองตรวจจับเส้น",
          "line_thinning": "การทำเส้นให้บาง",
          "majority_filter": "ตัวกรองค่าส่วนใหญ่",
          "maximum_filter": "ตัวกรองค่าสูงสุด",
          "mean_filter": "ตัวกรองค่าเฉลี่ย",
          "median_filter": "ตัวกรองค่ามัธยฐาน",
          "minimum_filter": "ตัวกรองค่าต่ำสุด",
          "non_local_means_filter": "ตัวกรอง Non-Local Means",
          "olympic_filter": "ตัวกรองโอลิมปิก",
          "opening": "การเปิด",
          "percentile_filter": "ตัวกรองเปอร์เซ็นไทล์",
          "range_filter": "ตัวกรองพิสัย",
          "remove_spurs": "ลบเดือยแหลม",
          "savitzky_golay_2d_filter": "ตัวกรอง Savitzky-Golay 2 มิติ",
          "scharr_filter": "ตัวกรอง Scharr",
          "standard_deviation_filter": "ตัวกรองส่วนเบี่ยงเบนมาตรฐาน",
          "thicken_raster_line": "ทำเส้นแรสเตอร์ให้หนา",
          "tophat_transform": "การแปลง Tophat",
          "total_filter": "ตัวกรองผลรวม",
          "unsharp_masking": "การมาสก์เพิ่มความคม",
          "user_defined_weights_filter": "ตัวกรองน้ำหนักที่ผู้ใช้กำหนด",
          "wiener_filter": "ตัวกรอง Wiener",
          "build_object_hierarchy_multiscale": "สร้างลำดับชั้นวัตถุหลายมาตราส่วน",
          "classify_objects_ensemble_pro": "จำแนกวัตถุแบบรวมโมเดล Pro",
          "classify_objects_random_forest": "จำแนกวัตถุด้วย Random Forest",
          "classify_objects_rules_basic": "จำแนกวัตถุด้วยกฎพื้นฐาน",
          "classify_objects_rules_hierarchical": "จำแนกวัตถุด้วยกฎแบบลำดับชั้น",
          "classify_objects_svm": "จำแนกวัตถุด้วย SVM",
          "evaluate_object_classification_accuracy": "ประเมินความถูกต้องของการจำแนกวัตถุ",
          "evaluate_segmentation_quality_pro": "ประเมินคุณภาพการแบ่งส่วน Pro",
          "image_segmentation": "การแบ่งส่วนภาพ",
          "image_slider": "ตัวเลื่อนภาพ",
          "image_stack_profile": "โปรไฟล์สแตกภาพ",
          "obia_audit_report_pro": "รายงานตรวจสอบ OBIA Pro",
          "obia_batch_orchestrator_pro": "ตัวจัดการงานแบตช์ OBIA Pro",
          "obia_pipeline_basic": "ไปป์ไลน์ OBIA พื้นฐาน",
          "object_class_probability_maps": "แผนที่ความน่าจะเป็นของคลาสวัตถุ",
          "object_features_context_neighbors": "คุณลักษณะวัตถุ: บริบทเพื่อนบ้าน",
          "object_features_shape_basic": "คุณลักษณะวัตถุ: รูปร่างพื้นฐาน",
          "object_features_spectral_basic": "คุณลักษณะวัตถุ: สเปกตรัมพื้นฐาน",
          "object_features_texture_glcm_basic": "คุณลักษณะวัตถุ: พื้นผิว GLCM พื้นฐาน",
          "object_features_topology_relations": "คุณลักษณะวัตถุ: ความสัมพันธ์ทอพอโลยี",
          "object_uncertainty_diagnostics_pro": "วินิจฉัยความไม่แน่นอนของวัตถุ Pro",
          "objects_boundary_refinement_pro": "ปรับแต่งขอบเขตวัตถุ Pro",
          "objects_enforce_min_mapping_unit": "บังคับหน่วยแผนที่ขั้นต่ำของวัตถุ",
          "polygons_to_segments": "โพลิกอนเป็นเซกเมนต์",
          "propagate_labels_across_hierarchy": "ถ่ายทอดป้ายกำกับข้ามลำดับชั้น",
          "segment_graph_felzenszwalb": "แบ่งส่วนด้วยกราฟ Felzenszwalb",
          "segment_multiresolution_hierarchical": "แบ่งส่วนหลายความละเอียดแบบลำดับชั้น",
          "segment_scale_parameter_optimizer": "ตัวปรับพารามิเตอร์มาตราส่วนการแบ่งส่วน",
          "segment_slic_superpixels": "แบ่งส่วนซูเปอร์พิกเซล SLIC",
          "segment_watershed_markers": "แบ่งส่วนด้วย Watershed แบบมาร์กเกอร์",
          "segments_merge_small_regions": "รวมเซกเมนต์ขนาดเล็ก",
          "segments_split_low_cohesion": "แยกเซกเมนต์ที่มีความเกาะกลุ่มต่ำ",
          "segments_to_polygons": "เซกเมนต์เป็นโพลิกอน",
          "brdf_normalization": "การปรับมาตรฐาน BRDF",
          "correct_vignetting": "แก้ไขขอบภาพมืด",
          "dark_object_subtraction": "การลบวัตถุมืด",
          "dn_to_toa_reflectance": "DN เป็นค่าการสะท้อน TOA",
          "terrain_corrected_optical_analytics": "การวิเคราะห์ภาพออปติคัลที่แก้ไขภูมิประเทศ",
          "cloude_pottier_decomposition": "การแยกองค์ประกอบแบบ Cloude-Pottier",
          "enhanced_lee_filter": "ตัวกรอง Lee ขั้นสูง",
          "freeman_durden_decomposition": "การแยกองค์ประกอบแบบ Freeman-Durden",
          "frost_filter": "ตัวกรอง Frost",
          "gamma_map_filter": "ตัวกรอง Gamma MAP",
          "h_alpha_wisart_classification": "การจำแนกแบบ H-Alpha Wishart",
          "kuan_filter": "ตัวกรอง Kuan",
          "refined_lee_filter": "ตัวกรอง Refined Lee",
          "wisart_iterative_clustering": "การจัดกลุ่มแบบวนซ้ำ Wishart",
          "yamaguchi_4component_decomposition": "การแยกองค์ประกอบแบบ Yamaguchi 4 องค์ประกอบ",
          "continuum_removal": "การลบคอนตินิวอัม",
          "linear_spectral_unmixing": "การแยกส่วนผสมสเปกตรัมเชิงเส้น",
          "minimum_noise_fraction": "Minimum Noise Fraction",
          "spectral_angle_mapper": "Spectral Angle Mapper",
          "spectral_library_matching": "การจับคู่ไลบรารีสเปกตรัม",
          "land_surface_temperature_single_channel": "อุณหภูมิพื้นผิวดินแบบช่องสัญญาณเดียว",
          "land_surface_temperature_split_window": "อุณหภูมิพื้นผิวดินแบบ Split Window",
          "ndvi_based_emissivity": "สภาพเปล่งรังสีจาก NDVI",
          "assess_route": "ประเมินเส้นทาง",
          "breakline_mapping": "การทำแผนที่เส้นแนวหัก",
          "convergence_index": "ดัชนีการลู่เข้า",
          "dem_void_filling": "เติมช่องว่างใน DEM",
          "deviation_from_mean_elevation": "ค่าเบี่ยงเบนจากระดับความสูงเฉลี่ย",
          "difference_from_mean_elevation": "ผลต่างจากระดับความสูงเฉลี่ย",
          "directional_relief": "ความต่างระดับตามทิศทาง",
          "elev_above_pit": "ระดับความสูงเหนือหลุม",
          "elev_above_pit_dist": "ระยะทางระดับความสูงเหนือหลุม",
          "elevation_percentile": "เปอร์เซ็นไทล์ระดับความสูง",
          "embankment_mapping": "การทำแผนที่คันดิน",
          "exposure_towards_wind_flux": "การเปิดรับฟลักซ์ลม",
          "feature_preserving_smoothing": "การทำให้เรียบแบบรักษาลักษณะเด่น",
          "feature_preserving_smoothing_multiscale": "การทำให้เรียบแบบรักษาลักษณะเด่นหลายมาตราส่วน",
          "fetch_analysis": "การวิเคราะห์ระยะทางลมพัด",
          "fill_missing_data": "เติมข้อมูลที่หายไป",
          "find_ridges": "ค้นหาสันเขา",
          "hillshade": "แรเงาภูมิประเทศ",
          "hypsometrically_tinted_hillshade": "แรเงาภูมิประเทศแบบไล่สีตามระดับความสูง",
          "local_hypsometric_analysis": "การวิเคราะห์ระดับความสูงเฉพาะที่",
          "low_points_on_headwater_divides": "จุดต่ำบนสันปันน้ำต้นน้ำ",
          "map_off_terrain_objects": "ทำแผนที่วัตถุเหนือพื้นดิน",
          "max_downslope_elev_change": "การเปลี่ยนระดับความสูงลงลาดสูงสุด",
          "max_upslope_elev_change": "การเปลี่ยนระดับความสูงเหนือลาดสูงสุด",
          "min_downslope_elev_change": "การเปลี่ยนระดับความสูงลงลาดต่ำสุด",
          "multidirectional_hillshade": "แรเงาภูมิประเทศหลายทิศทาง",
          "num_downslope_neighbours": "จำนวนเซลล์ข้างเคียงลงลาด",
          "num_upslope_neighbours": "จำนวนเซลล์ข้างเคียงเหนือลาด",
          "profile": "โปรไฟล์",
          "remove_off_terrain_objects": "ลบวัตถุเหนือพื้นดิน",
          "ridge_and_valley_vectors": "เวกเตอร์สันเขาและหุบเขา",
          "slope_vs_aspect_plot": "กราฟความลาดชันเทียบกับทิศด้านลาด",
          "slope_vs_elev_plot": "กราฟความลาดชันเทียบกับระดับความสูง",
          "smooth_vegetation_residual": "ทำให้ค่าคงเหลือของพืชพรรณเรียบ",
          "surface_area_ratio": "อัตราส่วนพื้นที่ผิว",
          "topographic_hachures": "เส้นลายขวานภูมิประเทศ",
          "accumulation_curvature": "ความโค้งสะสม",
          "aspect": "ทิศด้านลาด",
          "casorati_curvature": "ความโค้ง Casorati",
          "curvedness": "ความโค้งรวม (Curvedness)",
          "difference_curvature": "ความโค้งผลต่าง",
          "gaussian_curvature": "ความโค้งเกาส์เซียน",
          "generating_function": "ฟังก์ชันก่อกำเนิด",
          "horizontal_excess_curvature": "ความโค้งส่วนเกินแนวราบ",
          "maximal_curvature": "ความโค้งสูงสุด",
          "mean_curvature": "ความโค้งเฉลี่ย",
          "minimal_curvature": "ความโค้งต่ำสุด",
          "plan_curvature": "ความโค้งแนวราบ",
          "principal_curvature_direction": "ทิศทางความโค้งหลัก",
          "profile_curvature": "ความโค้งโปรไฟล์",
          "relative_aspect": "ทิศด้านลาดสัมพัทธ์",
          "ring_curvature": "ความโค้งวงแหวน",
          "rotor": "โรเตอร์",
          "shape_index": "ดัชนีรูปร่าง",
          "slope": "ความลาดชัน",
          "tangential_curvature": "ความโค้งแนวสัมผัส",
          "total_curvature": "ความโค้งรวม",
          "unsphericity": "ความไม่เป็นทรงกลม",
          "vertical_excess_curvature": "ความโค้งส่วนเกินแนวดิ่ง",
          "elev_relative_to_min_max": "ระดับความสูงสัมพัทธ์กับค่าต่ำสุด-สูงสุด",
          "geomorphons": "Geomorphons",
          "hypsometric_analysis": "การวิเคราะห์ฮิปโซเมตริก",
          "multiscale_topographic_position_class": "คลาสตำแหน่งภูมิประเทศหลายมาตราส่วน",
          "pennock_landform_classification": "การจำแนกลักษณะภูมิประเทศแบบ Pennock",
          "percent_elev_range": "ร้อยละของพิสัยระดับความสูง",
          "relative_topographic_position": "ตำแหน่งภูมิประเทศสัมพัทธ์",
          "max_anisotropy_dev": "ค่าเบี่ยงเบนแอนไอโซทรอปีสูงสุด",
          "max_anisotropy_dev_signature": "ลายเซ็นค่าเบี่ยงเบนแอนไอโซทรอปีสูงสุด",
          "max_difference_from_mean": "ผลต่างจากค่าเฉลี่ยสูงสุด",
          "max_elev_dev_signature": "ลายเซ็นค่าเบี่ยงเบนระดับความสูงสูงสุด",
          "max_elevation_deviation": "ค่าเบี่ยงเบนระดับความสูงสูงสุด",
          "multiscale_curvatures": "ความโค้งหลายมาตราส่วน",
          "multiscale_elevated_index": "ดัชนีความยกตัวหลายมาตราส่วน",
          "multiscale_elevation_percentile": "เปอร์เซ็นไทล์ระดับความสูงหลายมาตราส่วน",
          "multiscale_low_lying_index": "ดัชนีพื้นที่ลุ่มต่ำหลายมาตราส่วน",
          "multiscale_roughness": "ความขรุขระหลายมาตราส่วน",
          "multiscale_roughness_signature": "ลายเซ็นความขรุขระหลายมาตราส่วน",
          "multiscale_std_dev_normals": "ส่วนเบี่ยงเบนมาตรฐานของเวกเตอร์แนวฉากหลายมาตราส่วน",
          "multiscale_std_dev_normals_signature": "ลายเซ็นส่วนเบี่ยงเบนมาตรฐานของเวกเตอร์แนวฉากหลายมาตราส่วน",
          "multiscale_topographic_position_image": "ภาพตำแหน่งภูมิประเทศหลายมาตราส่วน",
          "topographic_position_animation": "แอนิเมชันตำแหน่งภูมิประเทศ",
          "average_normal_vector_angular_deviation": "ค่าเบี่ยงเบนเชิงมุมเฉลี่ยของเวกเตอร์แนวฉาก",
          "circular_variance_of_aspect": "ความแปรปรวนเชิงวงกลมของทิศด้านลาด",
          "edge_density": "ความหนาแน่นขอบ",
          "ruggedness_index": "ดัชนีความขรุขระ",
          "spherical_std_dev_of_normals": "ส่วนเบี่ยงเบนมาตรฐานเชิงทรงกลมของเวกเตอร์แนวฉาก",
          "standard_deviation_of_slope": "ส่วนเบี่ยงเบนมาตรฐานของความลาดชัน",
          "average_horizon_distance": "ระยะทางขอบฟ้าเฉลี่ย",
          "horizon_angle": "มุมขอบฟ้า",
          "horizon_area": "พื้นที่ขอบฟ้า",
          "openness": "ความเปิดโล่ง",
          "shadow_animation": "แอนิเมชันเงา",
          "shadow_image": "ภาพเงา",
          "sky_view_factor": "สัดส่วนการมองเห็นท้องฟ้า",
          "skyline_analysis": "การวิเคราะห์เส้นขอบฟ้า",
          "time_in_daylight": "เวลาที่ได้รับแสงแดด",
          "viewshed": "ขอบเขตการมองเห็น",
          "visibility_index": "ดัชนีการมองเห็น",
          "topo_render": "เรนเดอร์ภูมิประเทศ",
          "add_surface_information": "เพิ่มข้อมูลพื้นผิว",
          "add_z_information": "เพิ่มข้อมูล Z",
          "adjust_3d_z": "ปรับค่า Z แบบ 3 มิติ",
          "adjust_stream_to_raster": "ปรับลำน้ำให้ตรงกับแรสเตอร์",
          "aggregate_points": "รวมกลุ่มจุด",
          "aggregate_polygons": "รวมกลุ่มโพลิกอน",
          "align_features": "จัดแนวฟีเจอร์",
          "apportion_polygon": "แบ่งสัดส่วนโพลิกอน",
          "areal_interpolation": "การประมาณค่าเชิงพื้นที่",
          "assign_projection_vector": "กำหนดระบบพิกัดให้เวกเตอร์",
          "attribute_uncertainty": "ความไม่แน่นอนของแอตทริบิวต์",
          "bivariate_spatial_association": "ความสัมพันธ์เชิงพื้นที่แบบสองตัวแปร",
          "buffer_3d": "บัฟเฟอร์ 3 มิติ",
          "build_balanced_zones": "สร้างโซนสมดุล",
          "build_seamlines": "สร้างเส้นรอยต่อ",
          "calculate_adjacent_fields": "คำนวณฟิลด์ข้างเคียง",
          "calculate_central_meridian_and_parallels": "คำนวณเส้นเมริเดียนกลางและเส้นขนาน",
          "calculate_composite_index": "คำนวณดัชนีผสม",
          "calculate_distance_band": "คำนวณแถบระยะทาง",
          "calculate_end_time": "คำนวณเวลาสิ้นสุด",
          "calculate_grid_convergence_angle": "คำนวณมุมลู่เข้าของกริด",
          "calculate_missing_z_values": "คำนวณค่า Z ที่หายไป",
          "calculate_motion_statistics": "คำนวณสถิติการเคลื่อนที่",
          "calculate_polygon_main_angle": "คำนวณมุมหลักของโพลิกอน",
          "calculate_rates": "คำนวณอัตรา",
          "calculate_transformation_errors": "คำนวณความคลาดเคลื่อนของการแปลง",
          "calculate_utm_zone": "คำนวณโซน UTM",
          "cartogram": "คาร์โตแกรม",
          "causal_inference_analysis": "การวิเคราะห์การอนุมานเชิงสาเหตุ",
          "cell_records_to_sectors": "เรกคอร์ดเซลล์เป็นเซกเตอร์",
          "central_feature": "ฟีเจอร์กลาง / ค่าเฉลี่ยทิศทางเชิงเส้น",
          "change_point_detection": "การตรวจจับจุดเปลี่ยน",
          "collapse_dual_lines_to_centerline": "ยุบเส้นคู่เป็นเส้นกึ่งกลาง",
          "collapse_hydro_polygon": "ยุบโพลิกอนแหล่งน้ำ",
          "collapse_road_detail": "ยุบรายละเอียดถนน",
          "collect_events": "รวบรวมเหตุการณ์",
          "colocation_analysis": "การวิเคราะห์การอยู่ร่วมกัน",
          "color_polygons": "ระบายสีโพลิกอน",
          "compare_spatial_weights": "เปรียบเทียบน้ำหนักเชิงพื้นที่",
          "compute_accuracy_for_object_detection": "คำนวณความถูกต้องของการตรวจจับวัตถุ",
          "construct_sight_lines": "สร้างเส้นสายตา",
          "contiguous_cartogram": "คาร์โตแกรมแบบต่อเนื่อง",
          "contour_list": "รายการเส้นชั้นความสูง",
          "convert_coordinate_notation": "แปลงรูปแบบการเขียนพิกัด",
          "cost_connectivity": "การเชื่อมต่อตามต้นทุน",
          "count_overlapping_features": "นับฟีเจอร์ที่ซ้อนทับ",
          "create_accuracy_assessment_points": "สร้างจุดประเมินความถูกต้อง",
          "create_cartographic_partitions": "สร้างพาร์ติชันแผนที่",
          "create_overpass": "สร้างทางข้าม",
          "create_routes": "สร้างเส้นทาง",
          "create_spatial_sampling_locations": "สร้างตำแหน่งสุ่มตัวอย่างเชิงพื้นที่",
          "create_spatially_balanced_points": "สร้างจุดสมดุลเชิงพื้นที่",
          "create_underpass": "สร้างทางลอด",
          "cul_de_sac_masks": "มาสก์ซอยตัน",
          "delineate_built_up_areas": "กำหนดขอบเขตพื้นที่สิ่งปลูกสร้าง",
          "dendrogram": "เดนโดรแกรม",
          "densify_sampling_network": "เพิ่มความหนาแน่นโครงข่ายสุ่มตัวอย่าง",
          "detect_bright_ocean_objects": "ตรวจจับวัตถุสว่างในมหาสมุทร",
          "detect_dark_ocean_areas": "ตรวจจับพื้นที่มืดในมหาสมุทร",
          "detect_feature_changes": "ตรวจจับการเปลี่ยนแปลงของฟีเจอร์",
          "detect_graphic_conflict": "ตรวจจับความขัดแย้งทางกราฟิก",
          "detect_incidents": "ตรวจจับเหตุการณ์",
          "dice": "ตัดลูกเต๋า (Dice)",
          "difference_3d": "ผลต่าง 3 มิติ",
          "dimension_reduction": "การลดมิติ",
          "directional_distribution": "การกระจายตามทิศทาง",
          "directional_trend": "แนวโน้มตามทิศทาง",
          "disperse_markers": "กระจายมาร์กเกอร์",
          "dissolve_route_events": "ยุบรวมเหตุการณ์บนเส้นทาง",
          "edgematch_features": "จับคู่ขอบฟีเจอร์",
          "eighty_twenty_analysis": "การวิเคราะห์ 80/20",
          "eliminate_polygon_part": "กำจัดส่วนของโพลิกอน",
          "eliminate_polygons": "กำจัดโพลิกอน",
          "emerging_hot_spot_analysis": "การวิเคราะห์จุดร้อนอุบัติใหม่",
          "enclose_multipatch": "ปิดล้อมมัลติแพตช์",
          "estimate_time_to_event": "ประมาณเวลาถึงเหตุการณ์",
          "evaluate_bin_sizes": "ประเมินขนาดถัง",
          "evaluate_variable_influence": "ประเมินอิทธิพลของตัวแปร",
          "exploratory_interpolation": "การประมาณค่าเชิงสำรวจ",
          "exploratory_regression": "การถดถอยเชิงสำรวจ",
          "extract_locations_from_text": "สกัดตำแหน่งจากข้อความ",
          "extract_water_sar": "สกัดแหล่งน้ำ (SAR)",
          "extrude_between": "ยืดระหว่าง",
          "feature_outline_masks": "มาสก์เส้นขอบฟีเจอร์",
          "feature_to_line": "ฟีเจอร์เป็นเส้น",
          "feature_vertices_to_points": "จุดยอดของฟีเจอร์เป็นจุด",
          "features_to_kml": "ฟีเจอร์เป็น KML",
          "fence_diagram": "แผนภาพรั้ว",
          "fill_missing_values": "เติมค่าที่หายไป",
          "find_dwell_locations": "ค้นหาตำแหน่งที่หยุดพัก",
          "find_identical": "ค้นหาฟีเจอร์ที่เหมือนกัน",
          "find_meeting_locations": "ค้นหาตำแหน่งที่พบกัน",
          "find_space_time_matches": "ค้นหาการจับคู่เชิงพื้นที่-เวลา",
          "flip_line": "พลิกเส้น",
          "forest_based_forecast": "การพยากรณ์แบบใช้ป่าสุ่ม",
          "generalized_linear_regression": "การถดถอยเชิงเส้นทั่วไป",
          "generate_breach_lines": "สร้างเส้นเจาะทะลุ",
          "generate_near_table": "สร้างตารางความใกล้",
          "generate_network_swm": "สร้าง SWM ของโครงข่าย",
          "generate_od_links": "สร้างลิงก์ต้นทาง-ปลายทาง",
          "generate_points_along_3d_lines": "สร้างจุดตามแนวเส้น 3 มิติ",
          "generate_spatial_weights_matrix": "สร้างเมทริกซ์น้ำหนักเชิงพื้นที่",
          "generate_subset_polygons": "สร้างโพลิกอนชุดย่อย",
          "generate_transects_along_lines": "สร้างเส้นตัดขวางตามแนวเส้น",
          "geodetic_densify": "เพิ่มความหนาแน่นจุดแบบจีโอเดติก",
          "geographically_weighted_regression": "การถดถอยถ่วงน้ำหนักเชิงภูมิศาสตร์",
          "geotagged_photos_to_points": "ภาพถ่ายที่มีพิกัดเป็นจุด",
          "graphic_buffer": "บัฟเฟอร์กราฟิก",
          "grid_index_features": "ฟีเจอร์ดัชนีกริด",
          "group_by_proximity": "จัดกลุ่มตามความใกล้",
          "hdbscan": "การจัดกลุ่มแบบ HDBSCAN",
          "getis_ord_general_g": "การจัดกลุ่มสูง/ต่ำ (Getis-Ord General G)",
          "hot_spot_analysis_comparison": "การเปรียบเทียบการวิเคราะห์จุดร้อน",
          "identify_narrow_polygons": "ระบุโพลิกอนแคบ",
          "incremental_spatial_autocorrelation": "สหสัมพันธ์ในตัวเชิงพื้นที่แบบเพิ่มระยะ",
          "inside_3d": "ภายใน 3 มิติ",
          "integrate": "ผสานรวม",
          "interpolate_shape": "ประมาณค่ารูปร่าง",
          "intersect_3d": "ตัดกัน 3 มิติ",
          "intersect_3d_line_with_surface": "ตัดเส้น 3 มิติกับพื้นผิว",
          "intersecting_layers_masks": "มาสก์เลเยอร์ที่ตัดกัน",
          "intervisibility": "การมองเห็นระหว่างกัน",
          "is_closed_3d": "ปิด 3 มิติหรือไม่",
          "line_of_sight": "เส้นสายตา",
          "local_bivariate_relationships": "ความสัมพันธ์สองตัวแปรเฉพาะที่",
          "local_outlier_analysis": "การวิเคราะห์ค่าผิดปกติเฉพาะที่",
          "locate_lines_along_routes": "ระบุตำแหน่งเส้นตามเส้นทาง",
          "median_center": "จุดศูนย์กลางมัธยฐาน",
          "merge_divided_roads": "รวมถนนที่แบ่งช่อง",
          "merge_lines_by_pseudo_node": "รวมเส้นด้วยโหนดเทียม",
          "minimum_bounding_volume": "ปริมาตรล้อมรอบเล็กสุด",
          "multipatch_footprint": "ขอบเขตมัลติแพตช์",
          "multipatch_to_mesh": "มัลติแพตช์เป็นเมช",
          "multiple_ring_buffer": "บัฟเฟอร์หลายวง",
          "mgwr": "การถดถอยถ่วงน้ำหนักเชิงภูมิศาสตร์หลายมาตราส่วน",
          "multivariate_clustering": "การจัดกลุ่มหลายตัวแปร",
          "near_3d": "ใกล้ที่สุด 3 มิติ",
          "neighborhood_summary_statistics": "สถิติสรุปตามบริเวณใกล้เคียง",
          "non_maximum_suppression": "การกดค่าที่ไม่ใช่ค่าสูงสุด",
          "optics_clustering": "การจัดกลุ่มแบบ OPTICS",
          "optimal_corridor_connections": "การเชื่อมต่อทางเดินเชื่อมที่เหมาะสมที่สุด",
          "optimal_path_as_line": "เส้นทางที่เหมาะสมที่สุดเป็นเส้น",
          "optimized_hot_spot_analysis": "การวิเคราะห์จุดร้อนแบบปรับให้เหมาะสม",
          "optimized_outlier_analysis": "การวิเคราะห์ค่าผิดปกติแบบปรับให้เหมาะสม",
          "pairwise_comparison_weights": "น้ำหนักจากการเปรียบเทียบเป็นคู่",
          "pivot_table": "ตารางไพวอต",
          "points_to_line": "จุดเป็นเส้น",
          "points_to_path": "จุดเป็นเส้นทาง",
          "polygon_neighbors": "โพลิกอนข้างเคียง",
          "polygon_volume": "ปริมาตรโพลิกอน",
          "propagate_displacement": "ถ่ายทอดการเคลื่อนตำแหน่ง",
          "raster_domain": "ขอบเขตโดเมนแรสเตอร์",
          "raster_to_weighted_points": "แรสเตอร์เป็นจุดถ่วงน้ำหนัก",
          "reclassify_field": "จำแนกฟิลด์ใหม่",
          "reconstruct_tracks": "สร้างเส้นทางเคลื่อนที่ใหม่",
          "reduce_point_density": "ลดความหนาแน่นจุด",
          "regularize_adjacent_building_footprint": "ปรับขอบเขตอาคารที่อยู่ติดกันให้เป็นระเบียบ",
          "regularize_building_footprints": "ปรับขอบเขตอาคารให้เป็นระเบียบ",
          "remove_overlap_multiple": "ลบการซ้อนทับ (หลายรายการ)",
          "render_vector_png": "เรนเดอร์เวกเตอร์เป็น PNG",
          "repair_geometry": "ซ่อมแซมเรขาคณิต",
          "resolve_building_conflicts": "แก้ไขความขัดแย้งของอาคาร",
          "resolve_road_conflicts": "แก้ไขความขัดแย้งของถนน",
          "ripleys_k": "K ของ Ripley",
          "rubbersheet_features": "ยืดหดฟีเจอร์แบบยาง",
          "semivariogram_sensitivity": "ความไวของเซมิวาริโอแกรม",
          "similarity_search": "การค้นหาความคล้ายคลึง",
          "simplify_3d_line": "ลดรูปเส้น 3 มิติ",
          "simplify_building": "ลดรูปอาคาร",
          "simplify_by_circular_arcs": "ลดรูปด้วยส่วนโค้งวงกลม",
          "simplify_by_tangent_segments": "ลดรูปด้วยส่วนสัมผัส",
          "simplify_shared_edges": "ลดรูปขอบที่ใช้ร่วมกัน",
          "smooth_natural_features": "ทำฟีเจอร์ธรรมชาติให้เรียบ",
          "smooth_shared_edges": "ทำขอบที่ใช้ร่วมกันให้เรียบ",
          "snap_tracks": "สแนปเส้นทางเคลื่อนที่",
          "sort_features": "เรียงลำดับฟีเจอร์",
          "spatial_eigenvector_filtering": "การกรองด้วยเวกเตอร์ไอเกนเชิงพื้นที่ (MESF)",
          "spatial_outlier_detection": "การตรวจจับค่าผิดปกติเชิงพื้นที่",
          "spatially_constrained_multivariate_clustering": "การจัดกลุ่มหลายตัวแปรแบบมีข้อจำกัดเชิงพื้นที่",
          "split_by_attributes": "แยกตามแอตทริบิวต์",
          "split_by_features": "แยกตามฟีเจอร์",
          "split_line_at_point": "แยกเส้นที่จุด",
          "stack_profile": "โปรไฟล์สแตก",
          "strip_map_index_features": "ฟีเจอร์ดัชนีแผนที่แถบ",
          "subdivide_polygon": "แบ่งย่อยโพลิกอน",
          "subset_features": "ชุดย่อยของฟีเจอร์",
          "summarize_nearby": "สรุปบริเวณใกล้เคียง",
          "summarize_percent_change": "สรุปร้อยละการเปลี่ยนแปลง",
          "summarize_within": "สรุปภายใน",
          "summary_statistics": "สถิติสรุป",
          "sun_shadow_volume": "ปริมาตรเงาดวงอาทิตย์",
          "surface_difference": "ผลต่างพื้นผิว",
          "table_to_geometry": "ตารางเป็นเรขาคณิต",
          "tabulate_intersection": "ตารางสรุปการตัดกัน",
          "thin_road_network": "ลดความหนาแน่นโครงข่ายถนน",
          "tile_grid_polygons": "โพลิกอนกริดไทล์",
          "time_series_clustering": "การจัดกลุ่มอนุกรมเวลา",
          "time_series_forecast": "การพยากรณ์อนุกรมเวลา",
          "time_series_smoothing": "การทำอนุกรมเวลาให้เรียบ",
          "trace_proximity_events": "ติดตามเหตุการณ์ความใกล้",
          "transform_features": "แปลงฟีเจอร์",
          "transform_fields": "แปลงฟิลด์",
          "transform_route_events": "แปลงเหตุการณ์บนเส้นทาง",
          "transpose_fields": "สลับแถวคอลัมน์ของฟิลด์",
          "trim_line": "ตัดแต่งเส้น",
          "union_3d": "รวม 3 มิติ",
          "validate_flow_direction": "ตรวจสอบทิศทางการไหล",
          "voxel_isosurface": "พื้นผิวไอโซของวอกเซล",
          "buffer_vector": "บัฟเฟอร์เวกเตอร์",
          "directional_variogram": "การวิเคราะห์วาริโอแกรมตามทิศทาง",
          "estimate_variogram": "ประมาณวาริโอแกรม",
          "fit_variogram": "ฟิตโมเดลวาริโอแกรม",
          "add_field": "เพิ่มฟิลด์",
          "add_geometry_attributes": "เพิ่มแอตทริบิวต์เรขาคณิต",
          "attribute_correlation": "สหสัมพันธ์ของแอตทริบิวต์",
          "attribute_histogram": "ฮิสโทแกรมของแอตทริบิวต์",
          "attribute_scattergram": "แผนภาพการกระจายของแอตทริบิวต์",
          "delete_field": "ลบฟิลด์",
          "extract_by_attribute": "สกัดตามแอตทริบิวต์",
          "field_calculator": "เครื่องคำนวณฟิลด์",
          "filter_vector_features_by_area": "กรองฟีเจอร์เวกเตอร์ตามพื้นที่",
          "list_unique_values": "แสดงรายการค่าที่ไม่ซ้ำ",
          "rename_field": "เปลี่ยนชื่อฟิลด์",
          "centroid_vector": "เซนทรอยด์เวกเตอร์",
          "concave_hull": "คอนเคฟฮัลล์",
          "densify_features": "เพิ่มความหนาแน่นจุดของฟีเจอร์",
          "eliminate_coincident_points": "กำจัดจุดที่ซ้อนกัน",
          "extend_vector_lines": "ต่อขยายเส้นเวกเตอร์",
          "merge_line_segments": "รวมส่วนของเส้น",
          "minimum_bounding_box": "กรอบสี่เหลี่ยมล้อมรอบเล็กสุด",
          "minimum_bounding_circle": "วงกลมล้อมรอบเล็กสุด",
          "minimum_bounding_envelope": "กรอบล้อมรอบเล็กสุด",
          "minimum_convex_hull": "คอนเวกซ์ฮัลล์เล็กสุด",
          "polygonize": "สร้างโพลิกอน",
          "representative_point_vector": "จุดตัวแทนของเวกเตอร์",
          "simplify_features": "ลดรูปฟีเจอร์",
          "smooth_vectors": "ทำเวกเตอร์ให้เรียบ",
          "snap_endnodes": "สแนปโหนดปลาย",
          "split_vector_lines": "แยกเส้นเวกเตอร์",
          "split_with_lines": "แยกด้วยเส้น",
          "locate_points_along_routes": "ระบุตำแหน่งจุดตามเส้นทาง",
          "points_along_lines": "จุดตามแนวเส้น",
          "route_calibrate": "ปรับเทียบเส้นทาง",
          "route_event_lines_from_layer": "เส้นเหตุการณ์บนเส้นทางจากเลเยอร์",
          "route_event_lines_from_table": "เส้นเหตุการณ์บนเส้นทางจากตาราง",
          "route_event_merge": "รวมเหตุการณ์บนเส้นทาง",
          "route_event_overlay": "ซ้อนทับเหตุการณ์บนเส้นทาง",
          "route_event_points_from_layer": "จุดเหตุการณ์บนเส้นทางจากเลเยอร์",
          "route_event_points_from_table": "จุดเหตุการณ์บนเส้นทางจากตาราง",
          "route_event_split": "แยกเหตุการณ์บนเส้นทาง",
          "route_measure_qa": "ตรวจสอบคุณภาพค่าระยะวัดของเส้นทาง",
          "route_recalibrate": "ปรับเทียบเส้นทางใหม่",
          "snap_events_to_routes": "สแนปเหตุการณ์ไปยังเส้นทาง",
          "download_osm_vector": "ดาวน์โหลดเวกเตอร์ OSM",
          "clip": "ตัด",
          "difference": "ผลต่าง",
          "dissolve": "ยุบรวม",
          "erase": "ลบออก",
          "identity": "ไอเดนทิตี",
          "intersect": "ตัดกัน",
          "line_intersections": "จุดตัดของเส้น",
          "line_polygon_clip": "ตัดเส้นด้วยโพลิกอน",
          "near": "ใกล้ที่สุด",
          "select_by_location": "เลือกตามตำแหน่ง",
          "spatial_join": "การเชื่อมเชิงพื้นที่",
          "symmetrical_difference": "ผลต่างสมมาตร",
          "union": "รวม",
          "update": "อัปเดต",
          "construct_vector_tin": "สร้าง TIN เวกเตอร์",
          "contours_from_points": "เส้นชั้นความสูงจากจุด",
          "contours_from_raster": "เส้นชั้นความสูงจากแรสเตอร์",
          "extract_nodes": "สกัดโหนด",
          "extract_raster_values_at_points": "สกัดค่าแรสเตอร์ที่จุด",
          "find_lowest_or_highest_points": "ค้นหาจุดต่ำสุดหรือสูงสุด",
          "hexagonal_grid_from_raster_base": "กริดหกเหลี่ยมจากฐานแรสเตอร์",
          "hexagonal_grid_from_vector_base": "กริดหกเหลี่ยมจากฐานเวกเตอร์",
          "layer_footprint_raster": "ขอบเขตเลเยอร์แรสเตอร์",
          "layer_footprint_vector": "ขอบเขตเลเยอร์เวกเตอร์",
          "medoid": "เมดอยด์",
          "random_points_in_polygon": "จุดสุ่มในโพลิกอน",
          "rectangular_grid_from_raster_base": "กริดสี่เหลี่ยมจากฐานแรสเตอร์",
          "rectangular_grid_from_vector_base": "กริดสี่เหลี่ยมจากฐานเวกเตอร์",
          "vector_hex_binning": "การจัดกลุ่มกริดหกเหลี่ยมของเวกเตอร์",
          "voronoi_diagram": "แผนภาพ Voronoi",
          "compactness_ratio": "อัตราส่วนความกะทัดรัด",
          "deviation_from_regional_direction": "ความเบี่ยงเบนจากทิศทางระดับภูมิภาค",
          "elongation_ratio": "อัตราส่วนความยาวรี",
          "hole_proportion": "สัดส่วนของรู",
          "linearity_index": "ดัชนีความเป็นเส้นตรง",
          "narrowness_index_vector": "ดัชนีความแคบของเวกเตอร์",
          "patch_orientation": "การวางตัวของแพตช์",
          "perimeter_area_ratio": "อัตราส่วนเส้นรอบรูปต่อพื้นที่",
          "polygon_area": "พื้นที่โพลิกอน",
          "polygon_long_axis": "แกนยาวของโพลิกอน",
          "polygon_perimeter": "เส้นรอบรูปโพลิกอน",
          "polygon_short_axis": "แกนสั้นของโพลิกอน",
          "related_circumscribing_circle": "วงกลมล้อมรอบสัมพัทธ์",
          "shape_complexity_index_vector": "ดัชนีความซับซ้อนรูปร่างของเวกเตอร์",
          "envelope_test": "การทดสอบเอนเวโลป",
          "getis_ord_gi_star": "Getis-Ord Gi*",
          "global_morans_i": "Moran's I ระดับรวม",
          "hotspot_vs_process": "จุดร้อนเทียบกับกระบวนการ",
          "inhomogeneous_baseline": "ฐานไม่เป็นเอกพันธ์",
          "local_morans_i_lisa": "Moran's I เฉพาะที่ (LISA)",
          "nearest_neighbour_index": "ดัชนีเพื่อนบ้านใกล้ที่สุด",
          "point_pattern_envelope": "เอนเวโลปของรูปแบบจุด",
          "point_process_residuals": "ค่าคงเหลือของกระบวนการจุด",
          "point_process_residuals_comparison": "การเปรียบเทียบค่าคงเหลือของกระบวนการจุด",
          "quadrat_count_test": "การทดสอบนับควอแดรต",
          "ripleys_k_function": "ฟังก์ชัน K ของ Ripley",
          "ripleys_k_test": "การทดสอบ K ของ Ripley",
          "spatial_error_regression": "การถดถอยแบบ Spatial Error",
          "spatial_lag_regression": "การถดถอยแบบ Spatial Lag"
        },
        "menuSubcategory": {
          "geolibre_wasm": "GeoLibre (WASM)",
          "geometry_topology": "เรขาคณิตและทอพอโลยี",
          "raster_vector_conversion": "การแปลงแรสเตอร์/เวกเตอร์",
          "vector_table_i_o": "นำเข้า/ส่งออกเวกเตอร์และตาราง",
          "depressions_storage": "แอ่งและการกักเก็บ",
          "flow_routing": "การนำทางการไหล",
          "hydrologic_indices": "ดัชนีอุทกวิทยา",
          "streams_longitudinal_analysis": "ลำน้ำ - การวิเคราะห์ตามยาว",
          "streams_network_extraction": "ลำน้ำ - การสกัดโครงข่าย",
          "streams_ordering_metrics": "ลำน้ำ - ดัชนีลำดับชั้น",
          "watersheds_basins": "ลุ่มน้ำและแอ่งน้ำ",
          "analysis_metrics": "ดัชนีการวิเคราะห์",
          "filtering_classification": "การกรองและการจำแนก",
          "i_o_management": "นำเข้า/ส่งออกและการจัดการ",
          "interpolation_gridding": "การประมาณค่าและการสร้างกริด",
          "network_analysis": "การวิเคราะห์โครงข่าย",
          "general": "ทั่วไป",
          "distance_cost": "ระยะทางและต้นทุน",
          "local_neighborhood": "เพื่อนบ้านเฉพาะที่",
          "overlay_math": "คณิตศาสตร์การซ้อนทับ",
          "reclassify_mask": "จำแนกใหม่และมาสก์",
          "spatial_statistics": "สถิติเชิงพื้นที่",
          "change_detection": "การตรวจจับการเปลี่ยนแปลง",
          "classification": "การจำแนก",
          "edge_feature_detection": "การตรวจจับขอบและลักษณะเด่น",
          "enhancement_contrast": "การเพิ่มคุณภาพและคอนทราสต์",
          "filters": "ตัวกรอง",
          "obia": "OBIA",
          "radiometric_correction": "การแก้ไขเชิงรังสี",
          "sar": "SAR",
          "spectral_analytics": "การวิเคราะห์เชิงสเปกตรัม",
          "thermal_emissivity": "ความร้อนและสภาพเปล่งรังสี",
          "derivatives": "อนุพันธ์",
          "landform_indices": "ดัชนีลักษณะภูมิประเทศ",
          "multiscale_signatures": "ลายเซ็นหลายมาตราส่วน",
          "roughness_texture": "ความขรุขระและพื้นผิว",
          "visibility": "การมองเห็น",
          "workflow_products": "ผลลัพธ์กระบวนการทำงาน",
          "attribute_analysis": "การวิเคราะห์แอตทริบิวต์",
          "geometry_processing": "การประมวลผลเรขาคณิต",
          "linear_referencing": "การอ้างอิงเชิงเส้น",
          "online_data": "ข้อมูลออนไลน์",
          "overlay_analysis": "การวิเคราะห์การซ้อนทับ",
          "sampling_gridding": "การสุ่มตัวอย่างและการสร้างกริด",
          "shape_metrics": "ดัชนีรูปร่าง"
        }
      }
    }
  }
}
