{
  "format": "geolibre-language-pack",
  "formatVersion": 1,
  "scope": "whitebox",
  "locale": "ko",
  "name": "Whitebox 한국어 언어 팩",
  "updatedAt": "2026-09-25T16:57:56.857Z",
  "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": "이질적인 장면 전반에서 더 높은 안정성을 갖도록 조정된 앙상블 방식의 객체 분류 구성을 실행합니다.",
            "params": {
              "features": {
                "label": "피처",
                "description": "입력 객체 특징 CSV(segment_id와 수치 특징 열을 포함해야 합니다)."
              },
              "training": {
                "label": "훈련",
                "description": "segment_id와 class 레이블 열이 있는 학습 CSV."
              },
              "segment_id_field": {
                "label": "세그먼트 ID 필드",
                "description": "세그먼트 ID 필드 이름(기본값 segment_id)."
              },
              "class_field": {
                "label": "클래스 필드",
                "description": "학습 CSV의 클래스 레이블 필드(기본값 class)."
              },
              "n_trees": {
                "label": "트리 수",
                "description": "트리 개수(기본값 200)."
              },
              "output": {
                "label": "출력",
                "description": "출력 예측 CSV 경로."
              }
            }
          },
          "classify_objects_random_forest": {
            "name": "랜덤 포레스트 객체 분류",
            "description": "분광, 형태학적, 질감 특징을 예측 변수로 사용하여 레이블이 지정된 세그먼트 훈련 표본으로 앙상블 랜덤 포레스트 분류기를 훈련합니다. 부트스트랩 표본 추출과 특징 무작위화를 통해 여러 의사결정 트리를 구성한 후 다수결 투표로 예측을 집계합니다. 분류는 세그먼트별 특징 벡터에 대해 수행되며, 앙상블 합의에 따라 확률적으로 객체 클래스 레이블을 할당하여 OBIA 특징으로부터 견고한 다중 클래스 객체 분류를 가능하게 합니다. 주요 특징으로는 견고한 분류를 위해 여러 의사결정 트리를 결합하는 앙상블 학습, 다중분광 OBIA에서 흔한 고차원 특징 공간 처리, 분류 신뢰도 및 확률 추정, 판별력 있는 속성을 식별하는 특징 중요도 순위, 비선형 특징 상호작용의 자연스러운 처리, 특징 잡음과 중복에 대한 견고성이 있습니다. 활용 사례로는 OBIA 세그먼트로부터의 다중 클래스 토지피복 분류(도시, 농업, 산림, 수역), 훈련 표본 선택을 통해 개선되는 객체 수준 감독 분류, 시계열 분할 시퀀스 전반의 변화 탐지 분류, 계층적 분류(개략적 서식지 유형을 세부 범주로 세분화), 육안 판독에 의한 수동 훈련 표본과의 통합이 있습니다. 출력 예측 클래스 레이블은 주된 객체 유형을 식별하고, 신뢰 확률은 분류 확실성을 나타내며, 낮은 신뢰도는 모호한 중간 객체를 시사합니다. 특징 중요도는 어떤 분광/형태학적 속성이 분류 결정을 좌우하는지 식별하고, 분류 지도는 객체 유형 분포를 직접 나타내며, 유사한 클래스 간 혼동은 훈련 개선에 정보를 제공하고, 확률적 출력은 불확실성 정량화를 가능하게 합니다.",
            "params": {
              "features": {
                "label": "피처",
                "description": "입력 객체 특징 CSV(segment_id와 수치 특징 열을 포함해야 합니다)."
              },
              "training": {
                "label": "훈련",
                "description": "segment_id와 class 레이블 열이 있는 학습 CSV."
              },
              "segment_id_field": {
                "label": "세그먼트 ID 필드",
                "description": "세그먼트 ID 필드 이름(기본값 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": "feature, op, value, class, [priority] 열이 있는 규칙 CSV."
              },
              "default_class": {
                "label": "기본 클래스",
                "description": "일치하는 규칙이 없을 때 사용할 대체 클래스."
              },
              "output": {
                "label": "출력",
                "description": "출력 예측 CSV 경로."
              }
            }
          },
          "classify_objects_rules_hierarchical": {
            "name": "계층 규칙 객체 분류",
            "description": "계층적 규칙 기반 객체 분류를 적용합니다. 현재는 결정론적 대체 규칙을 갖춘 순서화된 규칙을 사용합니다.",
            "params": {
              "features": {
                "label": "피처",
                "description": "입력 객체 특징 CSV."
              },
              "rules": {
                "label": "규칙",
                "description": "feature, op, value, class, [priority] 열이 있는 규칙 CSV."
              },
              "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": "segment_id와 class 레이블 열이 있는 학습 CSV."
              },
              "segment_id_field": {
                "label": "세그먼트 ID 필드",
                "description": "세그먼트 ID 필드 이름(기본값 segment_id)."
              },
              "class_field": {
                "label": "클래스 필드",
                "description": "학습 CSV의 클래스 레이블 필드(기본값 class)."
              },
              "n_trees": {
                "label": "트리 수",
                "description": "트리 개수(기본값 200)."
              },
              "output": {
                "label": "출력",
                "description": "출력 예측 CSV 경로."
              }
            }
          },
          "evaluate_object_classification_accuracy": {
            "name": "객체 분류 정확도 평가",
            "description": "예측된 객체 레이블을 참조 실측 레이블 또는 검증 레이블과 비교하여 분류 정확도 지표를 계산합니다. 클래스별 분류 일치/불일치 패턴을 기록하는 오차 행렬을 생성하고, 전체 정확도(전체 정답 예측), 클래스별 생산자 정확도(탐지율), 사용자 정확도(신뢰성), F1 점수(조화 평균), 카파 통계량(우연 보정 일치도), 그리고 체계적 오분류 패턴을 식별하는 클래스별 오류 분석을 계산합니다. 주요 특징으로는 모든 클래스에 걸친 포괄적인 정확도 평가, 클래스별 진단을 가능하게 하는 클래스별 성능 지표, 체계적 오분류 패턴을 드러내는 오차 행렬, 카파 계수를 통한 통계적 유의성 검정, 불균형 클래스 분포의 자연스러운 처리, 훈련 데이터 적정성 문제의 식별이 있습니다. 활용 사례로는 분류 모델 검증 및 성능 정량화, 경쟁하는 분류 접근법과 매개변수의 비교, 추가 훈련이 필요한 문제 객체 클래스의 식별, 운영 응용에 대한 분류 적합성 평가, 정확도 기반 모델 선택과 하이퍼파라미터 조정, 자동화된 매핑 워크플로의 품질 보증, 동료 검토를 위한 표준화된 정확도 지표 보고가 있습니다. 출력의 전체 정확도는 모든 객체에 걸친 분류 신뢰성을 나타내고, 생산자 정확도는 클래스별 탐지 완전성을, 사용자 정확도는 예측 신뢰성을 나타냅니다. 높은 카파(>0.8)는 우연을 넘어서는 강한 일치를 나타내고, 오차 행렬은 어떤 클래스끼리 혼동되는지 보여 주며, 대각 우세는 강한 클래스 분리를 나타내고, 비대각 항목은 오분류의 원인을 정확히 짚어 내며, 클래스별 지표는 목표 지향적 훈련 개선을 안내합니다.",
            "params": {
              "predictions": {
                "label": "예측 결과",
                "description": "segment_id와 predicted_class를 포함하는 예측 CSV."
              },
              "reference": {
                "label": "참조",
                "description": "segment_id와 class를 포함하는 참조 CSV."
              },
              "segment_id_field": {
                "label": "세그먼트 ID 필드",
                "description": "세그먼트 ID 필드 이름(기본값 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": "시드 기반 영역 성장을 사용하여 다중 밴드 래스터 스택을 연속된 균질 영역으로 분할합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열(밴드당 하나)."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "분할(SLIC/Graph), 소규모 영역 병합, 분광/형태 특징 추출, 랜덤 포레스트 분류로 이루어진 완전한 종단 간 OBIA 워크플로를 단일 작업으로 실행합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "세그먼테이션/특징용 단일 밴드 입력 래스터 배열."
              },
              "training": {
                "label": "훈련",
                "description": "segment_id와 class 열이 있는 학습 CSV."
              },
              "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": "segment_id와 predicted_class가 있는 예측 CSV."
              },
              "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": "그래프 토폴로지 특징(객체 차수(이웃 수), 우세 이웃 강도, 관절점 플래그)을 계산합니다. 계층적 분류를 위해 객체 네트워크 내 구조적 위치를 포착합니다.",
            "params": {
              "segments": {
                "label": "세그먼트",
                "description": "입력 세그먼트 레이블 래스터."
              },
              "output": {
                "label": "출력",
                "description": "출력 CSV 경로."
              }
            }
          },
          "object_uncertainty_diagnostics_pro": {
            "name": "객체 불확실성 진단 (Pro)",
            "description": "객체 확률 출력으로부터 종합 불확실성 진단을 계산합니다.",
            "params": {
              "probabilities": {
                "label": "확률",
                "description": "probability와 uncertainty 열이 있는 입력 확률 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": "편집된 폴리곤을 객체 ID 또는 속성 값을 보존하면서 세그먼트 레이블 래스터로 다시 래스터화합니다. 자동 분할과 수동 개선을 결합한 반복적 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": "fine_segment_id와 coarse_segment_id가 있는 계층 CSV."
              },
              "parent_labels": {
                "label": "상위 레이블",
                "description": "coarse_segment_id와 class가 있는 상위 레이블 CSV."
              },
              "child_labels": {
                "label": "하위 레이블",
                "description": "fine_segment_id와 class가 있는 선택적 하위 레이블 CSV."
              },
              "output": {
                "label": "출력",
                "description": "출력 전파 레이블 CSV 경로."
              }
            }
          },
          "segment_graph_felzenszwalb": {
            "name": "그래프 분할 (Felzenszwalb)",
            "description": "Felzenszwalb의 그래프 기반 분할은 영상을 가중치가 있는 무방향 그래프로 취급하며, 픽셀은 노드이고 에지는 분광 비유사도를 나타내는 가중치로 인접 픽셀을 연결합니다. 구성 요소 내 에지 가중치를 동적 임계값과 비교하여 세그먼트를 반복적으로 병합하며, 가중치가 임계값보다 낮은 에지가 병합되어 국지적으로 균질한 분광 특성을 가진 세그먼트가 생성됩니다. 이 계층적 접근법은 국지적 대비 변화와 자연스러운 색상/질감 불연속에 민감한, 지각적으로 의미 있는 분할을 생성합니다. 주요 특징: 그래프 기반 계층적 분할, 효율적인 O(n log n) 계산 복잡도, 국지적 대비 변화에 민감, 지각적으로 의미 있는 세그먼트 생성, 다중분광/초분광 데이터 지원, 자연스러운 경계를 보존하는 가변 크기 영역 생성. 활용 사례: 다중분광 영상 분할, 자연 서식지 매핑, 도시 피처 추출, 산림 수관 구획, 변화 탐지 전처리, 초분광 데이터 분할. 출력 해석: 출력은 레이블 래스터이며 각 픽셀에 세그먼트 ID가 할당됩니다. 세그먼트 크기는 국지적 분광 대비에 반비례하여, 고대비 경계는 더 작고 많은 세그먼트를 만들고 균일한 영역은 더 큰 세그먼트로 병합됩니다. k 매개변수(임계값 스케일)에 대한 민감도를 이용해 더 개략적이거나 더 세밀한 분할을 생성할 수 있습니다. 세그먼트 경계는 자연스러운 분광 불연속에 대응합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "시그마",
                "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차원 특징 공간에서 반복적인 픽셀 군집화를 수행하여 슈퍼픽셀을 국지적 균질성으로 수렴시킵니다. 알고리즘은 규칙적인 격자로 군집 중심을 초기화하고 픽셀을 가장 가까운 중심에 할당하며, 중심을 반복적으로 갱신하고 탐색 영역을 줄입니다. 이를 통해 워터셰드나 평균 이동 방식에 비해 경계 위반이 최소화된 조밀하고 규칙적인 형태의 슈퍼픽셀을 생성하며, 자연스러운 에지에 대한 경계 부착성이 뛰어납니다. 주요 특징: 균일하고 조밀한 슈퍼픽셀 생성, 선형 시간 복잡도로 계산 효율적, 사용자가 설정 가능한 조밀도 매개변수로 공간 규칙성과 분광 일관성 사이의 균형 조절, 경계 초과 최소화, 다중분광 영상 지원. 활용 사례: 객체 기반 분류 전처리, 계층적 영역 분석, SAR 및 광학 영상 분할, 도시 매핑, 식생 구획, 토지이용 경계 식별. 출력 해석: 출력은 픽셀 값이 할당된 슈퍼픽셀 ID를 나타내는 레이블 래스터입니다. 슈퍼픽셀 경계는 우세한 에지와 색상 전이에 정렬됩니다. 작은 슈퍼픽셀(높은 세분도)은 더 세밀한 세부를 포착하지만 계산 부하를 증가시키고, 큰 슈퍼픽셀(낮은 세분도)은 유사한 영역을 병합하여 효율을 높입니다. 경계 정확도는 조밀도 매개변수 조정과 다중분광 밴드 분리도에 따라 달라집니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "마커 기반 워터셰드 분할",
            "description": "식별된 마커 시드 영역을 중심으로 객체를 분리하는 마커 기반 워터셰드 유사 분할입니다. 계층적 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": "퍼지 KNN 분류",
            "description": "퍼지 k-최근접 이웃 분류를 수행하고 클래스 소속 신뢰도를 출력합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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는 반복적인 최빈값 필터링으로 작은 고립 패치를 제거하여 분류 지도를 단순화하며, 파편화된 단일 픽셀 또는 다중 픽셀 구성 요소를 공간적으로 우세한 이웃 클래스에 병합합니다. 알고리즘: 이동 윈도우 내에서 우세 클래스를 보존하는 형태학적 최빈값 필터를 적용하고, 공간적 맥락에서 고립된 픽셀을 제거하거나 통합하며, 연결 요소 분석을 통해 분류를 반복적으로 개선하고, 소수 클래스를 이웃 우세 클래스에 흡수합니다. 설정 가능한 윈도우 크기와 최소 패치 크기로 일반화 강도를 제어합니다. 주요 특징: 분류 파편화 감소, 공간 일관성 향상, 잡음으로 인한 고립 패치 제거, 선택적 필터링을 통한 클래스 경계 유지, 계산 효율적인 연결 요소 처리. 기능: 가변적인 일반화 강도, 큰 연속 패치의 보존, 인덱스 또는 범주 데이터에 대한 적용. 활용 사례: 소금-후추 효과를 제거하는 분류 후 개선, 파편화된 분류 결과 통합, 최종 분류 산출물 준비, 특정 최소 매핑 단위로의 일반화. 응용 분야: 토지피복 지도 최종화, 불필요한 단일 픽셀 분류 제거, 분류의 공간 연속성 향상. 출력 해석: 클래스 파편화 감소는 효과적인 스페클 제거를 나타내고, 보존된 경계는 적절한 일반화 매개변수를 보여 주며, 과도한 일반화는 윈도우 매개변수가 너무 큼을 나타내고, 공간 일관성 향상은 분류 잡음이 주로 단일 픽셀 아티팩트였음을 시사합니다.",
            "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-평균 군집화",
            "description": "K-평균 군집화는 픽셀을 K개의 분광 군집으로 반복 분할하여 군집 내 분산을 최소화함으로써 비감독 분광 분류를 수행하며, 훈련 표본이나 사전 클래스 정의 없이 다중분광 영상에서 자연스러운 분광 그룹을 발견합니다. 알고리즘은 K개의 무작위 군집 중심을 초기화하고, 수렴할 때까지 픽셀을 가장 가까운 중심에 할당한 후 중심을 군집 평균으로 다시 계산하는 과정을 반복하여 최종 군집 할당과 중심을 출력합니다. K-평균은 계산 효율이 높고 대규모 다중분광 스택으로 확장 가능하며, 탐색적 분석과 자연 클래스 식별에 유용한 데이터 기반 분광 패턴을 발견합니다. 주요 특징으로는 분광 세부와 출력 해석 가능성 사이의 유연한 절충을 가능하게 하는 사용자 지정 군집 수 K, 설정 가능한 반복 한도와 중심 이동 임계값을 갖춘 수렴 기준, 테스트와 검증을 위해 재현 가능한 군집화를 보장하는 선택적 난수 시드 제어, 대용량 영상을 처리하는 효율적인 병렬화가 있습니다. 응용 분야로는 자연 분광 클래스를 발견하는 비감독 토지피복 분류, 분광적으로 특이한 픽셀을 식별하는 이상 탐지, 후속 감독 분류를 위한 영상 분할, 우세한 분광 패턴을 드러내는 탐색적 분광 분석이 있습니다. K-평균 출력은 자연스러운 분광 그룹을 식별합니다. 출력은 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-최근접 이웃 분류는 분광 공간에서 가장 가까운 K개의 훈련 표본 간 다수결 투표에 따라 픽셀을 클래스에 할당하여, 명시적인 모델 훈련 없이 유연한 비선형 분류를 가능하게 합니다. KNN은 각 영상 픽셀에서 모든 훈련 표본까지의 거리(유클리드, 분광각 또는 Mahalanobis)를 계산하고, 가장 가까운 K개의 훈련 표본을 식별한 후 가중 또는 비가중 다수결 투표로 클래스를 결정하며, 클래스 레이블과 선택적으로 신뢰도 점수를 반환합니다. KNN은 훈련 데이터가 제한적이거나, 클래스 경계가 매우 비선형이거나, 모수적 모델이 어려움을 겪는 이질적 클래스 분광 분포에서 뛰어난 성능을 보입니다. 주요 특징으로는 다양한 분광 특성과 상관 구조에 대응하는 선택 가능한 거리 척도(유클리드, 분광각, Mahalanobis), 정확도와 복잡도 사이의 절충을 가능하게 하는 사용자 지정 K 값, 가까운 표본을 강조하는 가중 투표 옵션, 모호한 분류를 거부할 수 있는 선택적 신뢰도 임계값이 있습니다. 응용 분야로는 현장 수집 훈련 표본을 사용한 고정확도 원격탐사 분류, 실측 자료가 제한된 소표본 분류, 분광 신호의 변동이 큰 난지형 분류, 경계선상의 결정을 거부하는 신뢰도 인식 분류가 있습니다. KNN 분류는 유연한 훈련 데이터로 고정확도 결과를 얻을 수 있게 합니다. 출력은 훈련 표본 레이블과 일치하는 정수 클래스 ID로 된 클래스 레이블 래스터, 투표 비율이나 거리 가중 신뢰도 점수를 기록하는 선택적 신뢰도 래스터로 구성되며, 최적의 K 선택과 충분한 훈련 표본이 있으면 다른 방법을 능가하는 분류 정확도를 얻을 수 있습니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true이면 leave-one-out 사전 패스로 잘못 분류된 학습 표본을 제거합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "knn_regression": {
            "name": "KNN 회귀",
            "description": "다중 밴드 입력 래스터에 대해 감독 k-최근접 이웃 회귀를 수행합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true이면 거리 역수 가중 평균을 사용합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "logistic_regression": {
            "name": "로지스틱 회귀",
            "description": "다중 밴드 입력 래스터에 대해 감독 로지스틱 회귀 분류를 수행합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "알파",
                "description": "L2 정규화 가중치(기본값 0.0)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "min_dist_classification": {
            "name": "최소 거리 분류",
            "description": "폴리곤 훈련 데이터를 사용하여 다중분광 래스터에 대해 감독 최소 거리 분류를 수행합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열(분광 밴드당 하나), 경로 또는 구분된 문자열 형태."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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-평균 군집화",
            "description": "수정 K-평균 군집화는 분광 전처리, 자동 적응형 K 선택, 향상된 수렴 기준으로 표준 K-평균을 개선하여 더 견고하고 정확한 비감독 다중분광 분류를 제공합니다. 알고리즘은 스케일 효과를 제거하는 분광 표준화, 우세한 분산 방향을 강조하는 주성분 변환, 불필요한 분광 변동을 제거하는 잡음 필터링 등의 선택적 전처리를 적용합니다. 적응형 K 선택은 엘보 방법이나 실루엣 분석을 사용하여 수동 지정 없이 최적 군집 수를 자동으로 찾습니다. 주요 특징으로는 스케일 민감도를 줄이고 우세한 분광 변동 방향을 강조하는 분광 전처리, 최적 군집 수를 객관적으로 찾는 자동 K 선택, 상대적 중심 이동 임계값과 분광각 유사도 척도를 포함한 향상된 수렴 기준, 유사한 군집을 병합하거나 분산된 군집을 분할하는 선택적 후처리가 있습니다. 응용 분야로는 분광 스케일을 자동으로 처리하는 개선된 탐색적 토지피복 분류, 전처리를 통해 신호와 잡음을 분리하는 견고한 이상 탐지, 적절한 세부 수준을 자동으로 찾는 적응형 영상 분할, 서로 다른 센서의 분광 스케일을 정규화하는 다중 센서 통합이 있습니다. 수정 K-평균 출력은 견고한 자연 분광 클래스를 드러냅니다. 출력은 자동으로 결정된 클래스 수를 갖는 최적화된 군집 소속 래스터, 전처리 변환이 기록된 군집 중심, 군집 품질·분리도·수렴을 정량화하는 진단 통계로 구성되며, 적응형 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "이상치를 0으로",
                "description": "true이면 이상치에 클래스 값 0을 할당하고, 그렇지 않으면 NoData를 할당합니다."
              },
              "k": {
                "label": "K",
                "description": "클래스 거리 추정을 위한 근방 크기(기본값 25)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "otsu_thresholding": {
            "name": "Otsu 임계값 처리",
            "description": "Otsu 임계값 처리는 픽셀 강도 히스토그램에서 클래스 간 분산을 최대화하여 최적의 전역 임계값을 결정하는 자동 영상 분할 방법입니다. 알고리즘: 회색조 또는 단일 밴드 영상의 히스토그램을 검사하고, 가능한 모든 임계값을 반복적으로 시험하여 각 임계값에 대한 클래스 간 분산을 계산한 후, 전경과 배경 클래스 간 분산 분리를 최대화하는 값을 선택합니다. 비모수적이며 수동 임계값 지정이 필요 없습니다. 주요 특징: 완전 자동 임계값 결정, 조명 변화에 견고, 히스토그램 기반 접근으로 빠른 계산 가능, 외부 매개변수 없음, 단일 전역 임계값 제공. 기능: 이진 분할, 단봉 및 쌍봉 히스토그램 최적화, 좁은 동적 범위나 고대비 영상 처리. 활용 사례: 사용자 개입 없는 자동 영상 분할, 문서 이진화, 수체 추출, 위성 영상의 구름 탐지, 얼음/눈 매핑. 응용 분야: 변화 탐지 전처리, 간단한 토지피복 분류, 수역 마스크 생성, 고급 분류 전 예비 분할. 출력 해석: 임계값 미만의 픽셀은 한 클래스로, 초과는 다른 클래스로 분류되며, 히스토그램의 쌍봉성은 분리 품질을 나타내고, 분리가 잘 되지 않은 히스토그램은 이진 분류에 적합하지 않음을 나타내며, 클래스 간 분산과 균일도 같은 통계 척도는 분할 품질을 나타냅니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "parallelepiped_classification": {
            "name": "평행육면체 분류",
            "description": "폴리곤 훈련 데이터를 사용하여 다중분광 래스터에 대해 감독 평행육면체 분류를 수행합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열(분광 밴드당 하나), 경로 또는 구분된 문자열 형태."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "랜덤 포레스트 분류",
            "description": "랜덤 포레스트 분류는 무작위화된 특징 부분집합을 사용해 부트스트랩 표본으로 훈련한 앙상블 의사결정 트리를 통해 레이블을 할당합니다. 각 트리는 가지치기 없이 독립적으로 성장하며 특징 간의 복잡한 비선형 관계와 상호작용을 포착합니다. 분류는 일반적으로 100-1000개의 트리에 걸친 투표를 집계하며, 최종 클래스는 다수결로 결정됩니다. 부트스트랩 훈련과 무작위 특징 선택은 고차원 패턴을 포착하면서 과적합을 줄입니다. 특징 중요도는 OOB(out-of-bag) 오차 변화로부터 계산할 수 있어 분류에 가장 관련 있는 진단적 분광 밴드나 파생 특징을 식별합니다. 주요 특징으로는 핵심 분류 특징을 식별하는 변수 중요도 순위, 앙상블 트리 간 투표 합의에 기반한 픽셀별 분류 신뢰도, 고차원 초분광 데이터의 자동 처리, 분광 이상치와 잡음에 대한 견고성, 병렬화 가능한 훈련과 예측이 있습니다. 이 도구는 불균형 훈련 집합을 갖는 다중 클래스 문제를 효율적으로 처리합니다. 응용 분야로는 다중분광 및 초분광 데이터를 이용한 토지피복 분류, 지도 간 분광 전이를 식별하는 변화 탐지, 다중 시기 위성 영상을 이용한 작물 유형 분류, 건물 유형과 표면을 구분하는 도시 물질 분류, 분광 이상치를 식별하는 이상 탐지가 있습니다. 랜덤 포레스트는 비교적 적은 훈련 데이터로도 원격탐사 응용에서 일관되게 높은 정확도를 달성합니다. 출력 해석: 투표 수는 분류 신뢰도를 제공하며, 만장일치나 강한 다수결(>80%)은 확신 있는 분류를, 근소한 차이는 혼합 픽셀로 인한 모호성을 시사합니다. 특징 중요도 순위는 분류에 가장 진단적인 분광 밴드나 파생 지수를 식별합니다. OOB 오차는 별도의 검증 데이터 없이 일반화 성능을 추정합니다. 특징 상호작용은 암묵적이며, 특정 밴드 조합에서 높은 정확도가 나타나면 비선형 분광 관계를 시사합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "랜덤 포레스트 회귀",
            "description": "다중 밴드 입력 래스터에 대해 감독 랜덤 포레스트 회귀를 수행합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "서포트 벡터 머신(SVM) 분류는 머신러닝 서포트 벡터 머신 알고리즘을 다중분광 원격탐사 데이터에 적용하여, 고차원 분광 특징 공간에서 최적의 초평면을 배치함으로써 훈련 클래스를 분리합니다. 알고리즘: 커널 함수(선형, RBF, 다항식)를 통해 분광 특징 벡터를 고차원 공간으로 변환하고, 훈련 클래스를 분리하는 최대 마진 초평면을 식별한 후, 초평면 위치에 따라 새 픽셀을 분류합니다. 허용 오차 매개변수와 커널 선택으로 일반화를 제어합니다. 비선형 클래스 분리를 효과적으로 처리합니다. 주요 특징: 고차원 분광 데이터에 견고, 제한된 훈련 표본으로도 우수한 일반화, 다양한 분광 분포에 대응하는 커널 유연성, 확률/신뢰도 추정 제공. 기능: 다중 클래스 분류, 소프트 마진 허용 오차, 자동 클래스 가중치 균형. 활용 사례: 희소한 훈련 데이터를 이용한 상세 토지 분류, 분광-공간 특징 통합, 변화 탐지, 정밀 농업, 도시 매핑. 응용 분야: 초분광 영상 분류, 복잡한 생태계 매핑, 작물 유형 구획, 기반시설 분류. 출력 해석: 클래스 소속은 예측 범주를 나타내며 공간 일관성이 분류 품질을 드러내고, 확률 추정은 픽셀 수준의 신뢰도를 정량화하며, 오분류 패턴은 훈련 데이터의 결함이나 분광 중첩 문제를 나타냅니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "감마",
                "description": "RBF 커널 gamma이며, 기본값은 1 / number_of_features입니다."
              },
              "epoch": {
                "label": "에포크",
                "description": "학습 에포크 수(기본값 2)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "svm_regression": {
            "name": "SVM 회귀",
            "description": "다중 밴드 입력 래스터에 대해 감독 서포트 벡터 머신 회귀를 수행합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "감마",
                "description": "RBF 커널 gamma이며, 기본값은 1 / number_of_features입니다."
              },
              "eps": {
                "label": "Eps",
                "description": "엡실론 무감도 손실 폭(기본값 0.1)."
              },
              "tol": {
                "label": "허용 오차",
                "description": "최적화 허용 오차(기본값 1e-3)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "change_vector_analysis": {
            "name": "변화 벡터 분석",
            "description": "두 시기의 다중분광 데이터셋에 대해 변화 벡터 분석을 수행하고 크기 및 방향 래스터를 반환합니다.",
            "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": "임계값 시그마",
                "description": "이진 변화 마스크 생성을 위한 선택적 시그마 임계값."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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를 계산하여 상관관계가 없는 직교 분광-시간 성분으로 변환하며, 뒤쪽 주성분을 변화에 민감한 성분으로 해석하고, 주성분 적재값/점수에 통계적 임계값 처리를 적용하여 변화를 탐지합니다. PCA는 분산을 최대화하여 시간적으로 일관된 분광 패턴(앞쪽 주성분)과 시간적 변동(뒤쪽 주성분)을 분리하므로, 변화 신호가 분광적으로 미묘할 때 PCA 기반 탐지가 뛰어납니다. 주요 특징으로는 가변적인 영상 수와 공동 정합 요건을 처리하는 다중 시기 데이터 융합, 중요한 분광-시간 패턴을 강조하는 자동 분산 최대화, 일변량 차분보다 변화 판별력을 향상시키는 다변량 통계, 픽셀 잡음을 줄이는 선택적 공간 필터링이 있습니다. 응용 분야로는 육안 인식 이전 단계의 미묘한 식생 스트레스 탐지, 수십 년에 걸친 개발을 추적하는 다중분광 도시 변화 탐지, 신속한 피해 매핑을 통한 자연재해 영향 평가, 생태계 상태 전이를 탐지하는 환경 모니터링이 있습니다. PCA 기반 탐지 출력은 시간적 패턴을 구분합니다. 출력은 해석 가능한 분광-시간 적재값을 갖는 주성분 영상, 뒤쪽 성분 점수에서 도출된 변화 확률 래스터, 변화 유형을 구분하는 선택적 변화 분류로 구성되며, 주성분의 공간 패턴은 통계적 탐지를 보완하는 시각적 패턴 인식을 가능하게 합니다.",
            "params": {
              "t1_inputs": {
                "label": "T1 입력",
                "description": "시기 1 래스터 경로 배열."
              },
              "t2_inputs": {
                "label": "T2 입력",
                "description": "시기 2 래스터 경로 배열이며, t1_inputs의 길이와 순서가 일치해야 합니다."
              },
              "component": {
                "label": "성분",
                "description": "출력할 1 기반 주성분 인덱스(기본값 1)."
              },
              "standardized": {
                "label": "표준화",
                "description": "true이면 변화 벡터에 상관행렬 PCA를 사용합니다(기본값 false)."
              },
              "threshold_sigma": {
                "label": "임계값 시그마",
                "description": "이진 마스크 출력을 위한 절대 PC 점수의 선택적 시그마 임계값."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "객체 {\"old\": new, ...} 형태의 시기 1 클래스용 선택적 재매핑 테이블."
              },
              "t2_class_remap": {
                "label": "T2 클래스 재매핑",
                "description": "객체 {\"old\": new, ...} 형태의 시기 2 클래스용 선택적 재매핑 테이블."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 필요할 때 t2_classified를 t1_classified의 CRS로 재투영합니다."
              },
              "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": "DEM 경사/향 기하를 사용하는 C-보정 또는 Minnaert 방식의 단일 장면 BRDF 정규화입니다.",
            "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": "Minnaert K",
                "description": "[0,1] 범위의 Minnaert k 계수(기본값 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": "렌즈 비네팅 보정은 축외 렌즈 광학 특성으로 인해 영상 가장자리가 중심보다 빛을 적게 받아 지표 반사율 변동과 무관한 인위적인 밝기 경사가 생기는 방사 아티팩트를 제거합니다. 비네팅 보정은 센서 특성에 맞게 보정된 비네팅 프로파일 모델(가우시안 또는 코사인 4제곱 법칙 공식)로부터 계산한 공간적으로 변하는 승산 계수를 적용하여, 영상 시야 전체에 걸쳐 균일한 방사 반응을 복원합니다. 이 전처리 단계는 비네팅이 분광 분석을 왜곡하고 분류 및 변화 탐지 워크플로에 체계적 오류를 유발할 수 있는 다중분광 및 초분광 원격탐사에서 매우 중요합니다. 주요 특징으로는 영상 통계 또는 사용자 지정 보정 매개변수로부터의 자동 비네팅 프로파일 추정, 보간 아티팩트 없이 픽셀별로 적용되는 공간 가변 보정 계수, 잡음이 많은 가장자리의 증폭을 방지하기 위한 과보정된 주변부 픽셀의 선택적 마스킹, 분광 밴드별로 다른 비네팅을 처리하는 밴드별 보정이 있습니다. 응용 분야로는 방사 일관성에 민감한 분광 분류 알고리즘을 위한 전처리, 비네팅 경계가 눈에 보이는 불연속을 일으키는 모자이크 준비, 영상 프레임 전체에 걸친 정확한 방사 비교, 균일한 조명 반응이 필요한 초분광 분석이 있습니다. 비네팅이 보정된 영상은 시야 전체에 걸쳐 균일한 밝기를 보입니다. 출력은 가장자리 어두움이 제거되어 영상 중심에서 가장자리까지 균일한 방사 반응을 나타내며, 강하게 보정된 주변부 픽셀은 잡음이 증가할 수 있습니다. 보정된 영상은 방사 아티팩트 없이 다중분광 분석 워크플로에 원활하게 통합됩니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 영상."
              },
              "pp": {
                "label": "PP",
                "description": "주점을 포함하는 포인트 벡터 경로(또는 타입 지정 벡터 객체)."
              },
              "focal_length": {
                "label": "초점 거리",
                "description": "mm 단위 카메라 초점 거리(기본값 304.8)."
              },
              "image_width": {
                "label": "영상 너비",
                "description": "mm 단위 좌우 영상 가장자리 간 거리(기본값 228.6)."
              },
              "n": {
                "label": "N",
                "description": "코사인 모델 지수 n(기본값 4.0)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "dark_object_subtraction": {
            "name": "암체 차감",
            "description": "암흑 객체 차감(DOS)은 보조 기상 데이터나 복잡한 복사 전달 모델 없이 대기 연무를 제거하는 간단하면서도 효과적인 경험적 방법입니다. 이 기법은 반사율이 0이면 반사 신호도 0이어야 한다는 원리(레일리 산란 무시)를 이용하며, 광학적으로 검은 표면(깊은 수역, 울창한 산림 그림자, 도시 아스팔트)에서 관측되는 모든 신호는 에어로졸 산란으로 인한 대기 경로 복사휘도로 간주됩니다. 이 도구는 영상 전체에서 각 밴드의 최소 디지털 값을 찾아 이를 대기 연무로 해석하고, 모든 픽셀에서 밴드별 상수 오프셋으로 차감합니다. 더 정교한 변형(DOS2, DOS3, DOS4)은 식생 지수나 어두운 픽셀 군집화를 사용하여 레일리 산란과 가변적인 에어로졸 광학 두께를 고려합니다. 주요 기능으로는 암흑 객체를 분리하고 장면 의존적 연무와 실제 0 반사율을 구분하는 히스토그램 분석, 암흑 객체 식별을 편향시킬 수 있는 알려진 고반사 피처(도시, 눈, 구름)의 선택적 마스킹, 밴드별 연무 보정, 실시간 또는 대규모 처리에 적합한 빠른 계산이 있습니다. 활용 사례로는 빠른 확인용 반사율 추정, 절대 보정보다 상대 변화가 더 중요한 식생 및 수질 모니터링, 신속한 재난 대응 매핑, 정밀한 에어로졸 정보를 구할 수 없는 과거 보관 자료가 있습니다. 입력은 대기 상단 반사율 또는 보정된 복사휘도, 밝은 피처를 제외하기 위한 선택적 토지피복 마스크, 장면 메타데이터로 구성됩니다. 출력은 연무가 보정된 반사율, 밴드별 대기 경로 복사휘도 추정값, 암흑 객체 식별의 신뢰도를 나타내는 품질 플래그(예: 어두운 픽셀 부족, 도시 우세 장면)입니다. 복사 전달 모델에 비해 조잡하지만, DOS는 정교한 대기 데이터를 사용할 수 없을 때 다시기 분석과 전 지구 범위 매핑에 여전히 실용적입니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "입력 래스터 스택(하나 이상의 래스터)."
              },
              "percentile": {
                "label": "백분위수",
                "description": "밴드별 암흑 객체 백분위수(기본값 1.0)."
              },
              "clamp_non_negative": {
                "label": "음수 잘라내기",
                "description": "true이면 0 미만의 보정값을 0으로 고정합니다(기본값 true)."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 입력을 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": "디지털 값에서 대기 상단 반사율로의 변환은 위성 메타데이터에서 도출한 밴드별 방사 보정 계수를 적용하여 원시 센서 디지털 값을 물리적으로 의미 있는 분광 반사율 값으로 변환합니다. 이 변환은 방사 재조정, 태양 대기권 외 분광 복사조도 보정, 태양 천정각 보정, 선택적 지구-태양 거리 정규화를 적용하여 센서, 촬영 시각, 지리적 위치 간에 직접 비교 가능한 반사율 값을 생성합니다. 대기 상단 반사율은 대기 영향이 작용하기 전 센서에서 지표 대상이 반사한 입사 태양 에너지의 비율을 나타내며, 정량적 원격탐사 분석의 기준이 됩니다. 주요 특징으로는 표준 위성 산출물의 전체 메타데이터 구문 분석을 통한 밴드별 보정 계수 적용, 촬영 타임스탬프와 위치로부터의 자동 태양 기하 계산, 계절 변동에 대한 선택적 지구-태양 거리 보정, 표준화된 계수 형식을 통한 여러 센서 유형의 유연한 처리가 있습니다. 응용 분야로는 일관된 물리 단위를 사용한 정량적 변화 탐지, 다중 시기 촬영 자료와 서로 다른 센서 간의 절대 방사 비교, 정밀한 반사율이 필요한 분광 식생 지수 계산, 위성군 작업에서의 센서 간 검증이 있습니다. 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": "true(기본값)이면 sin(sun_elevation)으로 나눕니다."
              },
              "clamp_unit_interval": {
                "label": "단위 구간으로 제한",
                "description": "true(기본값)이면 출력을 [0, 1]로 고정합니다."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 입력을 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": "공동 정합된 DEM을 사용한 다중분광 광학 밴드의 지형 C-보정입니다. 지표 반사율 스택, 보정 계수, 구름/그림자 마스크, 품질 신뢰도를 출력합니다.",
            "params": {
              "input_dem": {
                "label": "입력 DEM",
                "description": "광학 밴드와 공동 정합된 DEM 래스터."
              },
              "bundle_root": {
                "label": "번들 루트",
                "description": "명시적 입력이 생략될 때 필요한 밴드, 가능한 경우 QA, 태양 메타데이터를 자동으로 해석하는 데 사용되는 선택적 광학 센서 번들 루트 디렉터리(현재 Sentinel-2 SAFE, Landsat 또는 DIMAP SPOT/Pleiades)."
              },
              "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": "datetime_location 모드용 RFC3339 UTC 촬영 타임스탬프."
              },
              "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로 변환됩니다. 방출률은 식생 지수로부터 도출하거나 직접 제공하여 물질에 따른 열 방출률 변동을 보정합니다. 주요 특징: 단일 열 밴드만 필요, 간단한 방사 처리, 빠른 계산, 다중 채널 불필요, 식생 지수 기반 방출률 추정, 직접적인 물리 온도 출력. 활용 사례: 도시 열섬 매핑, 가뭄 스트레스 모니터링, 지열 피처 탐지, 산불 열 신호 추적, 농업용수 관리. 출력 해석: 출력은 켈빈 단위(변환 시 섭씨)의 복사 표면 온도입니다. 단일 채널 산출은 대기 수증기 영향을 완전히 제거할 수 없어 잔여 대기 편향이 일반적으로 2-5 K입니다. 방출률 오차는 직접 전파되어 ±0.05 방출률 오차 ≈ ±1-2 K 온도 오차가 됩니다. 식생 기반 방출률은 NDVI에 따라 달라지며, 나지 토양은 식생보다 낮은 방출률을 보입니다. 시계열 LST는 가열/냉각 추세를 드러내며, 배경 ± 5K를 넘는 LST 이상은 열 피처를 나타냅니다.",
            "params": {
              "thermal_input": {
                "label": "열적외선 입력",
                "description": "열적외선 래스터 경로(기본값은 DN이며, input_is_brightness_temp=true이면 휘도 온도)."
              },
              "input_is_brightness_temp": {
                "label": "입력이 밝기 온도임",
                "description": "true이면 thermal_input이 이미 켈빈 단위의 휘도 온도입니다(기본값 false)."
              },
              "emissivity_input": {
                "label": "방사율 입력",
                "description": "thermal_input에 정렬된 선택적 방사율 래스터 경로."
              },
              "emissivity_constant": {
                "label": "방사율 상수",
                "description": "emissivity_input이 제공되지 않을 때 사용할 대체 방사율(기본값 0.98)."
              },
              "sensor_bundle_root": {
                "label": "센서 번들 루트",
                "description": "열복사 휘도와 Planck 상수를 유도하는 데 사용되는 선택적 Landsat 번들 루트."
              },
              "thermal_band_number": {
                "label": "열적외선 밴드 번호",
                "description": "메타데이터 조회용 열적외선 밴드 번호(기본값 10)."
              },
              "radiance_mult": {
                "label": "복사휘도 승수",
                "description": "DN->복사 휘도 변환을 위한 열복사 휘도 승법 계수."
              },
              "radiance_add": {
                "label": "복사휘도 가산값",
                "description": "DN->복사 휘도 변환을 위한 열복사 휘도 가법 계수."
              },
              "k1_constant": {
                "label": "K1 상수",
                "description": "Planck K1 열 상수."
              },
              "k2_constant": {
                "label": "K2 상수",
                "description": "Planck K2 열 상수."
              },
              "wavelength_um": {
                "label": "파장 (um)",
                "description": "마이크로미터 단위의 유효 열적외선 파장(기본값은 thermal_band_number로 추론)."
              },
              "output_units": {
                "label": "출력 단위",
                "description": "출력 단위: celsius(기본값) 또는 kelvin."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 필요할 때 emissivity_input을 thermal_input의 CRS로 재투영합니다."
              },
              "auto_reproject_method": {
                "label": "자동 재투영 방법",
                "description": "선택적 재투영 리샘플링 재정의: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "land_surface_temperature_split_window": {
            "name": "분리 창 지표면 온도",
            "description": "분리 창 LST 산출은 두 개의 열적외선 밴드를 사용하여 복사 전달 방정식 역산을 통해 지표면 온도와 방출률을 동시에 추정합니다. 두 밴드(일반적으로 10-12 μm 영역) 간 대기 흡수 차이를 이용해 대기 수증기를 보정하므로 단일 채널 방법보다 정확도가 향상됩니다. 두 밴드의 밝기 온도는 식생 비율 기반 방출률 매개변수화 또는 사용자가 제공한 방출률 격자로 역산됩니다. 주요 특징: 두 개의 열 밴드 필요, 차등 흡수를 통한 대기 보정, 온도/방출률 동시 산출, 표준 센서에 대해 공개된 알고리즘, 단일 채널보다 우수한 대기 보정. 활용 사례: 도시 열섬 매핑, 농업 가뭄 탐지, 지열 피처 탐지, 지표-대기 상호작용 연구, 화산/열 이상 탐지. 출력 해석: 출력은 대기 보정이 향상된 지표 복사 온도입니다. 분리 창 산출은 대기 수증기 편향을 단일 채널의 2-5 K 오차에 비해 <1-2 K로 줄입니다. 온도/방출률 간의 상충은 여전히 남아 있어, 식생 지수가 높은 지역은 낮은 방출률을 보이므로 신중한 해석이 필요합니다. 이질적 표면(식생/토양 혼합)은 중간 값을 보입니다. 시간적 일관성은 변화 탐지 신뢰성을 높이며, ±3K를 넘는 LST 추세는 유의미한 열 변화를 나타냅니다.",
            "params": {
              "thermal1_input": {
                "label": "열적외선 1 입력",
                "description": "첫 번째 열적외선 래스터 경로(예: Landsat B10)."
              },
              "thermal2_input": {
                "label": "열적외선 2 입력",
                "description": "두 번째 열적외선 래스터 경로(예: Landsat B11)."
              },
              "input_is_brightness_temp": {
                "label": "입력이 밝기 온도임",
                "description": "true이면 열적외선 입력이 이미 켈빈 단위의 휘도 온도입니다(기본값 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": "열복사 휘도와 Planck 상수를 유도하는 데 사용되는 선택적 Landsat 번들 루트."
              },
              "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": "밴드 1 Planck K1 상수."
              },
              "k2_1": {
                "label": "K2 1",
                "description": "밴드 1 Planck K2 상수."
              },
              "radiance2_mult": {
                "label": "복사휘도 2 승수",
                "description": "밴드 2 복사 휘도 승법 계수."
              },
              "radiance2_add": {
                "label": "복사휘도 2 가산값",
                "description": "밴드 2 복사 휘도 가법 계수."
              },
              "k1_2": {
                "label": "K1 2",
                "description": "밴드 2 Planck K1 상수."
              },
              "k2_2": {
                "label": "K2 2",
                "description": "밴드 2 Planck K2 상수."
              },
              "coeff_a0": {
                "label": "계수 A0",
                "description": "분할 윈도우 계수 a0(기본값 0.0)."
              },
              "coeff_a1": {
                "label": "계수 A1",
                "description": "T1 항에 대한 분할 윈도우 계수 a1(기본값 1.0)."
              },
              "coeff_a2": {
                "label": "계수 A2",
                "description": "(T1-T2) 항에 대한 분할 윈도우 계수 a2(기본값 0.0)."
              },
              "coeff_a3": {
                "label": "계수 A3",
                "description": "(T1-T2)^2 항에 대한 분할 윈도우 계수 a3(기본값 0.0)."
              },
              "coeff_a4": {
                "label": "계수 A4",
                "description": "(1-emissivity_mean) 항에 대한 분할 윈도우 계수 a4(기본값 0.0)."
              },
              "coeff_a5": {
                "label": "계수 A5",
                "description": "emissivity_delta 항에 대한 분할 윈도우 계수 a5(기본값 0.0)."
              },
              "output_units": {
                "label": "출력 단위",
                "description": "출력 단위: celsius(기본값) 또는 kelvin."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 필요할 때 보조 래스터를 thermal1_input의 CRS에 맞게 재투영합니다."
              },
              "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": "true(기본값)이면 필요할 때 nir_input을 red_input의 CRS로 재투영합니다."
              },
              "auto_reproject_method": {
                "label": "자동 재투영 방법",
                "description": "선택적 재투영 리샘플링 재정의: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "continuum_removal": {
            "name": "연속체 제거",
            "description": "연속체 제거는 스펙트럼을 감싸는 상부 볼록 껍질(연속체)을 추정하고 각 밴드를 해당 연속체 값으로 나누어 다중분광 스펙트럼을 정규화합니다. 전체 분광 기울기와 밝기 변동을 제거하여 흡수 특징(밴드, 깊이)을 더 잘 시각화할 수 있게 합니다. 흡수 깊이와 위치가 표준화되어 분광 라이브러리를 통한 광물/물질 식별이 가능해집니다. 연속체 선은 분광 범위 전체의 국지 최댓값을 연결하는 볼록 껍질 알고리즘으로 계산됩니다. 주요 특징: 분광 연속체 제거, 흡수 특징 강조, 밝기 변동 정규화, 분광 라이브러리 매칭 가능, 분광 형태 표준화. 활용 사례: 광물 식별, 물질 분류, 식생 분광 분석, 분광 이상 탐지, 흡수 특징 매핑. 출력 해석: 연속체가 제거된 스펙트럼은 물질 고유 밴드를 나타내는 흡수 특징(값 <1.0)을 보입니다. 흡수 깊이는 특징의 강도를 나타내며, 얕은 특징(<0.2)은 소수 성분을, 깊은 특징(>0.5)은 우세한 흡수를 나타냅니다. 파장 공간에서의 특징 위치를 참조 라이브러리와 비교하여 물질을 식별할 수 있습니다. 평탄한 연속체 제거 스펙트럼(1.0 부근)은 분광적으로 중성인 물질을 나타냅니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "입력 래스터 스택(밴드당 래스터 하나)."
              },
              "wavelengths": {
                "label": "파장",
                "description": "inputs 길이와 일치하는 선택적 순증가 파장 배열."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "선형 분광 혼합 분해는 각 픽셀의 다중분광 벡터를 순수 물질 신호를 나타내는 엔드멤버 스펙트럼의 비음수 선형 결합으로 분해합니다. 비음수 최소제곱 최적화로 x ≥ 0 조건하에서 min ||y - Ax||²를 풀며, 여기서 y는 픽셀 스펙트럼, A는 엔드멤버 신호, x는 함량 비율을 나타냅니다. 합이 1이 되는 제약 조건을 적용하여 함량 값이 물리적 비율을 나타내도록 보장합니다. 엔드멤버는 훈련 데이터, 라이브러리 데이터베이스에서 도출하거나 엔드멤버 추출 알고리즘으로 추출합니다. 주요 특징: 하위 픽셀 물질 추정, 함량 비율의 물리적 해석, 다중 엔드멤버 지원, 유효 범위 [0,1]로 제약된 출력, 물질 변화 탐지 가능. 활용 사례: 토지피복 함량 매핑, 광물 조성 추정, 도시 물질 목록 작성, 식생/토양/불투수면 비율, 분광 라이브러리 기반 분류. 출력 해석: 출력 함량 지도는 합이 1.0인 픽셀별 물질 비율을 보여 줍니다. 함량 <0.1은 소수 성분을, 함량 >0.7은 우세 물질을 나타냅니다. 잔차 오차는 분해 품질을 나타내며, 낮은 잔차는 양호한 분광 적합을, 높은 잔차는 엔드멤버 불일치나 픽셀 복잡성을 나타냅니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "입력 래스터 스택(밴드당 래스터 하나)."
              },
              "endmembers": {
                "label": "엔드멤버",
                "description": "객체 {name, values} 배열 또는 수치 배열 형태의 엔드멤버 시그니처."
              },
              "sum_to_one": {
                "label": "합이 1",
                "description": "true(기본값)이면 음이 아닌 비율의 합이 1이 되도록 정규화합니다."
              },
              "iterations": {
                "label": "반복 횟수",
                "description": "투영 경사법 반복 횟수(기본값 80)."
              },
              "step_size": {
                "label": "단계 크기",
                "description": "투영 경사법 단계 크기(기본값 0.05)."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "최소 잡음 비율",
            "description": "최소 잡음 비율 변환은 잡음 공분산 추정과 그에 이은 잡음 백색화 및 주성분 분석의 2단계 과정으로 초분광 데이터를 변환합니다. 잡음 백색화는 밴드 간 잡음의 상관을 제거하고, 백색화된 공간에서의 PCA는 신호가 우세한 방향을 식별합니다. 출력 성분은 신호 대 잡음비 순으로 정렬되며, 앞쪽 성분은 신호를, 뒤쪽 성분은 잡음을 나타냅니다. 성분 절단을 통해 일반적인 평활화 아티팩트 없이 잡음을 줄일 수 있습니다. 주요 특징: 신호와 잡음 분리, 뒤쪽 성분에 잡음 집중, 성분 선택을 통한 잡음 필터링, 분광 충실도 보존, 차원 축소 가능. 활용 사례: 초분광 영상 잡음 제거, 분류를 위한 차원 축소, 신호 강화, 잡음 특성화, 영상 품질 평가. 출력 해석: 처음 1-3개의 MNF 성분에 일반적으로 신호의 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "분광 각도 매퍼",
            "description": "분광각 매핑은 각 픽셀 스펙트럼과 참조 라이브러리 스펙트럼 간의 분광각을 계산하여 픽셀을 분류하며, 조명 강도와 무관하게 최대 분광 유사성을 나타내는 최소 각도의 라이브러리 스펙트럼에 픽셀을 할당합니다. SAM은 각 픽셀과 참조 스펙트럼을 N차원 분광 공간의 벡터로 취급하고, 내적 연산과 역코사인 변환으로 벡터 간 각도를 계산합니다. 이 분광각 기반 분류는 전체 밝기의 크기는 바꾸지만 분광 형태는 보존하는 조명 및 지형 효과에 불변이므로, 복잡한 지형과 다양한 촬영 조건에서도 견고합니다. 주요 특징으로는 확률적 분류 신뢰도를 가능하게 하는 자동 분광각 임계값 정의, 현장 표본이나 분광 라이브러리에서 사용자가 제공한 분광 신호를 지원하는 참조 라이브러리 가져오기, 분광 판별력을 유지하면서 가변적인 조명을 처리하는 조명 불변성, 대용량 영상의 실시간 분류를 가능하게 하는 빠른 계산이 있습니다. 일반적인 응용 분야로는 USGS 분광 라이브러리를 이용한 물질 식별과 지질 매핑, 다중분광 위성 데이터와 현장 수집 스펙트럼을 결합한 식생 종 분류, 초분광 항공 조사에서의 광물 탐사, 영상 스펙트럼을 지상 수집 참조 신호와 비교하는 정확도 평가가 있습니다. SAM 출력은 분광 형태 신호를 활용하여 확실한 물질 식별을 가능하게 합니다. 분류 출력은 라이브러리 항목에 대응하는 정수 클래스 레이블을 갖는 단일 밴드 영상을 생성하며, 신뢰도 래스터는 선택적으로 각 픽셀의 최소 분광각을 기록하여 임계값 기반 필터링을 가능하게 합니다. 출력은 직접적인 물질 식별과 신뢰도 기반 필터링을 가능하게 합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "입력 래스터 스택(밴드당 래스터 하나)."
              },
              "endmembers": {
                "label": "엔드멤버",
                "description": "객체 {name, values} 배열 또는 수치 배열 형태의 엔드멤버 시그니처."
              },
              "threshold_angle_deg": {
                "label": "임계 각도 (도)",
                "description": "허용되는 선택적 최대 분광각(도)이며, 일치하지 않는 픽셀은 클래스 0이 됩니다."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "분광 라이브러리 매칭은 분광각(스펙트럼 벡터 간 각도), 유클리드 거리(크기 차이), 분광 정보 발산 등 여러 유사도 척도를 사용하여 영상 픽셀 스펙트럼을 참조 라이브러리 스펙트럼과 비교함으로써 분류를 수행합니다. 알고리즘은 알려진 물질/클래스 스펙트럼이 담긴 사용자 제공 참조 분광 라이브러리를 받아, 각 영상 픽셀과 라이브러리 항목 간의 유사도 척도를 계산하고, 가장 잘 일치하는(최소 각도, 최소 거리 또는 최소 발산) 라이브러리 스펙트럼을 식별하여 선택적 신뢰도/유사도 점수와 함께 클래스 레이블을 출력합니다. 라이브러리 매칭은 USGS, 현장 조사 또는 실험실 분광 측정의 참조 스펙트럼을 활용하여 현장 훈련 표본 없이 물질을 식별할 수 있게 합니다. 주요 특징으로는 특정 분광 특성과 클래스 분포에 맞는 척도를 선택할 수 있는 다양한 유사도 척도, 다양한 분광 라이브러리 형식을 지원하는 유연한 라이브러리 가져오기, 선택적 신뢰도/불확실성 정량화, 직접 식별 가능한 물질 출력이 있습니다. 응용 분야로는 USGS 분광 라이브러리를 이용한 광물학적 지질 매핑, 식물 분광 참조 라이브러리를 이용한 식생 분류, 도시 지역의 건축 자재 식별, 초분광 항공 조사 분석이 있습니다. 분광 라이브러리 매칭은 자동화된 물질 식별을 가능하게 합니다. 출력은 라이브러리 항목 ID를 클래스 레이블로 하는 분류 지도, 일치 품질을 정량화하는 유사도/신뢰도 래스터, 임계값 기반 필터링을 가능하게 하는 라이브러리 항목별 전체 분광각/거리 스택(선택 사항)으로 구성되며, 메타데이터에는 참조 라이브러리 출처와 사용된 유사도 척도가 기록됩니다.",
            "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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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 다단계 에지 검출(가우시안 블러 → Sobel 기울기 → 비최대 억제 → 이중 임계값 → 히스테리시스)을 적용합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로(단일 밴드 또는 패킹된 RGB)."
              },
              "sigma": {
                "label": "시그마",
                "description": "픽셀 단위 가우시안 평활화 커널의 표준편차. 기본값: 0.5."
              },
              "low_threshold": {
                "label": "하한 임계값",
                "description": "낮은 히스테리시스 임계값(최대 경사의 0–1 비율). 기본값: 0.05."
              },
              "high_threshold": {
                "label": "상한 임계값",
                "description": "높은 히스테리시스 임계값(최대 경사의 0–1 비율). 기본값: 0.15."
              },
              "add_back": {
                "label": "다시 더하기",
                "description": "true이면 이진 경계 지도를 생성하는 대신 원본 영상에서 경계 픽셀을 0으로 만듭니다. 기본값: false."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로. 생략하면 결과가 메모리에 유지됩니다."
              }
            }
          },
          "corner_detection": {
            "name": "코너 탐지",
            "description": "hit-and-miss 템플릿을 사용하여 이진 래스터에서 모서리 패턴을 식별합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "laplacian_filter": {
            "name": "라플라시안 필터",
            "description": "라플라시안 필터는 영상 강도의 2차 공간 미분을 계산하여 등방성(전 방향) 기울기 측정을 통한 강력한 에지 검출을 제공합니다. 구현은 라플라시안 연산자(x 및 y 방향 2차 미분의 합)를 근사하는 고정 커널을 적용하여 에지 방향과 관계없이 강도 변화를 포착합니다. 방향성 필터와 달리 이 방식은 모든 에지 방향을 동등하게 취급하므로 방향 독립성이 필요한 특징 검출에 적합합니다. 수학적 기초는 이산 근사 ∇²I ≈ I(x+1,y) + I(x-1,y) + I(x,y+1) + I(x,y-1) - 4·I(x,y)에 있습니다. 주요 특징으로는 영교차 검출 능력(실제 에지는 출력이 0을 가로지르는 곳에서 발생), 에지 방향에 대한 비민감성, 밝음에서 어두움으로 및 어두움에서 밝음으로의 전이를 동일하게 검출하는 능력이 있습니다. 라플라시안 필터링은 구조 경계가 영교차로 나타나는 지질 매핑, 식생 경계 구획, 고해상도 영상에서의 도로망 추출, 건물 풋프린트 검출에 뛰어납니다. 출력 해석은 부호 전이를 이해하는 데 중점을 둡니다. 강한 양수 값은 국지적 어두운 최솟값을, 음수 값은 국지적 밝은 최댓값을 나타내며, 영교차는 실제 에지를 표시합니다. 8비트 원본 영상의 경우 일반적인 출력 범위는 국지적 대비에 따라 -1000에서 +1000입니다. 출력 크기가 크면 선명하고 뚜렷한 에지를, 작으면 점진적인 전이를 시사합니다. 영교차 검출에는 신중한 임계값 선택이 필요합니다. 라플라시안은 잡음에 민감하므로(고주파 잡음을 증폭) 적용 전에 가우시안 평활화로 사전 필터링하는 것이 일반적으로 권장됩니다.",
            "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": "가우시안 라플라시안 필터",
            "description": "가우시안 평활화와 라플라시안 에지 검출을 결합한 가우시안 라플라시안(LoG) 에지 강조를 수행합니다. 계산상으로는 가우시안 차분(DoG)으로 근사합니다. 먼저 영상을 평활화(잡음 감소)한 후 라플라시안을 적용(에지 검출)합니다. 고전적인 다중 스케일 에지 검출 기법입니다. LoG 출력에 대한 영교차 검출로 정확한 에지 위치를 식별합니다. LoG는 스케일 공간 에지 검출의 표준으로, 가우시안이 잡음을 제거하고 라플라시안이 에지를 증폭합니다. sigma 매개변수는 검출되는 에지의 스케일을 제어하며, 작은 sigma는 세밀한 에지를, 큰 sigma는 넓은 에지를 검출합니다. 효율을 위해 LoG를 DoG로 근사합니다. 여러 sigma 값을 사용하면 다중 스케일 에지 검출(서로 다른 스케일의 특징 식별)이 가능합니다. 응용 분야: (1) 견고한 에지 검출(잡음 저항성), (2) 다중 스케일 에지 검출(여러 sigma 사용), (3) 영교차 에지 위치 결정, (4) 분할을 위한 전처리, (5) LoG 영교차를 통한 블롭 검출. 워크플로: LoG 적용→영교차 식별→에지 추적→벡터화 또는 추가 처리.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "sigma": {
                "label": "시그마",
                "description": "LoG 커널이 사용하는 가우시안 시그마(0.5-20.0, 기본값 0.75)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "prewitt_filter": {
            "name": "Prewitt 필터",
            "description": "Prewitt 연산자는 Sobel과 유사한 기울기 기반 에지 검출을 수행하며, 다른 잡음 특성에 최적화된 대안적 커널 가중치를 사용합니다. 구현은 x 및 y 방향 미분을 계산하는 두 개의 3×3 컨볼루션 커널을 사용하며, 중앙 및 인접 행/열에 균일한 가중치를 부여한다는 점에서 중앙에 편향된 Sobel 방식과 다릅니다. 기울기 크기는 √(Gx² + Gy²)로 방향 성분을 결합하여 균일한 방향 반응을 제공합니다. 수학적 기초는 중앙을 강조하지 않고 기여하는 모든 픽셀에 동일한 가중치를 부여하는 이산 미분 근사에 있습니다. 주요 특징으로는 Sobel과 약간 다른 잡음 반응(잡음이 극심한 영상에서 때로 더 우수), 정교한 에지 분석을 가능하게 하는 실제 크기/방향 분해, 표준 컨볼루션 연산만 필요한 계산 효율성, 레이더·광학·열 영상에서 입증된 효과가 있습니다. Prewitt 필터링은 균일 가중치가 Sobel보다 스페클 아티팩트를 더 잘 줄이는 SAR 영상 분석, 선형 피처를 강조하는 열 이상 탐지, 방향 독립적 처리가 필요한 다중분광 에지 추출에 뛰어납니다. 출력 해석은 Sobel과 같습니다. 크기는 에지 강도(높을수록 선명)를 나타내고, atan2(Gy, Gx)로 계산한 방향은 라디안 단위의 에지 방향을 제공합니다. 8비트 입력의 일반적인 크기 범위는 0-256이며, 80을 넘는 크기는 대체로 유의미한 에지를 나타냅니다. 방향 값의 범위는 -π에서 +π이며, 0 라디안은 순수 수평 에지를, ±π/2는 순수 수직 에지를 나타냅니다. 균일한 커널 가중치는 일반적으로 Sobel보다 약간 더 매끄러운 기울기 반응을 만들어 희소하거나 세밀한 영상 피처에 더 적합할 수 있습니다. 잡음으로 인한 오탐을 줄이려면 보완적으로 중앙값 필터링을 적용하십시오. 분할 파이프라인에 중요한 에지 연결 및 경계 추출 워크플로에서는 방향 출력을 임계값 선택과 결합하십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "clip_tails": {
                "label": "양쪽 꼬리 클립",
                "description": "선택적 대칭 꼬리 절단 백분율(0-40)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "roberts_cross_filter": {
            "name": "Roberts 교차 필터",
            "description": "Roberts Cross 필터는 가장 초기의 에지 검출 연산자 중 하나로, 간단하지만 효과적인 2×2 대각 교차 커널 패턴을 사용하여 최소한의 계산 부담으로 영상 기울기를 계산합니다. 이 연산자는 수평-수직 정렬에서 45° 회전된 두 개의 직교 2×2 행렬을 사용하여, 모서리와 대각 전이를 강조하는 에지를 검출하는 십자 모양 컨볼루션 마스크를 만듭니다. 필터는 X 및 Y 기울기에 별도의 커널을 적용하고, 절댓값의 합 또는 유클리드 노름으로 크기를 계산합니다. 주요 특징으로는 작은 2×2 커널 크기로 인한 뛰어난 계산 효율성, 최소한의 메모리 요구량, 대용량 래스터 데이터셋의 빠른 처리가 있습니다. Roberts Cross는 고해상도 영상에서 세밀한 스케일의 특징과 급격한 전이를 검출하는 데 특히 효과적입니다. 주요 활용 사례로는 시간이 중요한 응용에서의 신속한 에지 검출, 실시간 비디오 스트림 처리, 고급 알고리즘 적용 전의 예비 경계 검출, 자원이 제한된 환경이 있습니다. 응용 분야로는 항공 조사 전처리, 위성 영상 품질 평가, 머신러닝 파이프라인을 위한 특징 추출, 모바일 GIS 구현이 있습니다. 출력 해석: 에지 위치는 2×2 근방에서 분광 변화가 일어나는 곳에 크기가 큰 픽셀로 나타납니다. 배경 영역은 일반적으로 0에 가까운 값을 보이며, 에지는 서로 다른 토지피복 클래스 간 경계를 나타내는 밝은 선형 피처로 나타납니다. 출력은 본질적으로 희소하여 기울기가 계산 정밀도 임계값을 초과하는 곳에만 에지가 포함됩니다. 다중분광 영상의 경우 각 밴드에 독립적으로 적용하거나 먼저 정규화 차이 지수를 계산하십시오. 벡터 변환 워크플로를 위해 출력을 다듬으려면 Roberts 적용 후 에지 세선화 후처리를 수행하는 경우가 많습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "clip_amount": {
                "label": "클립 양",
                "description": "선택적 대칭 꼬리 절단 백분율(0-50)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "sobel_filter": {
            "name": "Sobel 필터",
            "description": "Sobel 연산자는 x(수평) 및 y(수직) 방향 모두의 방향성 기울기 추정을 통해 에지를 검출하며, 직교 미분 커널을 통합된 크기 표현으로 결합합니다. 구현은 두 개의 3×3 컨볼루션 커널(하나는 수평 에지, 하나는 수직 에지 강조)을 독립적으로 적용한 후, 유클리드 노름 magnitude = √(Gx² + Gy²)로 결과를 결합합니다. 이 분리 가능한 방식은 에지 검출 정확도를 유지하면서 계산 비용을 줄입니다. 수학적 기초는 영상 기울기의 이산 근사에서 비롯되며, 커널 가중치를 중앙 픽셀 쪽으로 편향시켜 잡음 견고성을 향상시킵니다. 주요 특징으로는 에지 방향 결정을 가능하게 하는 방향성 기울기 측정, 비교적 낮은 계산 부담, 위성 및 항공 영상 전반에서 입증된 효과, 최소한의 매개변수 조정 요구가 있습니다. Sobel 필터링은 지형 경사 및 향 계산, 객체 검출 워크플로를 위한 피처 경계 추출, DEM 데이터로부터의 하천망 구획, 고해상도 영상에서의 기반시설(도로, 건물, 송전선) 매핑에 널리 활용됩니다. 출력 해석: 크기는 에지 강도(값이 클수록 급격한 전이)를 나타내며, 방향 성분(Gx, Gy)으로 방향 분석이 가능합니다. 8비트 영상의 일반적인 기울기 크기 범위는 0-256이며, 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": "0을 NoData로 처리",
                "description": "RGB 입력의 0 값을 NoData/배경으로 취급합니다(기본값 false)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "direct_decorrelation_stretch": {
            "name": "직접 비상관 스트레치",
            "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": "감마",
                "description": "[0, 4] 범위의 감마 지수, 기본값 0.5."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "gaussian_contrast_stretch": {
            "name": "가우시안 대비 스트레치",
            "description": "가우시안 참조 분포에 맞추어 대비를 스트레치합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "num_tones": {
                "label": "톤 수",
                "description": "출력 톤 개수(기본값 256)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "histogram_equalization": {
            "name": "히스토그램 평활화",
            "description": "히스토그램 평활화를 적용하여 영상 대비를 향상시킵니다.",
            "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": "제공된 히스토그램 값이 이미 누적값이면 true입니다."
              },
              "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로의 역변환은 강도-색상-채도 성분을 적색-녹색-청색 색 공간으로 다시 변환하여, 분해된 원격탐사 데이터에서 자연색을 복원할 수 있게 합니다. 역변환 공식은 원통 극좌표에서 작동하며, 수치 안정성을 유지하고 양자화 아티팩트를 최소화하면서 색상 각도와 채도 크기, 강도를 직교 RGB 좌표로 다시 변환합니다. 이 변환은 RGB에서 IHS로의 연산에 대한 핵심적인 보완으로, 특히 강도가 고해상도 전정색 데이터로 대체되는 팬샤프닝 워크플로에서 중요합니다. 주요 특징으로는 왕복 연산의 일관성을 보장하는 순변환의 정확한 수학적 역변환, 수치 아티팩트의 전파를 방지하는 색상이 정의되지 않은 무채색 픽셀의 자동 처리, 0에 가까운 극단적인 채도 값에서의 수치 안정성, 신속한 처리 파이프라인에 원활하게 통합되는 계산 효율성이 있습니다. 역변환은 강도를 전정색 데이터로 대체한 후 자연색 영상을 복원하여 팬샤프닝 워크플로를 완성하며, 향상된 해상도 데이터의 컬러 시각화, 분해된 성분으로부터의 분광 재구성 지원, 품질 관리 워크플로에서의 변환 일관성 검증을 가능하게 합니다. IHS-RGB 출력은 입력 강도 밴드의 공간 해상도를 이어받은 3밴드 자연색 영상을 생성하며, 직접 시각화와 추가 분석에 적합합니다. 출력 밴드는 표준 순서의 적색, 녹색, 청색 채널을 나타내며, 강도가 더 높은 해상도의 전정색 데이터로 대체된 경우 원래 색상 및 채도 성분의 분광 특성을 보존하면서 향상된 공간 세부를 보입니다.",
            "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": "모자이크는 기하 정합, 공통 투영 및 픽셀 격자로의 리샘플링, 불연속을 최소화하는 가장자리 혼합을 통해 여러 중첩 래스터를 이음새 없는 출력으로 결합합니다. 알고리즘은 지리 좌표나 지상 기준점을 사용하여 래스터를 정합하고, 목표 해상도와 범위로 리샘플링한 후, 중첩 영역에 가중 혼합(페더 혼합 또는 지수 가중)을 적용합니다. 중첩 픽셀은 래스터 가장자리로부터의 거리 가중 평균으로 혼합되어, 내부 픽셀 정확도를 보존하면서 매끄러운 전이를 만듭니다. 이를 통해 가장자리 아티팩트와 방사 불연속이 제거된 이음새 없는 대륙 또는 전 지구 래스터 모자이크를 생성합니다. 주요 특징으로는 공통 투영으로의 다중 래스터 기하 정렬, 리샘플링 방법 선택(쌍선형, 3차, 최근접 이웃), 이음새를 제거하는 가장자리 혼합, 센서나 조명 차이를 보정하는 방사 정규화, 수천 개의 입력 래스터 지원이 있습니다. 이 도구는 래스터 우선순위를 자동으로 관리하며 지능적인 채우기 전략으로 공백을 방지합니다. 응용 분야로는 장면 모음으로부터 대륙 규모 위성 영상 모자이크 생성, 여러 비행 경로로부터 이음새 없는 수치 고도 모델 생성, 다중 시기 영상으로부터 합성 광학 모자이크 생성, 무인 항공기(UAV) 조사로부터 정사 모자이크 구축, 중첩 위성 장면으로부터 광역 기본도 생성이 있습니다. 모자이크는 대륙 및 전 지구 분석 워크플로에 필수적입니다. 출력 해석: 출력 래스터는 입력 투영과 해상도를 이어받으며, 혼합 영역은 입력 래스터 간 균형을 이루는 보간 값을 보입니다. 가장자리 아티팩트는 중첩이 부족하거나 방사 정규화가 불량함을 나타내며, 평가 시 모자이크 경계 전반의 이음새와 색상 일관성을 검사합니다. 모자이크 가장자리의 NoData 처리에는 채우기 값과 범위 정의에 주의가 필요합니다. 품질 평가에는 지상 기준점을 통한 기하 검증과 모자이크 값을 입력 래스터와 비교하는 방사 평가가 포함됩니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "경로 배열 또는 쉼표/세미콜론으로 구분된 문자열 형태의 입력 래스터 목록."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "두 래스터를 모자이크하고 가장자리 거리 가중치를 사용하여 중첩 셀을 페더 혼합합니다.",
            "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'(3밴드 RGB 래스터)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "percentage_contrast_stretch": {
            "name": "백분율 대비 스트레치",
            "description": "백분율 대비 스트레치는 전체 동적 범위로 스트레치하기 전에 히스토그램에서 지정된 비율의 극단값(꼬리)을 제거하여 선형 대비 강조를 수행합니다. 알고리즘: 각 밴드에서 하위 및 상위 백분위수 값을 독립적으로 제거하고, 남은 범위를 출력 범위(일반적으로 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": "영상 리샘플링은 최근접 이웃(가장 빠르고 평활화가 가장 적음), 쌍선형(인접 픽셀 간 선형 보간), 쌍삼차(3차 다항식 적합), 3차 스플라인(매끄럽고 연속적인 보간) 기법 등의 보간 방법을 사용하여 픽셀 해상도를 변경합니다. 리샘플링은 기하 정합, 해상도가 혼합된 센서로부터 균일한 해상도의 다중분광 스택 생성, 서로 다른 스케일의 보조 데이터 통합에 필수적입니다. 각 방법은 원래 픽셀 값에 국지 보간 커널을 적합하고, 새 픽셀 위치에서 커널을 평가하여 보간된 값을 반환합니다. 최근접 이웃은 방사 값을 보존하며(범주형 데이터에 적합), 고차 방법은 가장자리를 평활화하고 에일리어싱을 줄이지만 뚜렷한 경계를 흐리게 합니다. 주요 특징으로는 속도-정확도 절충을 최적화하는 선택 가능한 보간 방법, 목표 픽셀 크기나 치수를 통한 출력 해상도 지정, 입력 범위 밖 영역에 대한 자동 배경 값 처리, 리샘플링 아티팩트를 줄이는 선택적 안티에일리어싱 필터링이 있습니다. 응용 분야로는 데이터를 공통 격자에 맞추는 영상 정합, 고유 해상도가 다른 다중분광 스택을 통일하는 해상도 조화, 공간 패턴을 보존하면서 데이터 양을 줄이는 다운샘플링, 시각화를 위해 시각적 세부를 향상시키는 업샘플링이 있습니다. 리샘플링 출력은 일관된 해상도로 영상을 통합합니다. 출력 해상도는 사용자 지정에 맞춰지며, 보간 방법은 가장자리 선명도에 영향을 미칩니다(최근접 이웃은 가장자리를 보존하고 고차 방법은 평활화). 배경 영역(입력 범위 밖)에는 설정 가능한 채우기 값이 부여되며, 출력은 다중분광 분석 워크플로에 원활하게 통합됩니다.",
            "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에서 강도-색상-채도로의 변환은 적색-녹색-청색 색 공간을 지각적으로 의미 있는 성분인 강도(밝기), 색상(색), 채도(색 순도)로 분해합니다. 이 분해는 RGB 삼자극값을 원통 극좌표로 변환하는 표준 수학 공식을 사용하며, 여기서 강도는 휘도를, 색상은 색 각도를, 채도는 색 농도를 나타냅니다. 이 색 공간은 역변환을 통해 원래 색 특성을 보존하면서 강도를 고해상도 데이터로 대체할 수 있으므로 원격탐사에 특히 유용합니다. 주요 특징으로는 경계 사례(무채색 픽셀)를 견고하게 처리하는 수치적으로 안정된 공식, 잘림이나 정보 손실 없는 전체 동적 범위 유지, 다양한 입력 범위에서 일관된 결과를 위한 자동 밴드 스케일링, 대규모 다중분광 스택에 적합한 계산 효율성이 있습니다. 이 기법은 강도를 전정색 데이터로 대체하는 팬샤프닝 워크플로, 컬러 시각화 향상, 분류 알고리즘을 위한 분광 전처리, 지각 정보를 유지하는 컬러-회색조 변환 등 다양한 응용에 활용됩니다. 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 값이 단일 래스터에 패킹된(주로 표준 24비트 RGB 또는 32비트 RGBA 인코딩 사용) 합성 영상에서 개별 색상 밴드를 추출합니다. 분리는 비트 연산을 통해 각 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": "적응형 필터는 국지 영상 통계(평균, 분산, 첨도)에 따라 필터링 강도를 동적으로 조정하여 장면 특성에 반응하는 맥락 인식 평활화를 가능하게 합니다. 구현은 영상을 이동 윈도우로 분할하고, 국지 통계를 계산하여(잡음 우세 영역과 피처 우세 영역 탐지) 그에 따라 필터 매개변수를 선택합니다. 평탄한 영역은 강하게 평활화하고 복잡한 영역은 약하게 필터링합니다. 수학적 기초는 통계 검정을 사용하여 국지 특성을 식별하는 것으로, 분산이 임계값 미만인 영역은 강하게 평활화하고 임계값을 초과하는 영역은 세부를 보존합니다. 주요 특징으로는 자동 매개변수 적응(사용자가 범위를 지정하면 알고리즘이 국지적으로 선택), 모든 필터 커널(가우시안, 중앙값, 형태학적)에 대한 적용성, 광학 및 레이더 영상에서의 효과가 있습니다. 적응형 필터링은 이질적인 위성 모자이크(서로 다른 센서, 촬영 조건)의 전처리, LiDAR 포인트 클라우드 평활화(산림에서는 식생 가장자리를 보존하고 개활지에서는 지면을 평활화), 대상과 배경을 모두 고려하는 선택적 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": "이방성 확산 필터링은 에지와 평탄한 영역을 구분하는 방향성 확산 과정을 통해 반복적인 에지 보존 평활화를 구현합니다. 알고리즘은 이웃과의 가중 차이를 기반으로 각 픽셀을 반복적으로 갱신하며, 균질한 영역 내에서는 평활화를 허용하면서 기울기가 큰 경계를 가로지르는 확산은 줄이는 전도 함수를 사용합니다. 구현은 편미분 방정식 ∂I/∂t = div(c(|∇I|)∇I)를 풀며, 여기서 전도도 c(·)는 국지 기울기 크기에 적응합니다. 이 데이터 기반 접근법은 급격한 전이를 보존하면서 균일한 지역의 잡음을 점진적으로 줄입니다. 주요 특징으로는 명시적 에지 마스크 없이 진정한 에지 보존, 반복 횟수를 통한 자동 스케일 선택, 피처 선명도를 유지하는 효과적인 잡음 감소, 단일 및 다중분광 데이터에 대한 적용성이 있습니다. 이방성 확산은 지형 경사 변환선을 보존하는 LiDAR 포인트 클라우드 평활화, 미묘한 지질 피처 탐지를 위한 위성 영상 잡음 제거, 레이더 표적 에지를 유지하는 SAR 스페클 감소, 에지 충실도가 중요한 의료/과학 영상에 뛰어납니다. 출력 해석: 매끄러운 영역은 점진적으로 균질화되고(값이 국지 평균으로 수렴), 에지는 안정될 때까지 가팔라집니다. 초기 반복(t<5)은 약한 잡음 감소를, 중간 반복(t=5-20)은 상당한 평활화를 제공하며, 과도한 반복(t>50)은 경계 과강조나 거짓 피처의 위험이 있습니다. 출력 값은 원본 데이터 범위 내에 유지되며, 처리가 진행됨에 따라 통계가 지역 평균 쪽으로 이동합니다. 평활화 완료 정도를 평가하려면 출력 분산을 모니터링하십시오. 일반적인 지표로는 신호 대 잡음비 향상과 에지 선명도 지수가 있습니다. 에지 보존 정밀도가 후속 분류나 변화 탐지 정확도에 직접 영향을 미치는 다중 스케일 워크플로에서는 신중하게 적용하십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "iterations": {
                "label": "반복 횟수",
                "description": "확산 반복 횟수(기본값 10)."
              },
              "kappa": {
                "label": "카파",
                "description": "경계 민감도 매개변수(기본값 20.0)."
              },
              "lambda": {
                "label": "람다",
                "description": "(0, 0.25] 범위의 시간 간격, 기본값 0.2."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "bilateral_filter": {
            "name": "양방향 필터",
            "description": "공간 + 강도 커널을 이용한 에지 보존 양방향 평활화입니다. 세부 보존 측면에서 가우시안보다 우수합니다. Sigma_dist=반경, sigma_int=에지 보존 임계값. RGB를 인식합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "sigma_dist": {
                "label": "거리 시그마",
                "description": "픽셀 단위 공간 가우시안 커널의 표준편차(0.5–20.0, 기본값 0.75)."
              },
              "sigma_int": {
                "label": "명도 시그마",
                "description": "래스터 값 단위의 강도 가우시안 커널 표준편차(기본값 1.0)."
              },
              "treat_as_rgb": {
                "label": "RGB로 처리",
                "description": "패킹된 RGB HSI 처리를 강제하려면 true로 설정합니다. false이면 래스터 메타데이터에서 패킹된 RGB가 여전히 자동으로 감지될 수 있습니다."
              },
              "assume_three_band_rgb": {
                "label": "3밴드 RGB로 가정",
                "description": "true(기본값)이면 3밴드 RGB 강도 처리를 지원하는 필터에서 3밴드 uint8/uint16 래스터를 RGB로 취급할 수 있습니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "closing": {
            "name": "닫힘 연산",
            "description": "직사각형 구조 요소를 사용하여 형태학적 닫힘 연산을 수행합니다.",
            "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": "보존적 평활화는 각 픽셀을 유사한 이웃(정의된 강도 범위 내)의 평균으로 대체하는 비선형 필터링을 구현하여, 에지를 보존하면서 잡음을 줄입니다. 구현은 근방을 검사하여 중앙 픽셀과의 강도 차이가 임계값 이내인 픽셀을 식별하고, 이 유사한 값의 픽셀들을 평균합니다. 수학적 공식: F = (1/N) Σ(I_j : |I_j - I_center| < T), 여기서 T는 유사도 임계값이고 N은 유사한 픽셀의 수입니다. 주요 특징으로는 단순한 임계값 기반 유사도 정의, 광학 및 레이더 영상에서의 효과, 매개변수의 해석 용이성(임계값이 에지 선명도를 제어), 최소한의 계산 부담이 있습니다. 보존적 평활화는 다중분광 위성 영상 전처리(분광 경계를 보존하면서 잡음 감소), 열 영상 향상(온도 불연속을 유지하면서 방사 잡음 평활화), 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": "가우시안 차분(DoG) 필터링은 반경이 다른 두 가우시안 블러 영상을 차감하여 에지와 세밀한 피처를 검출하며, 중간 공간 주파수를 강조하는 대역 통과 필터를 만듭니다. 구현은 두 개의 가우시안 블러(작은 반경 σ₁과 큰 반경 σ₂)를 계산한 후 DoG = G(σ₁) - G(σ₂)로 차감합니다. 이 비선형 결합은 세밀한 잡음과 광범위한 조명 추세를 모두 억제하면서 에지와 능선을 강조합니다. 주요 특징으로는 조정 가능한 주파수 응답(비율 σ₂/σ₁이 대역 통과 특성을 제어), 0 중심 출력(양극성: 양수 및 음수 값), 에지 검출과 피처 추출에 대한 적용성, 가우시안 재사용을 통한 계산 효율성이 있습니다. 가우시안 차분은 지질 구조 탐지(단층, 선구조가 높은 DoG 반응으로 나타남), 정사영상에서의 건물 추출, 원격탐사 모자이크의 세밀한 질감 강조, 신경과학에서 영감을 받은 처리 모델에 뛰어납니다. 출력 해석: 에지는 최대 반응(밝은 쪽에서 양수, 어두운 쪽에서 음수)을 만들며, 영교차는 정확히 전이 지점에 위치합니다. 영교차 검출은 에지 방향과 무관하게 실제 에지를 드러냅니다. DoG 크기는 에지 강도를 나타내며, 8비트 입력의 일반적인 범위는 국지 대비에 따라 -1000에서 +1000입니다. 비율 σ₂/σ₁은 대역 통과 중심을 결정하며, 비율~2는 매우 세밀한 피처를, 비율~5는 중간 피처를, 비율~10은 더 거친 피처를 강조합니다. 쌍봉형 출력 분포(양 및 음의 극단에 봉우리)는 양호한 에지 분리를 나타냅니다. 일반적인 아티팩트로는 강한 에지 주변의 후광과 주파수 대역이 피처 스케일과 맞지 않을 때의 반응 부족 가능성이 있습니다. 에지 추출을 위해 크기 임계값 처리와 결합하십시오. 잡음이 많은 위성 영상에서 견고한 피처를 추출하려면 형태학적 후처리 전에 적용하십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "filter_size_x": {
                "label": "필터 크기 X",
                "description": "더 작은 가우시안 시그마(0.25-20.0, 기본값 2.0)."
              },
              "sigma2": {
                "label": "시그마 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": "에지 보존 평균 필터는 에지나 잡음을 나타낼 가능성이 높은 이상치 픽셀을 제외하고 국지 평균을 계산하여 선택적 픽셀 평균화를 수행합니다. 구현은 픽셀 근방을 정렬하고, 극단값(최저 및 최고 값 또는 통계적 임계값을 초과하는 값)을 제거한 후 나머지 값을 평균합니다. 이 견고한 접근법은 평활화와 선명도 보존 사이의 균형을 맞춥니다. 변형으로는 중앙 픽셀을 강조하는 가중 평균과 국지 통계에 기반한 적응형 임계값 선택이 있습니다. 주요 특징으로는 간단한 매개변수 제어(제외 개수 또는 임계값), 작은 근방 정렬을 통한 계산 효율성, 세부를 흐리지 않는 효과적인 잡음 감소, 광학·레이더·열 데이터에 대한 적용성이 있습니다. 에지 보존 평균 필터링은 식생 지수 계산을 위한 광학 위성 전처리(피처를 흐리지 않고 그림자와 구름 제거), 경사 변환선을 보존하는 DEM 평활화, 경계 선명도를 유지하는 열 영상 잡음 제거, 수동 디지타이징을 위한 정사영상 준비에 뛰어납니다. 출력 해석: 제거된 이상치는 에지와 잡음 영역에 집중되며, 나머지 값의 평균이 국지 평활화를 만듭니다. 제외 매개변수는 에지 선명도를 제어하며, 극단값 하나를 제외하면 소금-후추 잡음이 제거되고, 여러 극단값을 제외하면 에지 전이가 더 부드러운 매끄러운 결과가 만들어집니다. 출력 범위는 입력 범위 내에 유지되며, 통계는 정상값 평균 쪽으로 이동합니다. 필터링된 영역(일반적으로 분산이 큰 지역)을 식별하려면 출력과 입력의 차이를 모니터링하십시오. 에지 보존 품질은 이상치 식별 정확도에 따라 달라지므로 피처가 선명하게 유지되는지 육안으로 확인하십시오. 일반적인 아티팩트로는 임계값이 너무 엄격할 때의 평활화 부족과 제외 개수가 너무 많을 때의 과도한 필터링이 있습니다. 반복 횟수로 점진적 필터링이 가능하며, 한 번의 처리는 부드러운 평활화를 제공합니다. 피처 경계를 유지하면서 잡음으로 인한 범주 오분류를 줄이려면 임계값 기반 분류 전에 적용하십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "filter_size": {
                "label": "필터 크기",
                "description": "픽셀 단위 정사각 근방 크기(홀수 정수, 기본값 11)."
              },
              "threshold": {
                "label": "임계값",
                "description": "국지 평균에 포함할 최대 절대 이웃 차이(기본값 15.0)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "emboss_filter": {
            "name": "엠보스 필터",
            "description": "엠보스 필터는 방향성 음영을 통해 에지 피처를 강조하여, 방향성 조명 모의에 따라 에지가 솟아오르거나 움푹 들어간 표면처럼 보이는 독특한 3차원 부조 외관을 만듭니다. 이 필터는 에지 검출과 단방향 조명(일반적으로 왼쪽 위 사분면에서 오는 빛을 모의)을 결합한 3×3 커널을 적용하여, 매끄러운 영역은 보존하면서 경계에서 극적인 시각적 대비를 만듭니다. 엠보스 변환은 특정 방향의 가중 이웃 값을 차감하여, 하이라이트와 그림자가 지형 및 피처 불연속을 두드러지게 하는 출력을 생성합니다. 주요 특징으로는 모의 광원 방향을 조정할 수 있는 직관적인 방향 제어(8방향 변형), 육안 판독을 향상시키는 3D 지각의 자연스러운 통합, 원본 영상의 다양한 조명 조건에서의 견고한 성능이 있습니다. 엠보스 필터는 품질 보증, 판독용 시각화, 피처 경계 강조 응용에 활용됩니다. 활용 사례로는 광물 경계가 부조 패턴으로 드러나는 지질 판독을 위한 시각적 향상, 미묘한 경계의 가시성을 높이는 항공 사진 판독, 엠보스 처리된 수치 고도 모델로 인상적인 기복도를 만드는 지도 제작, 매장된 구조물이 미묘한 지형 변화로 나타나는 고고학적 피처 탐지가 있습니다. 출력 해석: 높은 값은 조명된 표면으로, 낮은 값은 그림자로 취급되어 사람의 눈이 자연스럽게 기복으로 해석하는 지각적 깊이를 만듭니다. 엠보스 출력은 일반적으로 0-255 시각화 범위로 스케일링해야 하며, 원시 출력에는 그림자 영역을 나타내는 음수 값이 포함되는 경우가 많습니다. 이 효과는 순전히 시각적이며, 엠보스는 실제 조명을 계산하거나 고도 파생물을 생성하지 않습니다. 다중분광 영상의 경우 분석 목적에 따라 주성분이나 선택한 밴드에 적용하십시오. 후처리로는 시각적 효과를 최적화하는 대비 강조나 톤 매핑이 흔히 포함됩니다.",
            "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 필터는 반복적인 분리형 박스(평균) 필터링을 통해 신속한 가우시안 근사 평활화를 제공하며, 블러 반경과 관계없이 O(N) 계산 복잡도로 가우시안에 가까운 블러 응답을 얻습니다. 구현은 연속적인 박스 컨볼루션(각각 국지 픽셀 평균 계산)을 적용하여 누적 가우시안 분포를 근사하며, N번의 반복으로 점점 더 큰 가우시안 커널을 근사합니다. 수학적 기초는 중심 극한 정리로, 박스 함수의 반복 컨볼루션은 점근적으로 가우시안 분포에 접근합니다. 주요 특징으로는 대용량 영상에서 큰 커널 평활화를 가능하게 하는 계산 속도, 메모리 요구량을 줄이는 분리형 구현, 반복 횟수를 통한 매개변수 제어(블러 반경 제어), 모든 데이터 유형에 대한 효과가 있습니다. Fast Almost Gaussian 필터링은 다중 스케일 분석을 위한 신속한 영상 피라미드, 실시간 위성 영상 탐색, 분류 전 방대한 원격탐사 데이터셋의 전처리, 반응성 있는 평활화가 필요한 대화형 영상 뷰어에 뛰어납니다. 출력 해석: 반복 횟수는 블러 반경과 직접 관련되며, N=1은 최소한의 평활화를, N=3-5는 중간 정도의 블러를, N>10은 큰 커널 가우시안에 근사하는 강한 평활화를 만듭니다. 반복이 증가함에 따라 출력 값은 점진적으로 국지 평균 쪽으로 이동하며, 분산 감소는 예측 가능한 패턴을 따릅니다. 나머지 값은 입력 데이터 범위 내에 유지됩니다. 실제 가우시안 필터링과 비교하면 대부분의 응용에서 2-5% 오차 이내의 허용 가능한 근사를 보입니다. 실제 가우시안 필터링 대비 속도 향상은 반경이 클수록 극적으로 커져, 반경 >20픽셀에서 5-20배 빠릅니다. 사소한 아티팩트로는 에지를 따른 미묘한 물결 무늬(반복에 걸쳐 누적되는 박스 아티팩트)와 가우시안과 약간 다른 경계 처리가 있습니다. 충분한 평활화를 나타내는 다봉 분포가 있는지 출력 히스토그램을 모니터링하십시오. 속도가 사소한 근사 오차를 정당화하는 영상 전처리 파이프라인에 적용하십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "sigma": {
                "label": "시그마",
                "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": "여러 스케일에서 혈관 모양(관 형태) 구조를 검출하기 위한 다중 스케일 Frangi 혈관성 강조를 수행합니다. 헤시안 행렬 고윳값 분석에 기반합니다. 선형 피처(혈관, 도로, 하천)에는 강하게, 블롭 형태 구조에는 약하게 반응합니다. 다중 스케일 분석(여러 sigma 값 시도)으로 서로 다른 폭의 혈관을 자동으로 검출합니다. 선형 피처 검출을 위해 의료 영상과 원격탐사에서 널리 사용됩니다. Frangi 혈관성은 주곡률(헤시안 고윳값)을 사용하여 국지 구조를 분류하며, 선형 피처에서는 혈관성이 높고 평탄지나 블롭에서는 낮습니다. 다중 스케일 구현은 여러 sigma(폭) 값에서 적용한 후 응답을 결합합니다. 도로, 하천, 혈관망 검출에 탁월합니다. 여러 스케일에 대한 계산 부담은 중간 수준입니다. 출력은 인식 가능한 피처에 반응하므로 해석이 매우 쉽습니다. 응용 분야: (1) 위성 영상에서의 도로 검출, (2) 하천/수로망 추출, (3) 일반적인 선형 피처 검출, (4) 혈관 검출(의료 영상), (5) 다중 스케일 구조 검출.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "scales": {
                "label": "스케일",
                "description": "픽셀 단위 가우시안 유사 스케일 목록(기본값 [1.0, 2.0, 3.0])."
              },
              "beta": {
                "label": "베타",
                "description": "블롭 억제를 위한 Frangi beta 매개변수(기본값 0.5)."
              },
              "c": {
                "label": "C",
                "description": "구조 민감도를 위한 Frangi c 매개변수(기본값 15.0)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "gabor_filter_bank": {
            "name": "Gabor 필터 뱅크",
            "description": "다방향 Gabor 응답 필터링, 즉 방향성 질감 분석을 수행합니다. 여러 방향(일반적으로 0°, 45°, 90°, 135°)의 Gabor 필터 뱅크를 적용하여 방향성 질감 특징을 추출합니다. Gabor 응답은 질감의 강도와 방향을 나타냅니다. 방향성 피처 검출, 질감 특성화, 방향성 패턴 분석에 유용합니다. 각 방향은 별도로 출력됩니다. Gabor 필터링은 방향별 웨이블릿과의 컨볼루션으로 방향성 질감을 추출합니다. 각 방향은 해당 방향으로 정렬된 피처를 드러냅니다. 국지 질감의 방향과 강도를 드러내는 여러 밴드(방향당 하나)를 출력합니다. Gabor 응답은 컴퓨터 비전에서 질감 특징 추출과 객체 검출의 기초입니다. 필터 뱅크를 통해 포괄적인 방향성 분석이 가능합니다. 응용 분야: (1) 방향성 질감 분석, (2) 방향성 피처 검출(능선, 계곡, 선형 구조), (3) 방향성 침식/퇴적 매핑, (4) 도로/하천 검출(선형 피처), (5) 질감 기반 분류.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "sigma": {
                "label": "시그마",
                "description": "픽셀 단위 가우시안 포락 시그마(기본값 2.0)."
              },
              "frequency": {
                "label": "주파수",
                "description": "사인파 공간 주파수(사이클/픽셀, 기본값 0.2)."
              },
              "orientations": {
                "label": "방향 수",
                "description": "필터 뱅크의 방향 개수(기본값 6)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "gaussian_filter": {
            "name": "가우시안 필터",
            "description": "거리 가중 커널을 사용한 수학적으로 최적인 가우시안 평활화입니다. 다중 스케일 분석, 에지 검출, 대역 통과 필터링의 기초입니다. sigma 매개변수가 평활화 강도를 제어하며, RGB를 인식합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "sigma": {
                "label": "시그마",
                "description": "픽셀 단위 가우시안 표준편차(0.5-20.0, 기본값 0.75)."
              },
              "treat_as_rgb": {
                "label": "RGB로 처리",
                "description": "RGB 강도 공간 동작을 강제하려면 true로 설정합니다."
              },
              "assume_three_band_rgb": {
                "label": "3밴드 RGB로 가정",
                "description": "true(기본값)이면 명시적 메타데이터가 없을 때 3밴드 uint8/uint16 래스터를 RGB로 취급할 수 있습니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "glcm_texture": {
            "name": "GLCM 질감",
            "description": "회색도 동시발생 행렬(GLCM) 질감 분석기는 지정된 변위 거리와 방향에서 픽셀 회색도 값 간의 공간 관계를 정량화하는 2차 통계적 질감 척도를 추출하여, 농업 식생 패턴, 건조 환경 구조, 지질 구조를 구분하는 정교한 질감 분류를 가능하게 합니다. GLCM은 고정된 오프셋에서 회색도 쌍이 얼마나 자주 나타나는지를 포착하는 확률 행렬을 계산하고, 네 가지 표준 Haralick 통계량인 대비(국지 변동 측정), 상관(선형 의존성 측정), 균질성(대각선과의 근접성 측정), 에너지(균일성 측정)를 계산합니다. 이 도구는 8개의 방향 오프셋(0°, 45°, 90°, 135° 및 그 반대 방향)을 지원하여 방향성 질감 민감도를 제공하며, 경작지 이랑, 건물 배열, 지질 구조와 같은 방향성 패턴을 검출합니다. 주요 특징으로는 이방성 질감 특성을 드러내는 다방향 분석, 스케일 민감도를 최적화하는 변위 매개변수 조정, 처리 부담을 줄이는 여러 질감 척도의 동시 계산, 시각적으로 미묘한 표면 특성을 구분하는 고유한 능력이 있습니다. 활용 사례로는 정밀 농업(작물 유형 분류, 경작지 경계 검출, 작물 스트레스 평가), 도시 분석(건물 밀도 매핑, 불투수면 추출), 지질 원격탐사(암석 유형 판별, 구조 패턴 인식)가 있습니다. 응용 분야로는 분광 및 질감 특징을 결합한 토지피복 분류, 분류 정확도를 향상시키는 객체 기반 영상 분석, 위성 영상의 기기 아티팩트를 검출하는 품질 관리, 센서 잡음으로부터 의미 있는 변화를 분리하는 변화 탐지가 있습니다. 출력 해석에는 각 통계량의 의미를 이해해야 합니다. 높은 대비는 거칠거나 다양한 질감을, 높은 상관은 선형 패턴을, 높은 균질성은 균일한 질감을, 높은 에너지는 질서 있는 반복 패턴을 나타냅니다. 출력 밴드를 결합하여 질감 지수를 만들 수 있습니다(예: GLCM 균질성을 대비로 나누면 균질한 지역이 강조됨). 방향 집계 모드(평균/최소/최대/개별)는 출력 차원과 해석에 영향을 미칩니다. 일반적인 질감 분석에서는 견고한 분류를 위해 여러 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": "유도 필터는 필터 출력을 가이드 영상(일반적으로 원본 또는 관련 참조 레이어)과의 국지 선형 관계로 제약하여 에지 보존 평활화를 구현합니다. 구현은 영상을 중첩되는 직사각형 영역으로 나누고, 각 영역 내에서 선형 회귀 매개변수를 계산하여 가이드 영상 구조를 존중하면서 출력의 평활성을 강제합니다. 수학적 공식은 ||Fᵢ - a·Gᵢ - b||² + ε||a||²를 최소화하며, 여기서 Fᵢ는 필터링된 출력, Gᵢ는 가이드 영상, (a, b)는 국지 선형 매개변수입니다. 주요 특징으로는 유연성(가이드 영상이 필터링 대상 영상과 독립적일 수 있음), O(N) 분리형 구현을 통한 계산 효율성, 에지 보존 강도를 조정할 수 있는 매개변수 제어, 단일 또는 다중분광 가이드에서의 효과가 있습니다. 유도 필터링은 광학 데이터가 SAR 잡음 제거를 안내하는 다중 센서 융합 워크플로, 동시 취득된 정사영상을 이용한 LiDAR 분류 개선, 시간적 참조 영상을 이용한 위성 모자이크의 그림자/구름 제거, 지도 정규화 작업에서의 세부 강조에 뛰어납니다. 출력 해석: 필터링된 영역은 가이드 영상 구조와 국지적으로 유사하게 유지되며, 균질한 영역 내에서는 강도 평균화가 진행됩니다. 평활화 반경은 공간 범위를 제어하고(반경이 클수록 평활화 증가), 정규화 매개변수 ε는 평활성과 구조 충실도 사이의 균형을 맞춥니다(ε가 클수록 더 매끄럽고, 작을수록 세부가 많음). 출력 범위는 입력과 일치하며, 가이드 영상과의 육안 비교로 에지 보존 충실도를 검증합니다. 일반적인 아티팩트로는 강한 불연속에서의 과평활화(적절한 매개변수 선택 필요)와 가이드 정보가 부족한 영역에서의 평활화 부족(가이드 영상 품질 확인 필요)이 있습니다. 정렬 품질을 평가하려면 필터링된 출력과 가이드 영상 간의 교차 상관을 모니터링하십시오. 한 소스의 에지 정보가 다른 소스의 필터링을 안내하는 영상 융합, 샤프닝, 재구성 워크플로에 전략적으로 적용하십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "radius": {
                "label": "반경",
                "description": "픽셀 단위 가이디드 필터 윈도우 반경(기본값 4)."
              },
              "epsilon": {
                "label": "엡실론",
                "description": "국지 분산에 대한 정규화 매개변수(기본값 0.01)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "high_pass_bilateral_filter": {
            "name": "고역 양방향 필터",
            "description": "입력 래스터에서 양방향 평활화 결과를 차감하여 고역 통과 잔차를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "sigma_dist": {
                "label": "거리 시그마",
                "description": "픽셀 단위 공간(거리) 가우시안 커널의 표준편차(0.5–20.0, 기본값 0.75)."
              },
              "sigma_int": {
                "label": "명도 시그마",
                "description": "래스터 값 단위의 강도 가우시안 커널 표준편차(기본값 1.0)."
              },
              "treat_as_rgb": {
                "label": "RGB로 처리",
                "description": "고역 통과 차분 전에 패킹된 RGB 래스터에 대해 HSI 강도 필터링을 강제하려면 true로 설정합니다."
              },
              "assume_three_band_rgb": {
                "label": "3밴드 RGB로 가정",
                "description": "true(기본값)이고 명시적 색상 메타데이터가 없으면 3밴드 uint8/uint16을 RGB로 해석하도록 허용합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 파일 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "high_pass_filter": {
            "name": "고역 통과 필터",
            "description": "고역 통과 필터는 원본 영상에서 저주파(평활화된) 버전을 차감하여 영상의 고주파 공간 성분을 분리합니다. 수학적으로는 기울기를 강조하고 광범위한 톤 변동을 억제하도록 설계된 커널로 영상을 컨볼루션하여 이를 달성합니다. 구현은 커널 크기와 영상 치수에 따라 직접 컨볼루션 또는 주파수 영역 처리를 사용합니다. 이 필터는 대규모 조명 추세를 제거하면서 에지, 세밀한 질감 세부, 소규모 변동을 강조합니다. 주요 차별화 특징으로는 경계 아티팩트 없는 에지 대비 보존, 커널 반경에 따른 선택적 주파수 감쇠, 회색조 및 다중분광 영상 모두에 대한 직접 적용성이 있습니다. 고역 통과 필터링은 미묘한 지형 피처를 강조해야 하는 지형 분석, 육안 판독을 위한 위성 영상 샤프닝, 소규모 지질 구조 탐지, 머신러닝 분류를 위한 데이터 전처리에 매우 유용합니다. 또한 변화 탐지를 위한 정사영상 준비와 LiDAR 파생 산출물 향상에도 필수적입니다. 출력 해석: 양수 값은 국지 최댓값(밝은 에지)을, 음수 값은 국지 최솟값(어두운 에지)을 나타낸다는 점을 이해해야 합니다. 8비트 영상의 일반적인 범위는 ±100이며, 평균이 0인 출력은 고주파 추출이 성공했음을 나타냅니다. 일반적인 아티팩트로는 강한 불연속에서의 링잉과 원본 영상에 잡음이 많을 때의 잡음 증폭이 있습니다. 스케일 해석은 커널 반경에 따라 달라지며, 작은 커널은 세밀한 질감(개별 픽셀)을, 큰 커널은 중간 스케일 피처(수십 픽셀에 걸친 지형 변동)를 강조합니다. 출력 통계를 모니터링하십시오. 과도한 0 중심화는 과처리 가능성을 나타냅니다. 원본을 재구성하거나 다중 스케일 분해 워크플로에 사용하려면 보완적인 저역 통과 결과와 함께 적용하십시오.",
            "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. 고역 통과 필터링(세부 강조)과 중앙값의 견고성(잡음 제거)을 결합합니다. 출력은 0을 중심으로 합니다(음수 = 주변보다 어두움, 양수 = 더 밝음). 가우시안 기반 고역 통과보다 이상치에 견고합니다. 고역 통과 잔차는 중앙값 추세로부터의 국지 편차를 드러냅니다. 이상치에 대해 중앙값이 평균보다 안정적이므로 잡음이 많은 데이터에 특히 견고합니다. 출력은 세밀한 스케일의 변동을 강조합니다. 가우시안 평활화 버전에 적용하는 경우가 많습니다(대역 통과 필터 생성). 잡음이 많은 영상의 질감 강조와 피처 추출에 유용합니다. 응용 분야: (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": "각 밴드에 대해 합산 면적(적분 영상) 변환을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "k_nearest_mean_filter": {
            "name": "K-최근접 평균 필터",
            "description": "에지 보존 k-최근접 이웃 평균 평활화를 수행합니다. 근방을 중앙 값과의 거리에 따라 정렬하고 가장 가까운 k개의 값을 평균합니다. 유사도 가중을 통해 에지를 보존하는 하이브리드 방식입니다. 중앙 픽셀과 가장 유사한 k-1개의 이웃을 평균합니다. 단순 k-NN보다 정교합니다(공간 및 강도 유사성을 모두 고려). 양방향 필터에 비해 계산 효율적입니다. K-최근접 방식은 이웃을 적응적으로 선택하여, 중앙과 가까운 픽셀 값은 평균하고 다른 픽셀은 무시합니다. K 매개변수가 평활화를 제어합니다: k=1(평활화 없음), k=n(모든 이웃 = 평균 필터). 일반적으로 k=n/2(근방의 절반)입니다. 양방향 필터의 효율적인 대안으로, 더 낮은 계산 비용으로 유사한 에지 보존을 제공합니다. 강도 불연속이 강한 영상에 특히 유용합니다. 응용 분야: (1) 에지 보존 평활화(양방향 필터의 대안), (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 필터링은 급애와 단구를 보존하는 LiDAR 파생 DEM 평활화, 중심선 선명도를 유지하는 고해상도 영상의 도로망 추출, 항공 사진에서의 건물 풋프린트 구획, 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 필터는 레이더 반사가 승산 잡음 I = S·N(S는 신호, N은 승산 잡음)을 따른다고 가정하는 Lee의 승산 모델을 사용하여 SAR 스페클을 감소시킵니다. 구현은 국지 평균과 분산을 계산하여 스페클 분산을 추정한 후 F = μ + (1 - σₙ²/σ_I²)·(I - μ)로 필터링하며, 여기서 σₙ²는 스페클 분산, σ_I²는 전체 분산입니다. 이 모델 기반 접근법은 스페클을 억제하면서 결맞음이 높은 피처를 보존합니다. 주요 특징으로는 SAR 전용 잡음 모델(가우시안이 아닌 승산 모델), 점 표적과 에지의 보존, 직관적인 매개변수 해석(윈도우 크기가 결맞음 측정을 제어), 단일 편파 및 다중 편파 SAR에서 입증된 효과가 있습니다. Lee 필터링은 농업 모니터링, 산림 분류, 해수면 모니터링, 홍수 매핑 워크플로를 위한 SAR 전처리에 뛰어납니다. 출력 해석: 결맞음이 높은 영역(점 표적, 강한 에지)은 최소한으로 필터링되고, 결맞음이 낮은 영역(스페클 잡음, 약한 경계)은 강하게 필터링됩니다. 스페클 분산 추정은 출력에 영향을 미치며, 정확한 추정에는 충분한 균질 픽셀이 필요합니다. 분산을 과소 추정하면 평활화가 부족하고, 과대 추정하면 과평활화가 발생합니다. 윈도우 크기는 결맞음 측정 해상도를 제어하며, 작은 윈도우(3×3)는 세밀한 세부를 보존하고, 큰 윈도우(7×7)는 분산 추정을 개선하지만 세부 손실의 위험이 있습니다. 출력 스케일은 입력과 일치하며, 로그 시각화로 가시성을 높일 수 있습니다. 일반적인 잡음 감소는 룩 수에 따라 5-10 dB의 분산 감소를 달성합니다. 출력 히스토그램에서 잔여 스페클 신호를 모니터링하십시오. 매끄러운 분포는 적절한 필터링을 시사합니다. 아티팩트로는 결맞음이 약한 영역에서의 에지 흐림 가능성과 선형 피처에서의 방향 편향이 있습니다. 분류 특징의 무결성을 유지하면서 스페클 억제가 필요한 SAR 분류에 전략적으로 적용하십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "filter_size_x": {
                "label": "필터 크기 X",
                "description": "픽셀 단위 근방 너비(홀수 정수, 기본값 11)."
              },
              "filter_size_y": {
                "label": "필터 크기 Y",
                "description": "픽셀 단위 근방 높이(홀수 정수, 기본값 11)."
              },
              "sigma": {
                "label": "시그마",
                "description": "중심값 주변의 강도 포함 반폭(기본값 10.0)."
              },
              "m_value": {
                "label": "M 값",
                "description": "대체 평균 계산 전 최소 범위 내 표본 수(기본값 5.0)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "line_detection_filter": {
            "name": "선 탐지 필터",
            "description": "선 검출 필터는 선 연결성과 연속성에 최적화된 방향성 컨볼루션 커널을 적용하여 네 가지 주요 방향(수평, 수직, 두 대각선)에 걸쳐 도로, 하천, 송전선, 지질 선구조 등의 선형 피처를 강조하도록 설계된 특수 에지 검출기입니다. 이 필터는 각 주요 방향으로 정렬된 선형 구조를 강조하면서 수직 방향 잡음과 무작위 피처 변동을 억제하는 3×3 커널을 사용합니다. 방향성 접근법은 방향별로 검출 결과를 분리하므로, 후속 응용에서 수평 기반시설(파이프라인, 경작지 경계)과 수직 구조(가로수 열, 공공시설 회랑)를 구분할 수 있습니다. 주요 특징으로는 별도의 크기 및 방향 밴드를 생성하는 다방향 분해, 선 폭과 대비 변동에 대한 적응형 민감도 조정, 복잡한 지형에 묻힌 미묘한 선형 피처에서의 뛰어난 성능이 있습니다. 활용 사례로는 기반시설 매핑(도로, 철도, 송전선), 자연 피처 추출(하천, 능선, 단층), 토지이용 경계 구획이 있습니다. 응용 분야로는 지적 디지타이징을 위한 벡터 변환 전처리, 정사 사진으로부터의 교통망 추출, 위성 영상을 이용한 지질 구조 매핑, 원격탐사 분석에서의 패턴 인식이 있습니다. 출력 해석: 각 방향 성분은 해당 특정 방향의 선 강도를 드러내므로, 네 가지 방향 출력을 모두 검토하여 주된 피처 방향을 식별하십시오. 크기 값이 높을수록 선 연속성이 강하고, 낮은 값은 잡음이나 끊김을 시사합니다. 출력은 본질적으로 희소하여 선형 피처를 나타내는 픽셀만 강조되며, 배경 영역은 0에 가깝게 유지됩니다. 다방향 출력을 통해 도로(시가지에서는 일반적으로 수평/수직)와 자연 선구조(임의 방향)를 구분하는 분류 후 처리가 가능합니다. 방향 성분을 결합하여 통합 선 지도를 생성하거나, 방향성 구조 매핑을 위해 각 방향을 개별적으로 분석하십시오.",
            "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": "연결된 이진 래스터 피처를 한 셀 폭의 골격선으로 축소합니다.",
            "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다수결 필터링은 중앙값 필터링의 최빈값 기반 대응입니다. 범주형 데이터(분류 영상, 토지피복)의 경우 다수결은 잡음을 평활화하면서 클래스 정의를 보존합니다. 연속형 데이터의 경우 다수결은 값 분포의 국지 최고점을 드러낼 수 있습니다. \"소금-후추\" 분류 아티팩트를 제거하기 위해 소수 클래스 제거(분류 후 정리)가 뒤따르는 경우가 많습니다.\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": "이동 윈도우 최댓값을 계산하여 국지 최고점과 능선을 드러냅니다. 형태학적 영상 처리의 팽창 연산자입니다. 최고점, 능선, 최대 진폭 피처 검출에 유용합니다. 단일 이상치에 민감합니다(윈도우 내 높은 값 하나가 높은 출력을 만듦).\n\n최댓값 필터는 형태학적 \"팽창\" 연산자로, 밝은 영역을 확장하고 어두운 영역을 축소합니다. 반복 적용하면(다중 패스 팽창) 평활화된 최고점이 만들어지고 고립된 피처가 근방을 채우도록 커집니다. 최솟값 필터와 결합하면 닫힘(팽창 후 침식)과 열림(침식 후 팽창)이 가능합니다. 형태학적 피처 검출과 다중 스케일 분석에 필수적입니다.\n\n응용 분야: (1) 크기 기반 필터링을 위한 형태학적 팽창, (2) 작은 구멍을 채우기 위한 팽창→침식을 통한 닫힘, (3) 지형 및 영상에서의 최고점/능선 식별, (4) 수심/DEM에서의 국지 상한 수준, (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": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "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번째 백분위수로 대체합니다. 에지를 보존하는 견고한 잡음 필터입니다(비선형). 뚜렷한 경계를 유지하면서 임펄스 잡음(소금-후추) 제거에 특히 효과적입니다. 출력 값은 근방의 실제 픽셀 값입니다(보간되지 않음).\n\n중앙값 필터링은 비선형이며, 새로운 값을 만들거나 에지를 흐리게 하지 않는다는 점에서 잡음 감소에 있어 평균 필터링보다 결정적인 장점이 있습니다. 필터 크기가 크면 급격한 전이를 보존하면서 강하게 평활화합니다. 원격탐사, 의료 영상, SAR 영상 처리에서 널리 사용됩니다. 계산 비용은 필터 크기에 따라 증가하지만 일반적으로 양방향 또는 유도 필터보다 빠릅니다.\n\n응용 분야: (1) SAR 영상 스페클 감소(특히 위상 결맞음에 효과적), (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."
              },
              "sig_digits": {
                "label": "유효 자릿수",
                "description": "양자화 순위 필터링에 사용되는 유효 자릿수(기본값 2)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "minimum_filter": {
            "name": "최소값 필터",
            "description": "이동 윈도우 최솟값을 계산하여 국지 저점과 골을 드러냅니다. 형태학적 영상 처리의 침식 연산자입니다. 계곡 바닥, 와지, 최저 고도 피처 검출에 유용합니다. 단일 이상치에 민감합니다(윈도우 내 낮은 값 하나가 낮은 출력을 만듦).\n\n최솟값 필터는 형태학적 \"침식\" 연산자로, 밝은 영역을 축소하고 어두운 영역을 확장합니다. 반복 적용하면(다중 패스 침식) 평활화된 계곡이 만들어지고 고립된 피처가 사라집니다. 최댓값 필터(팽창)와 결합하면 열림(침식 후 팽창)과 닫힘(팽창 후 침식) 연산이 가능합니다. 다중 스케일 분해에 자주 사용되며, 3×3, 11×11, 31×31에서의 최솟값을 비교하여 피처 스케일을 식별합니다.\n\n응용 분야: (1) 크기 기반 필터링을 위한 형태학적 침식, (2) 작은 잡음 객체를 제거하기 위한 침식→팽창을 통한 열림, (3) 지형에서의 와지/계곡 식별, (4) 수심/DEM에서의 국지 바닥 수준, (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": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "non_local_means_filter": {
            "name": "비국소 평균 필터",
            "description": "비국지 평균 필터링은 이웃 픽셀이 아니라 영상 전체에서 식별한 유사 패치를 평균하여 강력한 잡음 제거를 수행하며, 영상의 자기 유사성을 활용해 구조를 보존하면서 잡음을 억제합니다. 구현은 패치 공간에서의 유클리드 거리로 각 대상 패치와 유사한 패치를 식별하고, 유사도에 따라 유사 패치에 지수적으로 가중치를 부여한 후 가중 패치를 평균합니다. 알고리즘은 Fᵢ = (1/Z) Σⱼ exp(-d(Pᵢ, Pⱼ)²/h²) · Iⱼ를 계산하며, 여기서 d는 패치 거리, h는 대역폭 제어, Z는 정규화 항입니다. 주요 특징으로는 공간 근접성만이 아닌 유사도 탐색을 통한 우수한 잡음 제거, 복잡한 질감과 세밀한 세부에서의 효과, 모든 데이터 유형에 대한 적용성, 의료·위성·사진 영상에서 입증된 성능이 있습니다. 비국지 평균 필터링은 세밀한 질감과 구조를 보존하는 상세한 위성 영상 복원, 변화 탐지 준비를 위한 다중 시기 스택 평균화, 잡음이 매우 많은 조사 데이터(초음파, 초분광)의 잡음 제거, 고고학/항공 조사 영상 향상에 뛰어납니다. 출력 해석: 영상 전체의 유사한 영역이 각 출력 픽셀에 기여하며, 국지적으로 유사하지 않은 영역의 기여는 무시할 만합니다. 패치 크기는 피처 보존을 제어하고(큰 패치 = 더 매끄러운 결과, 작은 패치 = 더 많은 세부), 대역폭 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": "직사각형 구조 요소를 사용하여 형태학적 열림 연산을 수행합니다.",
            "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": "올림픽 필터는 각 픽셀 근방에서 가장 높은 값 하나와 가장 낮은 값 하나를 제거한 후 나머지 픽셀을 평균하는 순위 기반 평활화를 구현합니다. 이 견고한 필터링 접근법은 중심 경향을 보존하면서 극단적인 이상치(잡음 또는 불필요한 값일 가능성이 높음)를 제거합니다. 수학적 공식: F = (1/(N-2)) Σ(I_sorted[2:N-1]), 여기서 정렬된 근방 값은 최고값과 최저값을 제외합니다. 구현은 작은 근방의 정렬(계산 효율적)만 필요하지만 효과적인 잡음 감소를 제공합니다. 주요 특징으로는 간단한 이상치 제거 전략, 효과적인 소금-후추 잡음 감소, 에지 인식 필터링(에지는 흔히 극단값으로 나타남), 모든 데이터 유형에 대한 적용성이 있습니다. 올림픽 필터링은 광학 위성 영상 전처리(고립된 밝은 구름 픽셀과 어두운 그림자 제거), 측량 잡음 아티팩트를 줄이는 DEM 평활화, 열 영상 잡음 제거(센서 이상치 제거), 레이더 영상 전처리에 뛰어납니다. 출력 해석: 대칭적인 잡음 분포(높은/낮은 이상치의 수가 같음)는 대칭적으로 필터링되고, 치우친 분포(높은 값이나 낮은 값이 더 많음)는 방향성 필터링을 만듭니다. 근방 크기는 평활화 정도를 제어하며, 3×3 윈도우는 9개 픽셀 중 2개의 극단값을 제거하고(약한 필터링), 더 큰 윈도우는 더 강하게 필터링합니다. 출력 값은 입력 범위 내에 유지됩니다(출력은 실제 근방 값의 평균). 통계는 특히 이상치를 대상으로 하는 통제된 분산 감소를 보입니다. 차이 영상(원본 - 필터링 결과)은 제거된 이상치를 강조하며, 높은 값이 집중된 영역은 효과적인 잡음 분리를 나타냅니다. 일반적인 아티팩트로는 이상치 빈도가 낮을 때의 평활화 부족과 에지 픽셀이 지속적으로 극단값으로 순위가 매겨질 때의 에지 흐림이 있습니다. 여러 번 반복하면 점진적 평활화가 가능하며, 한 번의 처리는 잡음을 줄이고 반복 처리는 평활화를 강화합니다. 간단하고 해석 가능한 필터링이 필요한 신속한 잡음 감소 워크플로에 적용하십시오. 특히 다중 센서 모자이크의 소금-후추 잡음에 효과적입니다.",
            "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의 유사 도구입니다. 상대적 위치를 측정하며, 출력=0은 국지 최솟값, 출력=100은 국지 최댓값, 출력=50은 중앙값을 나타냅니다. 절댓값과 무관하게 분포 내 국지 위치를 드러냅니다.\n\n백분위 필터링은 위치 상대적 분석을 가능하게 합니다. 레이어 분석에 유용하며, 모든 밴드에서 높은 백분위(>80)를 보이는 셀은 \"밝은\" 피처를, 낮은 백분위(<20)는 \"어두운\" 피처를 나타냅니다. 크기만이 아니라 지형/질감 위치를 분리하므로 분류 전처리에 특히 유용합니다. 다중 지표 특성화를 위해 통계 필터와 결합하는 경우가 많습니다.\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."
              },
              "sig_digits": {
                "label": "유효 자릿수",
                "description": "양자화 순위 필터링에 사용되는 유효 자릿수(기본값 2)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "range_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": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "remove_spurs": {
            "name": "돌기 제거",
            "description": "반복적인 가지치기로 이진 래스터 피처에서 짧은 돌출 아티팩트를 제거합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "max_iterations": {
                "label": "최대 반복 횟수",
                "description": "최대 가지치기 반복 횟수(기본값 10)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "savitzky_golay_2d_filter": {
            "name": "Savitzky-Golay 2D 필터",
            "description": "2D Savitzky-Golay 평활화, 즉 국지 다항식 피처를 보존하는 다항식 적합 기반 필터를 수행합니다. 근방에 국지 다항식을 적합하고 중앙을 적합값으로 대체합니다. 가우시안보다 최고점/계곡을 더 잘 보존합니다. 피처 보존이 중요한 잡음 데이터에 유용합니다. 저차 다항식에서는 가우시안보다 흐림이 적으며, 다항식 차수에 따라 평활화가 증가합니다. Savitzky-Golay 필터링은 최소제곱법으로 근방에 국지 다항식(일반적으로 2차/3차)을 적합합니다. 중앙 값은 다항식 값으로 대체됩니다. 중앙값/가우시안과 달리 다항식 구조로 나타나는 피처(최고점, 계곡, 능선)를 보존합니다. 계산은 간단하지만 단순 컨볼루션보다 느립니다. 다항식 차수가 평활화/보존 절충을 제어합니다. 응용 분야: (1) 최고점 구조를 보존하면서 잡음 데이터 평활화, (2) 고도 격자 처리(능선/계곡 지형 보존), (3) 분광 데이터 평활화(흡수 특징 보존), (4) 피처 보존 전처리.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "window_size": {
                "label": "윈도우 크기",
                "description": "홀수 윈도우 크기(기본값 5). 현재 다항식 차수 2에 대해 5를 지원합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "scharr_filter": {
            "name": "Scharr 필터",
            "description": "Scharr 필터는 방향 편향을 줄이고 우수한 회전 불변성을 제공하도록 특별히 설계된 최적화 커널 계수를 사용하여 Sobel 필터를 개선한 에지 검출 연산자입니다. Scharr 연산자는 0°, 45°, 90°, 135° 에지 방향에 대해 경험적으로 최적화된 정수 계수(3, 10, 3)를 갖는 3×3 컨볼루션 커널을 사용하여, 특히 원형 피처와 회전된 에지에서 기존 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표준 편차는 국지 변동을 특성화하는 데 범위보다 견고합니다(단일 이상치에 의해 편향되지 않음). 질감에 따른 지역 분류가 가능합니다: 급경사(높은 표준 편차), 완경사(낮은 표준 편차), 산림(높은 표준 편차), 초지(낮은 표준 편차). 값 범위가 다른 데이터 간 비교를 위해 정규화하는 경우가 많습니다(변동 계수 = 표준 편차/평균). 히스토그램으로부터 계산할 수도 있습니다(분산 = 제곱의 평균 - 평균의 제곱).\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": "탑햇 변환",
            "description": "백색 또는 흑색 형태학적 톱햇 변환을 수행합니다.",
            "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) 중간 계산(합계/N = 평균), (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": "언샤프 마스킹은 원본 영상에서 평활화된(저역 통과) 버전을 차감하여 영상 샤프닝을 수행하며, 에지와 세밀한 세부를 강조합니다. 수학적 변환은 I_sharp = I_original + w·(I_original - I_smooth)이며, 여기서 w는 강조 강도를 제어하는 샤프닝 가중치입니다. 이 과정은 고주파 성분을 분리하여 증폭함으로써 세부를 광범위한 톤 변동으로부터 효과적으로 분리합니다. 주요 특징으로는 유연한 매개변수 제어(블러 반경과 가중치로 세부 제어), 가우시안 평활화 재사용을 통한 계산 효율성, 해석 가능한 강조(weight=0이면 원본, weight=1이면 실제 고역 통과, weight>1이면 강한 샤프닝), 다중분광 데이터에서의 효과가 있습니다. 언샤프 마스킹은 수동 판독을 위한 위성 영상 준비(미묘한 지형, 식생, 기반시설 강조), LiDAR 파생 산출물 향상(DEM, 식생 지표 샤프닝), 피처 가시성을 위한 정사영상 품질 개선, 고고학/조사 영상 향상에 뛰어납니다. 출력 해석: 샤프닝된 값은 에지에 집중되며 균질한 영역은 변하지 않습니다. 가중치 매개변수는 강조 크기를 제어하며, w=0.5-1.0은 미묘한 강조를, w=1.0-2.0은 중간 정도의 샤프닝을, w>2.0은 아티팩트가 생길 수 있는 강한 결과를 만듭니다. 블러 반경은 피처 스케일을 제어하며, 작은 반경(3-5픽셀)은 세밀한 질감을, 큰 반경(10-20픽셀)은 중간 피처를 강조합니다. 출력 값이 입력 범위를 초과할 수 있으므로 일반적으로 잘라내기가 필요합니다. 아티팩트로는 강한 에지 주변의 후광(가중치나 반경이 클수록 두드러짐), 원본에 잡음이 많을 때의 잡음 증폭, 다중분광 샤프닝에서의 거짓 색상 가능성이 있습니다. 차이 영상으로 강조 효과를 확인하십시오. 시각화 워크플로에 선택적으로 적용하고, 출력 범위 변화에 민감한 자동 분석 전에는 사용하지 마십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "sigma": {
                "label": "시그마",
                "description": "블러 마스크가 사용하는 가우시안 시그마(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)은 값 범위를 보존하여 평활화에 유용하고, 비정규화 커널(일반적으로 합이 0)은 차이를 강조하여 에지/미분 검출에 유용합니다. 사용자는 실제 적용 전에 커널 특성(계수의 부호, 크기, 합)을 검증해야 합니다. 재현 가능한 워크플로를 위해 커널 사양을 문서화하는 것이 필수적입니다. 출력 값 범위는 커널 설계에 따라 달라지므로, 문서에 예상되는 출력 특성과 스케일링 요건을 명시해야 합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "weights": {
                "label": "가중치",
                "description": "중첩 배열 형태의 2D 커널 가중치."
              },
              "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": "위너 필터는 신호와 잡음의 통계적 특성을 알고 있다고 가정하고, 필터링된 출력과 실제 신호 간의 평균 제곱 오차를 최소화하여 적응형 잡음 감소를 수행합니다. 구현은 이동 윈도우 내에서 국지 신호 및 잡음 분산을 추정하고, 잡음 억제와 세부 보존 사이의 균형을 맞추는 필터 계수를 계산합니다: F = μ + (σ² - σₙ²)/σ² · (I - μ), 여기서 μ는 국지 평균, σ²는 신호 분산, σₙ²는 잡음 분산입니다. 이 데이터 기반 적응으로 필터링 강도가 국지 영상 특성에 반응하게 됩니다. 주요 특징으로는 국지 통계에 대한 자동 적응(평탄한 영역은 강하게 평활화, 세부가 많은 영역은 구조 보존), 광학 및 SAR 영상에서 입증된 효과, 잡음 모델 가정에 기반한 해석 가능한 매개변수, 분리형 근사를 통한 계산 실현 가능성이 있습니다. 위너 필터링은 잡음이 공간적으로 변하는 위성 영상 전처리, 점 표적을 보존하는 SAR 스페클 감소, 식생 매핑을 위한 스페클이 제거된 다중분광 데이터, 레이더-광학 융합 잡음 제거에 뛰어납니다. 출력 해석: 분산이 큰(세부가 많은) 영역은 최소한으로 필터링되고, 분산이 작은(잡음이 많은) 영역은 강하게 필터링됩니다. 잡음 분산 추정은 출력에 영향을 미치며, 잡음 분산을 과소 추정하면 평활화가 부족하고, 과대 추정하면 과평활화와 세부 손실이 발생합니다. 출력 범위는 입력 범위에 근접하며, 잡음 감소를 확인하려면 차이 영상(원본 - 필터링 결과)을 검토하십시오. 최대 신호 대 잡음비(PSNR)와 구조적 유사도 지수(SSIM)로 필터링 효과를 정량화합니다. 국지 분산 임계값은 처리 영향을 나타내며, 검출된 분산비가 > 5인 영역은 상당히 필터링되고 < 1인 영역은 최소한으로 필터링됩니다. 흔한 함정으로는 부정확한 잡음 분산 추정(추정을 위해 암흑 프레임 또는 균질 영역 분석 수행)과 위치 결정에 영향을 미치는 윈도우 크기 선택이 있습니다. 잡음으로 인한 범주 오분류를 줄이려면 분류나 피처 추출 전에 적용하십시오.",
            "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 분해는 완전 편파(quad-pol) SAR 데이터의 결맞음 행렬을 대각화하여 산란 메커니즘을 특성화하는 고윳값과 고유벡터를 추출합니다. 고유벡터로부터 계산한 엔트로피, 이방성, 평균 알파각은 각각 산란 무질서도, 메커니즘 우세도, 산란 유형을 특성화합니다. H-알파 매개변수 공간은 편파 위상 정보를 활용하여 진폭 변동과 무관하게 물리적 산란 메커니즘을 분류할 수 있게 합니다. 주요 특징: 완전 편파 SAR 분해, 위상 정보 활용, 물리적으로 의미 있는 산란 매개변수, 산란 메커니즘 분리, 진폭 스페클에 견고, 표적 분류 및 해석 가능. 활용 사례: SAR 표적 인식, 산림 바이오매스 추정, 습지 특성화, 선박/차량 탐지, 토지피복 분류, 편파 SAR 데이터 해석. 출력 해석: 출력에는 엔트로피(무질서도, 0=질서 있는 산란, 1=무작위), 이방성(메커니즘 우세도 0-1), 알파각(산란 유형: ~45°=쌍극자, ~30°=표면, ~60°=체적)이 포함됩니다. H-알파 산점도는 산란 유형을 나타내는 군집 패턴을 드러냅니다. 이중 반사(도시)는 높은 알파를, 표면 산란(수역)은 낮은 알파를, 체적 산란(산림)은 중간 값을 보입니다.",
            "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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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의 승산 모델에 정교한 분산 추정과 다중 스케일 처리를 결합하여, SAR 영상의 세밀한 세부와 에지를 보존하면서 우수한 스페클 감소를 달성합니다. 구현은 적응형 크기의 윈도우로 계산한 국지 통계를 사용하고, 라플라시안 기반 에지 검출을 통합하며, 공간적으로 변하는 필터 매개변수를 적용합니다. 향상된 공식은 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로부터 표면 반사, 이중 반사(도시/2면각), 체적(식생/무작위 매질) 성분의 산란 메커니즘 기여도를 정량화합니다. 비음수 최소제곱 최적화로 전력 비율을 제약하여 물리적 실현 가능성과 해석 가능성을 보장합니다. 출력 전력 지도는 지형 특성과 직접 연결되며, 표면 우세가 높으면 나지 토양/수역을, 이중 반사가 높으면 도시 구조물을, 체적이 높으면 산림/식생을 나타냅니다. 주요 특징: 물리적으로 해석 가능한 산란 성분, 지형별 신호, 제약 최적화, 완전 편파 SAR 지원, 스페클에 견고, 표적별 분류 가능. 활용 사례: 도시-농촌 분류, 산림 바이오매스 추정, 토양 수분 탐지, 홍수 탐지, 작물 생물계절 모니터링, 토지피복 매핑. 출력 해석: 표면 전력은 건조한 지형/수역의 정반사를, 이중 반사 전력은 인공 구조물/도시 지역을, 체적 전력은 식생/산림을 나타냅니다. 성분 조합으로 토지피복을 판별할 수 있으며, 높은 체적 + 낮은 이중 반사는 산림을, 높은 이중 반사 + 낮은 체적은 도시를, 표면/체적의 균형은 혼합 지형을 나타냅니다.",
            "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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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 필터는 승산 잡음 모델과 적응형 국지 통계를 사용하여 SAR 스페클을 감소시키며, 스페클이 가우시안 잡음이 아닌 감마 분포를 따르는 레이더 영상을 위해 특별히 설계되었습니다. 구현은 국지 평균과 분산을 계산한 후 적응형 승산 가중을 적용합니다: F = I · exp(-variance/(2·mean²)·distance²), 여기서 distance는 국지 평균으로부터의 픽셀 편차를 측정합니다. 이 공식은 추정된 결맞음에 반비례하여 스페클 강도를 줄입니다. 주요 특징으로는 SAR 전용 적응(가산이 아닌 승산 잡음 모델), 점 표적과 에지(결맞음 피처)의 보존, 강도 조정을 가능하게 하는 국지 분산 기반 적응, 단일 편파 및 다중 편파 SAR 데이터에서 입증된 효과가 있습니다. Frost 필터링은 분류를 위한 SAR 영상 전처리(농업 모니터링, 토지이용 매핑), 결맞음 가중 SAR-광학 융합, 구름이 덮인 동안 레이더를 이용한 홍수 매핑, 합성개구레이더 변화 탐지 워크플로에 뛰어납니다. 출력 해석: 분산이 큰(결맞음 표적일 가능성이 있는) 영역은 최소한으로 필터링되고, 분산이 작은(스페클이 우세한) 영역은 강하게 필터링됩니다. 일반적인 출력 범위는 입력과 일치하며, 시각화를 위해 필터링 전후에 로그 스케일링(데시벨)을 적용하는 경우가 많습니다. 분산 대 평균 비율이 필터 강도를 직접 제어하며, 비율 > 0.5는 스페클일 가능성을, 비율 < 0.1은 결맞음 표적을 시사합니다. 출력 아티팩트로는 분산 추정이 신뢰할 수 없을 때의 세부 손실 가능성과 방향성 피처에서의 방향 편향이 있습니다. 결맞음 지도를 통한 검증으로 결맞음이 높은 지대에서의 에지 보존을 확인합니다. 출력 통계를 모니터링하십시오. 평균은 필터링 반복에 걸쳐 안정되어야 하고 분산은 상당히 감소해야 합니다. 범주 정확도를 향상시키려면 분류 전에 적용하십시오. 객체 경계를 다듬고 잔여 스페클 조각을 제거하려면 형태학적 후처리와 결합하십시오.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "radius": {
                "label": "반경",
                "description": "픽셀 단위 국지 윈도우 반경(기본값 2)."
              },
              "damping_factor": {
                "label": "감쇠 계수",
                "description": "지수 감쇠를 제어하는 Frost 감쇠 계수(기본값 2.0)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 출력이 메모리에 유지됩니다."
              }
            }
          },
          "gamma_map_filter": {
            "name": "감마 MAP 필터",
            "description": "Gamma Map 필터는 감마 분포 통계 모델을 사용하여 SAR 스페클을 감소시키며, 모수적 적응을 통해 레이더 신호의 승산 스페클 특성을 명시적으로 고려합니다. 구현은 영상 통계로부터 국지 감마 분포 매개변수(형태 α와 척도 β)를 추정한 후, 분포를 존중하는 가중 함수로 필터링합니다: F = I · [1 - (1-L/N)/(1 + L/N)·√(1 + N/L²)], 여기서 L은 등가 룩 수(결맞음 척도)이고 N은 추정 매개변수입니다. 주요 특징으로는 이론적으로 엄밀한 SAR 통계(감마 분포는 레이더의 표준), 최소한의 사용자 입력만 필요한 자동 룩 수 추정, 균일 필터 대비 우수한 에지 보존, 단일 룩 및 다중 룩 SAR에 대한 적용성이 있습니다. Gamma Map 필터링은 시계열 변화 탐지를 위한 다중 시기 SAR 스택 잡음 제거, 간섭 SAR(InSAR) 위상 결맞음 향상, 편파 SAR 분해 전처리, 임업 SAR 후방산란 정규화에 뛰어납니다. 출력 해석: 필터 강도는 장면 결맞음에 적응하며, 결맞음이 높은 영역(큰 α)은 부드럽게 필터링되어 표적이 보존되고, 결맞음이 낮은 영역(작은 α)은 강하게 필터링되어 스페클이 억제됩니다. 등가 룩 수 L은 필터링 효과를 나타내며, L=1(최소 필터링)은 모든 세부를 보존하고 L>5는 상당한 평활화를 만듭니다. 출력 스케일은 입력 단위로 유지되며, 로그 변환은 시각화를 용이하게 합니다. 일반적인 출력 분산 감소는 장면 특성과 룩 수 선택에 따라 50-80% 범위입니다. 출력 히스토그램에서 잔여 스페클 신호를 모니터링하십시오. 쌍봉 분포는 장면 구성 요소가 잘 분리되었음을 시사합니다. 아티팩트로는 방향성 피처에서의 줄무늬 가능성이나 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-Wishart 분류는 H/α/A 매개변수 공간 분할을 통한 비감독 구역화와 Wishart 통계 군집화를 결합하여, SAR 편파 데이터를 산란 메커니즘 클래스에 대응하는 물리적으로 의미 있는 9개 구역으로 자동 분류합니다. 알고리즘은 Cloude-Pottier 분해로부터 엔트로피(H), 이방성(A), 알파(α) 매개변수를 받아 고정 임계값을 사용해 3차원 (H,A,α) 특징 공간을 9개 영역으로 분할합니다. 구역 1(낮은 H, α~20°)은 건조한 표면의 Bragg 반사를, 구역 5(H~0.7, α~45°)는 산림의 등방성 체적 산란을, 구역 9(높은 H, α~80°)는 도시 구조물의 2면각(이중 반사) 산란을 나타냅니다. 각 구역 내에서 Wishart 군집화는 선택적으로 다변량 편파 공간의 통계적 거리를 계산하여 분류를 개선하며, 유사한 메커니즘의 판별력을 높입니다. 주요 특징으로는 훈련 표본이 필요 없는 자동 비감독 분류, 전 지구적 비교를 가능하게 하는 표준화된 정의를 갖는 물리적으로 해석 가능한 9개 클래스, 선택적 이중 모드 작동(속도를 위한 임계값 전용, 정확도를 위한 임계값+Wishart), 구역 경계까지의 거리와 Wishart 우도에 기반한 내장 신뢰도 지표가 있습니다. 이 도구는 미리 계산된 (H,A,α) 영상을 받거나, 원시 행렬이 제공되면 자동으로 Cloude-Pottier 분해를 호출합니다. 주요 활용 사례로는 편파 데이터로부터의 SAR 영상 분할 및 지도 생성, SAR 결맞음 행렬로부터 직접 토지피복 유형(수역, 농경지, 산림, 도시)을 비감독 분류, 구역 점유 분포를 통한 편파 데이터 품질의 신속한 평가, 토지피복 변화를 나타내는 산란 메커니즘 전이를 드러내는 변화 탐지가 있습니다. 출력 해석: 9개 클래스 지도는 지형 유형에 직접 대응하며, 구역을 더 넓은 범주로 집계할 수 있습니다(수역/정반사 = 구역 1-2, 식생/체적 = 구역 4-6, 도시/2면각 = 구역 7-9). 미분류 픽셀(클래스 0)은 조사가 필요한 비정상적인 편파 신호를 나타냅니다.",
            "params": {
              "h_raster": {
                "label": "H 래스터",
                "description": "Cloude-Pottier 분해에서 얻은 입력 엔트로피(H) 래스터(0-1 범위)."
              },
              "alpha_raster": {
                "label": "알파 래스터",
                "description": "Cloude-Pottier 분해에서 얻은 입력 알파(α) 래스터(도, 0-90)."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 알파를 H에 맞게 재투영합니다."
              },
              "auto_reproject_method": {
                "label": "자동 재투영 방법",
                "description": "선택적 재투영 리샘플링 재정의: nearest, bilinear, cubic, lanczos."
              },
              "output": {
                "label": "출력",
                "description": "9개 클래스 레이블(1-9)을 가진 선택적 출력 래스터."
              }
            }
          },
          "kuan_filter": {
            "name": "Kuan 필터",
            "description": "국지 평균과 분산을 추정하는 모수적 접근법을 사용하여 SAR/레이더 영상에 대한 Kuan 스페클 필터링을 수행합니다. 잡음 분산과 국지 영상 분산에 기반한 적응형 가중을 적용합니다. Lee와 유사하지만 통계적 가정이 다릅니다. 실무 SAR 처리에서 널리 사용되는 방법입니다. 다양한 SAR 데이터에서 계산 효율성과 양호한 결과 사이의 균형을 제공합니다. Kuan 필터링은 승산 스페클 모델과 함께 가우시안 통계를 가정합니다. 국지 분산에 적응하여 신호 변동과 스페클을 구분합니다. 이질적인 SAR 영상(밝은 피처와 어두운 피처가 혼재)에 특히 효과적입니다. 계산 부담이 적당합니다. 정교함과 계산 비용 사이의 실용적인 절충안입니다. 많은 SAR 처리 시스템에서 표준으로 사용됩니다. 응용 분야: (1) 실무 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": "정제 Lee 필터",
            "description": "Refined Lee 필터는 향상된 결맞음 추정과 에지 보존 적응을 통해 표준 Lee 필터링을 개선하며, 정교한 국지 통계와 방향 분석을 사용하여 우수한 스페클 감소를 제공합니다. 구현은 에지 방향을 검출하고, 경계에 정렬된 방향성 윈도우를 적용하며, 정교한 결맞음 추정값을 계산하여 Lee 모델을 확장합니다. 수학적으로는 방향 정렬된 분산 계산과 함께 F = μ + √(σ_p²/(σ_I²))·(I - μ)입니다. 이 개선으로 스페클 억제를 유지하면서 에지 보존이 향상됩니다. 주요 특징으로는 방향 민감성(필터링 방향을 영상 구조에 적응), 향상된 결맞음 추정(이방성 윈도우 사용), 표준 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 반복 군집화는 다변량 편파 확률 분포의 유사성을 측정하는 복소 Wishart 통계 거리 척도를 사용하여 군집 중심을 반복적으로 개선함으로써 SAR 편파 데이터의 비감독 분류를 수행합니다. 알고리즘은 H/α 분해 구역(물리적 해석이 알려진 9개의 시드 군집 제공)으로 초기화한 후, 기댓값 최대화와 유사한 반복에 들어갑니다: (1) 각 픽셀의 추정 결맞음 행렬에서 각 군집 원형까지의 Wishart 거리 계산, (2) 가장 가까운 군집에 픽셀 재할당, (3) 할당된 픽셀 행렬을 평균하여 군집 원형 갱신, (4) 수렴(픽셀 재할당 비율 <convergence_threshold)하거나 max_iterations에 도달할 때까지 반복. 주요 특징으로는 유클리드 거리와 달리 편파 데이터 구조를 올바르게 처리하는 복소수 통계 프레임워크, 무작위 시드에 대한 의존성을 줄이는 해석 가능한 H/α 구역으로부터의 자동 초기화, 적응형 반복 조정을 가능하게 하는 픽셀별 수렴 모니터링, 미리 계산된 (H,α) 입력 또는 원시 결맞음 입력으로부터의 자동 행렬 계산 선택, 다중 룩 처리 호환성을 통한 단일 룩 스페클에 대한 내장 견고성이 있습니다. 이 도구는 일반 및 압축 행렬 형식을 모두 지원합니다. 주요 활용 사례로는 H/α 9구역 분할을 넘어서는 정교한 토지피복 지도를 생성하는 SAR 편파 영상 분류, 지도 제작을 위한 초기 비감독 분류의 반복적 개선, 군집 안정성 지표를 통한 자동 편파 데이터 품질 평가, 군집 전이 분석을 통한 시간적 변화 탐지를 가능하게 하는 시계열 SAR 분류가 있습니다. 출력 해석: 잘 분리된 산란 메커니즘 그룹을 보여 주는 개선된 군집 지도(수렴에 따라 일반적으로 3-9개 클래스). 수렴 이력은 신뢰도 지표를 제공하며, 초기의 빠른 수렴은 안정적인 클래스 분리를 나타내고, 느린 수렴은 다중 시점 또는 변화 탐지 분석이 도움이 될 모호한 픽셀을 시사합니다. H/α 구역과 통합하면 범례를 개발할 수 있으며, 해석 가능성을 유지하기 위해 가능한 한 H/α 구역 대응을 유지하십시오.",
            "params": {
              "h_raster": {
                "label": "H 래스터",
                "description": "입력 엔트로피(H) 래스터(0-1 범위)."
              },
              "alpha_raster": {
                "label": "알파 래스터",
                "description": "입력 알파(α) 래스터(도, 0-90)."
              },
              "max_iterations": {
                "label": "최대 반복 횟수",
                "description": "최대 군집화 반복 횟수(기본값 10)."
              },
              "convergence_threshold": {
                "label": "수렴 임계값",
                "description": "수렴 기준: 변하지 않은 픽셀의 비율(기본값 0.99)."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 알파를 H에 맞게 재투영합니다."
              },
              "auto_reproject_method": {
                "label": "자동 재투영 방법",
                "description": "선택적 재투영 리샘플링 재정의: nearest, bilinear, cubic, lanczos."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 군집 레이블 래스터."
              }
            }
          },
          "yamaguchi_4component_decomposition": {
            "name": "Yamaguchi 4성분 분해",
            "description": "Yamaguchi 4성분 SAR 분해는 선택적 DEM 통합을 포함한 모델 기반 편파 분석을 사용하여, 이중 편파 합성개구레이더 데이터를 표면 산란, 이중 반사(체적) 산란, 나선 산란, 체적 산란을 나타내는 물리적으로 해석 가능한 성분으로 분해합니다. 이 분해는 편파 공분산 행렬의 고윳값 분석을 통해 서로 다른 후방산란 메커니즘을 분리하며, 성분을 표면 반사(Bragg 산란), 코너 반사체로부터의 이중 반사, 나선형 편파 회전(드묾), 식생이나 거친 표면으로부터의 확산 체적 산란으로 해석합니다. 외부 DEM을 통합하면 지형 산란 기여도를 추정하여 실제 체적 산란과 지형 효과를 더 잘 판별할 수 있습니다. 주요 특징으로는 의미 있는 지구물리 매개변수 추출을 가능하게 하는 모델 기반 물리적 해석, 지형에서 성분 정확도를 향상시키는 선택적 DEM 기반 지형 보정, 비물리적 분해 결과를 방지하는 비음수 성분 제약, 데이터 공백과 레이오버 영역의 자동 처리가 있습니다. 응용 분야로는 체적 산란 성분을 이용한 산림 바이오매스 추정, 시가지에서의 이중 반사 우세를 활용한 도시 매핑, 표면 산란 거동을 이용한 토양 수분 추정, 성분 비율 변화를 통한 산사태/변화 탐지가 있습니다. Yamaguchi 분해 출력은 지구물리적 해석을 가능하게 합니다. 출력은 4성분 영상(표면, 이중 반사, 나선, 체적 산란 전력), 적합 정확도를 정량화하는 분해 품질 지표, 토지피복 특성화를 돕는 평균 산란 유형 지수, 데이터 품질 평가를 안내하는 선택적 결맞음/엔트로피 진단으로 구성됩니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "행렬 래스터: 압축 6개 [m11,m22,m33,m12,m13,m23] 또는 행 우선 전체 3x3 복소 행렬 요소 9개."
              },
              "matrix_format": {
                "label": "행렬 형식",
                "description": "입력 행렬 형식: 실수/허수부를 가진 에르미트 행렬의 경우 full3x3(기본값)."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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)을 구문 분석하여 EPSG 메타데이터가 포함된 LAS로 변환합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "입력 ASCII 파일 경로 배열."
              },
              "pattern": {
                "label": "패턴",
                "description": "필드 패턴, 예: 'x,y,z,i,c,rn,nr,sa'."
              },
              "epsg_code": {
                "label": "EPSG 코드",
                "description": "출력 LAS CRS 메타데이터용 EPSG 코드."
              },
              "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": "LiDAR 탑햇 변환",
            "description": "형태학적 백색 톱햇을 통해 지면으로부터의 높이를 추출합니다. 침식 + 팽창으로 국지 지면을 근사하며, 잔차 = 높이입니다. 지면 분류가 필요 없는 정규화입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 LiDAR 경로 또는 타입 지정 LiDAR 객체."
              },
              "search_radius": {
                "label": "탐색 반경",
                "description": "침식과 팽창에 사용되는 근방 반경."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 LiDAR 경로."
              }
            }
          },
          "recover_flightline_info": {
            "name": "비행 경로 정보 복원",
            "description": "GPS 시간 간격으로부터 비행 경로 ID를 재구성합니다. 비행 경로 경계를 추론하여 point-source-ID/user-data/RGB에 표시합니다. 비행 경로 복원입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 LiDAR 경로 또는 타입 지정 LiDAR 객체."
              },
              "max_time_diff": {
                "label": "최대 시간 차이",
                "description": "새 비행 라인을 시작하기 전 비행 라인 내 최대 GPS 시간 간격."
              },
              "pt_src_id": {
                "label": "포인트 소스 ID",
                "description": "true이면 추론된 비행 라인 ID를 point_source_id에 기록합니다."
              },
              "user_data": {
                "label": "사용자 데이터",
                "description": "true이면 추론된 비행 라인 ID를 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": "GRD 임계값",
                "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 ID를 갖는 격자 셀을 탐지하고 중첩 포인트에 플래그를 지정하거나 제거합니다. 취득 검증을 위한 품질 관리입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 LiDAR 경로 또는 타입 지정 LiDAR 객체."
              },
              "resolution": {
                "label": "해상도",
                "description": "중첩 분석에 사용되는 격자 셀 크기."
              },
              "overlap_criterion": {
                "label": "중첩 기준",
                "description": "최대 스캔 각도이며, 최소 point source id, 최소 시간 또는 다중 point source ID가 아닙니다."
              },
              "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<표면, z>표면 또는 임계값 이내. DTM 위의 식생이나 지하 포인트를 식별합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 LiDAR 경로 또는 타입 지정 LiDAR 객체."
              },
              "ref_surface": {
                "label": "참조 표면",
                "description": "참조 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "query": {
                "label": "쿼리",
                "description": "질의 유형: within, <, <=, >, >=(기본값 within)."
              },
              "threshold": {
                "label": "임계값",
                "description": "query=within에서 사용하는 절대 z 거리 임계값."
              },
              "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": "식생 포인트를 수관으로 분할합니다. 국지 수관 기하로부터 도출한 적응형 대역폭을 사용하는 평균 이동 군집화입니다. 조사 수준의 개별 수목 구획입니다.",
            "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": "시드당 최대 평균 이동 반복 횟수(기본값 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": "출력 ID 모드",
                "description": "출력 세그먼트 ID 인코딩 {rgb|user_data|point_source_id|rgb+user_data|rgb+point_source_id}(기본값 rgb)."
              },
              "output_sidecar_csv": {
                "label": "보조 CSV 출력",
                "description": "true이면 LiDAR 출력 옆에 point_index,segment_id CSV를 기록합니다."
              },
              "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": "지도 단위의 3D 최근접 이웃 일치 허용 오차."
              },
              "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에 저장된 세그먼트 ID를 할당합니다. 형태 기반 포인트 군집화입니다.",
            "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 절대 고도를 지면으로부터의 높이로 변환합니다. 포인트 z 값에서 DTM(래스터 DEM)을 차감합니다. 구조 분석을 위한 정규화된 포인트 클라우드를 생성합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 LiDAR 경로 또는 타입 지정 LiDAR 객체."
              },
              "dtm": {
                "label": "DTM",
                "description": "입력 DTM 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "no_negatives": {
                "label": "음수 없음",
                "description": "음수 정규화 높이를 0으로 고정합니다."
              },
              "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 ID의 수를 셉니다. 비행 경로 커버리지 평가를 위한 격자 기반 중첩 시각화입니다.",
            "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": "LiDAR 벡터 TIN 구축",
            "description": "3D 메시를 구축합니다. 필터링된 포인트로부터 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": "TIN을 통해 LiDAR 최상단 표면 반사로부터 DSM을 생성합니다. 반경 내의 국지 최고점 후보를 사용한 후 삼각분할합니다. 식생 수관과 피처 상단을 표현합니다.",
            "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 표면을 렌더링합니다. 국지 평면 적합으로 포인트별 표면 법선을 계산한 후 조명 각도에 따라 음영을 적용합니다. 3D 시각화를 위해 RGB로 저장합니다.",
            "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": "LiDAR IDW 보간",
            "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": "LiDAR 방사 기저 함수 보간",
            "description": "RBF를 통한 매끄러운 LiDAR 표면: 방사 기저 함수가 국지 곡률과 미세 지형을 포착합니다. 경계 전반에 걸쳐 연속적인 도함수를 갖는 고품질 격자화입니다.",
            "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": "LiDAR Sibson 보간",
            "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": "포인트 클라우드 밀도를 솎아냅니다. first/last/lowest/highest/nearest 전략을 사용하여 격자 셀당 ≤1개의 포인트를 유지합니다. 커버리지와 지형 복잡성을 보존하면서 저장 용량을 줄입니다.",
            "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": "풋프린트를 생성합니다. 포인트 클라우드별 축 정렬 경계 상자 또는 볼록 껍질을 만듭니다. 공간 인덱싱과 데이터 카탈로그를 위한 벡터 폴리곤 출력입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "선택적 입력 LiDAR 경로 또는 타입 지정 LiDAR 객체. 생략하면 현재 디렉터리의 모든 LiDAR 파일에 대해 실행됩니다."
              },
              "output": {
                "label": "출력",
                "description": "풋프린트용 선택적 출력 벡터 경로."
              },
              "output_hulls": {
                "label": "헐 출력",
                "description": "true이면 볼록 헐 풋프린트를 기록하고, 그렇지 않으면 축 정렬 경계 상자를 기록합니다."
              }
            }
          },
          "lidar_tin_gridding": {
            "name": "LiDAR TIN 격자화",
            "description": "TIN을 통한 정확한 LiDAR 보간: 포인트로부터 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": "삼각분할 엡실론",
                "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": "비행 가장자리 포인트를 필터링합니다. 취득 스와스 경계에 있는 포인트만 추출합니다. 스트립 중첩과 가장자리 효과에 대한 QA입니다.",
            "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": "출력 벡터 셰이프파일 경로."
              }
            }
          },
          "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이면 근사 bbox 포인트 밀도 지표를 포함합니다."
              },
              "show_vlrs": {
                "label": "VLR 표시",
                "description": "호환성 플래그이며, 향후 상세 메타데이터 출력을 위해 예약되어 있습니다."
              },
              "show_geokeys": {
                "label": "GeoKey 표시",
                "description": "호환성 플래그이며, 향후 상세 CRS 키 출력을 위해 예약되어 있습니다."
              }
            }
          },
          "lidar_kappa": {
            "name": "LiDAR 카파",
            "description": "분류된 두 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": "QA 도구: 반사 순서의 유효성(다중/첫 번째/마지막 일관성)을 감사합니다. 보고서와 반사 이상을 표시한 분류 출력을 생성합니다. 데이터 무결성 검사입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 LiDAR 경로 또는 타입 지정 LiDAR 객체."
              },
              "create_output": {
                "label": "출력 생성",
                "description": "true이면 분류된 LiDAR QC 출력을 기록합니다."
              },
              "output": {
                "label": "출력",
                "description": "create_output=true일 때 사용되는 선택적 LiDAR 출력 경로."
              },
              "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": "LiDAR RANSAC 평면",
            "description": "근방 RANSAC 평면 적합을 사용하여 국지적으로 평면인 LiDAR 포인트를 식별합니다.",
            "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": "음영기복 방식 면 조명을 위한 조명 방위각."
              },
              "altitude": {
                "label": "고도각",
                "description": "음영기복 방식 면 조명을 위한 조명 고도각."
              },
              "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": "경로 ID 필드",
                "description": "routes의 선택적 경로 식별자 필드. 기본값은 피처 FID입니다."
              },
              "control_route_id_field": {
                "label": "기준 경로 ID 필드",
                "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": "시작/끝 측정값을 사용하여 이벤트 벡터 레이어로부터 경로 선 이벤트를 생성합니다.",
            "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": "경로 ID 필드",
                "description": "경로 식별자를 포함하는 선택적 경로 레이어 필드. 기본값은 피처 FID입니다."
              },
              "write_event_fid": {
                "label": "이벤트 FID 기록",
                "description": "원본 이벤트 피처 ID를 보존하기 위해 EVENT_FID를 기록합니다(기본값 true)."
              },
              "write_event_xy": {
                "label": "이벤트 XY 기록",
                "description": "원본 이벤트 지오메트리의 X/Y 속성을 기록합니다(기본값 false)."
              },
              "output": {
                "label": "출력",
                "description": "출력 선 벡터 경로."
              }
            }
          },
          "route_event_lines_from_table": {
            "name": "테이블에서 경로 이벤트 선 생성",
            "description": "시작/끝 측정값을 사용하여 CSV 이벤트 테이블과 경로 레이어로부터 경로 선 이벤트를 생성합니다.",
            "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": "경로 ID 필드",
                "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": "경로 ID 필드",
                "description": "경로 식별자를 포함하는 선택적 경로 레이어 필드. 기본값은 피처 FID입니다."
              },
              "write_event_fid": {
                "label": "이벤트 FID 기록",
                "description": "원본 이벤트 피처 ID를 보존하기 위해 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": "경로 ID 필드",
                "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": "경로 측정값 QA",
            "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": "경로 ID 필드",
                "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": "U턴 패널티",
                "description": "U턴 전이에 적용되는 선택적 가법 비용."
              },
              "forbid_u_turns": {
                "label": "U턴 금지",
                "description": "true이면 U턴 전이를 허용하지 않습니다."
              },
              "forbid_left_turns": {
                "label": "좌회전 금지",
                "description": "true이면 좌회전 전이를 허용하지 않습니다."
              },
              "forbid_right_turns": {
                "label": "우회전 금지",
                "description": "true이면 우회전 전이를 허용하지 않습니다."
              },
              "turn_restrictions_csv": {
                "label": "회전 제한 CSV",
                "description": "prev_x,prev_y,node_x,node_y,next_x,next_y 열을 사용하는 선택적 회전 전이 CSV. 선택적 열: forbidden(turn_cost 열이 제공되지 않으면 기본값 true)과 회전별 가법 비용을 위한 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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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": "U턴 패널티",
                "description": "U턴 전이에 적용되는 선택적 가법 비용."
              },
              "forbid_u_turns": {
                "label": "U턴 금지",
                "description": "true이면 U턴 전이를 허용하지 않습니다."
              },
              "forbid_left_turns": {
                "label": "좌회전 금지",
                "description": "true이면 좌회전 전이를 허용하지 않습니다."
              },
              "forbid_right_turns": {
                "label": "우회전 금지",
                "description": "true이면 우회전 전이를 허용하지 않습니다."
              },
              "turn_restrictions_csv": {
                "label": "회전 제한 CSV",
                "description": "prev_x,prev_y,node_x,node_y,next_x,next_y 열을 사용하는 선택적 회전 전이 CSV. 선택적 열: forbidden(turn_cost 열이 제공되지 않으면 기본값 true)과 회전별 가법 비용을 위한 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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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개의 시설을 선택하고 네트워크 비용에 따라 수요 포인트를 할당합니다.",
            "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": "U턴 패널티",
                "description": "U턴 전이에 적용되는 선택적 가법 비용."
              },
              "forbid_u_turns": {
                "label": "U턴 금지",
                "description": "true이면 U턴 전이를 허용하지 않습니다."
              },
              "forbid_left_turns": {
                "label": "좌회전 금지",
                "description": "true이면 좌회전 전이를 허용하지 않습니다."
              },
              "forbid_right_turns": {
                "label": "우회전 금지",
                "description": "true이면 우회전 전이를 허용하지 않습니다."
              },
              "turn_restrictions_csv": {
                "label": "회전 제한 CSV",
                "description": "prev_x,prev_y,node_x,node_y,next_x,next_y 열을 사용하는 선택적 회전 전이 CSV. 선택적 열: forbidden(turn_cost 열이 제공되지 않으면 기본값 true)과 회전별 가법 비용을 위한 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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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": "U턴 패널티",
                "description": "U턴 전이에 적용되는 선택적 가법 비용."
              },
              "forbid_u_turns": {
                "label": "U턴 금지",
                "description": "true이면 U턴 전이를 허용하지 않습니다."
              },
              "forbid_left_turns": {
                "label": "좌회전 금지",
                "description": "true이면 좌회전 전이를 허용하지 않습니다."
              },
              "forbid_right_turns": {
                "label": "우회전 금지",
                "description": "true이면 우회전 전이를 허용하지 않습니다."
              },
              "turn_restrictions_csv": {
                "label": "회전 제한 CSV",
                "description": "prev_x,prev_y,node_x,node_y,next_x,next_y 열을 사용하는 선택적 회전 전이 CSV. 선택적 열: forbidden(turn_cost 열이 제공되지 않으면 기본값 true)과 회전별 가법 비용을 위한 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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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": "비교용 다중 시나리오 OD 출력을 위해 명명된 시간 시나리오를 나열하는 선택적 CSV."
              },
              "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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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": "선택적 감쇠 매개변수(exponential의 경우 lambda, 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": "true(기본값)이면 더 빠른 접근성 계산을 위해 출발지를 병렬로 평가합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 포인트 벡터 경로(접근성 지표가 포함된 출발지)."
              }
            }
          },
          "network_centrality_metrics": {
            "name": "네트워크 중심성 지표",
            "description": "네트워크 노드에 대한 기본 연결 중심성, 근접 중심성, 매개 중심성 지표를 계산합니다.",
            "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": "네트워크의 각 선 피처에 연결 요소 ID를 할당합니다.",
            "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": "U턴 패널티",
                "description": "U턴 전이에 적용되는 선택적 가법 비용."
              },
              "forbid_u_turns": {
                "label": "U턴 금지",
                "description": "true이면 U턴 전이를 허용하지 않습니다."
              },
              "forbid_left_turns": {
                "label": "좌회전 금지",
                "description": "true이면 좌회전 전이를 허용하지 않습니다."
              },
              "forbid_right_turns": {
                "label": "우회전 금지",
                "description": "true이면 우회전 전이를 허용하지 않습니다."
              },
              "turn_restrictions_csv": {
                "label": "회전 제한 CSV",
                "description": "prev_x,prev_y,node_x,node_y,next_x,next_y 열을 사용하는 선택적 회전 전이 CSV. 선택적 열: forbidden(turn_cost 열이 제공되지 않으면 기본값 true)과 회전별 가법 비용을 위한 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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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": "U턴 패널티",
                "description": "U턴 전이에 적용되는 선택적 가법 비용."
              },
              "forbid_u_turns": {
                "label": "U턴 금지",
                "description": "true이면 U턴 전이를 허용하지 않습니다."
              },
              "forbid_left_turns": {
                "label": "좌회전 금지",
                "description": "true이면 좌회전 전이를 허용하지 않습니다."
              },
              "forbid_right_turns": {
                "label": "우회전 금지",
                "description": "true이면 우회전 전이를 허용하지 않습니다."
              },
              "turn_restrictions_csv": {
                "label": "회전 제한 CSV",
                "description": "prev_x,prev_y,node_x,node_y,next_x,next_y 열을 사용하는 선택적 회전 전이 CSV. 선택적 열: forbidden(turn_cost 열이 제공되지 않으면 기본값 true)과 회전별 가법 비용을 위한 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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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": "true이고 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": "U턴 패널티",
                "description": "U턴 전이에 적용되는 선택적 가법 비용."
              },
              "forbid_u_turns": {
                "label": "U턴 금지",
                "description": "true이면 U턴 전이를 허용하지 않습니다."
              },
              "forbid_left_turns": {
                "label": "좌회전 금지",
                "description": "true이면 좌회전 전이를 허용하지 않습니다."
              },
              "forbid_right_turns": {
                "label": "우회전 금지",
                "description": "true이면 우회전 전이를 허용하지 않습니다."
              },
              "turn_restrictions_csv": {
                "label": "회전 제한 CSV",
                "description": "prev_x,prev_y,node_x,node_y,next_x,next_y 열을 사용하는 선택적 회전 전이 CSV. 선택적 열: forbidden(turn_cost 열이 제공되지 않으면 기본값 true)과 회전별 가법 비용을 위한 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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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 최단 경로 비용을 계산하고 몬테카를로 샘플링으로 민감도 통계를 출력합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 선 네트워크 레이어."
              },
              "origins": {
                "label": "기점",
                "description": "출발지 포인트 레이어."
              },
              "destinations": {
                "label": "종점",
                "description": "목적지 포인트 레이어."
              },
              "edge_cost_field": {
                "label": "에지 비용 필드",
                "description": "섭동 분석의 임피던스 배수로 사용되는 필수 수치 선 필드."
              },
              "impedance_disturbance_range": {
                "label": "임피던스 교란 범위",
                "description": "'min_factor,max_factor' 형태의 비용 섭동 범위(예: ±20% 변동의 경우 '0.8,1.2')."
              },
              "monte_carlo_samples": {
                "label": "몬테카를로 표본 수",
                "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": "true(기본값)이면 기준 및 섭동 OD 실행에 대해 출발지 탐색을 병렬로 평가합니다."
              },
              "output": {
                "label": "출력",
                "description": "OD 쌍과 민감도 통계량이 포함된 출력 CSV 경로."
              }
            }
          },
          "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": "U턴 패널티",
                "description": "U턴 전이에 적용되는 선택적 가법 비용."
              },
              "forbid_u_turns": {
                "label": "U턴 금지",
                "description": "true이면 U턴 전이를 허용하지 않습니다."
              },
              "forbid_left_turns": {
                "label": "좌회전 금지",
                "description": "true이면 좌회전 전이를 허용하지 않습니다."
              },
              "forbid_right_turns": {
                "label": "우회전 금지",
                "description": "true이면 우회전 전이를 허용하지 않습니다."
              },
              "turn_restrictions_csv": {
                "label": "회전 제한 CSV",
                "description": "prev_x,prev_y,node_x,node_y,next_x,next_y 열을 사용하는 선택적 회전 전이 CSV. 선택적 열: forbidden(turn_cost 열이 제공되지 않으면 기본값 true)과 회전별 가법 비용을 위한 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": "시간별 에지 ID 필드",
                "description": "temporal_cost_profile의 edge_id 값과 일치시키는 데 사용되는 선택적 네트워크 필드(기본값 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": "분할 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "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": "true(기본값)이면 허용 오차 내에서 스냅할 수 없는 포인트를 유지합니다."
              },
              "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": "2-opt 휴리스틱을 사용하여 외판원 문제(TSP)의 근사해를 찾습니다. 포인트 위치 집합이 주어지면 모든 포인트를 연결하는 최단 경로를 식별합니다.",
            "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": "차고지 ID 필드",
                "description": "경로/할당 출력에 사용되는 선택적 차고지 ID 필드."
              },
              "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": "true이면 구성된 각 경로에 결정적 2-opt 국지 개선 패스를 적용합니다(기본값: true)."
              },
              "apply_simulated_annealing": {
                "label": "모의 담금질 적용",
                "description": "true이면 탐욕적/국지 최적화 후 경로마다 시드 기반 시뮬레이티드 어닐링 정제 패스를 적용합니다(기본값: false)."
              },
              "sa_iterations": {
                "label": "SA 반복 횟수",
                "description": "apply_simulated_annealing=true일 때 경로당 최대 시뮬레이티드 어닐링 반복 횟수(기본값: 1500)."
              },
              "sa_initial_temperature": {
                "label": "SA 초기 온도",
                "description": "초기 시뮬레이티드 어닐링 온도(> 0, 기본값: 1.0)."
              },
              "sa_cooling_rate": {
                "label": "SA 냉각 비율",
                "description": "(0, 1) 범위의 시뮬레이티드 어닐링 냉각 배수이며, 기본값은 0.995입니다."
              },
              "sa_seed": {
                "label": "SA 시드",
                "description": "시뮬레이티드 어닐링을 위한 선택적 결정적 난수 시드(기본값: 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": "요청 ID 필드",
                "description": "수거와 배송 레코드를 짝짓는 데 사용되는 stop_points의 요청 식별자 필드(기본값: request_id)."
              },
              "stop_type_field": {
                "label": "정류 유형 필드",
                "description": "수거/배송 레이블을 포함하는 stop_points의 정차지 유형 필드(기본값: 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": "차고지 ID 필드",
                "description": "경로/할당 출력에 사용되는 선택적 차고지 ID 필드."
              },
              "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": "true이면 지연이 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이면 이동 거리보다 먼저 예상 지연/여유로 실행 가능한 후보의 순위를 매기고, false이면 최근접 이웃 기준 방식을 사용합니다(기본값: 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": "토폴로지 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로."
              }
            }
          },
          "difference": {
            "name": "차집합",
            "description": "토폴로지 기반 차집합을 사용하여 입력 폴리곤에서 오버레이 폴리곤 영역을 제거합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "overlay": {
                "label": "오버레이",
                "description": "중첩 폴리곤 레이어."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "토폴로지 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "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": "토폴로지 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로."
              }
            }
          },
          "identity": {
            "name": "아이덴티티",
            "description": "모든 입력 피처를 보존하며, 아이덴티티 레이어와 중첩되는 부분은 아이덴티티 속성도 함께 얻습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "overlay": {
                "label": "오버레이",
                "description": "중첩 폴리곤 레이어."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "토폴로지 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로."
              }
            }
          },
          "intersect": {
            "name": "교차",
            "description": "토폴로지 기반 오버레이를 사용하여 입력 폴리곤과 오버레이 폴리곤을 교차하고 원본 피처 ID를 추적합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "overlay": {
                "label": "오버레이",
                "description": "중첩 폴리곤 레이어."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "토폴로지 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로."
              }
            }
          },
          "line_intersections": {
            "name": "선 교차점",
            "description": "입력 레이어와 오버레이 레이어 간의 선 교차점을 찾고 병합된 속성과 함께 상위 ID를 추가합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 선 또는 폴리곤 레이어."
              },
              "overlay": {
                "label": "오버레이",
                "description": "중첩 선 또는 폴리곤 레이어."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "지오메트리 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "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": "토폴로지 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로."
              }
            }
          },
          "union": {
            "name": "합집합",
            "description": "결합된 입력 및 오버레이 폴리곤을 통합된 폴리곤 커버리지로 디졸브합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "overlay": {
                "label": "오버레이",
                "description": "중첩 폴리곤 레이어."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "토폴로지 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로."
              }
            }
          },
          "update": {
            "name": "업데이트",
            "description": "중첩되는 곳에서 입력 피처를 업데이트 피처로 대체하며, 업데이트 레이어 밖의 입력 피처는 보존됩니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "overlay": {
                "label": "오버레이",
                "description": "중첩 폴리곤 레이어."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "토폴로지 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "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": "엡실론",
                "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": "선 끝점을 일치시키는 데 사용되는 선택적 끝점 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "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": "true이면 피처마다 상자 하나를 출력하고, 그렇지 않으면 전체 레이어에 대해 상자 하나를 출력합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 폴리곤 벡터 경로."
              }
            }
          },
          "minimum_bounding_circle": {
            "name": "최소 경계 원",
            "description": "개별 피처 또는 레이어 전체를 둘러싸는 최소 외접원을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "individual_feature_hulls": {
                "label": "개별 피처 헐",
                "description": "true이면 피처마다 원 하나를 출력하고, 그렇지 않으면 전체 레이어에 대해 원 하나를 출력합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 폴리곤 벡터 경로."
              }
            }
          },
          "minimum_bounding_envelope": {
            "name": "최소 경계 엔벨로프",
            "description": "개별 피처 또는 레이어 전체를 둘러싸는 축 정렬 최소 경계 엔벨로프를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "individual_feature_hulls": {
                "label": "개별 피처 헐",
                "description": "true이면 피처마다 엔벨로프 하나를 출력하고, 그렇지 않으면 전체 레이어에 대해 엔벨로프 하나를 출력합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 폴리곤 벡터 경로."
              }
            }
          },
          "minimum_convex_hull": {
            "name": "최소 볼록 헐",
            "description": "개별 피처 또는 입력 레이어 전체를 둘러싸는 볼록 헐 폴리곤을 생성합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "individual_feature_hulls": {
                "label": "개별 피처 헐",
                "description": "true이면 입력 피처마다 헐 하나를 출력하고, 그렇지 않으면 전체 레이어에 대해 헐 하나를 출력합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 폴리곤 벡터 경로."
              }
            }
          },
          "polygonize": {
            "name": "폴리곤화",
            "description": "닫힌 면을 형성할 수 있는 교차/열린 선분을 포함하여 입력 선형으로부터 폴리곤을 생성합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "배열 또는 세미콜론/쉼표로 구분된 문자열 형태의 입력 선 벡터 레이어. 생략하면 'input'이 사용됩니다."
              },
              "input": {
                "label": "입력",
                "description": "선택적 단일 입력 선 벡터 레이어 경로."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "폴리곤화에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "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": "분할 연산에 사용되는 선택적 스냅 허용 오차이며, 기본값은 머신 엡실론입니다."
              },
              "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": "폴리곤 피처의 선형성 지수(회귀 결정계수)를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 폴리곤 벡터 레이어."
              },
              "output": {
                "label": "출력",
                "description": "선형성 필드가 추가된 출력 벡터."
              }
            }
          },
          "narrowness_index_vector": {
            "name": "벡터 협소도 지수",
            "description": "폴리곤 피처의 협소도 지수(둘레 / sqrt(면적))를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 폴리곤 벡터 레이어."
              },
              "output": {
                "label": "출력",
                "description": "협소도 필드가 추가된 출력 벡터."
              }
            }
          },
          "patch_orientation": {
            "name": "패치 방향",
            "description": "축소 장축 회귀를 사용하여 폴리곤 방향(북쪽 기준 각도)을 계산하고 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": "전역 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_nearest 모드의 k 값."
              },
              "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": "국지 핫스팟/콜드스팟 식별을 위한 Getis-Ord Gi/Gi* z-점수를 계산합니다. 높은/낮은 값 집중도의 직접적인 척도입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "field": {
                "label": "필드",
                "description": "분석할 수치 속성 필드."
              },
              "weights_mode": {
                "label": "가중치 모드",
                "description": "근방 모드: queen, rook, k_nearest, distance_band."
              },
              "k": {
                "label": "K",
                "description": "k_nearest 모드의 k 값."
              },
              "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": "알파",
                "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": "각 피처에 대해 국지 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_nearest 모드의 k 값."
              },
              "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": "알파",
                "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": "방격 계수를 사용하여 포인트 패턴 무작위성에 대한 카이제곱 검정을 수행합니다. 군집 대 분산을 검정합니다.",
            "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": "공간 시차 회귀",
            "description": "종속 변수가 공간 이웃의 영향을 받는 내생적 파급 효과를 포착하는 공간 자기회귀 모델을 추정합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "response_field": {
                "label": "반응 필드",
                "description": "반응(종속) 변수."
              },
              "predictor_fields": {
                "label": "설명 변수 필드",
                "description": "쉼표로 구분된 예측 변수 필드 이름."
              },
              "weights_mode": {
                "label": "가중치 모드",
                "description": "공간 근방 모드."
              },
              "k": {
                "label": "K",
                "description": "k_nearest의 k 값."
              },
              "distance": {
                "label": "거리",
                "description": "거리 임계값."
              },
              "row_standardize": {
                "label": "행 표준화",
                "description": "가중치를 행 표준화합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 레이어."
              }
            }
          },
          "spatial_error_regression": {
            "name": "공간 오차 회귀",
            "description": "누락 변수나 측정 오차로 인한 잔차의 외생적 공간 의존성을 다루는 공간 오차 모델을 추정합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "response_field": {
                "label": "반응 필드",
                "description": "반응 변수."
              },
              "predictor_fields": {
                "label": "설명 변수 필드",
                "description": "쉼표로 구분된 예측 변수 필드."
              },
              "weights_mode": {
                "label": "가중치 모드",
                "description": "공간 근방 모드."
              },
              "k": {
                "label": "K",
                "description": "k_nearest의 k."
              },
              "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": "Ripley's K 검정",
            "description": "Ripley's K 다중 스케일 군집 통계량을 계산합니다. 거리 범위에 걸친 스케일 의존적 군집/분산을 드러냅니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 포인트 벡터 레이어."
              },
              "max_distance": {
                "label": "최대 거리",
                "description": "최대 분석 거리."
              },
              "step_size": {
                "label": "단계 크기",
                "description": "거리 단계 크기."
              },
              "output": {
                "label": "출력",
                "description": "K 통계량이 포함된 출력 벡터."
              }
            }
          },
          "envelope_test": {
            "name": "엔벨로프 검정",
            "description": "관측 패턴을 CSR 귀무 분포와 비교하는 몬테카를로 포락선 검정을 수행합니다. 군집/분산의 유의성을 판단합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 포인트 벡터 레이어."
              },
              "num_simulations": {
                "label": "시뮬레이션 횟수",
                "description": "몬테카를로 시뮬레이션 횟수."
              },
              "max_distance": {
                "label": "최대 거리",
                "description": "최대 분석 거리."
              },
              "output": {
                "label": "출력",
                "description": "엔벨로프 경계가 포함된 출력 벡터."
              }
            }
          },
          "point_process_residuals": {
            "name": "점 과정 잔차",
            "description": "진단을 위해 적합된 포아송 점 과정 모델의 잔차를 계산합니다. 모델링되지 않은 공간 구조를 탐지합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 포인트 벡터 레이어."
              },
              "intensity_field": {
                "label": "강도 필드",
                "description": "적합된 강도 필드."
              },
              "output": {
                "label": "출력",
                "description": "잔차가 포함된 출력 벡터."
              }
            }
          },
          "ripleys_k_function": {
            "name": "Ripley's K 함수",
            "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": "알파",
                "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": "Delaunay 삼각분할을 사용하여 입력 포인트 집합으로부터 불규칙 삼각망(TIN)을 구축합니다.",
            "params": {
              "input_points": {
                "label": "입력 포인트",
                "description": "입력 포인트 또는 멀티포인트 벡터 레이어."
              },
              "field_name": {
                "label": "필드 이름",
                "description": "정점 높이의 선택적 필드 이름(수치 필드)."
              },
              "use_z": {
                "label": "Z 사용",
                "description": "true이면 삼각형 표고에 지오메트리 Z 값을 사용합니다."
              },
              "max_triangle_edge_length": {
                "label": "최대 삼각형 변 길이",
                "description": "허용되는 최대 삼각형 변 길이(긴 변을 필터링). 제한이 없으려면 0 또는 음수를 사용합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 폴리곤 벡터 레이어(TIN)."
              }
            }
          },
          "contours_from_points": {
            "name": "포인트에서 등고선 생성",
            "description": "Delaunay TIN을 사용하여 포인트 고도로부터 등고선 폴리라인을 생성합니다.",
            "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": "육각형 방향: horizontal 또는 vertical."
              },
              "output": {
                "label": "출력",
                "description": "출력 폴리곤 벡터 경로."
              }
            }
          },
          "hexagonal_grid_from_vector_base": {
            "name": "벡터 기준 육각 격자",
            "description": "벡터 레이어 범위에 정렬된 육각형 폴리곤 격자를 생성하여 편향 없는 공간 집계와 밀도 시각화를 가능하게 합니다.",
            "params": {
              "base": {
                "label": "기준",
                "description": "격자 범위를 제어하는 기준 벡터 레이어."
              },
              "width": {
                "label": "너비",
                "description": "지도 단위 육각형 너비."
              },
              "orientation": {
                "label": "방향",
                "description": "육각형 방향: horizontal 또는 vertical."
              },
              "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": "보로노이 다이어그램",
            "description": "입력 포인트 위치로부터 보로노이(티센) 폴리곤을 생성합니다.",
            "params": {
              "input_points": {
                "label": "입력 포인트",
                "description": "입력 포인트 또는 멀티포인트 벡터 레이어."
              },
              "output": {
                "label": "출력",
                "description": "출력 보로노이 폴리곤 벡터 경로."
              }
            }
          },
          "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": "면적 필드를 포함합니다(geodesic은 AREA_M2, planar는 AREA_MAP2)."
              },
              "length": {
                "label": "길이",
                "description": "길이 필드를 포함합니다(geodesic은 LENGTH_M, planar는 LENGTH_MAP)."
              },
              "perimeter": {
                "label": "둘레",
                "description": "둘레 필드를 포함합니다(geodesic은 PERIM_M, planar는 PERIM_MAP)."
              },
              "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": "피처 속성과 지오메트리 변수를 사용하는 표현식으로 필드 값을 계산합니다. SQL 스타일의 CASE, CAST, null 검사, UPDATE ... SET ... [WHERE ...] 래퍼를 지원합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "field": {
                "label": "필드",
                "description": "출력 필드 이름."
              },
              "field_type": {
                "label": "필드 유형",
                "description": "출력 필드 유형: float, integer, text."
              },
              "expression": {
                "label": "표현식",
                "description": "피처마다 평가되는 표현식. SQL 방식의 CASE, 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": "경계 상자에 대해 Overpass API에서 OpenStreetMap 피처를 다운로드하고 결과를 벡터 레이어로 작성합니다.",
            "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 코드(기본값 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": "OSM way 피처를 LineString 지오메트리로 포함합니다(기본값 true)."
              },
              "include_polygons": {
                "label": "폴리곤 포함",
                "description": "면적 태그가 있는 닫힌 OSM way를 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": "Overpass URL",
                "description": "Overpass API 엔드포인트 URL(기본값 https://overpass-api.de/api/interpreter)."
              },
              "timeout_seconds": {
                "label": "제한 시간 (초)",
                "description": "초 단위 쿼리 제한 시간(기본값 25)."
              },
              "max_elements": {
                "label": "최대 요소 수",
                "description": "오류가 발생하기 전에 반환되는 Overpass 요소의 최대 개수(기본값 50 000)."
              },
              "chunk_large_aoi": {
                "label": "대형 AOI 분할",
                "description": "더 큰 AOI를 여러 Overpass 요청으로 자동 분할합니다(기본값 true)."
              },
              "chunk_max_area_deg2": {
                "label": "분할 최대 면적 (도²)",
                "description": "청크 분할 시 청크당 최대 면적(제곱도, 기본값 4.0)."
              },
              "max_chunk_count": {
                "label": "최대 분할 수",
                "description": "큰 AOI를 청크로 분할할 때의 청크 개수 상한(기본값 64)."
              },
              "chunk_parallel_requests": {
                "label": "분할 병렬 요청 수",
                "description": "큰 AOI에 대한 최대 병렬 청크 요청 수(기본값 1 = 순차 처리)."
              },
              "cache_dir": {
                "label": "캐시 디렉터리",
                "description": "엔드포인트+쿼리 해시별로 Overpass JSON 응답을 캐시할 선택적 디렉터리."
              },
              "cache_ttl_hours": {
                "label": "캐시 TTL (시간)",
                "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": "할당할 CRS의 EPSG 코드(예: 4326(WGS84) 또는 3857(Web Mercator)). 좌표는 변환되지 않습니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 LiDAR 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "assign_projection_raster": {
            "name": "래스터 투영 지정",
            "description": "셀을 워핑하지 않고 래스터에 좌표 참조계를 지정합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로(또는 메모리 내 핸들)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "할당할 CRS의 EPSG 코드(예: 4326(WGS84) 또는 3857(Web Mercator)). 좌표는 변환되지 않습니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "assign_projection_vector": {
            "name": "벡터 투영 지정",
            "description": "지오메트리를 재투영하지 않고 벡터 레이어에 좌표 참조계를 지정합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 파일 경로, 형식은 자동 감지됩니다(또는 메모리 내 핸들)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "할당할 CRS의 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": "pixel_x,pixel_y,map_x,map_y(및 허용되는 별칭)를 포함하는 제어점 CSV 경로."
              },
              "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": "3D 변환 사용",
                "description": "3D 변환 사용"
              },
              "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": "입력 래스터 파일 경로. 소스 CRS(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": "RPC 카메라 모델을 사용한 원시 영상의 DEM 기반 기하 보정입니다. 지형 기복 변위를 제거하여 지오레퍼런싱된 정사영상을 출력합니다.",
            "params": {
              "input_raster": {
                "label": "입력 래스터",
                "description": "입력 원본(보정되지 않은) 영상 래스터 경로. RPC 메타데이터가 파일에 포함되어 있거나 인접한 .RPB 사이드카에 있어야 합니다."
              },
              "input_dem": {
                "label": "입력 DEM",
                "description": "각 출력 픽셀의 지형 표고를 얻는 데 사용되는 DEM 래스터. 전체 장면 범위를 포함해야 합니다. 지리 좌표계가 아닌 경우 도구가 필요에 따라 재투영합니다."
              },
              "output_epsg": {
                "label": "출력 EPSG",
                "description": "출력 좌표 참조 시스템의 EPSG 코드(기본값 4326 지리 좌표계. UTM 17N 구역의 32617과 같은 투영 CRS를 지정하십시오)."
              },
              "output_resolution": {
                "label": "출력 해상도",
                "description": "출력 CRS 단위의 출력 픽셀 해상도(예: 지리 좌표계는 도, 투영 좌표계는 미터). 기본값은 입력 영상의 근사 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": "DEM 또는 D8 포인터 래스터로부터 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": "D8 흐름 방향을 산출하는 데 사용되는 입력 와지 제거 DEM 래스터."
              },
              "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-무한 흐름 누적",
            "description": "DEM 또는 D-무한 포인터 래스터로부터 D-무한 흐름 누적을 계산합니다.",
            "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-무한 질량 유동",
            "description": "부하, 효율, 흡수 래스터를 사용하여 D-무한 질량 유동 누적을 수행합니다.",
            "params": {
              "absorption": {
                "label": "흡수율",
                "description": "적재 단위의 입력 흡수 래스터."
              },
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터."
              },
              "efficiency": {
                "label": "효율",
                "description": "입력 효율 래스터(`0-1` 또는 백분율 값)."
              },
              "loading": {
                "label": "부하량",
                "description": "입력 적재 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 메모리 내 래스터를 반환합니다."
              }
            }
          },
          "dinf_pointer": {
            "name": "D-무한 포인터",
            "description": "D8의 대각 편향을 제거한 연속 흐름 방향(0-2π 라디안)입니다. 퇴적물 이동과 발산 흐름 모델링에 더 적합합니다.",
            "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": "DEM으로부터 FD8 흐름 누적을 계산합니다.",
            "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": "true이면 누적 표시 최댓값을 클리핑합니다(호환성 동작)."
              },
              "esri_pntr": {
                "label": "ESRI 포인터",
                "description": "true이면 흐름 방향 출력을 Esri 포인터 방식으로 인코딩합니다."
              },
              "log_transform": {
                "label": "로그 변환",
                "description": "true이면 누적 값을 로그 변환합니다."
              },
              "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_pntr이 설정되면 ESRI 인코딩됨)"
              }
            }
          },
          "flow_length_diff": {
            "name": "흐름 길이 차이",
            "description": "D8 포인터 래스터로부터 하류 경로 길이의 국지 최대 절대 차이를 계산합니다.",
            "params": {
              "d8_pntr": {
                "label": "D8 포인터",
                "description": "입력 D8 포인터 래스터."
              },
              "weights": {
                "label": "가중치",
                "description": "가중치"
              },
              "esri_pntr": {
                "label": "ESRI 포인터",
                "description": "true이면 ESRI D8 인코딩을 사용하여 포인터 값을 해석합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 메모리 내 래스터를 반환합니다."
              }
            }
          },
          "max_upslope_flowpath_length": {
            "name": "최대 상류 흐름 경로 길이",
            "description": "각 DEM 셀을 통과하는 최대 상류 흐름 경로 길이를 계산합니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 와지가 제거된 DEM 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 메모리 내 래스터를 반환합니다."
              }
            }
          },
          "max_upslope_value": {
            "name": "최대 상류 값",
            "description": "DEM에서 D8 흐름 경로를 따라 최대 상류 값을 전파합니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터"
              },
              "values": {
                "label": "값",
                "description": "입력 값 래스터"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "mdinf_flow_accum": {
            "name": "MD-무한 흐름 누적",
            "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": "DEM으로부터 MDFA 흐름 방향 및 흐름 누적 래스터를 생성합니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터"
              },
              "clip": {
                "label": "클립",
                "description": "API에서 허용되는 호환성 플래그."
              },
              "debug_stats": {
                "label": "디버그 통계",
                "description": "한 줄 MDFA 진단 정보 출력(개수 및 원시 최댓값)"
              },
              "esri_pntr": {
                "label": "ESRI 포인터",
                "description": "true이면 흐름 방향 출력을 Esri 포인터 방식으로 인코딩합니다."
              },
              "log_transform": {
                "label": "로그 변환",
                "description": "true이면 누적 값을 로그 변환합니다."
              },
              "out_type": {
                "label": "출력 유형",
                "description": "`\"cells\"`, `\"ca\"`, `\"sca\"`(기본값) 중 하나."
              },
              "path_corrected_direction_preference": {
                "label": "경로 보정 방향 우선",
                "description": "`[0, 1]` 범위의 선호 매개변수 `p`. `1.0`은 완전히 비분산적입니다."
              },
              "flow_dir_output": {
                "label": "흐름 방향 출력",
                "description": "흐름 방향 래스터의 선택적 출력 경로."
              },
              "output": {
                "label": "출력",
                "description": "흐름 누적 래스터의 선택적 출력 경로."
              }
            }
          },
          "num_inflowing_neighbours": {
            "name": "유입 이웃 수",
            "description": "각 DEM 셀로 유입되는 D8 이웃의 수를 셉니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "qin_flow_accumulation": {
            "name": "Qin 흐름 누적",
            "description": "DEM으로부터 Qin MFD 흐름 누적을 계산합니다.",
            "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": "DEM으로부터 Quinn MFD 흐름 누적을 계산합니다.",
            "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": "DEM 또는 Rho8 포인터 래스터로부터 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": "true이면 D8 포인터를 ESRI 인코딩으로 해석합니다."
              },
              "zero_background": {
                "label": "배경을 0으로",
                "description": "true이면 배경이 `0`이고, 그렇지 않으면 배경이 NoData입니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 메모리 내 래스터를 반환합니다."
              }
            }
          },
          "breach_depressions_least_cost": {
            "name": "최소 비용 와지 돌파",
            "description": "제약된 최소 비용 경로 탐색을 사용하여 DEM의 와지를 돌파합니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터."
              },
              "fill_deps": {
                "label": "와지 채우기",
                "description": "true이면 브리칭 후 해결되지 않은 와지를 채웁니다."
              },
              "flat_increment": {
                "label": "평지 증분",
                "description": "선택적 단조 감소 증분."
              },
              "max_cost": {
                "label": "최대 비용",
                "description": "허용되는 최대 브리치 비용."
              },
              "max_dist": {
                "label": "최대 거리",
                "description": "최대 탐색 거리(셀 단위)."
              },
              "minimize_dist": {
                "label": "거리 최소화",
                "description": "true이면 브리치 비용에 거리 가중치를 적용합니다."
              },
              "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": "배경을 0으로",
                "description": "true이면 싱크 외부의 셀에 `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": "기본적으로 Garbrecht-Martz 평탄지 해소를, 선택적으로 기존 자연 경로 평탄지 해소를 사용하는 우선순위 홍수(priority-flood) 전략으로 DEM의 와지를 채웁니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터."
              },
              "fix_flats": {
                "label": "평지 수정",
                "description": "true이면 채워진 평탄 지역에 작은 경사를 부여합니다."
              },
              "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": "Planchon-Darboux 호환 인터페이스로 DEM의 와지를 채웁니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터."
              },
              "fix_flats": {
                "label": "평지 수정",
                "description": "true이면 채워진 평탄 지역에 작은 경사를 부여합니다."
              },
              "flat_increment": {
                "label": "평지 증분",
                "description": "평탄 증분(기본값 `0.0001`)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로."
              }
            }
          },
          "fill_depressions_wang_and_liu": {
            "name": "와지 채우기 (Wang-Liu)",
            "description": "Wang-Liu 호환 인터페이스로 DEM의 와지를 채웁니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터."
              },
              "fix_flats": {
                "label": "평지 수정",
                "description": "true이면 채워진 평탄 지역에 작은 경사를 부여합니다."
              },
              "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": "배경을 0으로",
                "description": "true이면 싱크 외부의 셀에 `0.0`을 할당하고, 그렇지 않으면 NoData를 할당합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "stochastic_depression_analysis": {
            "name": "확률적 와지 분석",
            "description": "몬테카를로 DEM 섭동을 실행하여 와지 소속 확률을 추정합니다.",
            "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": "true이면 ESRI D8 인코딩을 사용하여 포인터 값을 해석합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 메모리 내 래스터를 반환합니다."
              }
            }
          },
          "flood_order": {
            "name": "홍수 순서",
            "description": "각 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": "목표 면적 임계값에 따라 경관을 대략 같은 크기의 유역(등면적 유역)으로 나눕니다.",
            "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": "지도 단위의 최대 탐색 반경. 생략하거나 0이면 기본값은 셀 하나의 폭입니다."
              },
              "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": "지도 단위의 최대 탐색 반경. 생략하거나 0이면 기본값은 셀 하나의 폭입니다."
              },
              "output": {
                "label": "출력",
                "description": "스냅된 유출점 벡터 파일의 출력 경로(필수이며, 래퍼에 지정하지 않으면 작업 디렉터리의 `snapped_pour_points.geojson`이 기본값입니다)."
              }
            }
          },
          "subbasins": {
            "name": "소유역",
            "description": "D8 하천망에서 각 하천 링크의 집수 구역(소유역)을 식별합니다.",
            "params": {
              "d8_pntr": {
                "label": "D8 포인터",
                "description": "`d8_pointer`로 생성된 D8 포인터 래스터."
              },
              "streams": {
                "label": "하천",
                "description": "하천 셀의 값이 0보다 크고 NoData가 아닌 하천 네트워크 래스터."
              },
              "esri_pntr": {
                "label": "ESRI 포인터",
                "description": "true이면 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": "true이면 ESRI D8 인코딩을 사용하여 포인터 값을 해석합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 메모리 내 래스터를 반환합니다."
              }
            }
          },
          "watershed_from_raster_pour_points": {
            "name": "래스터 유출점 기반 유역",
            "description": "D8 포인터와 유출점 출구 ID 래스터로부터 유역을 구획합니다.",
            "params": {
              "d8_pntr": {
                "label": "D8 포인터",
                "description": "입력 D8 포인터 래스터."
              },
              "pour_points": {
                "label": "유출점",
                "description": "유출점 래스터. 0이 아니고 NoData가 아닌 셀 값이 유출구 ID가 됩니다."
              },
              "esri_pntr": {
                "label": "ESRI 포인터",
                "description": "true이면 ESRI D8 인코딩을 사용하여 포인터 값을 해석합니다."
              },
              "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": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "downslope_distance_to_stream": {
            "name": "하천까지 하류 거리",
            "description": "흐름 경로를 따라 각 DEM 셀에서 가장 가까운 하천까지의 하류 거리를 계산합니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 와지가 제거된 DEM 래스터."
              },
              "streams": {
                "label": "하천",
                "description": "입력 하천 래스터. 하천 셀은 값이 `> 0`이고 NoData가 아닙니다."
              },
              "dinf": {
                "label": "D-무한",
                "description": "true이면 D-infinity 라우팅을 사용하고, 그렇지 않으면 D8 라우팅을 사용합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 메모리 내 래스터를 반환합니다."
              }
            }
          },
          "downslope_index": {
            "name": "하류 지수",
            "description": "D8 흐름 방향을 사용하여 Hjerdt et al. (2004) 하류 지수를 계산합니다.",
            "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": "유역 ID 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "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": "직선(유클리드) 근접성을 사용하여 가장 가까운 하천 위 고도를 계산합니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터."
              },
              "streams": {
                "label": "하천",
                "description": "입력 하천 래스터. 하천 셀은 값이 `> 0`이고 NoData가 아닙니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 메모리 내 래스터를 반환합니다."
              }
            }
          },
          "find_noflow_cells": {
            "name": "무흐름 셀 찾기",
            "description": "더 낮은 D8 이웃이 없는 DEM 셀을 찾습니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터."
              },
              "interior_only": {
                "label": "내부만",
                "description": "true이면 실제 내부 무흐름 셀만 표시합니다(래스터 경계 및 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": "DEM으로부터 DUL 및 UDSA 연결성 지수를 계산합니다.",
            "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 인자)를 계산합니다.",
            "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": "배경을 0으로",
                "description": "true이면 하천이 아닌 배경이 NoData 대신 0입니다."
              },
              "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": "피처 ID 사용",
                "description": "피처 ID 사용"
              },
              "zero_background": {
                "label": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "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": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "repair_stream_vector_topology": {
            "name": "하천 벡터 토폴로지 수정",
            "description": "벡터 하천망의 토폴로지를 복구합니다.",
            "params": {
              "input_vector": {
                "label": "입력 벡터",
                "description": "입력 벡터"
              },
              "snap": {
                "label": "스냅",
                "description": "스냅"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "river_centerlines": {
            "name": "하천 중심선",
            "description": "중앙축을 사용하여 수역 래스터에서 하천 중심선을 추출합니다.",
            "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": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "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": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "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": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "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": "배경을 0으로",
                "description": "배경에 0 할당"
              },
              "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": "배경을 0으로",
                "description": "배경에 0 할당"
              },
              "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": "배경을 0으로",
                "description": "배경에 0 할당"
              },
              "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": "배경을 0으로",
                "description": "NoData 대신 배경에 0 할당"
              },
              "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": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "stream_link_identifier": {
            "name": "하천 링크 식별자",
            "description": "각 하천 링크에 고유 ID를 할당합니다.",
            "params": {
              "d8_pntr": {
                "label": "D8 포인터",
                "description": "D8 흐름 포인터 래스터"
              },
              "streams": {
                "label": "하천",
                "description": "하천"
              },
              "esri_pntr": {
                "label": "ESRI 포인터",
                "description": "ESRI 포인터"
              },
              "zero_background": {
                "label": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "stream_link_length": {
            "name": "하천 링크 길이",
            "description": "각 하천 링크의 총 길이를 계산합니다.",
            "params": {
              "d8_pntr": {
                "label": "D8 포인터",
                "description": "D8 흐름 포인터 래스터"
              },
              "linkid": {
                "label": "링크 ID",
                "description": "링크 ID"
              },
              "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": "링크 ID",
                "description": "링크 ID"
              },
              "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": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "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": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "tributary_identifier": {
            "name": "지류 식별자",
            "description": "각 지류에 고유 ID를 할당합니다.",
            "params": {
              "d8_pntr": {
                "label": "D8 포인터",
                "description": "D8 흐름 포인터 래스터"
              },
              "streams": {
                "label": "하천",
                "description": "하천"
              },
              "esri_pntr": {
                "label": "ESRI 포인터",
                "description": "ESRI 포인터"
              },
              "zero_background": {
                "label": "배경을 0으로",
                "description": "배경을 0으로"
              },
              "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부터 시작하는 인덱스. 기본값은 0입니다."
              },
              "y_field_num": {
                "label": "Y 필드 번호",
                "description": "Y 좌표 필드의 0부터 시작하는 인덱스. 기본값은 1입니다."
              },
              "epsg": {
                "label": "EPSG",
                "description": "출력 CRS의 선택적 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": "true이면 폴리곤 구멍이 이를 둘러싼 외곽 링에 연결된 상태로 유지됩니다(기본값: 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에는 자동 수정이 없으며 변경 사항 0건으로 보고됩니다.",
            "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": "true(기본값)이면 미리 보기만 수행합니다. 변경 보고서는 생성되지만 출력은 기록되지 않습니다. 수정을 적용하려면 false를 전달하십시오."
              },
              "output": {
                "label": "출력",
                "description": "수정된 피처의 출력 벡터 경로. 생략하면 입력 옆에 생성됩니다."
              },
              "change_report": {
                "label": "변경 보고서",
                "description": "선택적 JSON 변경 감사 추적 보고서 경로."
              }
            }
          },
          "topology_rule_validate": {
            "name": "토폴로지 규칙 검증",
            "description": "규칙 집합 검사(자기 교차, 중첩, 공백, 매달린 선, 포인트 커버리지, 끝점 스냅)에 대해 벡터 토폴로지를 검증하고 피처 수준의 위반 사항을 출력합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 경로."
              },
              "rule_set": {
                "label": "규칙 집합",
                "description": "JSON 배열/객체, CSV 문자열 또는 파일 경로 형식의 규칙 구성. 기본값은 6개의 MVP 규칙 전부입니다. 지원되는 규칙: 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를 0으로 변환",
            "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": "0이 아니고 NoData가 아닌 래스터 선 셀을 폴리라인 벡터 피처로 변환합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로(단일 밴드)."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로. 생략하면 입력 옆에 GeoJSON 경로가 생성됩니다."
              }
            }
          },
          "raster_to_vector_points": {
            "name": "래스터를 벡터 포인트로 변환",
            "description": "래스터에서 0이 아니고 NoData가 아닌 셀을 셀 중심에 위치한 포인트 피처로 변환합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 경로."
              },
              "output": {
                "label": "출력",
                "description": "출력 포인트 벡터 경로. 생략하면 입력 옆에 GeoJSON 경로가 생성됩니다."
              }
            }
          },
          "raster_to_vector_polygons": {
            "name": "래스터를 벡터 폴리곤으로 변환",
            "description": "0이 아니고 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": "배경을 0으로",
                "description": "true이면 출력 배경을 NoData 대신 0으로 초기화합니다."
              },
              "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": "배경을 0으로",
                "description": "true이면 배경을 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": "배경을 0으로",
                "description": "true이면 출력 배경을 NoData 대신 0으로 초기화합니다."
              },
              "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_nearest 모드의 k 값(기본값 8)."
              },
              "distance": {
                "label": "거리",
                "description": "distance_band 모드의 거리 임계값."
              },
              "row_standardize": {
                "label": "행 표준화",
                "description": "가중치에 행 표준화를 적용합니다(기본값 true)."
              },
              "island_policy": {
                "label": "섬 처리 정책",
                "description": "고립 지역 처리: drop_with_warning, keep_zero_weight, error."
              },
              "alpha": {
                "label": "알파",
                "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_nearest 모드의 k 값(기본값 8)."
              },
              "distance": {
                "label": "거리",
                "description": "distance_band 모드의 거리 임계값."
              },
              "row_standardize": {
                "label": "행 표준화",
                "description": "가중치에 행 표준화를 적용합니다(기본값 true)."
              },
              "island_policy": {
                "label": "섬 처리 정책",
                "description": "고립 지역 처리: drop_with_warning, keep_zero_weight, error."
              },
              "alpha": {
                "label": "알파",
                "description": "[0, 1] 범위의 유의 임계값이며, 기본값은 0.05입니다."
              },
              "cell_size": {
                "label": "셀 크기",
                "description": "출력 래스터 셀 크기(선택 사항이며 범위에서 자동 계산됩니다)."
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로(분류: -1=Cold, 0=NS, 1=Hot)."
              }
            }
          },
          "ordinary_kriging": {
            "name": "정규 크리깅",
            "description": "포인트 측정값 표본을 바탕으로 매핑되지 않은 격자 셀의 값을 추정하기 위해 정규 크리깅 보간을 수행합니다. 정규 크리깅은 공간 자기상관 구조를 활용하여 예측값과 그에 따른 크리깅 분산(예측 불확실성)을 모두 제공하는 지구통계 방법입니다. 이 도구는 입력 포인트 데이터로부터 경험적 베리오그램을 자동으로 추정하고, 공간 의존성을 포착하기 위해 이론적 베리오그램 모델(구형, 지수형 또는 가우시안)을 적합합니다.",
            "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": "k-최근접 이웃을 사용하는 국지 정규 크리깅 보간을 수행하여 대규모 데이터셋에 대한 효율적인 공간 추정을 제공합니다. 이 방식은 수천 개의 포인트가 있는 데이터셋에서 전역 정규 크리깅보다 계산상 더 실용적입니다.",
            "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": "공간 필드의 평균을 사전에 알고 있을 때 단순 크리깅 보간을 수행합니다. 외부 정보로부터 평균을 신뢰성 있게 알 수 있는 경우, 이 방법은 크리깅 분산을 줄이고 더 안정적인 예측을 제공합니다.",
            "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": "공간 현상에 체계적인 추세나 드리프트가 있을 때 보편 크리깅 보간을 수행합니다. 크리깅과 다항식 추세면 추정을 결합합니다.",
            "params": {
              "points": {
                "label": "포인트",
                "description": "입력 포인트 벡터 레이어."
              },
              "value_field": {
                "label": "값 필드",
                "description": "보간할 값이 들어 있는 숫자 속성 필드."
              },
              "trend_order": {
                "label": "추세 차수",
                "description": "다항식 추세 차수(1=선형, 2=2차). 기본값은 1입니다."
              },
              "cell_size": {
                "label": "셀 크기",
                "description": "지도 단위의 출력 셀 크기(base_raster가 없으면 필수)."
              },
              "base_raster": {
                "label": "기준 래스터",
                "description": "출력 지오메트리를 제어하는 선택적 기준 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "spacetime_kriging": {
            "name": "시공간 크리깅",
            "description": "포인트 측정값의 공간 및 시간 변동을 함께 모델링하는 시공간 크리깅 보간을 수행합니다. 공간적으로 분포된 시계열 데이터에 이상적입니다.",
            "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": "공간 시차 회귀 (래스터)",
            "description": "SAR 모델을 추정하고 적합값 표면을 출력합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "response_field": {
                "label": "반응 필드",
                "description": "반응 변수."
              },
              "predictor_fields": {
                "label": "설명 변수 필드",
                "description": "예측 변수 필드."
              },
              "weights_mode": {
                "label": "가중치 모드",
                "description": "근방 모드."
              },
              "k": {
                "label": "K",
                "description": "k_nearest의 k."
              },
              "distance": {
                "label": "거리",
                "description": "거리 임계값."
              },
              "row_standardize": {
                "label": "행 표준화",
                "description": "가중치를 행 표준화합니다."
              },
              "cell_size": {
                "label": "셀 크기",
                "description": "출력 래스터 셀 크기."
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터."
              }
            }
          },
          "spatial_error_regression_raster": {
            "name": "공간 오차 회귀 (래스터)",
            "description": "SEM 모델을 추정하고 적합값 표면을 출력합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어."
              },
              "response_field": {
                "label": "반응 필드",
                "description": "반응 변수."
              },
              "predictor_fields": {
                "label": "설명 변수 필드",
                "description": "예측 변수 필드."
              },
              "weights_mode": {
                "label": "가중치 모드",
                "description": "근방 모드."
              },
              "k": {
                "label": "K",
                "description": "k_nearest의 k."
              },
              "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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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을 계산하여, 값이 0인 셀은 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "각 셀에서 가장 높은 값을 갖는 래스터 스택의 0 기반 인덱스를 반환합니다.",
            "params": {
              "input_rasters": {
                "label": "입력 래스터",
                "description": "경로 배열 또는 세미콜론/쉼표로 구분된 문자열 형식의 입력 래스터 스택."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 inputs[0]에 맞게 자동으로 재투영합니다."
              },
              "auto_reproject_method": {
                "label": "자동 재투영 방법",
                "description": "선택적 재투영 리샘플링 방법 재정의: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 유지됩니다."
              }
            }
          },
          "lowest_position": {
            "name": "최저 위치",
            "description": "각 셀에서 가장 낮은 값을 갖는 래스터 스택의 0 기반 인덱스를 반환합니다.",
            "params": {
              "input_rasters": {
                "label": "입력 래스터",
                "description": "경로 배열 또는 세미콜론/쉼표로 구분된 문자열 형식의 입력 래스터 스택."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "0 기반 위치 래스터를 사용하여 래스터 스택에서 셀별 값을 선택합니다.",
            "params": {
              "input_rasters": {
                "label": "입력 래스터",
                "description": "경로 배열 또는 세미콜론/쉼표로 구분된 문자열 형식의 입력 래스터 스택."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 inputs[0]에 맞게 자동으로 재투영합니다."
              },
              "auto_reproject_method": {
                "label": "자동 재투영 방법",
                "description": "선택적 재투영 리샘플링 방법 재정의: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "pos_input": {
                "label": "위치 입력",
                "description": "스택 위치의 0부터 시작하는 래스터."
              },
              "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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "input1의 NoData 셀을 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 이하이면 출력이 0으로 강제됩니다."
              },
              "scale_max": {
                "label": "스케일 최대값",
                "description": "요인 정규화 후 사용되는 최대 척도 값."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "weighted_sum": {
            "name": "가중 합계",
            "description": "가중치의 합이 1이 되도록 정규화한 후 래스터 스택 전체에 걸친 가중 합을 계산합니다.",
            "params": {
              "input_rasters": {
                "label": "입력 래스터",
                "description": "입력 래스터 스택."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "자연 이웃 보간",
            "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] 행 형식의 재분류 값. assign_mode=true일 때는 [new, old] 형식입니다."
              },
              "assign_mode": {
                "label": "할당 모드",
                "description": "true이면 [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": "0이 아니고 NoData가 아닌 래스터 셀 주위에 지정된 거리 이내의 이진 버퍼 구역을 생성합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "0이 아닌 셀이 버퍼 대상인 입력 래스터."
              },
              "buffer_size": {
                "label": "버퍼 크기",
                "description": "버퍼 거리 임계값."
              },
              "grid_cell_units": {
                "label": "격자 셀 단위",
                "description": "true이면 buffer_size를 지도 단위 대신 격자 셀 단위로 해석합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "cost_allocation": {
            "name": "비용 배분",
            "description": "비용 거리 분석의 백링크 래스터를 사용하여 각 셀을 소스 영역에 할당합니다.",
            "params": {
              "source": {
                "label": "소스",
                "description": "양의 소스 셀을 가진 소스 래스터."
              },
              "backlink": {
                "label": "백링크",
                "description": "cost_distance에서 생성된 백링크 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "cost_distance": {
            "name": "비용 거리",
            "description": "소스 및 비용 표면으로부터 누적 이동 비용 및 백링크 래스터를 계산합니다.",
            "params": {
              "source": {
                "label": "소스",
                "description": "양의 소스 셀을 가진 소스 래스터."
              },
              "cost": {
                "label": "비용",
                "description": "비용/마찰 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 누적 비용 출력 래스터 경로."
              },
              "backlink_output": {
                "label": "백링크 출력",
                "description": "선택적 백링크 출력 래스터 경로."
              }
            }
          },
          "cost_pathway": {
            "name": "비용 경로",
            "description": "백링크 래스터를 사용하여 목적지 셀로부터 최소 비용 경로를 추적합니다.",
            "params": {
              "destination": {
                "label": "목적지",
                "description": "양의 목적지 셀을 가진 목적지 래스터."
              },
              "backlink": {
                "label": "백링크",
                "description": "cost_distance에서 생성된 백링크 래스터."
              },
              "zero_background": {
                "label": "배경을 0으로",
                "description": "true이면 출력 배경이 NoData 대신 0입니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "euclidean_allocation": {
            "name": "유클리드 배분",
            "description": "각 유효 셀에 가장 가까운 0이 아닌 대상 셀의 값을 할당합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "0이 아닌 대상 셀이 있는 입력 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "euclidean_distance": {
            "name": "유클리드 거리",
            "description": "래스터에서 가장 가까운 0이 아닌 대상 셀까지의 유클리드 거리를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "0이 아닌 대상 셀이 있는 입력 래스터."
              },
              "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": "분산 분석",
            "description": "클래스 래스터 범주로 그룹화된 래스터 값에 대해 일원 분산 분석(ANOVA)을 수행합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "측정 래스터 경로."
              },
              "features": {
                "label": "피처",
                "description": "클래스/범주 래스터 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 HTML 보고서 출력 경로(별칭: output_html_file)."
              }
            }
          },
          "arccos": {
            "name": "아크코사인",
            "description": "각 래스터 셀의 역코사인(arccos)을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "arcosh": {
            "name": "쌍곡 아크코사인",
            "description": "각 래스터 셀의 역쌍곡코사인을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "arcsin": {
            "name": "아크사인",
            "description": "각 래스터 셀의 역사인(arcsin)을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "arctan": {
            "name": "아크탄젠트",
            "description": "각 래스터 셀의 역탄젠트(arctan)를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "arsinh": {
            "name": "쌍곡 아크사인",
            "description": "각 래스터 셀의 역쌍곡사인을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "artanh": {
            "name": "쌍곡 아크탄젠트",
            "description": "각 래스터 셀의 역쌍곡탄젠트를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "atan2": {
            "name": "Atan2",
            "description": "두 래스터를 사용하여 셀 단위로 4사분면 역탄젠트를 계산합니다.",
            "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": "정수형 양수 ID를 가진 입력 패치 ID 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "ceil": {
            "name": "올림",
            "description": "각 래스터 셀을 가장 가까운 정수로 올림합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "centroid_raster": {
            "name": "래스터 중심점",
            "description": "래스터에서 양수 값을 갖는 각 패치 ID의 중심 셀을 계산합니다.",
            "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": "true이면 대각선 연결성(8근방)을 포함하고, 그렇지 않으면 4근방을 사용합니다."
              },
              "zero_background": {
                "label": "배경을 0으로",
                "description": "true이면 값이 0인 셀을 배경으로 처리하고 출력에서 0으로 유지합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "cos": {
            "name": "코사인",
            "description": "각 래스터 셀 값의 코사인을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "cosh": {
            "name": "쌍곡 코사인",
            "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": "소속 확률 래스터의 선명도 지수를 계산합니다.",
            "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": "군집 ID 레이블의 선택적 출력 래스터 경로."
              }
            }
          },
          "decrement": {
            "name": "감소",
            "description": "NoData가 아닌 각 래스터 셀에서 값(기본값 1.0)을 뺍니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "value": {
                "label": "값",
                "description": "각 셀에서 뺄 양. 기본값은 1.0입니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "edge_proportion": {
            "name": "가장자리 비율",
            "description": "각 패치의 셀 중 가장자리 셀의 비율을 계산하여 패치 셀에 다시 매핑합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "정수형 양수 ID를 가진 입력 패치 ID 래스터."
              },
              "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": "지수 함수",
            "description": "각 래스터 셀 값을 지수로 하는 e의 거듭제곱을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "exp2": {
            "name": "2의 거듭제곱",
            "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": "배경을 0으로",
                "description": "true이면 제거된 피처에 0이 할당되고, 그렇지 않으면 NoData가 할당됩니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로. 생략하면 결과가 메모리에 유지됩니다."
              }
            }
          },
          "find_patch_edge_cells": {
            "name": "패치 가장자리 셀 찾기",
            "description": "각 양수 래스터 패치 ID의 가장자리 셀을 식별하며, 가장자리가 아닌 패치 셀은 0으로 설정됩니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 패치 ID 래스터. 양수 값이 패치 셀로 처리됩니다."
              },
              "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": "NoData가 아닌 각 래스터 셀에 값(기본값 1.0)을 더합니다.",
            "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": "입력 래스터 경로 또는 0이 아닌 수치 상수."
              }
            }
          },
          "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": "두 래스터를 나누고 각 결과를 0 방향으로 절사합니다.",
            "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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 inputs[0]에 맞게 자동으로 재투영합니다."
              },
              "auto_reproject_method": {
                "label": "자동 재투영 방법",
                "description": "선택적 재투영 리샘플링 방법 재정의: nearest, bilinear, cubic, lanczos, average, min, max, mode, median, stddev."
              },
              "pca_report": {
                "label": "PCA 보고서",
                "description": "PCA에서 생성된 JSON 보고서 문자열."
              },
              "output": {
                "label": "출력",
                "description": "선택적 기준 출력 경로."
              }
            }
          },
          "is_nodata": {
            "name": "NoData 여부",
            "description": "NoData 셀에는 1을, 모든 유효 셀에는 0을 출력합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "kappa_index": {
            "name": "카파 지수",
            "description": "두 범주형 래스터 간의 Cohen's kappa와 일치도 지표를 계산합니다.",
            "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이면 전체 범주 빈도 출력을 반환합니다(기본값 true)."
              },
              "max_values": {
                "label": "최대값 수",
                "description": "strict_parity가 false일 때 포함할 최대 고유값 개수(기본값 10000)."
              }
            }
          },
          "ln": {
            "name": "자연로그",
            "description": "각 래스터 셀의 자연로그를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "log10": {
            "name": "상용로그",
            "description": "각 래스터 셀의 상용로그(밑 10)를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "log2": {
            "name": "이진로그",
            "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": "국지 가중 수정 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": "2차 기저 사용",
                "description": "국지 2차 기저 보정을 적용합니다(레거시 호환 모드)."
              },
              "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": "정수형 양수 ID를 가진 입력 패치 ID 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "negate": {
            "name": "부호 반전",
            "description": "NoData가 아닌 각 래스터 셀 값의 부호를 반전합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "nibble": {
            "name": "니블",
            "description": "최근접 이웃 할당을 사용하여 배경 영역을 채웁니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "니블 처리할 입력 래스터."
              },
              "mask": {
                "label": "마스크",
                "description": "이진 마스크 래스터."
              },
              "use_nodata": {
                "label": "NoData 사용",
                "description": "입력 NoData를 배경이 아닌 클래스 값으로 취급합니다."
              },
              "nibble_nodata": {
                "label": "NoData 니블",
                "description": "마스크가 꺼진 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": "파이 계수",
            "description": "파이 계수를 사용하여 이진 분류 일치도 평가를 수행합니다.",
            "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": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "입력 GeoTIFF 계열 래스터의 TIFF/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": "방사 기저 함수 보간",
            "description": "국지 방사 기저 유사도 가중을 사용하여 포인트 표본으로부터 래스터를 보간합니다.",
            "params": {
              "points": {
                "label": "포인트",
                "description": "입력 포인트 벡터 레이어."
              },
              "field_name": {
                "label": "필드 이름",
                "description": "선택적 숫자 속성 필드. 기본값은 FID 대체입니다."
              },
              "use_z": {
                "label": "Z 사용",
                "description": "속성 대신 포인트 지오메트리의 Z 값을 사용합니다."
              },
              "approximate_mode": {
                "label": "근사 모드",
                "description": "true이면 NG 방식의 빠른 근사 가중을 사용하고, false이면 국지 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": "정수형 양수 ID를 가진 입력 패치 ID 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "random_field": {
            "name": "랜덤 필드",
            "description": "표준 정규 난수 값을 포함하는 래스터를 생성합니다.",
            "params": {
              "base": {
                "label": "기준",
                "description": "격자 지오메트리에 사용되는 기준 래스터 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "random_forest_classification_fit": {
            "name": "랜덤 포레스트 분류 적합",
            "description": "랜덤 포레스트 분류 모델을 적합하고 직렬화된 모델 바이트를 반환합니다.",
            "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": "랜덤 포레스트 분류 예측",
            "description": "직렬화된 랜덤 포레스트 분류 모델을 다중 밴드 예측 변수에 적용합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "model_bytes": {
                "label": "모델 바이트",
                "description": "random_forest_classification_fit이 생성한 모델 바이트."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "random_forest_regression_fit": {
            "name": "랜덤 포레스트 회귀 적합",
            "description": "랜덤 포레스트 회귀 모델을 적합하고 직렬화된 모델 바이트를 반환합니다.",
            "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": "랜덤 포레스트 회귀 예측",
            "description": "직렬화된 랜덤 포레스트 회귀 모델을 다중 밴드 예측 변수에 적용합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "단일 밴드 입력 래스터 배열."
              },
              "model_bytes": {
                "label": "모델 바이트",
                "description": "random_forest_regression_fit이 생성한 모델 바이트."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "random_sample": {
            "name": "임의 표본",
            "description": "고유 ID를 갖는 무작위 위치의 표본 셀을 포함하는 래스터를 생성합니다.",
            "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": "배경을 0으로",
                "description": "true이면 값이 0인 셀을 분석에서 제외합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "raster_calculator": {
            "name": "래스터 계산기",
            "description": "입력 래스터 목록에 대해 수학식을 셀 단위로 평가합니다.",
            "params": {
              "expression": {
                "label": "표현식",
                "description": "따옴표로 묶인 래스터 변수 이름을 사용하는 수식."
              },
              "inputs": {
                "label": "입력",
                "description": "순서가 지정된 입력 래스터 경로."
              },
              "auto_reproject": {
                "label": "자동 재투영",
                "description": "true(기본값)이면 CRS가 다를 때 스택 래스터를 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": "안티에일리어싱 조회 테이블을 사용하여 클래스별 래스터 폴리곤 둘레를 추정하고 클래스 합계를 각 클래스 셀에 기록합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 범주형 래스터."
              },
              "units": {
                "label": "단위",
                "description": "둘레 단위: 'map units'(기본값) 또는 'grid cells'."
              },
              "zero_background": {
                "label": "배경을 0으로",
                "description": "true이면 값이 0인 셀을 분석에서 제외합니다."
              },
              "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": "정수형 양수 ID를 가진 입력 패치 ID 래스터."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "sieve": {
            "name": "체 거르기",
            "description": "셀 수 임계값 미만의 작은 고립 패치를 제거합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 범주형 래스터."
              },
              "threshold": {
                "label": "임계값",
                "description": "유지할 셀 단위 최소 패치 크기."
              },
              "zero_background": {
                "label": "배경을 0으로",
                "description": "출력에서 배경(값 0) 셀을 0으로 만듭니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "sin": {
            "name": "사인",
            "description": "각 래스터 셀 값의 사인을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "sinh": {
            "name": "쌍곡 사인",
            "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": "탄젠트",
            "description": "각 래스터 셀 값의 탄젠트를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 파일 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "tanh": {
            "name": "쌍곡 탄젠트",
            "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": "회전 밴드 시뮬레이션",
            "description": "턴닝 밴드 알고리즘을 사용하여 공간 자기상관이 있는 무작위장을 생성합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "기준 래스터 경로."
              },
              "range": {
                "label": "범위",
                "description": "지도 단위의 상관 범위. 기본값: 1.0."
              },
              "iterations": {
                "label": "반복 횟수",
                "description": "밴드 방향 개수. 기본값: 1000."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "two_sample_ks_test": {
            "name": "2표본 KS 검정",
            "description": "두 래스터 값 분포에 대해 2표본 Kolmogorov-Smirnov 검정을 수행합니다.",
            "params": {
              "input1": {
                "label": "입력 1",
                "description": "첫 번째 입력 래스터 경로."
              },
              "input2": {
                "label": "입력 2",
                "description": "두 번째 입력 래스터 경로."
              },
              "num_samples": {
                "label": "표본 수",
                "description": "래스터별 복원 추출 선택적 표본 크기."
              }
            }
          },
          "wilcoxon_signed_rank_test": {
            "name": "Wilcoxon 부호 순위 검정",
            "description": "짝을 이룬 래스터 차이에 대해 Wilcoxon 부호 순위 검정을 수행합니다.",
            "params": {
              "input1": {
                "label": "입력 1",
                "description": "첫 번째 입력 래스터 경로."
              },
              "input2": {
                "label": "입력 2",
                "description": "두 번째 입력 래스터 경로."
              },
              "num_samples": {
                "label": "표본 수",
                "description": "복원 추출을 사용하는 선택적 표본 크기."
              }
            }
          },
          "z_scores": {
            "name": "Z 점수",
            "description": "전역 평균과 표준 편차를 사용하여 래스터 값을 z-점수로 표준화합니다.",
            "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": "0을 배경으로",
                "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": "로그 변환된 곡률도에 임계값을 적용하고 세선화된 선형 피처를 벡터화하여 브레이크라인을 매핑합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 DEM 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "threshold": {
                "label": "임계값",
                "description": "브레이크라인 추출에 사용되는 최소 로그 곡률도 임계값(기본값 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-점수를 계산합니다.",
            "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": "true이면 국지 보간을 통해 제방이 제거된 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": "remove_embankments=true일 때 제방이 제거된 DEM의 선택적 출력 경로."
              }
            }
          },
          "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": "스크린드 푸아송 재구성의 데이터 충실도 가중치(기본값 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": "다방위 음영기복과 고도 색조, 선택적 대기 연무를 혼합하여 스위스 스타일의 지형 렌더링을 생성합니다.",
            "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": "4방향 모드 대신 8방향 조명을 사용합니다."
              },
              "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": "기본 4개 대신 전체 360도에 걸친 8개 광원을 결합합니다"
              },
              "output": {
                "label": "출력",
                "description": "출력 래스터 경로"
              }
            }
          },
          "num_downslope_neighbours": {
            "name": "하류 이웃 수",
            "description": "각 DEM 셀보다 낮은 8방향 이웃 셀의 수를 셉니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 DEM 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로."
              }
            }
          },
          "num_upslope_neighbours": {
            "name": "상류 이웃 수",
            "description": "각 DEM 셀보다 높은 8방향 이웃 셀의 수를 셉니다.",
            "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": "입력 DEM에 대한 HTML 방사형 경사 대 향 분석 플롯을 생성합니다.",
            "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": "하나 이상의 DEM에 대한 HTML 경사 대 고도 분석 차트를 생성합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "';' 또는 ','로 구분된 문자열 또는 목록 형태의 입력 DEM 경로."
              },
              "watershed": {
                "label": "유역",
                "description": "각 입력 DEM에 대응하는 선택적 유역 래스터."
              },
              "output": {
                "label": "출력",
                "description": "출력 HTML 보고서 경로."
              }
            }
          },
          "surface_area_ratio": {
            "name": "표면적 비율",
            "description": "3D 표면적 / 평면 면적 비율(Jenness 방법)입니다. >1.0=거친 지형, ≈1.0=평탄한 지형. 지역 간 지형 비교를 가능하게 하는 무차원 표면 굴곡도 지표입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 DEM 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "topographic_hachures": {
            "name": "지형 해칭",
            "description": "등고선에서 시작하는 하류 및 상류 흐름선을 사용하여 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에서 가파른 비지형 객체를 제거합니다.",
            "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": "도 단위의 선택적 위도 재정의이며, 그렇지 않으면 DEM CRS에서 추론합니다."
              },
              "longitude": {
                "label": "경도",
                "description": "도 단위의 선택적 경도 재정의이며, 그렇지 않으면 DEM CRS에서 추론합니다."
              },
              "max_dist": {
                "label": "최대 거리",
                "description": "지도 단위의 최대 지평선 탐색 거리."
              },
              "start_day": {
                "label": "시작일",
                "description": "시작 연중 일수(1..366)."
              },
              "start_time": {
                "label": "시작 시각",
                "description": "시작 시각 HH:MM:SS 또는 'sunrise'."
              },
              "utc_offset": {
                "label": "UTC 오프셋",
                "description": "UTC+00:00 같은 선택적 UTC 오프셋 문자열이며, 생략하면 중심 경도에서 추정합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로."
              }
            }
          },
          "viewshed": {
            "name": "가시권",
            "description": "DEM 위의 포인트 관측소로부터 관측소 가시 횟수를 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 DEM 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "stations": {
                "label": "관측소",
                "description": "관측 지점의 입력 포인트 벡터 파일."
              },
              "height": {
                "label": "높이",
                "description": "DEM z 단위의 지면 위 관측 지점 높이(기본값 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": "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°=북, 90°=동, 180°=남, 270°=서)입니다. 일사량, 식생 패턴, 미기후, 노출 분석에 매우 중요합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 DEM 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "z_factor": {
                "label": "Z 계수",
                "description": "Z 변환 계수."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로."
              }
            }
          },
          "casorati_curvature": {
            "name": "Casorati 곡률",
            "description": "DEM으로부터 Casorati 곡률을 계산합니다.",
            "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": "곡률도",
            "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": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "difference_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": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "gaussian_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": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "generating_function": {
            "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": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "horizontal_excess_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": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "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": "등고선을 가로지르는 흐름의 수렴/발산을 측정하는 평면(등고선) 곡률을 계산합니다. 양수 값(수렴)은 중심을 향한 흐름 집중(오목)을, 음수 값(발산)은 중심에서 멀어지는 흐름 분산(볼록)을 나타냅니다. 측방 흐름 집중 구역(계곡)과 분산 구역(능선)을 식별합니다. 토양 수분 분포와 산사태 민감도 예측에 필수적입니다.",
            "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": "경사 방향을 따른 흐름의 가속/감속을 측정하는 종단(하류 방향) 곡률을 계산합니다. 양수 값(오목)은 흐름 가속 구역(침식)을, 음수 값(볼록)은 흐름 감속 구역(퇴적)을 나타냅니다. 사면 형태를 드러냅니다: 오목(계곡 바닥, 침식), 볼록(능선, 물질 제거), 직선(전이).",
            "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": "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": "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": "출력 단위: degrees, radians, percent."
              },
              "z_factor": {
                "label": "Z 계수",
                "description": "Z 변환 계수."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로."
              }
            }
          },
          "tangential_curvature": {
            "name": "접선 곡률",
            "description": "접선 곡률(동-서 방향 성분)을 계산하며, 평면 곡률과 유사하지만 방향성이 있습니다. 경사 방향에 수직인 측방 흐름 발산을 포착하는 포괄적인 곡률 특성화에 사용됩니다. 완전한 3D 곡률 이해를 위해 종단 곡률과 결합하는 경우가 많습니다.",
            "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": "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": "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": "지형 형태소",
            "description": "천정각 및 천저각 비교에서 도출한 8방향 가시선 3진 패턴 또는 10가지 일반적인 지형 형태소 형태를 사용하여 지형을 분류합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 DEM 래스터 경로 또는 타입 지정 래스터 객체."
              },
              "analyze_residuals": {
                "label": "잔차 분석",
                "description": "true이면 분류 전에 적합된 선형 평면을 사용하여 DEM의 추세를 제거합니다."
              },
              "flatness_distance": {
                "label": "평탄 거리",
                "description": "평탄도 임계값이 지평 거리에 따라 감소하기 시작하는 셀 단위 거리(기본값 0)."
              },
              "flatness_threshold": {
                "label": "평탄 임계값",
                "description": "천정-천저 각도 차이에 적용되는 도 단위 평탄도 임계값(기본값 1.0)."
              },
              "output_forms": {
                "label": "지형 형태 출력",
                "description": "true이면 10개의 일반적인 지형 클래스를 출력하고, 그렇지 않으면 동쪽에서 반시계 방향으로 정렬된 원시 3진 지오모르폰 코드를 출력합니다."
              },
              "search_distance": {
                "label": "탐색 거리",
                "description": "방향별 셀 단위 최대 조회 거리(기본값 50)이며, 종점 셀이 포함됩니다."
              },
              "skip_distance": {
                "label": "건너뛸 거리",
                "description": "가시선을 평가하기 전에 건너뛸 셀 단위 거리(기본값 0)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로."
              }
            }
          },
          "hypsometric_analysis": {
            "name": "고도 분포 분석",
            "description": "하나 이상의 DEM에 대한 고도 분포(면적-고도) 곡선 HTML 보고서를 생성합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "';' 또는 ','로 구분된 문자열 또는 목록 형태의 입력 DEM 경로."
              },
              "watershed": {
                "label": "유역",
                "description": "각 입력 DEM에 대응하는 선택적 유역 래스터."
              },
              "output": {
                "label": "출력",
                "description": "출력 HTML 보고서 경로."
              }
            }
          },
          "multiscale_topographic_position_class": {
            "name": "다중 스케일 지형 위치 분류",
            "description": "두 개의 DEVmax 스케일 모자이크를 사용하여 각 DEM 셀을 9개 클래스의 광역/국지 상대 지형 위치 체계로 분류합니다.",
            "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": "9개 클래스 범주형 래스터의 선택적 출력 경로."
              },
              "output_confidence": {
                "label": "신뢰도 출력",
                "description": "[0, 1] 범위의 신뢰도 래스터에 대한 선택적 출력 경로."
              }
            }
          },
          "pennock_landform_classification": {
            "name": "Pennock 지형 분류",
            "description": "지형 요소를 Pennock et al. (1987)의 7가지 지형 클래스로 분류합니다.",
            "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) 및 핵심 스케일 래스터를 계산합니다.",
            "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) 및 핵심 스케일 래스터를 계산합니다.",
            "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": "국지, 중간, 광역 DEVmax 래스터로부터 패킹된 RGB 다중 스케일 지형 위치 영상을 생성합니다.",
            "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": "비선형으로 샘플링된 스케일에 걸친 DEV 또는 DEVmax의 대화형 HTML 뷰어와 애니메이션 GIF를 생성합니다.",
            "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": "true이면 프레임이 지금까지 만난 가장 강한 절대 DEV 응답을 누적합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 HTML 경로."
              }
            }
          },
          "topo_render": {
            "name": "지형 렌더링",
            "description": "팔레트 색조, 음영기복, 그림자, 감쇠를 사용하여 의사 3D 지형 렌더링을 생성합니다.",
            "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": "배열 [r,g,b,a] 형태의 배경 RGBA 색상."
              },
              "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": "ArcGIS Add Surface Information과 같이 입력 지오메트리를 변경하지 않고 고도 래스터에서 피처별 표면 통계(Z, 3D 표면 길이, 3D 표면적, 최소/최대/평균 Z, 최소/최대/평균 경사)를 속성 필드로 추가합니다.",
            "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": "3D 피처에 Z 기반 지오메트리 통계(지점/최소/최대/평균 Z, 3D 길이, 메시 표면적과 부피, 경사 통계, 정점 수)를 추가합니다(ArcGIS Add Z Information). vector_summary_statistics와 attribute_histogram은 지오메트리가 아닌 속성을 요약하고, polygon_volume / surface_volume는 참조 평면에 대해 래스터를 측정하므로, 현재 3D 벡터 피처 자체의 Z로부터 주석을 다는 도구는 없습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "3D 포인트, 선, 폴리곤 또는 멀티패치 피처. Z가 0인 경우와 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의 쉼표로 구분된 부분 집합. 기본값: 전체(지오메트리에 적용할 수 없는 필드는 null로 남습니다)."
              },
              "noise_filtering": {
                "label": "잡음 필터링",
                "description": "min_z / max_z 계산 전에 Z 분포의 양 끝에서 잘라내는 백분율(0-50)이며, 이를 통해 단일 급변 정점이 보고되는 극값을 결정하지 않도록 합니다. 기본값 0."
              }
            }
          },
          "adjust_3d_z": {
            "name": "3D Z 조정",
            "description": "3D 피처의 Z 좌표에 Z 단위 변환, 수직 오프셋 및/또는 곱셈 계수를 적용합니다.",
            "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는 (meters-per-from_unit / meters-per-to_unit)로 스케일됩니다."
              }
            }
          },
          "adjust_stream_to_raster": {
            "name": "하천을 래스터에 맞게 조정",
            "description": "노드를 고누적 셀에 스냅하고 그 사이의 D8 포인터 체인을 추적하여, 하천 폴리라인 정점을 DEM이 암시하는 흐름 경로 위로 이동시켜 벡터 수계와 고도 표면을 일치시킵니다. 하천 굽기의 역연산입니다. 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": "셀이 스냅 대상 수로로 간주되는 흐름 누적 값(셀 단위) 하한(기본값: DEM 최대 누적값의 1%)."
              },
              "remove_disconnected": {
                "label": "비연결 제거",
                "description": "전혀 라우팅할 수 없는 선을 삭제합니다(기본값 true). false이면 변경되지 않은 채 통과되며 표시됩니다."
              },
              "output_stream_raster": {
                "label": "하천 래스터 출력",
                "description": "조정된 하천 셀을 표시하는 선택적 래스터."
              },
              "output_flow_direction": {
                "label": "흐름 방향 출력",
                "description": "DEM에서 유도된 선택적 D8 포인터 래스터."
              },
              "output_split_points": {
                "label": "분할 포인트 출력",
                "description": "포인터 추적이 실패하여 최소 비용 대체 방식이 사용된 선택적 포인트."
              }
            }
          },
          "aggregate_multidimensional_raster": {
            "name": "다차원 래스터 집계",
            "description": "래스터 큐브의 슬라이스를 차원에 따라 구간으로 묶고 각 구간을 하나의 출력 밴드로 축약합니다. 예를 들어 일별 장면을 월별 합성으로, 10년을 연평균으로 만듭니다(ArcGIS Aggregate Multidimensional Raster). 17라운드의 cell_statistics는 스택을 단일 레이어로만 축약하고 차원 개념이 없으며, 16라운드의 multidimensional_anomaly는 반대 연산을 수행하고 슬라이스 수를 유지합니다.",
            "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": "'interval_ranges'를 위한 'start:end,start:end' 형태의 명시적 구간."
              },
              "aggregation_method": {
                "label": "집계 방법",
                "description": "'mean'(기본값), 'majority', 'maximum', 'median', 'minimum', 'minority', 'percentile', 'range', 'std', 'sum' 또는 'variety'."
              },
              "percentile_value": {
                "label": "백분위수 값",
                "description": "'percentile' 방법을 위한 [0, 100] 범위의 백분위수(기본값 50)."
              },
              "ignore_nodata": {
                "label": "NoData 무시",
                "description": "셀별로 NoData 슬라이스를 건너뜁니다(기본값 true). false이면 NoData 슬라이스 하나가 해당 셀의 구간 전체를 NoData로 만듭니다."
              }
            }
          },
          "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": "세그먼트 RMSE의 배수 k로 나타낸 이상 임계값(기본값 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": "초기 세그먼트 1차 조화 진폭 sqrt(a²+b²)의 선택적 래스터."
              }
            }
          },
          "apply_radiometric_calibration": {
            "name": "방사 보정 적용",
            "description": "원시 SAR 디지털 값을 보정된 후방산란(베타 노트, 시그마 노트 또는 감마 노트)으로 변환하여 촬영 자료를 물리적으로 비교 가능하게 하고 공개된 임계값을 적용할 수 있게 합니다(ArcGIS Apply Radiometric Calibration). 두 레지스트리 어디에도 이 기능은 없습니다. rescale_value_range는 방사 의미가 없는 선형 스트레치이고, multilook, sar_coherence, Lee 스페클 필터, compute_sar_indices는 주어진 값을 그대로 사용합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "디지털 수치, 진폭, 강도 또는 dB 단위의 SAR 래스터('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": "'calibration_constant'를 재정의하는 셀별 보정 상수 A의 선택적 공동 정합 래스터."
              },
              "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'(기본값): 소스 합계를 보존하도록 재조정되는 외연적 총량. 'average': 재조정 없이 직접 예측되는 내포적 평균."
              },
              "discretization": {
                "label": "이산화",
                "description": "각 폴리곤의 면적 지지를 표현하는 데 사용되는 대략적인 내부 포인트 개수(기본값 25). 값이 클수록 더 정확하지만 훨씬 느립니다."
              },
              "model": {
                "label": "모델",
                "description": "베리오그램 모델: 'exponential'(기본값), 'spherical' 또는 'gaussian'."
              },
              "preserve_total": {
                "label": "합계 보존",
                "description": "대상 총합이 소스 총합과 일치하도록 count 예측을 재조정합니다('count'는 기본값 true, 'average'는 항상 해제). 대상이 소스를 덮을 때만 적용되며, 적용된 계수는 'mass_scale'로 보고되므로 부분 커버리지 실행을 확인할 수 있습니다."
              }
            }
          },
          "attribute_uncertainty": {
            "name": "속성 불확실성",
            "description": "불확실한 속성에 대한 시드 기반 몬테카를로 오차 전파(ArcGIS Attribute Uncertainty와 유사): 피처별 오차 필드 또는 상하한 쌍에서 NORMAL/UNIFORM 실현값을 추출하고 평균/표준편차/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": "값의 하한을 담고 있는 수치 필드. error_field 대신 upper_field와 함께 사용합니다."
              },
              "upper_field": {
                "label": "상한 필드",
                "description": "값의 상한을 담고 있는 수치 필드. error_field 대신 lower_field와 함께 사용합니다."
              },
              "distribution": {
                "label": "분포",
                "description": "오차 분포: NORMAL(기본값) 또는 UNIFORM."
              },
              "iterations": {
                "label": "반복 횟수",
                "description": "피처당 몬테카를로 실현 횟수(기본값 1000)."
              },
              "seed": {
                "label": "시드",
                "description": "결정적 RNG의 시드(기본값 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": "두 연속 변수가 공간적으로 함께 변하는 위치를 측정하는 Lee의 L 전역 및 국지 통계량으로, 시드 기반 순열 검정 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": "재현 가능한 결과를 위한 순열 RNG 시드(기본값 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": "셀 단위 블록 크기: rectangle은 'width,height'(기본값 '3,3'), circle/wedge는 'radius', annulus는 'inner,outer'."
              },
              "start_angle": {
                "label": "시작 각도",
                "description": "동쪽에서 반시계 방향으로 측정한 쐐기 시작 각도(도)(기본값 0)."
              },
              "end_angle": {
                "label": "종료 각도",
                "description": "동쪽에서 반시계 방향으로 측정한 쐐기 종료 각도(도)(기본값 90)."
              },
              "ignore_nodata": {
                "label": "NoData 무시",
                "description": "true(기본값)이면 유효 셀만으로 블록을 계산하고, false이면 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": "3D 버퍼",
            "description": "ArcGIS Buffer 3D와 같이 3D 포인트와 선을 삼각분할 표면으로 출력되는 입체 지오메트리(구와 캡슐)로 버퍼링합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 3D 포인트 또는 폴리라인 레이어(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": "join_style=mitre일 때 사용되는 마이터 결합 한계이며, 기본값은 5.0입니다."
              },
              "dissolve": {
                "label": "디졸브",
                "description": "중첩되는 버퍼를 단일 통합 폴리곤으로 디졸브하며, 기본값은 false입니다."
              },
              "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": "중첩 래스터 집합(및 선택적 풋프린트)이 주어지면, 보로노이, 우선순위, 방사 또는 경계 인식 할당을 통해 모자이크가 최소로 눈에 띄는 이음선을 따라 결합되도록 각 영상의 절단 위치를 계산하고, 영상마다 겹치지 않는 심라인 폴리곤을 하나씩 출력합니다. 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' 방법의 경우: true(기본값)이면 앞선 래스터에 우선순위를 주고, false이면 뒤의 래스터에 우선순위를 줍니다."
              },
              "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": "ArcGIS Calculate Adjacent Fields와 같이 '다음 도엽에 계속…' 여백 레이블을 위해 지도 시리즈 인덱스 격자의 각 타일에 8방향 인접 도엽 필드(N, NE, E, SE, S, SW, W, NW)를 인접 페이지 이름으로 채웁니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 폴리곤 도엽 색인 격자(예: grid_index_features의 출력)."
              },
              "page_name_field": {
                "label": "페이지 이름 필드",
                "description": "각 페이지에 레이블을 지정하는 값의 필드(이웃의 방향 필드에 기록됨)."
              },
              "output": {
                "label": "출력",
                "description": "출력 폴리곤 벡터(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "include_diagonal": {
                "label": "대각선 포함",
                "description": "모서리가 맞닿은 타일로부터 네 개의 대각 필드(NE, SE, SW, NW)도 채웁니다. 기본값 true."
              },
              "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, Esri의 1/6 규칙). [0, 0.5) 범위여야 합니다."
              }
            }
          },
          "calculate_composite_index": {
            "name": "복합 지수 계산",
            "description": "여러 수치 속성을 복합 지수로 결합합니다(ArcGIS Calculate Composite Index와 유사): 변수별 스케일링(최소-최대/z점수/백분위수)과 선택적 반전, 가중 결합(평균/합계/기하평균), 출력 재조정을 지원하며, 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": "입력 포인트/피처 벡터 레이어(투영 CRS, 거리는 해당 단위)."
              },
              "neighbors": {
                "label": "이웃",
                "description": "이웃 개수 k(>= 1). 기본값 1."
              },
              "distance_method": {
                "label": "거리 방법",
                "description": "'euclidean'(기본값) 또는 'manhattan'."
              },
              "output": {
                "label": "출력",
                "description": "feature_id,kth_neighbor_distance 테이블의 선택적 CSV 경로."
              }
            }
          },
          "calculate_end_time": {
            "name": "종료 시간 계산",
            "description": "각 엔티티 그룹 내에서 다음 레코드의 시작 시각으로 종료 시각 필드를 채워, 순간 관측을 시간 범위 레코드로 변환합니다(ArcGIS Calculate End Time). transform_fields는 값별 변환을, summary_statistics는 그룹 집계를 수행하지만, 행 순서 기반 시간 채우기는 없었습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어 또는 테이블."
              },
              "start_field": {
                "label": "시작 필드",
                "description": "타임스탬프 필드: 수치 에포크 또는 ISO-8601 날짜/일시 문자열."
              },
              "end_field": {
                "label": "종료 필드",
                "description": "종료 시각을 받는 필드(기본값 'END_TIME'). 없으면 생성되고 있으면 덮어씁니다."
              },
              "id_fields": {
                "label": "ID 필드",
                "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": "ArcGIS Calculate Grid Convergence Angle과 같이 중심점 경위도와 중앙 자오선(기본값은 피처 자체의 UTM 중앙 자오선)으로부터 피처별 격자 북과 진북 사이의 격자 수렴각을 계산하여 필드에 기록하며, 투영 지도에서 기호/레이블을 올바르게 회전할 수 있게 합니다. 지리적(북에서 시계 방향) 또는 산술적(동에서 반시계 방향) 규약을 지원합니다. 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": "ArcGIS Calculate Missing Z Values와 같이 3D 피처를 따라 양쪽의 유효한 Z 값으로부터 보간하여 자리표시자 또는 누락된 Z 값을 채웁니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "3D 정점을 가진 입력 피처 레이어."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              },
              "placeholder": {
                "label": "자리표시자",
                "description": "누락된 Z를 나타내는 센티널 값(예: -9999). Z가 전혀 없는 정점은 항상 누락으로 취급됩니다."
              },
              "method": {
                "label": "방법",
                "description": "채움 방법: 'linear'(기본값, 피처를 따라 거리로 보간) 또는 'nearest'."
              },
              "extrapolate": {
                "label": "외삽",
                "description": "가장 가까운 유효 정점을 연장하여 앞뒤 공백을 채웁니다(기본값 false, 채우지 않은 정점은 대신 개수로 집계됩니다)."
              }
            }
          },
          "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": "각 폴리곤의 주 방향(회전 캘리퍼스로 구한 최소 면적 경계 사각형의 장변 방향)을 각도 필드에 기록합니다. 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와 유사): 조비율, Marshall 전역 경험적 베이즈, 또는 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": "비율 배수, 예: 10만 명당의 경우 100000(기본값 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": "각 연결의 지오메트리를 출력에 유지합니다(기본값 true). 순수 테이블을 원하면 false로 설정합니다."
              }
            }
          },
          "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": "calendar.txt/calendar_dates.txt로 확인되는 운행 일자 YYYYMMDD. 생략하면 모든 운행이 집계됩니다."
              },
              "start_time": {
                "label": "시작 시각",
                "description": "윈도우 시작 HH:MM 또는 HH:MM:SS(GTFS 시각은 24:00을 초과할 수 있습니다). 생략하면 하루 전체가 집계됩니다."
              },
              "duration_minutes": {
                "label": "소요 시간 (분)",
                "description": "분 단위 윈도우 길이(start_time과 함께 사용되며, 시간당 분모도 설정합니다)."
              },
              "count": {
                "label": "개수",
                "description": "'departures'(기본값) 또는 'arrivals' — 집계할 stop-time 필드."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              }
            }
          },
          "calculate_utm_zone": {
            "name": "UTM 존 계산",
            "description": "ArcGIS Calculate UTM Zone과 같이 적응형 투영 지도 시리즈를 위해 각 피처의 중심점 경위도로부터 최적 UTM 존과 WGS84 EPSG 코드를 계산하여 존(1–60) 필드와 EPSG(326##/327##) 필드를 추가합니다. 노르웨이/스발바르 예외를 포함한 순수 수학이며 PROJ를 사용하지 않습니다. 지오메트리는 경위도(도)로 읽습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "지리 좌표(경도/위도 도, EPSG:4326)의 입력 벡터 레이어(모든 지오메트리 유형)."
              },
              "zone_field": {
                "label": "구역 필드",
                "description": "UTM 존 번호(1–60)를 담을 정수 필드의 이름. 기본값 'utm_zone'."
              },
              "epsg_field": {
                "label": "EPSG 필드",
                "description": "WGS84 UTM EPSG 코드(북반구 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'(결과 ~ 처치 + 교란 변수)."
              },
              "add_spatial_confounders": {
                "label": "공간 교란 변수 추가",
                "description": "true이면 각 피처의 x/y 좌표와 각 교란 변수의 k 최근접 이웃 평균으로 교란 변수 집합을 확장합니다(기본값 false)."
              },
              "balance_threshold": {
                "label": "균형 임계값",
                "description": "보정 후 균형 검사를 위한 표준화 평균 차이 임계값(기본값 0.1)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 벡터 경로(입력 사본 + 성향 점수/가중치/매칭 ID 열). 생략하면 메모리에 저장됩니다."
              },
              "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 기반 순위를 제공하는 공동 정합 래스터 경로 또는 상수."
              },
              "ignore_nodata": {
                "label": "NoData 무시",
                "description": "셀별로 NoData 관측값을 건너뜁니다(기본값 true). false이면 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와 유사): 평균, 최빈값, 최대값, 중앙값, 최소값, 최소 빈도값, 백분위수, 범위, 표준편차, 합계 또는 종류 수를 계산합니다. 번들된 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 관측값을 건너뜁니다(기본값 true). false이면 NoData 관측값 하나가 해당 셀을 NoData로 만듭니다."
              },
              "percentile_value": {
                "label": "백분위수 값",
                "description": "통계량 'percentile'을 위한 [0, 100] 범위의 백분위수(기본값 50 = 중앙값)."
              }
            }
          },
          "central_feature": {
            "name": "중심 피처 / 선형 방향 평균",
            "description": "중심 피처(다른 모든 피처까지의 총 거리가 가장 작은 입력 피처) 또는 선형 방향 평균(선 피처의 평균 방위, 원형 분산, 평균 길이)을 계산합니다. 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": "linear_directional_mean에서 선을 무방향(방향 mod 180°)으로 취급합니다. 기본값 false."
              }
            }
          },
          "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": "분류 래스터(또는 이미 예측 클래스를 가진 포인트)를 실측 레이블이 있는 참조 포인트에 대해 평가하여 혼동 행렬, 전체 정확도, 클래스별 생산자/사용자 정확도, 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": "입력 선 벡터 레이어(투영 CRS, 폭은 해당 단위)."
              },
              "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는 미터, 그 외에는 CRS 단위)은 축약되고, 더 큰 것은 유지됩니다."
              },
              "road_class_field": {
                "label": "도로 등급 필드",
                "description": "선택적 도로 등급 필드. 설정하면 경계 도로가 모두 동일한 등급 값을 공유하는 루프만 축약됩니다(서로 다른 등급 간의 교차점은 보존됩니다)."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "도로 끝점이 동일한 교차점으로 취급되는 거리. 기본값 1e-6."
              }
            }
          },
          "collect_events": {
            "name": "이벤트 수집",
            "description": "ArcGIS Collect Events와 같이 동일 위치의 사건 포인트를 해당 위치의 이벤트 수(ICOUNT)를 가진 고유 위치로 축약합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 포인트 벡터 레이어(Point 또는 MultiPoint)."
              },
              "output": {
                "label": "출력",
                "description": "출력 포인트 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "tolerance": {
                "label": "허용 오차",
                "description": "지도 단위의 스냅 허용 오차이며, 좌표가 동일한 셀로 반올림되는 포인트는 일치하는 것으로 취급됩니다(기본값 1e-8, 즉 사실상 정확한 값)."
              }
            }
          },
          "colocation_analysis": {
            "name": "동시 입지 분석",
            "description": "범주 A 포인트가 범주 B 이웃 사이에서 불균형적으로 발견되는지 측정하는 국지 동시 입지 지수(Leslie & Kronenfeld)로, 시드 기반 순열 검정 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": "재현 가능한 결과를 위한 순열 RNG 시드(기본값 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": "둘 이상의 공동 정합된 범주형 래스터에서 값의 고유한 조합마다 고유 구역 ID를 할당하고, 값 속성 테이블(ID, 개수, 입력별 열)을 함께 생성합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "결합할 공동 정합된 범주형/정수 래스터 2개 이상의 쉼표로 구분된 목록."
              },
              "output": {
                "label": "출력",
                "description": "고유 조건 ID 격자의 선택적 출력 래스터 경로. 생략하면 메모리에 저장됩니다."
              },
              "csv_output": {
                "label": "CSV 출력",
                "description": "값-속성 테이블의 선택적 CSV 경로(value, count, 입력 래스터당 열 하나)."
              },
              "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": "ID 필드",
                "description": "각 피처의 고유 ID를 담고 있는 필드(호환성을 위해 허용되며, 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": "knn 방법의 최근접 이웃 개수 k. 기본값 8."
              },
              "threshold_distance": {
                "label": "임계 거리",
                "description": "지도 단위의 거리 밴드 절단값. fixed_distance_band가 방법에 포함된 경우에만 필요합니다."
              }
            }
          },
          "composite_bands": {
            "name": "밴드 합성",
            "description": "여러 단일 밴드 래스터를 주어진 순서대로 하나의 다중 밴드 래스터로 쌓습니다(ArcGIS Composite Bands). 번들된 create_colour_composite는 RGB 3밴드로 고정되어 있어, band_collection_statistics, principal_component_analysis, spectral_index, OBIA 도구군이 모두 필요로 하는 N밴드 입력을 조립할 방법이 없었습니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "출력 밴드 순서대로 쉼표 또는 세미콜론으로 구분된 래스터 경로. 최소 하나."
              },
              "band": {
                "label": "밴드",
                "description": "입력 자체가 다중 밴드일 때 각 입력에서 가져올 1 기반 밴드(기본값 1)."
              },
              "nodata_policy": {
                "label": "NoData 정책",
                "description": "'any'(기본값): 어느 한 밴드라도 NoData이면 셀이 NoData가 됩니다. 'all': 모든 밴드가 NoData일 때만 그렇습니다."
              },
              "nodata": {
                "label": "NoData",
                "description": "출력의 NoData 값(기본값: 첫 번째 입력의 NoData)."
              },
              "output": {
                "label": "출력",
                "description": "출력 다중 밴드 래스터. 생략하면 메모리에 저장됩니다."
              }
            }
          },
          "compute_accuracy_for_object_detection": {
            "name": "객체 탐지 정확도 계산",
            "description": "IoU 매칭으로 탐지된 피처를 실측 자료와 대조하여 클래스별 정밀도, 재현율, 평균 정밀도와 전체 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": "탐지가 일치로 간주되기 위한 최소 IoU(기본값 0.5)."
              }
            }
          },
          "compute_sar_indices": {
            "name": "SAR 지수 계산",
            "description": "다중 편파 후방산란으로부터 편파 SAR 지수(RVI(레이더 식생 지수), RFDI(레이더 산림 황폐화 지수), CSI(수관 구조 지수), DPSVI(이중 편파 SAR 식생 지수))를 도출합니다(ArcGIS Compute SAR Indices). spectral_index는 광학 밴드 연산만 다루며 그 공식과 밴드 규약은 반사율 영역이고 편파 채널 개념이 없으므로, 카탈로그의 SAR 체인(multilook, sar_coherence, 스페클 필터)에는 현재 분석 종착점이 없습니다.",
            "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": "관측자 포인트와 목표 피처 사이에 시선 피처를 구축하며, 관측자/목표 높이 오프셋, 선형 및 면형 목표에 대한 샘플링, 선택적 방위각 및 수직각 필드, 2D 또는 3D 거리를 지원합니다. 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": "DISTANCE 필드에 대한 '2d'(기본값) 또는 '3d'."
              }
            }
          },
          "contiguous_cartogram": {
            "name": "연속 카토그램",
            "description": "밀도 균등화(Gastner-Newman 확산) 카토그램: 지도가 공유 경계를 가진 연결된 면으로 유지되도록 하면서 폴리곤 면적을 속성에 비례하도록 왜곡합니다(ArcGIS Generate Contiguous Cartogram). 제공된 cartogram 도구는 인접성을 파괴하는 비연속형과 Dorling 방법만 구현하며, 자체 모듈 문서에서 연속형은 미루고 있습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "연속된 폴리곤 레이어."
              },
              "value_field": {
                "label": "값 필드",
                "description": "면적이 그 총합에 비례하게 될 양수 수치 속성."
              },
              "grid_size": {
                "label": "격자 크기",
                "description": "밀도 격자 해상도이며, 2의 거듭제곱이어야 합니다(기본값 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": "ArcGIS Convert Coordinate Notation과 같이 각 피처의 좌표를 표기법 간(십진 도(DD), 도분초(DMS), 도 십진분(DDM), UTM, MGRS/USNG)으로 변환하여 대상 표기법의 새 필드를 기록합니다. 순수 격자 수학(WGS84 기준 Krüger 횡축 메르카토르 + MGRS 문자 체계)이며 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=경도, y=위도)."
              },
              "output_field": {
                "label": "출력 필드",
                "description": "기록할 필드의 이름. 기본값: 소문자로 변환한 출력 표기법(예: 'utm')."
              },
              "precision": {
                "label": "정밀도",
                "description": "축당 MGRS 자릿수(1=10km … 5=1m, 최대 9). 기본값 5. 다른 표기법에서는 무시됩니다."
              },
              "update_geometry": {
                "label": "지오메트리 업데이트",
                "description": "true이면 파싱된 좌표로부터 각 피처의 지오메트리를 EPSG:4326의 경도/위도 포인트로 다시 만듭니다. 기본값 false(입력 지오메트리/CRS 유지)."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              }
            }
          },
          "convert_sar_units": {
            "name": "SAR 단위 변환",
            "description": "SAR 래스터를 진폭, 강도, 선형 전력, 데시벨, 복소수→강도, 언래핑 위상→변위 표현 간에 변환합니다(ArcGIS Convert SAR Units). raster_calculator로 산술은 계산할 수 있지만 의미나 보호 장치가 없어 로그 변환 시 0 값 셀에 -inf를 반환하며, 카탈로그의 어떤 도구도 SAR 래스터의 단위를 기록하지 않아 스페클 필터와 비율 지수가 잘못된 표현에 적용되곤 합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 SAR 래스터. 'complex_to_intensity'의 경우 2밴드 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": {
                "label": "밴드",
                "description": "읽을 1 기반 밴드(기본값 1). 항상 밴드 1과 2를 I와 Q로 읽는 'complex_to_intensity'에서는 무시됩니다."
              }
            }
          },
          "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). 이 값이 주어지지 않으면 2밴드 입력은 복소 크기로 매칭됩니다."
              },
              "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": "이상치 시그마",
                "description": "적합 잔차가 이 표준편차 배수를 초과하는 결합점을 잘라냅니다(기본값 3.0). 0으로 설정하면 잘라내기를 비활성화합니다."
              },
              "resample": {
                "label": "리샘플링",
                "description": "'bilinear'(기본값) 또는 'nearest'."
              }
            }
          },
          "corridor": {
            "name": "코리더",
            "description": "두 누적 비용 표면 간의 최소 비용 코리더(ArcGIS Corridor): 두 비용 거리 래스터를 합산하여 최소값이 최소 비용 경로가 되는 코리더 표면을 만들고, 선택적으로 임계값을 적용하여 준최적 밴드를 추출합니다. 직접 모드(비용 래스터 2개) 또는 간편 모드(마찰 래스터 1개 + 소스 래스터 2개)를 지원합니다.",
            "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": "회랑 비용이 이 절대값 이하인 셀만 유지합니다(나머지는 NoData로 마스킹)."
              },
              "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": "소스 셀: 래스터(0이 아니고 NoData가 아닌 모든 셀이 소스) 또는 포인트/멀티포인트 벡터 레이어."
              },
              "cost": {
                "label": "비용",
                "description": "단위 거리당 비용 래스터. 'surface'가 주어지면 선택 사항입니다(그 경우 비용이 어디서나 1이 되어 순수 표면 거리를 제공)."
              },
              "surface": {
                "label": "표면",
                "description": "Path Back Link 변형을 활성화하는 선택적 표고 래스터이며, 수평 간격이 실제 표면 거리 sqrt(dxy^2 + dz^2)로 대체됩니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 백링크 래스터(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": "비용/마찰 래스터(셀별 통과 비용, NoData 셀은 장벽)."
              },
              "output": {
                "label": "출력",
                "description": "최소 비용 경로의 출력 폴리라인 레이어. 생략하면 메모리에 저장됩니다."
              },
              "connections": {
                "label": "연결",
                "description": "'mst'(모든 지점을 연결하는 최소 신장 트리, 기본값) 또는 'all_neighbors'(인접 영역 간 모든 경로)."
              },
              "id_field": {
                "label": "ID 필드",
                "description": "소스에 레이블을 지정하는 선택적 필드(기본값: 1 기반 인덱스)."
              },
              "band": {
                "label": "밴드",
                "description": "비용 래스터의 1 기반 밴드(기본값 1)."
              }
            }
          },
          "count_overlapping_features": {
            "name": "중첩 피처 개수",
            "description": "ArcGIS Count Overlapping Features와 같이 중첩 폴리곤을 서로소 영역으로 평탄화하고, 각 영역에 이를 덮는 입력 피처의 수(및 선택적으로 ID)를 기록합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 폴리곤 벡터 레이어(피처가 중첩될 수 있음)."
              },
              "output": {
                "label": "출력",
                "description": "'count' 필드가 포함된 출력 폴리곤 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "min_count": {
                "label": "최소 개수",
                "description": "최소한 이 개수의 피처로 덮인 영역만 유지합니다(기본값 1, 중첩만 원하면 2 사용)."
              },
              "id_field": {
                "label": "ID 필드",
                "description": "각 입력 피처를 식별하는 선택적 필드(ids 열/보고서에 사용). 기본값: 피처 인덱스."
              },
              "report_ids": {
                "label": "ID 보고",
                "description": "region_id,feature_id 조인 테이블의 선택적 CSV 경로(덮는 피처당 행 하나)."
              }
            }
          },
          "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": "결정적 RNG의 시드(기본값 1)."
              },
              "output": {
                "label": "출력",
                "description": "CLASSVALUE(지도 클래스), GrndTruth(수집 전까지 -1), Stratum이 포함된 출력 포인트 레이어. 생략하면 메모리에 저장됩니다."
              }
            }
          },
          "create_cartographic_partitions": {
            "name": "지도 제작 분할 영역 생성",
            "description": "대규모 일반화/마스킹 작업을 커버리지 안전하게 타일링할 수 있도록, 각각 대략 목표 피처 수를 담는(데이터가 밀집된 곳은 더 조밀한) 적응형 비중첩 분할 폴리곤을 생성합니다. ArcGIS Create Cartographic Partitions의 순수 Rust 대응 도구입니다.",
            "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": "경로 ID 필드",
                "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": "systematic 격자와 cluster 구간의 간격(CRS 단위). 해당 방법에 필수입니다."
              },
              "num_clusters": {
                "label": "군집 수",
                "description": "cluster의 경우: 무작위로 선택할 구간 개수. 기본값 10."
              },
              "min_distance": {
                "label": "최소 거리",
                "description": "simple_random / stratified / cluster 포인트 사이의 최소 간격(CRS 단위). 기본값 0(제약 없음)."
              },
              "seed": {
                "label": "시드",
                "description": "결정적 RNG의 시드(기본값 1)."
              }
            }
          },
          "create_spatially_balanced_points": {
            "name": "공간 균형 포인트 생성",
            "description": "ArcGIS Create Spatially Balanced Points와 같이 제약 폴리곤 내에 공간적으로 고르게 분산된(준난수 Halton) 표본 포인트를 생성하고, 선택적으로 포함 확률 래스터로 가중치를 주며, 각 포인트에 균형 표본 순서를 기록합니다.",
            "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": "마스크 크기가 맞춰지는 지도 축척 분모(예: 1:24,000의 경우 24000)."
              },
              "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|가 이 값(CRS z 단위) 이하인 셀은 변화 없음으로 간주됩니다. 기본값 0."
              },
              "region_output": {
                "label": "영역 출력",
                "description": "연속된 절토/성토 영역 레이블의 선택적 래스터 경로(영역 ID >= 1, 변화 없는 셀은 NoData)."
              },
              "csv_output": {
                "label": "CSV 출력",
                "description": "영역별 부피 테이블의 선택적 CSV 경로(region_id, type, cell_count, volume)."
              }
            }
          },
          "darcy_flow": {
            "name": "Darcy 흐름",
            "description": "수두, 투수량 계수, 공극률 래스터로부터 정상 상태 지하수 Darcy 속도장을 계산합니다. 흐름 크기(Darcy 속도) 래스터와 하향 경사 흐름 방향 래스터(v = -(T/n)·∇head)를 출력하고, 선택적으로 시드 포인트로부터 이류 입자 추적(RK2)을 수행하여 유선 폴리라인을 생성합니다. ArcGIS Darcy Flow / Particle Track과 유사합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "지하수 수두(지하수면 표고) 래스터. 셀 크기는 이 래스터에서 가져옵니다."
              },
              "transmissivity": {
                "label": "투수량 계수",
                "description": "투수량계수 래스터(수두 래스터에 공동 정합됨)."
              },
              "porosity": {
                "label": "공극률",
                "description": "유효 공극률 래스터(수두 래스터에 공동 정합되며, 값은 0보다 커야 합니다)."
              },
              "output": {
                "label": "출력",
                "description": "출력 Darcy 유속 크기 래스터 경로. 생략하면 메모리에 저장됩니다."
              },
              "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": "레벨셋 방법을 사용하여 싱크 래스터로부터 중첩된 와지를 추출합니다(lidar slicing.py).",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 싱크 래스터(예: extract_sinks의 출력)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 와지 ID 래스터 경로. 생략하면 메모리에 저장됩니다."
              },
              "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": "레벨셋 방법의 슬라이싱 간격(기본값 0.3)."
              }
            }
          },
          "delineate_mounts": {
            "name": "산지 추출",
            "description": "DEM에서 융기 지형(산지)의 중첩 계층을 추출합니다(lidar mounts.py).",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 DEM 래스터 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "선택적 마운트 ID 래스터 경로. 생략하면 메모리에 저장됩니다."
              },
              "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": "레벨셋 방법의 슬라이싱 간격(기본값 0.3)."
              },
              "delta": {
                "label": "델타",
                "description": "DEM을 뒤집을 때 더해지는 기준값(기본값 100)."
              }
            }
          },
          "dem_filter": {
            "name": "DEM 필터",
            "description": "평균, 중앙값 또는 가우시안 필터로 DEM을 평활화합니다(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": "시그마",
                "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 표준화합니다(기본값 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": "2매개변수 CFAR 탐지기로 SAR 영상의 수면 위 선박 및 기타 밝은 점 표적을 찾아 길이, 폭, 방위, 최대 후방산란을 가진 방향성 경계 상자로 출력합니다(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와 같이 두 피처 레이어(또는 한 레이어와 자기 자신)의 기호화된(그려지는 폭) 범위가 최소 이격 거리 내에서 중첩되거나 밀집하는 곳을 찾아, 충돌 쌍마다 두 소스 피처 ID와 중첩 면적이 기록된 충돌 폴리곤을 출력합니다.",
            "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": "ArcGIS Detect Image Anomalies와 같이 다중 밴드 영상의 모든 픽셀을 장면(또는 이동 윈도우) 밴드 통계에 대한 Mahalanobis 거리로 점수화하는 Reed–Xiaoli(RX) 이상 탐지기로, 선택적 백분위수 임계값 마스크를 지원합니다.",
            "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": "각 트랙을 따라 조건이 시작되고 끝나는 위치를 표시합니다: 타임스탬프 포인트를 트랙별로 그룹화하고 시간순으로 정렬한 뒤, 수치 속성에 대한 시작(및 선택적 종료) 비교를 평가하여 사건 에피소드를 플래그 포인트 또는 ID와 지속 시간이 있는 에피소드별 선 세그먼트로 출력합니다. ArcGIS Detect Incidents와 유사합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "타임스탬프가 있는 관측값의 입력 포인트 벡터 레이어."
              },
              "track_field": {
                "label": "트랙 필드",
                "description": "각 트랙/이동체를 식별하는 필드(예: 차량 또는 동물 ID)."
              },
              "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": "다이스",
            "description": "정점 제한을 초과하는 폴리곤 또는 폴리라인을 더 작은 조각의 격자로 분할하여(ArcGIS Dice와 유사) 후속 오버레이와 타일링을 빠르게 유지합니다. 적응형 쿼드트리가 모든 조각이 제한 이하가 될 때까지 지오메트리를 각 사분면과 교차시킵니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 폴리곤 또는 폴리라인 레이어."
              },
              "output": {
                "label": "출력",
                "description": "분할된 조각의 출력 레이어. 생략하면 메모리에 저장됩니다."
              },
              "vertex_limit": {
                "label": "정점 제한",
                "description": "출력 피처당 최대 정점 수(기본값 10000). 이 값 이하인 피처는 변경 없이 통과합니다."
              }
            }
          },
          "difference_3d": {
            "name": "3D 차집합",
            "description": "3D 솔리드 집합에서 다른 집합을 빼고, 각 피감 피처에서 제거된 부피와 남은 부피를 보고합니다(ArcGIS Difference 3D). union_3d가 두 레지스트리의 유일한 3D 오버레이였고 erase는 폴리곤 전용 2D이므로, 절토체 이후 남은 굴착 부피나 배제 엔벨로프 밖의 플룸 부피를 계산할 방법이 없었습니다. 피감 부피는 정확하며, 제거된 부피는 보고되는 해상도의 복셀 점유로 추정합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "피감수 닫힌 3D 솔리드(Z를 가진 삼각형 메시 MultiPolygon)."
              },
              "subtract": {
                "label": "빼기",
                "description": "각 피감수에서 제거할 감수 닫힌 3D 솔리드."
              },
              "output": {
                "label": "출력",
                "description": "피감수당 행 하나로 구성된 출력 테이블. 생략하면 메모리에 저장됩니다."
              },
              "resolution": {
                "label": "해상도",
                "description": "각 피감수 경계 상자의 가장 긴 축을 따르는 복셀 셀 수(기본값 64). 값이 클수록 더 정확하지만 느립니다."
              },
              "keep_geometry": {
                "label": "지오메트리 유지",
                "description": "각 피감수의 원본 지오메트리를 출력 행에 함께 담습니다(기본값 false: 속성 전용 테이블). 이 지오메트리는 잘라내지 않은 피감수이며, 정확한 병합 메시는 생성되지 않습니다."
              }
            }
          },
          "diffusion_interpolation_with_barriers": {
            "name": "장애물 고려 확산 보간",
            "description": "열 확산이 절대(무흐름) 장애물을 통과하지 않고 우회하도록 시뮬레이션하여 산재한 포인트 측정값을 래스터로 보간합니다(ArcGIS Diffusion Interpolation With Barriers와 유사). 표본은 고정 셀로 고정되고, 나머지 모든 셀은 Laplace/열 방정식의 `number_iterations`회 Jacobi 스윕에 걸쳐 비장애물 이웃의 평균으로 이완되므로 영향력이 확산 거리에 따라 감소합니다. 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": "(0, 0.25] 범위의 반복당 완화 가중치 lambda(기본값 0.2): 각 자유 셀은 한 번의 스윕마다 이웃 평균 쪽으로 이 비율만큼 이동합니다."
              },
              "number_iterations": {
                "label": "반복 횟수",
                "description": "열방정식의 Jacobi 완화 스윕 횟수(기본값 100). 반복이 많을수록 영향이 더 멀리 퍼집니다."
              },
              "weight_field": {
                "label": "가중치 필드",
                "description": "포인트별 가중치를 제공하는 선택적 수치 필드(기본값 1)이며, 동일한 출력 셀에 들어가는 일치 표본을 평균하는 데만 사용됩니다."
              },
              "epsg": {
                "label": "EPSG",
                "description": "입력 CRS EPSG 코드를 재정의합니다(예: 레이어에 코드가 없을 때). 4326이면 국지 미터 투영이 적용됩니다."
              }
            }
          },
          "dimension_reduction": {
            "name": "차원 축소",
            "description": "수치 피처 속성에 대한 주성분 분석(ArcGIS Dimension Reduction과 유사): 선택한 필드를 표준화하고, 직접 구현한 Jacobi 회전으로 상관/공분산 행렬을 고유분해한 뒤, PC1..PCk 성분 점수를 피처에 기록하고 고유값/분산/적재값 보고서를 생성합니다. 번들된 밴드 전용 principal_component_analysis의 벡터 속성 대응 도구입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "수치 속성 필드를 가진 입력 벡터 레이어(또는 테이블)."
              },
              "fields": {
                "label": "필드",
                "description": "축약할 수치 필드 2개 이상의 쉼표로 구분된 목록."
              },
              "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": "스케일을 비교 가능하게 만들기 위해 PCA 전에 각 필드를 표준화(z점수)합니다 — 상관행렬을 분석합니다. 기본값 true이며, false이면 공분산 행렬을 분석합니다."
              }
            }
          },
          "dimensional_moving_statistics": {
            "name": "차원 이동 통계",
            "description": "래스터 큐브의 차원을 따라 이동 윈도우를 실행하여 입력 슬라이스마다 평활화된 슬라이스 하나를 기록합니다. 잡음이 많은 위성 시계열을 사용 가능하게 만드는 제자리 이동 평균 또는 중앙값입니다(ArcGIS Dimensional Moving Statistics). 17라운드의 time_series_smoothing은 벡터 전용이고, 번들된 초점 필터는 단일 슬라이스 내에서 공간적으로 윈도우를 이동하며, 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": "통계량 'percentile'을 위한 [0, 100] 범위의 백분위수(기본값 50)."
              },
              "period": {
                "label": "주기",
                "description": "'circular_mean'의 순환 주기(기본값 360, 즉 도 단위이며, 라디안에는 6.283185307179586을 사용)."
              },
              "min_valid": {
                "label": "최소 유효 수",
                "description": "값이 기록되기 전에 윈도우에 필요한 최소 비 NoData 관측값 수(기본값 1)."
              },
              "nodata_handling": {
                "label": "NoData 처리",
                "description": "'data'(기본값, NoData를 건너뛰고 나머지로 계산), 'nodata'(윈도우에 NoData가 하나라도 있으면 출력이 NoData) 또는 'fill_nodata'(중심 슬라이스 자체가 NoData인 곳에도 값을 기록)."
              }
            }
          },
          "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차 다항식을 적합하여 베리오그램 분석 전에 전역/이방성 추세를 탐지합니다(ArcGIS의 Directional Trend와 유사). 'determine'은 설명 분산이 최대인 방향을 찾기 위해 방위각을 스윕합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어(포인트 권장, 다른 지오메트리는 정점 평균 대표점을 사용)."
              },
              "field": {
                "label": "필드",
                "description": "추세를 분석할 수치 속성 필드."
              },
              "azimuth": {
                "label": "방위각",
                "description": "투영할 나침반 방위(도, 0 = 북쪽, 시계 방향) 또는 설명 분산이 최대가 되는 방위를 찾기 위해 0-179°를 탐색하는 'determine'(기본값)."
              },
              "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": "입력 이벤트 테이블(from/to 측정값을 가진 선 이벤트)."
              },
              "output": {
                "label": "출력",
                "description": "출력 이벤트 테이블 경로. 생략하면 메모리에 저장됩니다."
              },
              "route_id_field": {
                "label": "경로 ID 필드",
                "description": "경로 식별자를 담고 있는 필드."
              },
              "from_measure_field": {
                "label": "시작 측정값 필드",
                "description": "각 이벤트의 from 측정값을 담고 있는 필드."
              },
              "to_measure_field": {
                "label": "종료 측정값 필드",
                "description": "각 이벤트의 to 측정값을 담고 있는 필드. 포인트 이벤트의 경우 '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": "매칭 연결선의 선택적 출력 선 레이어(QA용)."
              }
            }
          },
          "eighty_twenty_analysis": {
            "name": "80/20 분석",
            "description": "ArcGIS Eighty Twenty Analysis와 같이 사건 포인트를 가중 위치로 스냅하고 Pareto 집중도('사건의 X%가 위치의 Y%에서 발생')를 계산하며, 각 위치에 순위, 누적 사건 백분율, 상위/하위 밴드를 기록합니다.",
            "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": "조건절",
                "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 셀 × 시간 단계로 구간화하고, 구간별 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 km² 셀)."
              },
              "neighborhood": {
                "label": "근방",
                "description": "H3 k 링 단위의 공간 근방 반경(기본값 1)."
              },
              "time_window": {
                "label": "시간 창",
                "description": "시간 단계 단위의 시간 근방 반경(기본값 1)."
              }
            }
          },
          "empirical_bayesian_kriging": {
            "name": "경험적 베이지안 크리깅",
            "description": "많은 중첩 국지 부분 집합을 통해 포인트 필드를 보간합니다. 각 부분 집합은 고유한 세미베리오그램을 적합하고, 시드 기반 난수로 교란된 세미베리오그램을 시뮬레이션하여 불확실성을 포착한 뒤, 부분 집합 크리깅 예측/분산을 거리로 혼합합니다(ArcGIS의 Empirical Bayesian Kriging과 유사). 수동으로 승인한 하나의 전역(또는 단일 이동 윈도우) 세미베리오그램을 적합하는 번들된 정규/보편/단순/코크리깅과는 다릅니다.",
            "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": "결정적 반베리오그램 시뮬레이션 RNG의 시드(기본값 42)."
              }
            }
          },
          "enclose_multipatch": {
            "name": "멀티패치 닫기",
            "description": "열린 3D 삼각형 메시 표면의 경계 루프를 막아 닫힌 방수 솔리드로 변환하여 체적 분석의 유효한 입력으로 만듭니다(ArcGIS Enclose Multipatch). is_closed_3d는 열린 메시를 진단할 수 있지만 복구할 수는 없었고, union_3d / intersect_3d / difference_3d / inside_3d는 모두 열린 메시를 거부하거나 잘못 보고하는데, 이는 돌출된 풋프린트, 지형 셸, 가져온 건물 표면의 일반적인 상태입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "3D 표면 피처(Z를 가진 삼각형 메시 MultiPolygon)."
              },
              "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": "DEM의 CRS를 공유하는 입력 하천 폴리라인 레이어(LineString / MultiLineString)."
              },
              "surface": {
                "label": "표면",
                "description": "보정할 표고 래스터(DEM)."
              },
              "output": {
                "label": "출력",
                "description": "출력 보정된 DEM 경로(확장자로 형식 결정). 생략하면 메모리에 저장됩니다."
              },
              "tolerance": {
                "label": "허용 오차",
                "description": "Z 단위로, 밀집화된 단계마다 강제되는 최소 표고 하강량(기본값 0 = 비증가). 양수 값은 엄격히 감소하는 종단을 강제합니다."
              },
              "sample_distance": {
                "label": "표본 거리",
                "description": "각 하천선을 따르는 CRS 단위의 밀집화 간격. 기본값: 래스터 셀 크기(≈ 셀당 표본 하나)."
              },
              "band": {
                "label": "밴드",
                "description": "보정할 1 기반 DEM 밴드(기본값 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": "소스 래스터: NoData도 0도 아닌 셀이 소스입니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 방향 래스터 경로(북쪽에서 시계 방향의 도). 생략하면 메모리에 저장됩니다."
              },
              "output_distance": {
                "label": "거리 출력",
                "description": "함께 생성되는 거리 래스터의 선택적 경로."
              },
              "output_back_direction": {
                "label": "역방향 출력",
                "description": "역방향 래스터의 선택적 경로: 이 셀에서 가장 가까운 소스로 되돌아가기 위한 방위. 장벽이 제공되지 않으면 방향 래스터와 같으며, 장벽이 있으면 복귀 경로의 첫 단계입니다."
              },
              "barriers": {
                "label": "장애물",
                "description": "선택적 장벽 래스터이며, 0이 아니고 NoData가 아닌 셀은 직선 경로를 차단하여 우회 라우팅을 강제합니다."
              },
              "max_distance": {
                "label": "최대 거리",
                "description": "어떤 소스에서도 이보다 멀리 떨어진 셀은 NoData로 기록됩니다."
              },
              "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": "부분 의존도 출력",
                "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, 최근접 이웃, 1차/2차 추세면)을 실행하고 각각을 단일 제외 교차 검증한 뒤, 예측 정확도(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 모델을 열거하고, 각각을 수정 R², 계수 유의성, 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": "최소 수정 R²",
                "description": "최소 조정 결정계수(기본값 0.5)."
              },
              "max_vif": {
                "label": "최대 VIF",
                "description": "항별로 허용되는 최대 분산 팽창 계수(기본값 7.5)."
              },
              "min_jb_p": {
                "label": "최소 JB p값",
                "description": "잔차 정규성에 대한 최소 Jarque-Bera p값(기본값 0.1)."
              },
              "min_moran_p": {
                "label": "최소 Moran p값",
                "description": "잔차의 공간 자기상관(Moran's I)에 대한 최소 p값이며, 이 값을 넘으면 잔차가 유의하게 군집되지 않은 것입니다(기본값 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": "CMOD5.N 지구물리 모델 함수를 역산하여 보정된 SAR 후방산란으로부터 10 m 등가 중립 해상 풍속을 추출합니다(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": "편파 비율 알파",
                "description": "HH-VV 편파비의 알파(기본값 0.6). polarization이 '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' 이상인 셀(그것도 없으면 0이 아닌 모든 유효 셀)이 전경이 됩니다."
              },
              "threshold": {
                "label": "임계값",
                "description": "전경은 값이 이 값 이상인 셀입니다('foreground_value'가 주어지지 않을 때 사용)."
              },
              "noise_size": {
                "label": "잡음 크기",
                "description": "이 셀 수보다 작은 전경 요소를 제거합니다(기본값 4)."
              },
              "hole_size": {
                "label": "구멍 크기",
                "description": "이 셀 수보다 작은 배경 구멍을 채웁니다(기본값 4)."
              },
              "gap_distance": {
                "label": "간격 거리",
                "description": "lines의 경우: 거의 동일선상에 있는 선 끝점 사이의 이 거리(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": "다중 밴드 영상과 훈련 영역으로부터 클래스당 하나의 스펙트럼으로 구성된 분광 라이브러리를 spectral_library_matching이 읽는 CSV 레이아웃으로 도출합니다(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,...'), spectral_library_matching의 'library_csv'에 바로 사용할 수 있습니다."
              },
              "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": "데시벨에 대한 장면별 Otsu 임계값으로 SAR 후방산란에서 개방 수면과 침수 범위를 추출하고, 선택적 DEM 경사 및 최소값 대비 높이 필터로 레이더 그림자와 건조한 어두운 표면을 제거합니다(ArcGIS Extract Water). 두 레지스트리 모두 레이더로 이를 수행할 수 없습니다. spectral_index의 NDWI/MNDWI는 SAR에 없는 녹색/NIR/SWIR 반사율 밴드가 필요하고, 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": "닫힌 솔리드 피처(Z를 가진 삼각 메시 MultiPolygon). 생략하면 메모리에 저장됩니다."
              },
              "sample_distance": {
                "label": "표본 거리",
                "description": "CRS 단위의 풋프린트 샘플링 및 경계 조밀화 간격. 기본값: 더 세밀한 표면 셀 크기."
              },
              "band": {
                "label": "밴드",
                "description": "각 표면 래스터에서 읽을 1 기반 밴드(기본값 1)."
              }
            }
          },
          "feature_outline_masks": {
            "name": "피처 윤곽 마스크",
            "description": "피처 주위의 여백에 지도 제작용 마스크 폴리곤(정확한 윤곽, 볼록 헐 또는 경계 상자)을 생성하며, 선택적으로 두 번째 레이어로 클립합니다(교차 레이어 마스크).",
            "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": "ID 필드",
                "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": "true(기본값)이면 각 출력 세그먼트에 소스 피처 id인 'src_fid'를 태그합니다."
              }
            }
          },
          "feature_vertices_to_points": {
            "name": "피처 정점을 포인트로 변환",
            "description": "ArcGIS Feature Vertices To Points와 같이 선택한 피처 정점(ALL, START, END, BOTH_ENDS, MID(호 길이 중점) 또는 DANGLE(공유되지 않은 선 끝점))으로부터 상위 FID 필드가 있는 포인트 레이어를 생성합니다.",
            "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": "GPX <name> 요소에 매핑되는 속성 필드(선택 사항)."
              },
              "description_field": {
                "label": "설명 필드",
                "description": "GPX <desc> 요소에 매핑되는 속성 필드(선택 사항)."
              },
              "z_field": {
                "label": "Z 필드",
                "description": "GPX <ele> 표고에 매핑되는 속성 필드(선택 사항. 없으면 지오메트리 Z가 있을 때 이를 사용합니다)."
              },
              "date_field": {
                "label": "날짜 필드",
                "description": "GPX <time> 타임스탬프에 매핑되는 속성 필드로, 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": "입력 벡터 레이어. KML이 정의하는 유일한 CRS인 EPSG:4326 경위도여야 합니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 .kml 또는 .kmz 파일 경로."
              },
              "name_field": {
                "label": "이름 필드",
                "description": "각 Placemark의 <name>에 사용되는 속성."
              },
              "description_field": {
                "label": "설명 필드",
                "description": "<description>에 사용되는 속성. 생략하면 모든 속성이 <ExtendedData>로 작성됩니다."
              },
              "z_field": {
                "label": "Z 필드",
                "description": "표고를 제공하는 속성으로, 세 번째 좌표로 작성됩니다."
              },
              "altitude_mode": {
                "label": "고도 모드",
                "description": "'clampToGround'(기본값), 'relativeToGround' 또는 'absolute'."
              },
              "color": {
                "label": "색상",
                "description": "KML aabbggrr 16진수로 지정한 선/외곽선 색상(예: 불투명 빨강은 'ff0000ff')."
              },
              "line_width": {
                "label": "선 두께",
                "description": "픽셀 단위 선 너비(기본값 1.0)."
              },
              "fill_color": {
                "label": "채우기 색상",
                "description": "KML aabbggrr 16진수로 지정한 폴리곤 채우기 색상. 채우지 않으려면 생략합니다."
              }
            }
          },
          "fence_diagram": {
            "name": "펜스 다이어그램",
            "description": "선 추적이 표면 스택을 가로지르는 곳에 3D 수직 단면 패널을 생성합니다. 지하 층서나 대기층을 시각화하는 표준 방법입니다(ArcGIS Fence Diagram). profile, long_profile, stack_profile은 선을 따라 표면을 샘플링하지만 2D 프로파일 선이나 테이블을 반환하며 연속 표면 사이 공간의 지오메트리는 없고, voxel_isosurface는 단면이 아닌 볼륨의 등치면을 추출합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "단면 트레이스를 정의하는 선 피처."
              },
              "surfaces": {
                "label": "표면",
                "description": "위에서 아래 순으로 정렬된 공동 정합된 표면 래스터의 쉼표 구분 목록."
              },
              "output": {
                "label": "출력",
                "description": "3D 단면 패널로, 트레이스별 표면 쌍마다 하나씩 생성됩니다. 생략하면 메모리에 저장됩니다."
              },
              "sample_distance": {
                "label": "표본 거리",
                "description": "CRS 단위의 트레이스 방향 샘플링 간격. 기본값: 가장 세밀한 표면 셀 크기."
              },
              "floor_height": {
                "label": "바닥 높이",
                "description": "선택적 상수 하한: 이 표고에 놓이는 합성 바닥 표면으로, 가장 깊은 패널을 닫습니다."
              },
              "ceiling_height": {
                "label": "천장 높이",
                "description": "선택적 상수 상한: 이 표고에 놓이는 합성 상단 표면."
              },
              "band": {
                "label": "밴드",
                "description": "각 표면 래스터에서 읽을 1 기반 밴드(기본값 1)."
              }
            }
          },
          "fill_missing_values": {
            "name": "결측값 채우기",
            "description": "공간 이웃(k-최근접 또는 거리 밴드)을 사용하여 수치 속성 필드의 null 값을 추정하고 채우며, 선택적으로 시간 창으로 제한하고 추정량(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": "'distance_band' 선택을 위한 반경(CRS 단위)."
              },
              "time_field": {
                "label": "시간 필드",
                "description": "각 피처의 시간/순서를 제공하는 선택적 숫자 필드('temporal_trend'에 필요)."
              },
              "time_window": {
                "label": "시간 창",
                "description": "선택 사항: 대상으로부터 이 시간 거리 이내의 근방으로 제한합니다(time_field가 필요합니다)."
              },
              "flag_field": {
                "label": "플래그 필드",
                "description": "대체된 행을 표시하는 불리언 필드의 이름(기본값 'imputed')."
              }
            }
          },
          "fill_spill_merge": {
            "name": "채움-넘침-병합",
            "description": "유한한 양의 지표수를 DEM 전체로 흘려보내 현실적인 호수/침수 범위를 생성합니다(넘침과 병합을 포함한 부분 와지 채우기). RichDEM의 Fill-Spill-Merge를 재구현한 것입니다.",
            "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": "모든 격자 경계 셀을 자유 유출구로 취급합니다(기본값 true). 경계에 도달한 물은 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": "ArcGIS Find Identical / Delete Identical과 같이 지오메트리 및/또는 선택한 필드가 동일한 피처를 찾아 중복을 그룹화합니다. 'report'는 dup_group/dup_seq 열을 추가하고, 'delete'는 각 그룹의 첫 번째만 유지합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "중복을 제거할 입력 벡터 레이어."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "fields": {
                "label": "필드",
                "description": "비교할 쉼표 구분 필드. 지오메트리만 비교하려면 생략하고, 'compare_geometry'와 함께 사용합니다."
              },
              "compare_geometry": {
                "label": "지오메트리 비교",
                "description": "지오메트리를 동일성 판정에 포함할지 여부(기본값 true. 필드만 비교하려면 false로 설정)."
              },
              "xy_tolerance": {
                "label": "XY 허용 오차",
                "description": "지오메트리 비교를 위한 스냅 허용 오차(해싱 전에 정점이 이 격자로 반올림됩니다). 기본값 0(정확 일치)."
              },
              "mode": {
                "label": "모드",
                "description": "'report'(기본값. dup_group/dup_seq를 추가) 또는 'delete'(각 그룹의 첫 번째만 유지)."
              }
            }
          },
          "find_meeting_locations": {
            "name": "만남 위치 찾기",
            "description": "여러 개별 트랙이 최소 지속 시간 이상 일정 거리 내에 함께 있는 모임을 탐지합니다(ArcGIS Find Meeting Locations와 유사). 작성된 trace_proximity_events(쌍별)와 reconstruct_tracks(단일 트랙 체류)가 다루지 않는 N개 트랙 동시 발생입니다. 참여자 수, 시작/종료 시각, 지속 시간이 있는 영역 헐과 대표 포인트를 출력합니다.",
            "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": "기본 ID 필드",
                "description": "출력에서 각 주 피처의 이름을 지정하는 필드(기본값: 피처 인덱스)."
              },
              "secondary_id_field": {
                "label": "보조 ID 필드",
                "description": "출력에서 각 보조 피처의 이름을 지정하는 필드(기본값: 피처 인덱스)."
              }
            }
          },
          "fit_variogram": {
            "name": "베리오그램 모델 적합",
            "description": "크리깅에 사용하기 위해 경험적 세미베리오그램 데이터에 이론적 베리오그램 모델(구형, 지수, 가우시안)을 적합합니다.",
            "params": {
              "lags_json": {
                "label": "시차 JSON",
                "description": "estimate_variogram에서 생성된 래그 구간의 JSON 배열"
              },
              "model_family": {
                "label": "모델 계열",
                "description": "모델: spherical, exponential 또는 gaussian"
              }
            }
          },
          "flatten_interferogram": {
            "name": "간섭도 평탄화",
            "description": "DEM과 간섭계 기선을 사용하여 래핑된 간섭도에서 지형 위상 성분을 제거하고 변형 및 대기 신호를 남깁니다(ArcGIS Generate Interferogram의 TOPO 평탄화 모드). sar_coherence는 이미 output_phase를 통해 간섭도 자체를 출력하지만, 두 레지스트리 어디에도 지형 위상을 시뮬레이션하고 빼는 도구가 없습니다. 기복이 있는 곳에서는 이 성분이 지배적이므로 평탄화되지 않은 간섭도는 변형 분석에 사용할 수 없습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "라디안 단위의 래핑된 간섭 위상 래스터(sar_coherence의 output_phase가 생성하는 형식) 또는 2 밴드 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 밴드)."
              },
              "incidence_angle": {
                "label": "입사각",
                "description": "도 단위의 입사각: 상수(기본값 39.0, 일반적인 Sentinel-1 IW 중앙 스와스) 또는 공동 정합된 래스터 경로."
              },
              "slant_range": {
                "label": "경사 거리",
                "description": "미터 단위의 센서-지표 간 경사 거리 R(기본값 800000)."
              },
              "reference_elevation": {
                "label": "참조 고도",
                "description": "지형 위상이 0으로 취급되는 표고. 기본값: DEM 평균이며, 따라서 출력에 임의의 전역 오프셋이 포함되지 않습니다."
              },
              "out_topographic_phase": {
                "label": "지형 위상 출력",
                "description": "시뮬레이션된 지형 위상 래스터로, 절대 시뮬레이션 위상이 아니라 평탄화 출력과 마찬가지로 (-pi, pi]로 래핑됩니다. 항상 생성되며, 경로를 지정하지 않으면 메모리 내 핸들로 대체됩니다."
              },
              "band": {
                "label": "밴드",
                "description": "위상을 담고 있는 1 기반 밴드. 단일 밴드 위상 래스터나 2 밴드 I/Q 간섭도(이 경우 자동 감지됨)에서는 생략하고, 다중 밴드 스택의 특정 밴드에서 실수 위상을 읽으려면 지정합니다. 밴드가 셋 이상인 래스터에서는 이 매개변수가 필수입니다. 세 개 이상의 밴드는 I/Q 쌍이 아니므로 추측하면 그럴듯하지만 잘못된 위상이 반환되기 때문입니다."
              }
            }
          },
          "flip_line": {
            "name": "선 뒤집기",
            "description": "폴리라인 피처의 정점 순서(시작↔끝)를 뒤집어 디지타이징 방향을 반전합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 선 벡터 파일 경로이며, 형식은 자동 감지됩니다(또는 메모리 내 핸들)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              }
            }
          },
          "focal_flow": {
            "name": "초점 흐름",
            "description": "셀의 8개 이웃 중 어느 것이 해당 셀로 흘러드는지를 8비트 마스크로 부호화합니다(ArcGIS Focal Flow). 각 셀을 한 방향으로 하류로 보내는 번들된 D8/D-무한 누적 도구와 달리, 모든 유입 이웃을 기록하여 함몰, 싱크, 안부로의 수렴을 포착합니다. 비트 가중치는 동쪽에서 반시계 방향으로 진행하며(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": "percentile 통계량을 위한 [0, 100] 범위의 백분위수(기본값 90)."
              },
              "ignore_nodata": {
                "label": "NoData 무시",
                "description": "true(기본값)이면 유효한 셀에 대해서만 축약하고, false이면 윈도우 내에 NoData 셀이 하나라도 있으면 NoData를 반환합니다."
              },
              "band": {
                "label": "밴드",
                "description": "처리할 1 기반 밴드(기본값 1)."
              }
            }
          },
          "forest_based_forecast": {
            "name": "포레스트 기반 예측",
            "description": "ArcGIS Forest-based Forecast와 같이 각 위치의 자체 이력에 대한 슬라이딩 시차 윈도우로 훈련된 랜덤 포레스트로 각 위치의 값을 앞으로 예측합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "위치 id, 시간 필드, 값 필드를 담은 타임스탬프 피처."
              },
              "location_field": {
                "label": "위치 필드",
                "description": "각 관측이 속한 위치를 식별하는 필드."
              },
              "time_field": {
                "label": "시간 필드",
                "description": "각 위치의 시계열을 정렬하는 데 사용되는 숫자 시간 필드."
              },
              "value_field": {
                "label": "값 필드",
                "description": "예측할 숫자 필드."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 예측 테이블 경로. 생략하면 메모리에 저장됩니다."
              },
              "forecast_steps": {
                "label": "예측 단계 수",
                "description": "앞으로 예측할 단계 수(기본값 3)."
              },
              "time_window": {
                "label": "시간 창",
                "description": "예측 변수로 사용되는 이전 값의 개수(기본값: 시계열 길이의 4분의 1, 최소 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의 시드(기본값 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 관측값을 건너뜁니다(기본값 true). false이면 NoData 관측값 하나가 해당 셀을 NoData로 만듭니다."
              },
              "process_as_multiband": {
                "label": "다중 밴드로 처리",
                "description": "'single_band'(기본값): 모든 입력의 모든 밴드가 단일 스택의 한 레이어가 됩니다. 'multi_band': 모든 입력의 i번째 밴드가 각각의 스택을 이루어 다중 밴드 결과를 만듭니다."
              }
            }
          },
          "fuzzy_overlay": {
            "name": "퍼지 오버레이",
            "description": "ArcGIS Fuzzy Membership + Fuzzy Overlay와 같이 래스터를 0..1 퍼지 소속도 표면으로 재조정(linear/gaussian/small/large/ms_small/ms_large)하거나, 여러 소속도 래스터를 퍼지 AND/OR/PRODUCT/SUM/GAMMA로 결합합니다.",
            "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": "감마",
                "description": "[0,1] 범위의 gamma 오버레이 지수(기본값 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": "수동 너깃. 데이터에서 적합시키려면 생략합니다."
              },
              "sill": {
                "label": "실",
                "description": "수동 부분 시일. 데이터에서 적합시키려면 생략합니다."
              },
              "range": {
                "label": "범위",
                "description": "수동 범위. 데이터에서 적합시키려면 생략합니다."
              },
              "max_neighbors": {
                "label": "최대 이웃 수",
                "description": "각 셀의 크리깅에 사용되는 최대 기지점 개수(기본값 16)."
              },
              "seed": {
                "label": "시드",
                "description": "결정적 RNG의 시드(기본값 1)."
              },
              "output_mean": {
                "label": "평균 출력",
                "description": "앙상블 평균의 선택적 래스터 경로."
              },
              "output_std": {
                "label": "표준편차 출력",
                "description": "앙상블 표준편차의 선택적 래스터 경로."
              }
            }
          },
          "generalized_linear_regression": {
            "name": "일반화 선형 회귀",
            "description": "IRLS를 통한 종속 필드의 설명 필드에 대한 전역 회귀(가우시안/OLS, 포아송 또는 로지스틱)로, 적합값 + 잔차 출력 필드와 전체 진단을 제공합니다: 항별 계수, 표준 오차, 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'(로그 연결, 개수) 또는 'logistic'(로짓 연결, 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": "ArcGIS Generate Near Table과 같이 각 입력 피처에 대해 k개의 최근접(또는 탐색 반경 내 모든) 근접 레이어 피처를 거리, 순위, 선택적 방위각, 근접 XY와 함께 나열하는 다중 이웃 근접 테이블을 생성합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "근접 거리를 측정할 입력 벡터 레이어(포인트, 선 또는 폴리곤)."
              },
              "near_features": {
                "label": "근접 피처",
                "description": "검색 대상이 되는 근접 벡터 레이어(포인트, 선 또는 폴리곤)."
              },
              "output": {
                "label": "출력",
                "description": "출력 포인트 벡터 경로(근접 매칭마다 포인트 하나). 생략하면 메모리에 저장됩니다."
              },
              "search_radius": {
                "label": "탐색 반경",
                "description": "이 거리(지도 단위) 이내의 근접 피처만 유지합니다. closest_count = 0(반경 내 전체)일 때 필수입니다."
              },
              "closest_count": {
                "label": "최근접 개수",
                "description": "입력 피처당 최근접 근접 피처의 개수(k, 기본값 1). search_radius 이내의 모든 근접 피처를 반환하려면 0을 사용합니다."
              },
              "angle": {
                "label": "각도",
                "description": "NEAR_ANGLE(도 단위 산술 방위, 동쪽 = 0, 반시계 방향)을 추가합니다. 기본값 false."
              },
              "location": {
                "label": "위치",
                "description": "근접 위치에 대한 NEAR_X / NEAR_Y 열을 추가합니다. 기본값 false."
              }
            }
          },
          "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": "generate_spatial_weights_matrix가 생성하는 것과 동일한 origin/neighbor/weight 스키마의 가중치 테이블(확장자에 따른 CSV 또는 지오메트리 없는 벡터 테이블). 생략하면 메모리에 저장됩니다."
              },
              "id_field": {
                "label": "ID 필드",
                "description": "각 피처의 고유 id를 담은 필드. 기본값: generate_spatial_weights_matrix와 일치하는 0 기반 피처 인덱스."
              },
              "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이 되게 합니다. 기본값 false로, generate_spatial_weights_matrix와 일치합니다."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "두 네트워크 정점이 하나의 노드로 결합되는 거리로, CRS 단위입니다(기본값 1e-6). 세그먼트가 거의 맞닿아 있는 네트워크는 그렇지 않으면 조용히 끊어지고, 영향을 받은 모든 출발지는 행을 하나도 생성하지 않습니다."
              },
              "search_tolerance": {
                "label": "탐색 허용 오차",
                "description": "포인트에서 네트워크까지의 최대 스냅 거리. 이보다 먼 포인트는 멀리 있는 노드에 조용히 연결되지 않고 스냅되지 않은 것으로 보고됩니다."
              }
            }
          },
          "generate_od_links": {
            "name": "기점-종점 링크 생성",
            "description": "ArcGIS Generate Origin-Destination Links와 같이 기점 포인트에서 종점 포인트까지 직선 희망선을 그립니다. 공유 ID로 매칭하거나, 일정 거리 내에서, 및/또는 k개의 최근접에 연결하며, 각 선은 기점/종점 ID와 길이를 가집니다.",
            "params": {
              "origins": {
                "label": "기점",
                "description": "출발지 포인트 레이어(Point 또는 MultiPoint)."
              },
              "destinations": {
                "label": "종점",
                "description": "목적지 포인트 레이어(Point 또는 MultiPoint)."
              },
              "output": {
                "label": "출력",
                "description": "출력 선 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "num_nearest": {
                "label": "최근접 수",
                "description": "출발지당 최근접 목적지 k개만 유지합니다(id/거리 필터 적용 후)."
              },
              "search_distance": {
                "label": "탐색 거리",
                "description": "출발지로부터 이 거리(지도 단위) 이내의 목적지만 유지합니다."
              },
              "id_field": {
                "label": "ID 필드",
                "description": "두 레이어 모두에 존재하는 필드로, 값이 일치하는 쌍만 연결합니다. 'link_id'로도 작성됩니다."
              },
              "origin_id_field": {
                "label": "기점 ID 필드",
                "description": "출발지에서 'origin_id'로 작성할 필드(기본값: 피처 인덱스)."
              },
              "dest_id_field": {
                "label": "종점 ID 필드",
                "description": "목적지에서 'dest_id'로 작성할 필드(기본값: 피처 인덱스)."
              }
            }
          },
          "generate_points_along_3d_lines": {
            "name": "3D 선을 따라 포인트 생성",
            "description": "번들된 points_along_lines가 사용하는 2D 평면 길이가 아닌 실제 3D 거리로 측정하여 3D 선을 따라 등간격 포인트를 생성하며, 보간된 Z, 선택적 끝점, 누적 3D 체이니지 필드를 제공합니다. ArcGIS Generate Points Along 3D Lines와 유사합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 3D 폴리라인 피처."
              },
              "output": {
                "label": "출력",
                "description": "출력 포인트 경로. 생략하면 메모리에 저장됩니다."
              },
              "method": {
                "label": "방법",
                "description": "'distance'(기본값), 'percentage' 또는 'distance_field'."
              },
              "distance": {
                "label": "거리",
                "description": "'distance' 방법의 지도 단위 간격."
              },
              "percentage": {
                "label": "백분율",
                "description": "'percentage' 방법에서 각 선의 3D 길이에 대한 백분율(0-100) 간격."
              },
              "distance_field": {
                "label": "거리 필드",
                "description": "'distance_field' 방법에서 피처별 간격을 제공하는 필드."
              },
              "include_end_points": {
                "label": "끝점 포함",
                "description": "각 선의 시작 및 끝 정점도 함께 생성합니다(기본값 false)."
              },
              "add_chainage": {
                "label": "체이니지 추가",
                "description": "선 시작점으로부터의 누적 3D 거리를 담은 CHAINAGE 필드를 작성합니다(기본값 false)."
              }
            }
          },
          "generate_spatial_weights_matrix": {
            "name": "공간 가중치 행렬 생성",
            "description": "ArcGIS Generate Spatial Weights Matrix와 같이 선택한 개념화(KNN, 고정 거리 밴드, 역거리, 인접성(경계 / 경계+모서리) 또는 Delaunay)로부터 재사용 가능한 긴 형식의 이웃/가중치 테이블(origin_id, neighbor_id, weight)을 출력하며, 선택적 행 표준화를 지원합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어(포인트/선/폴리곤, 인접성에는 폴리곤이 필요)."
              },
              "output": {
                "label": "출력",
                "description": "출력 테이블 경로 — CSV(확장자 .csv) 또는 지오메트리 없는 벡터 테이블. 생략하면 메모리에 저장됩니다."
              },
              "id_field": {
                "label": "ID 필드",
                "description": "각 피처의 고유 id를 담은 필드. 기본값: 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": "inverse_distance의 거리 감쇠 지수 p(가중치 = 1/d^p). 기본값 1."
              },
              "row_standardization": {
                "label": "행 표준화",
                "description": "각 출발지의 가중치를 행 합으로 나누어 모든 출발지의 가중치 합이 1이 되게 합니다. 기본값 false."
              },
              "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": "부분집합 id가 태그된 입력 포인트의 선택적 경로. 생략하면 메모리에 저장됩니다(그래도 반환됩니다)."
              },
              "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": "결과가 경계 상자가 아니라 데이터에 밀착되도록 부분집합 폴리곤을 포인트의 볼록 껍질로 자릅니다(기본값 true)."
              }
            }
          },
          "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": "각 선의 시작과 끝에도 정확히 횡단선을 배치합니다. 기본값 false."
              }
            }
          },
          "generate_trend_raster": {
            "name": "추세 래스터 생성",
            "description": "공동 정합된 래스터 시계열에 대해 픽셀별 시간 추세를 적합합니다(ArcGIS Generate Trend Raster와 유사): OLS 기울기/절편/R² 또는 비모수 Mann-Kendall + Sen의 기울기와 p값을 계산합니다. 번들된 trend_surface(공간)와 change_vector_analysis(두 시기)가 만들 수 없는 픽셀별 시간 추세입니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "시간 순으로 정렬된 공동 정합된 단일 밴드 래스터 경로의 쉼표 구분 목록(3개 이상)."
              },
              "output": {
                "label": "출력",
                "description": "출력 경사 래스터(mann_kendall의 경우 Sen's slope). 생략하면 메모리에 저장됩니다."
              },
              "times": {
                "label": "시각",
                "description": "'inputs'에 대응하는 쉼표 구분 숫자 시간(예: 연도). 기본값 0,1,2,..."
              },
              "method": {
                "label": "방법",
                "description": "'linear'(OLS. 기본값) 또는 'mann_kendall'(비모수 + Sen's slope)."
              },
              "intercept_output": {
                "label": "절편 출력",
                "description": "linear 전용: OLS 절편의 선택적 출력 래스터."
              },
              "significance_output": {
                "label": "유의성 출력",
                "description": "선택적 출력 래스터: R²(linear) 또는 Mann-Kendall 양측 p 값(mann_kendall)."
              },
              "min_valid": {
                "label": "최소 유효 수",
                "description": "픽셀당 최소 비NoData 관측 개수(기본값 3)."
              },
              "band": {
                "label": "밴드",
                "description": "각 입력에서 읽을 1 기반 밴드(기본값 1)."
              }
            }
          },
          "geodetic_densify": {
            "name": "측지 밀집화",
            "description": "ArcGIS의 Geodetic Densify와 같이 지리(경위도) 선 또는 폴리곤 레이어의 기존 정점 사이에 실제 측지선 또는 항정선(등방위) 경로를 따라 정점을 삽입하여, 긴 세그먼트가 평면 현이 아닌 지구 곡률을 따르게 합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "지리 좌표(경위도, 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": "ArcGIS GeoTagged Photos To Points와 같이 지오태그 사진 폴더를 읽어 각 사진의 경로, 촬영 일시, 고도, 카메라 방위(GPS 영상 방향), 제조사/모델이 있는 WGS-84 포인트 레이어를 구축합니다. EXIF 메타데이터만 파싱하며 픽셀은 디코딩하지 않습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "EXIF GPS 메타데이터를 읽을 사진(JPEG/TIFF)이 들어 있는 폴더 경로."
              },
              "output": {
                "label": "출력",
                "description": "출력 포인트 벡터(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "recursive": {
                "label": "재귀",
                "description": "사진을 스캔할 때 하위 폴더까지 탐색합니다. 기본값 false."
              },
              "only_geotagged": {
                "label": "지오태그만",
                "description": "GPS 위치가 없는 이미지를 건너뜁니다(기본값 true). false이면 지오태그가 없는 이미지가 널 지오메트리로 생성됩니다."
              }
            }
          },
          "getis_ord_general_g": {
            "name": "고/저 군집화 (Getis-Ord General G)",
            "description": "ArcGIS High/Low Clustering (Getis-Ord General G)과 같이 높은 값 또는 낮은 값이 전역적으로 군집되어 있는지를 알려주는 단일 z점수와 p값인 전역 Getis-Ord General G 통계량을 계산합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어. 포인트는 자체 좌표를 사용하며, 다른 지오메트리는 정점 평균 대표점을 사용합니다(인접성 가중치에는 폴리곤이 필요합니다)."
              },
              "field": {
                "label": "필드",
                "description": "고/저 군집화를 검정할 음수가 아닌 숫자 필드."
              },
              "weights": {
                "label": "가중치",
                "description": "공간 가중치 방식: 'distance_band'(기본값), 'k_nearest', 'queen' 또는 'rook'."
              },
              "distance_band": {
                "label": "거리 밴드",
                "description": "'distance_band' 방식의 임계 거리(CRS 단위). 기본값: 최대 최근린 거리(모든 피처가 1개 이상의 이웃을 가짐)."
              },
              "k": {
                "label": "K",
                "description": "'k_nearest' 방식의 이웃 개수(기본값 8)."
              },
              "row_standardize": {
                "label": "행 표준화",
                "description": "각 행의 합이 1이 되도록 가중치 행렬을 행 표준화합니다(기본값 false)."
              },
              "output": {
                "label": "출력",
                "description": "한 행짜리 보고서를 저장할 선택적 CSV 경로. 결과에는 항상 반환됩니다."
              }
            }
          },
          "goldstein_phase_filter": {
            "name": "Goldstein 위상 필터",
            "description": "간섭계 SAR 위상의 적응 스펙트럼(Goldstein) 필터링으로, 위상 언래핑을 가능하게 하는 단계입니다(ArcGIS Apply Complex Data Filter). 17라운드의 unwrap_phase는 잡음 잔여가 분기 절단을 강제하므로 원시 간섭도에서 실패합니다. 번들된 lee/frost/kuan/wiener/gaussian 필터군 전체는 실수 강도에 대해 동작하므로 여기에 사용할 수 없는데, +/-pi 불연속을 넘어 래핑된 위상을 평균하면 위상이 파괴되기 때문입니다. 주파수 영역에서 복소 신호를 패치별로 필터링하고 전후의 잔여 수를 보고합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "간섭도: 2밴드 I/Q 래스터 또는 라디안 단위의 단일 밴드 감긴 위상 래스터(단위 진폭으로 가정합니다)."
              },
              "output": {
                "label": "출력",
                "description": "출력 2밴드(I, Q) 필터링된 복소수 래스터. 생략하면 메모리에 저장됩니다."
              },
              "output_phase": {
                "label": "위상 출력",
                "description": "(-pi, pi] 범위의 라디안 단위 단일 밴드 필터링된 감긴 위상 출력. 항상 생성되며, 경로를 지정하지 않으면 메모리에 저장됩니다."
              },
              "alpha": {
                "label": "알파",
                "description": "[0, 1] 범위의 필터 강도(기본값 0.5). 0은 위상을 그대로 두고, 1은 가장 공격적입니다."
              },
              "outer_window_size": {
                "label": "외부 윈도우 크기",
                "description": "셀 단위 FFT 패치 크기(기본값 32). 2의 거듭제곱으로 올림됩니다."
              },
              "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": "끝 스타일(round/square/butt)과 모서리 연결 스타일(round/miter/bevel)을 선택하고 마이터 제한을 지정하여 피처를 버퍼링합니다. 둥근 버퍼만으로는 만들 수 없는 사각/마이터 버퍼 지오메트리입니다.",
            "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": "마이터 처리된 모서리가 베벨 처리되는 기준이 되는 마이터 길이와 버퍼 거리의 비율(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": "각 페이지의 크기를 정하기 위해 미터 단위 치수에 map_scale을 곱하는 용지 페이지 프리셋(a0..a4, letter, legal, tabloid). map_scale이 필요합니다."
              },
              "map_scale": {
                "label": "지도 축척",
                "description": "지도 축척 분모(예: 1:24,000의 경우 24000). 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이면 어떤 입력 피처와도 교차하지 않는 페이지를 제거합니다. input이 필요합니다. 기본값 false."
              },
              "route": {
                "label": "경로",
                "description": "strip 모드: 따라갈 선 벡터 레이어. 기본값은 input의 첫 번째 선 피처입니다."
              },
              "overlap": {
                "label": "중첩",
                "description": "strip 모드: 경로를 따라 연속된 페이지가 겹치는 비율 [0,1). 기본값 0.05."
              },
              "epsg": {
                "label": "EPSG",
                "description": "범위가 명시적으로 지정되고 CRS를 상속할 입력 레이어가 없을 때의 출력 EPSG 코드."
              }
            }
          },
          "group_by_proximity": {
            "name": "근접성 기준 그룹화",
            "description": "ArcGIS Group By Proximity와 같이 단일 연결 공간 연결 요소(일정 거리 내('near') 또는 접하는('intersects') 피처, 선택적으로 속성 값 공유)에 대해 피처에 GROUP_ID를 부여합니다.",
            "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": "출력 그룹 id 필드의 이름(기본값 '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": "입력 폴리곤 벡터 파일 경로(지리 좌표 경위도, 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 셀 ID 열을 셀 경계 폴리곤으로 변환하고 다른 속성을 그대로 복사합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "H3 셀 id 필드를 가진 입력 벡터 파일 경로(또는 메모리 내 핸들)."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로. 드라이버는 확장자(.geojson, .fgb, .parquet, ...)에서 가져옵니다. 생략하면 레이어가 메모리에 저장됩니다."
              },
              "field": {
                "label": "필드",
                "description": "H3 셀 id를 담고 있는 텍스트 필드의 이름. 기본값 'h3'."
              }
            }
          },
          "hdbscan": {
            "name": "HDBSCAN 군집화",
            "description": "계층적 밀도 기반 군집화(HDBSCAN*): 상호 도달 가능성 MST, 압축 군집 트리, 질량 초과 선택을 수행하며, 포인트별 소속 확률과 이상치 점수를 제공합니다. ArcGIS Density-based Clustering의 HDBSCAN 옵션과 같이 엡실론 없이 가변 밀도를 처리합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 포인트 벡터 레이어(투영 CRS, 거리는 해당 단위)."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로(군집 필드가 추가된 입력의 복사본). 생략하면 메모리에 저장됩니다."
              },
              "min_cluster_size": {
                "label": "최소 군집 크기",
                "description": "군집으로 간주되는 최소 그룹 크기(2 이상). 기본값 5."
              },
              "min_samples": {
                "label": "최소 표본 수",
                "description": "코어 거리 밀도 추정의 근방 크기(값이 클수록 더 많은 포인트가 잡음으로 분류됩니다). 기본값: min_cluster_size."
              }
            }
          },
          "hot_spot_analysis_comparison": {
            "name": "핫스팟 분석 비교",
            "description": "ArcGIS Hot Spot Analysis Comparison과 같이 두 Getis-Ord 핫스팟 결과 레이어를 비교합니다: 위치를 매칭하고, 각 전이(hot_to_hot, hot_to_cold, none_to_hot, ...)를 분류하며, 전체 일치도에 대한 시드 기반 순열 검정을 실행합니다.",
            "params": {
              "input1": {
                "label": "입력 1",
                "description": "첫 번째 핫스팟 결과 레이어(포인트 또는 폴리곤)."
              },
              "input2": {
                "label": "입력 2",
                "description": "두 번째 핫스팟 결과 레이어."
              },
              "bin_field": {
                "label": "빈 필드",
                "description": "두 입력 모두에 존재하는 유의성 필드(양수 = 핫, 음수 = 콜드)."
              },
              "significance": {
                "label": "유의성",
                "description": "이 값 미만이면 위치가 'none'으로 처리되는 절댓값 임계값(기본값 0)."
              },
              "match_field": {
                "label": "매칭 필드",
                "description": "위치를 결합하는 데 사용되는, 두 입력 모두에 존재하는 선택적 id 필드. 지정하지 않으면 가장 가까운 중심점을 사용합니다."
              },
              "tolerance": {
                "label": "허용 오차",
                "description": "최근접 위치 매칭의 최대 중심점 거리(지도 단위). 생략하면 제한이 없습니다."
              },
              "permutations": {
                "label": "순열 횟수",
                "description": "전역 일치도 검정의 순열 횟수(기본값 499)."
              },
              "seed": {
                "label": "시드",
                "description": "결정론적 순열 난수 생성기의 시드(기본값 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의 제곱이며, 이는 열림 연산의 사소한 모서리 둥글어짐도 흡수합니다."
              },
              "narrow_only": {
                "label": "협소 영역만",
                "description": "true이면 좁지 않은 피처를 제거하고 표시된 좁은 폴리곤만 출력합니다. 기본값 false(주석을 달고 모든 피처를 유지)."
              }
            }
          },
          "idw_3d": {
            "name": "IDW 3D",
            "description": "3D 포인트 관측값을 고도 레벨 스택(레벨당 하나의 래스터 밴드)으로 체적 역거리 보간하며, 수직-수평 이방성을 처리하는 고도 팽창 계수와 선택적 단일 제외 교차 검증 포인트를 지원합니다. ArcGIS IDW3D와 유사합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 3D 포인트 피처."
              },
              "value_field": {
                "label": "값 필드",
                "description": "보간할 값을 담고 있는 숫자 필드."
              },
              "output": {
                "label": "출력",
                "description": "출력 다중 밴드 래스터 경로(표고 레벨당 밴드 하나). 생략하면 메모리에 저장됩니다."
              },
              "z_field": {
                "label": "Z 필드",
                "description": "표고를 제공하는 필드. 기본값은 지오메트리 Z입니다."
              },
              "power": {
                "label": "거듭제곱",
                "description": "거리 역수 지수(기본값 2)."
              },
              "elev_inflation_factor": {
                "label": "고도 팽창 계수",
                "description": "3D 거리 계산 전 수직 간격에 적용되는 배수(기본값 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": "선택적 최대(확대 적용된) 3D 탐색 거리. 이를 벗어난 표본은 무시됩니다."
              },
              "output_cv_features": {
                "label": "교차 검증 피처 출력",
                "description": "관측값, 예측값, 잔차 값을 담은 리브-원-아웃 교차 검증 포인트의 선택적 경로."
              },
              "epsg": {
                "label": "EPSG",
                "description": "출력 래스터에 기록되는 EPSG 코드(기본값: 입력 레이어의 CRS)."
              }
            }
          },
          "incremental_spatial_autocorrelation": {
            "name": "점진적 공간 자기상관",
            "description": "ArcGIS Incremental Spatial Autocorrelation과 같이 일련의 증가하는 거리 밴드에 걸쳐 전역 Moran's I를 계산하고 첫 번째 및 최대 피크가 있는 z점수 곡선을 보고합니다. 군집 거리를 선택하는 타당한 방법입니다.",
            "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": "3D 내부",
            "description": "어떤 3D 피처(포인트, 폴리라인 또는 솔리드)가 닫힌 체적 컨테이너 내부에 있는지 판별하며, 선택적으로 포함된 길이나 정점 비율을 보고합니다(ArcGIS Inside 3D). 두 레지스트리의 모든 포함 술어는 XY 평면에 투영하므로, 풋프린트 위의 센서나 필지 아래의 관로가 현재는 그 내부에 있는 것으로 판정됩니다. 컨테이너는 제공된 buffer_3d와 minimum_bounding_volume의 삼각형 메시 규약을 따릅니다.",
            "params": {
              "target": {
                "label": "대상",
                "description": "검사할 3D 피처: 포인트, 폴리라인 또는 삼각형 메시 솔리드."
              },
              "container": {
                "label": "컨테이너",
                "description": "컨테이너 역할을 하는 닫힌 3D 피처(삼각형 메시 솔리드)."
              },
              "output": {
                "label": "출력",
                "description": "대상/컨테이너 쌍의 선택적 출력 테이블 경로. 생략하면 메모리에 저장됩니다."
              },
              "mode": {
                "label": "모드",
                "description": "'simple'(기본값)은 대상이 내부에 있는지 여부를 보고하고, 'complex'는 포함된 길이와 내부 비율을 추가합니다."
              },
              "output_features": {
                "label": "피처 출력",
                "description": "선 대상의 내부 부분을 잘라낸 결과의 선택적 경로(complex 모드). 생략하면 메모리에 저장됩니다(여전히 반환됩니다)."
              }
            }
          },
          "integrate": {
            "name": "통합",
            "description": "ArcGIS Integrate와 같이 군집 허용 오차 내의 모든 피처의 모든 정점을 공유 위치로 스냅하여 거의 일치하는 공유 경계를 정확히 일치시키며, 선택적으로 인근 경계에 T 교차 정점을 삽입합니다.",
            "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": "타임스탬프 필드: 에포크 이후 초 단위 숫자 또는 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": "ArcGIS Interpolate Shape / Add Surface Information과 같이 포인트/선/폴리곤을 표면 래스터에 드레이핑합니다: 밀집화하고, 정점별로 Z를 샘플링(쌍선형 또는 최근접)하고, 3D 지오메트리를 기록하고, 표면 지표(z_min/z_max/z_mean, 3D 표면 길이, 평균 경사)를 추가합니다.",
            "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": "절대 장애물(해안선, 능선, 단층, 벽)을 준수하면서 포인트 측정값을 래스터로 보간합니다: 영향력이 장애물을 가로지르지 않고 비용/측지 거리를 통해 우회합니다. ArcGIS Kernel Interpolation With Barriers / Spline With Barriers와 같은 IDW 또는 1차 국지 다항식 커널입니다. 번들된 idw/크리깅/자연 이웃/스플라인 도구는 모두 장애물을 인식하지 못합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "측정값의 입력 포인트 벡터 레이어."
              },
              "field": {
                "label": "필드",
                "description": "보간할 값을 담고 있는 포인트의 수치 필드."
              },
              "output": {
                "label": "출력",
                "description": "출력 보간 래스터(GeoTIFF). 생략하면 메모리에 저장됩니다."
              },
              "barriers": {
                "label": "장애물",
                "description": "선택적 배리어 벡터 레이어(폴리라인 또는 폴리곤). 통과 불가 셀로 래스터화되어 영향이 이를 우회해야 합니다. 배리어 없는 대조군을 원하면 생략합니다."
              },
              "method": {
                "label": "방법",
                "description": "'idw'(기본값) 또는 'local_polynomial'(가우시안 측지 거리 커널을 사용하는 1차 가중 평면 적합)."
              },
              "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": "3D 교차",
            "description": "중첩된 닫힌 3D 솔리드가 공유하는 부피를 쌍별로 계산하며, 각 교차에 대한 선택적 경계 솔리드를 제공합니다(ArcGIS Intersect 3D). union_3d는 두 레지스트리의 유일한 3D 오버레이로 결합 부피 질문에만 답하고, inside_3d는 포인트와 선에 대한 포함 술어이며, polygon_volume / surface_volume은 참조 평면에 대해 측정합니다. 솔리드별 부피는 정확하며, 교차는 보고되는 해상도의 복셀 점유로 추정합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "닫힌 3D 솔리드 피처(buffer_3d 및 minimum_bounding_volume이 생성하는 것과 같은, Z를 가진 삼각형 메시 멀티폴리곤)."
              },
              "input2": {
                "label": "입력 2",
                "description": "선택적 두 번째 솔리드 레이어. 생략하면 'input' 내의 모든 쌍이 교차됩니다(ArcGIS의 단일 입력 모드)."
              },
              "output": {
                "label": "출력",
                "description": "교차하는 쌍의 출력 테이블. 비어 있지 않은 교차마다 한 행입니다. 생략하면 메모리에 저장됩니다."
              },
              "mode": {
                "label": "모드",
                "description": "'table'(기본값): 속성만 출력합니다. 'solid': 각 교차의 경계 솔리드도 지오메트리로 출력합니다. 측정된 부피는 항상 속성이며, 정확히 병합된 메시를 제공한다고 주장하지 않습니다."
              },
              "resolution": {
                "label": "해상도",
                "description": "각 쌍의 공유 경계 상자에서 가장 긴 축을 따르는 복셀 셀 개수(기본값 64). 값이 클수록 더 정확하지만 느립니다."
              }
            }
          },
          "intersect_3d_line_with_surface": {
            "name": "3D 선과 표면 교차",
            "description": "3D 선이 고도 표면이나 멀티패치를 가로지르는 모든 지점에서 선을 분할하고, 각 조각에 위/아래를 표시하며 교차점을 출력합니다(ArcGIS Intersect 3D Line With Surface / Intersect 3D Line With Multi Patch). 17라운드의 intersect_3d는 선이 아닌 닫힌 솔리드를 받고, inside_3d는 지오메트리를 자르지도 교차점을 찾지도 않는 포함 술어이며, interpolate_shape는 선을 표면에 드레이핑하여 비교에 필요한 선의 z를 버립니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "z 값을 가진 정점으로 이루어진 3D 선 레이어."
              },
              "surface": {
                "label": "표면",
                "description": "절단 기준이 되는 표고 래스터. 'multipatch'를 지정하지 않는 한 필수입니다."
              },
              "multipatch": {
                "label": "멀티패치",
                "description": "래스터 표면 대신 절단 기준으로 사용할 멀티패치 레이어(삼각형 멀티폴리곤)."
              },
              "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": "ID 필드",
                "description": "값이 각 마스크에 'source_id'로 복사되는, 마스크 대상 레이어의 선택적 필드. 기본값은 원본 피처 인덱스입니다."
              }
            }
          },
          "intervisibility": {
            "name": "상호 가시성",
            "description": "각 시선을 3D 벡터 장애물에 대해 검사하여 가시 또는 차단으로 표시하고, 어느 장애물이 어디서 차단했는지 보고합니다(ArcGIS Intervisibility). line_of_sight, visibility_index, viewshed, skyline_analysis는 모두 표면 래스터에 대해 동작하며, 건물처럼 DEM에 구우면 돌출부와 아케이드가 사라지는 3D 멀티패치 장애물에 대해서는 검사할 수 없습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "시선: 첫 정점이 관측자이고 마지막 정점이 대상인 3D 폴리라인."
              },
              "obstructions": {
                "label": "장애물",
                "description": "쉼표로 구분된 하나 이상의 3D 차폐물 레이어(Z를 가진 삼각형 메시 멀티폴리곤)."
              },
              "output": {
                "label": "출력",
                "description": "가시성 필드가 추가된 출력 시선. 생략하면 메모리에 저장됩니다."
              },
              "visible_field": {
                "label": "가시 필드",
                "description": "ArcGIS 매개변수와 일치하는 불리언 가시성 필드의 이름(기본값 'VISIBLE')."
              },
              "observer_offset": {
                "label": "관측자 오프셋",
                "description": "검사 전에 관측자 끝점에 더해지는 높이(CRS 단위, 기본값 0). 눈높이 또는 기기 높이를 모델링합니다."
              },
              "target_offset": {
                "label": "목표물 오프셋",
                "description": "검사 전에 대상 끝점에 더해지는 높이(CRS 단위, 기본값 0)."
              },
              "visible_only": {
                "label": "가시 영역만",
                "description": "차폐되지 않은 시선만 출력합니다(기본값 false)."
              }
            }
          },
          "is_closed_3d": {
            "name": "3D 닫힘 여부",
            "description": "어떤 3D 멀티패치 피처가 방수 닫힌 솔리드이고 어떤 것이 열린 표면인지 표시하며, 짝이 없는 경계 변, 비다양체 변, 와인딩 일관성에 대한 진단 수를 제공합니다(ArcGIS Is Closed 3D). 카탈로그의 모든 체적 도구(union_3d, inside_3d, minimum_bounding_volume, buffer_3d)는 닫힌 입력을 가정하고 열린 메시에 대해 무의미한 숫자를 반환하는데, 그 전제 조건을 먼저 확인할 방법이 없었습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "3D 피처(buffer_3d, minimum_bounding_volume, voxel_isosurface가 생성하는 것과 같은, Z를 가진 삼각형 메시 멀티폴리곤)."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로: 진단 필드가 추가된 입력 피처. 생략하면 메모리에 저장됩니다."
              },
              "closed_only": {
                "label": "닫힌 것만",
                "description": "닫힌 솔리드인 피처만 출력합니다(기본값 false: 모든 피처가 판정 결과와 함께 출력됩니다)."
              }
            }
          },
          "kernel_density_ratio": {
            "name": "커널 밀도 비율",
            "description": "두 커널 밀도 표면의 상대 위험 비율: 분자 포인트 레이어(사례)와 분모 포인트 레이어(위험 인구)를 같은 4차 커널과 공유 대역폭으로 평가한 뒤 셀별로 나눕니다. 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": "분모 밀도가 이 값 미만이거나 0인 셀은 NoData가 되어 나눗셈 발산을 방지합니다. 기본값 0(정확히 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": "근방이 퇴화된 경우 국소 최소제곱 적합을 안정화하는 릿지 파라미터(기본값 1e-6)."
              },
              "max_neighbors": {
                "label": "최대 이웃 수",
                "description": "각 국소 적합에 기여하는 관측값 개수의 상한(기본값 32)."
              }
            }
          },
          "kml_to_features": {
            "name": "KML을 피처로 변환",
            "description": ".kml/.kmz Placemark를 이름/설명 속성이 있는 포인트, 선, 폴리곤 레이어로 읽습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": ".kml 파일 또는 .kmz 아카이브(압축된 KML)의 경로."
              },
              "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": "시간 순서로 나열된 쉼표 구분 연도별 래스터 경로(예: spectral_index NBR 출력, 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, 거리/높이는 해당 단위)."
              },
              "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": "ArcGIS Local Bivariate Relationships와 같이 국지 선형 및 2차 적합, 엔트로피 감소 의존성 통계량, 시드 기반 순열 검정 p값으로부터 각 피처의 국지 근방에서 두 변수가 어떻게 관련되는지(유의하지 않음, 양/음의 선형, 오목, 볼록, 정의되지 않음) 분류합니다.",
            "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": "관계를 유의하다고 판정하는 유사 p 값 임계값(기본값 0.05)."
              },
              "seed": {
                "label": "시드",
                "description": "재현 가능한 결과를 위한 순열 RNG 시드(기본값 1)."
              }
            }
          },
          "local_outlier_analysis": {
            "name": "국지 이상치 분석",
            "description": "시공간 국지 이상치 분석(H3 시공간 큐브에 대한 Anselin 국지 Moran's I): 각 셀 × 시간 구간을 시드 기반 순열 p값으로 High-High/Low-Low 군집 또는 High-Low/Low-High 이상치로 분류한 뒤 셀별로 시간에 걸쳐 요약합니다. 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": "Kring",
                "description": "공간 근방 k-링 반경(기본값 1)."
              },
              "time_window": {
                "label": "시간 창",
                "description": "스텝 단위 시간 근방 반폭(기본값 1)."
              },
              "permutations": {
                "label": "순열 횟수",
                "description": "유의성 검정의 순열 횟수(기본값 99, 0이면 비활성화)."
              },
              "seed": {
                "label": "시드",
                "description": "순열 난수 생성기의 시드(기본값 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": "국소 설계 행렬의 조건수가 이 임계값을 초과하는 곳에서는 예측을 거부합니다(기본값: 제한 없음)."
              },
              "output_type": {
                "label": "출력 유형",
                "description": "'prediction'(기본값), 'standard_error' 또는 'condition_number'."
              },
              "epsg": {
                "label": "EPSG",
                "description": "출력 래스터에 기록되는 EPSG 코드(기본값: 입력 레이어의 CRS)."
              }
            }
          },
          "locate_lines_along_routes": {
            "name": "경로를 따라 선 위치 지정",
            "description": "ArcGIS Locate Features Along Routes(선/폴리곤 이벤트)와 같이 선 또는 폴리곤 피처를 측정된 경로에 오버레이하여 시작/종료 측정값 선 이벤트(RID, FMEAS, TMEAS)를 생성합니다.",
            "params": {
              "input_features": {
                "label": "입력 피처",
                "description": "경로를 따라 위치를 지정할 입력 선 또는 폴리곤 벡터 레이어."
              },
              "routes": {
                "label": "경로",
                "description": "선형 참조 측정값을 제공하는 경로(선) 벡터 레이어."
              },
              "route_id_field": {
                "label": "경로 ID 필드",
                "description": "각 경로의 식별자(RID)를 담고 있는 경로 레이어의 필드. 생략하면 경로의 0부터 시작하는 피처 인덱스가 사용됩니다."
              },
              "tolerance": {
                "label": "허용 오차",
                "description": "CRS 단위의 탐색 반경. 경로에서 이 거리 이내에 있는 피처 정점은 일치하는 것으로 처리됩니다. 필수입니다(> 0)."
              },
              "output": {
                "label": "출력",
                "description": "출력 선 이벤트 벡터 경로(확장자로 드라이버 결정). 생략하면 결과가 메모리에 저장됩니다."
              }
            }
          },
          "locate_regions": {
            "name": "지역 찾기",
            "description": "적합도 래스터에서 목표 면적의 최적 연속 영역을 찾습니다(ArcGIS Locate Regions와 유사): 형상/조밀도 제어와 영역 간 간격을 갖춘 적합도 피크로부터의 최우선 영역 성장으로, fuzzy_overlay/weighted_overlay 표면을 실제 영역으로 바꾸는 입지 선정 단계입니다. clump와 임계값 처리로는 불가능합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "적합도 래스터(값이 클수록 더 적합)."
              },
              "output": {
                "label": "출력",
                "description": "1부터 시작하는 영역 id의 출력 래스터(그 외에는 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": "장면 통계를 사용하여 배경을 억제하면서 다중 밴드 영상의 모든 픽셀을 알려진 목표 스펙트럼에 대해 점수화합니다. 제약 에너지 최소화(CEM) 또는 적응 코히어런스 추정기(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": "학습 클래스 id를 담은 출력 분류 래스터. 생략하면 메모리에 저장됩니다."
              },
              "prob_output": {
                "label": "확률 출력",
                "description": "승리 클래스의 사후 확률(신뢰도)을 [0,1] 범위로 담는 선택적 출력 F32 래스터."
              },
              "a_priori": {
                "label": "사전 확률",
                "description": "사전 클래스 가중치: 'equal'(기본값, 1/K) 또는 'sample'(각 클래스의 학습 픽셀 개수에 비례)."
              },
              "reject_fraction": {
                "label": "기각 비율",
                "description": "분류하지 않은 상태(NoData)로 남길 신뢰도가 가장 낮은 분류 셀의 비율([0,1) 범위). 기본값 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": "선택적 필드로, 값이 0이 아니거나 비어 있지 않은 피처는 병합에서 제외됩니다."
              },
              "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": "AICc 역적합을 통해 각 설명 항이 고유한 대역폭을 갖는 GWR(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": "3D 피처 주위의 최소 포함 부피(볼록 헐, 구 또는 엔벨로프)를 피처별, 그룹별 또는 전체 입력에 대해 계산하고, 부피와 표면적 속성이 있는 Z 값 삼각형 면으로 솔리드를 출력합니다. ArcGIS Minimum Bounding Volume과 유사합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 3D 포인트, 멀티포인트 또는 선 피처."
              },
              "output": {
                "label": "출력",
                "description": "볼륨 면의 출력 경로. 생략하면 메모리에 저장됩니다."
              },
              "z_value": {
                "label": "Z 값",
                "description": "지오메트리에서 Z를 가져오려면 'geometry'(기본값), 또는 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": "ArcGIS Multicriteria Overlay와 같이 기준 래스터 스택을 순위 기반 MCDA로 하나의 적합도 표면으로 결합합니다: weighted_sum, weighted_geometric_mean, OWA(순서 가중 평균) 또는 TOPSIS(이상점 근접도)이며, 래스터별 가중치와 from_scale/to_scale 재조정을 지원합니다.",
            "params": {
              "inputs": {
                "label": "입력",
                "description": "쉼표로 구분된 2개 이상의 공동 정합된 기준 래스터 목록(값이 클수록 더 적합하며, 결합 전에 각각 최소-최대 방식으로 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": "픽셀별 기준선을 계산하는 데 사용하는 선택적 1부터 시작하는 양끝 포함 슬라이스 범위 'start-end'(기본값: 모든 슬라이스)."
              },
              "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은 영상 쌍을 하나의 스칼라로 축약하고, 17라운드의 time_series_cross_correlation은 벡터 전용이며, 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 계열은 이미 검파된 강도에 대해 동작하므로, 이 도구는 복소 단일 룩 데이터를 그 필터들이 기대하는 검파 영상으로 변환하는 상류 단계를 제공합니다. 복소 입력은 2밴드 I/Q 쌍으로 읽으며, 검파는 평균 전에 수행되고, 후속 스페클 필터링을 위해 등가 룩 수를 보고합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 SAR 래스터: 복소(SLC) 데이터의 경우 두 밴드로 된 I/Q 쌍, 또는 이미 검출된 데이터의 단일 밴드('input_domain' 참조)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 래스터 경로. 생략하면 결과가 메모리에 저장됩니다."
              },
              "input_domain": {
                "label": "입력 도메인",
                "description": "복소가 아닌 입력에서 밴드 1이 이미 담고 있는 값: 'intensity'(기본값) 또는 'amplitude'. 비간섭 평균화는 강도 영역에서만 올바르므로 진폭은 평균화 전에 제곱되어 강도로 변환됩니다."
              },
              "complex": {
                "label": "복소수",
                "description": "입력을 복소 I/Q 쌍으로 처리합니다(기본값: 래스터에 밴드가 2개 이상이면 true, 그렇지 않으면 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": "3D 멀티패치 피처를 XY 평면에 투영하고 피처별 또는 그룹 필드별로 2D 풋프린트 폴리곤으로 디졸브합니다(ArcGIS Multipatch Footprint). layer_footprint_vector는 피처별 윤곽이 아닌 레이어 전체의 범위 사각형 하나를 반환하므로, 현재 buffer_3d / voxel_isosurface / 가져온 건물 솔리드를 regularize_building_footprints 파이프라인에 입력할 방법이 없습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "3D 멀티패치 피처(Z를 갖는 삼각형 메시 MultiPolygon)."
              },
              "output": {
                "label": "출력",
                "description": "출력 2D 폴리곤 풋프린트. 생략하면 메모리에 저장됩니다."
              },
              "group_field": {
                "label": "그룹 필드",
                "description": "값에 따라 풋프린트를 함께 디졸브하는 선택적 필드(고유 값마다 출력 폴리곤 하나). 기본값: 입력 피처마다 출력 하나."
              },
              "simplify_tolerance": {
                "label": "단순화 허용 오차",
                "description": "디졸브된 풋프린트에 적용되는 선택적 Douglas-Peucker 허용 오차(CRS 단위). regularize_building_footprints를 위해 원본 외곽선이 보존되도록 기본적으로 생략됩니다."
              }
            }
          },
          "multipatch_to_mesh": {
            "name": "멀티패치를 메시로 변환",
            "description": "멀티패치 및 3D 솔리드 지오메트리를 모든 3D 또는 웹 뷰어용 OBJ 또는 glTF 2.0 / GLB로 내보냅니다(ArcGIS Multipatch To Collada). union_3d / difference_3d / enclose_multipatch / voxel_isosurface 도구군에는 내보내기 경로가 전혀 없었고 레지스트리 어디에도 메시 형식이 없어 3D 결과는 이 카탈로그에서만 다시 읽을 수 있었습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "멀티패치 / 3D 폴리곤 레이어."
              },
              "output": {
                "label": "출력",
                "description": "출력 .glb, .gltf 또는 .obj 파일 경로. 'format'을 지정하지 않으면 확장자가 형식을 결정합니다."
              },
              "format": {
                "label": "형식",
                "description": "'glb'(.glb의 기본값), 'gltf'(base64 버퍼가 내장된 JSON) 또는 'obj'. 출력 확장자에서 기본값이 결정됩니다."
              },
              "origin": {
                "label": "원점",
                "description": "로컬 원점 이동: 'centroid'(기본값), 'min_corner' 또는 'none'. glTF 위치 값은 32비트 부동소수점이므로 정밀도를 위해 필요합니다."
              },
              "y_up": {
                "label": "Y 위쪽",
                "description": "지리공간 Z-up에서 glTF의 Y-up 규약으로 전환합니다(glTF/GLB는 기본값 true, OBJ는 false)."
              },
              "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": "pairs='reference'일 때 기준 장면의 0부터 시작하는 인덱스(기본값 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": "ArcGIS Multivariate Clustering과 같이 표준화된 속성 값의 유사도로 벡터 피처를 군집화하며(시드 기반 k-평균 또는 k-메도이드), 지정하지 않으면 Calinski-Harabasz 의사 F로 군집 수를 자동 선택합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어로, 형식은 자동 감지됩니다(또는 메모리 내 핸들)."
              },
              "fields": {
                "label": "필드",
                "description": "쉼표로 구분된 숫자 분석 필드(군집화할 속성 공간)."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로(cluster_id/silhouette가 추가된 입력 사본). 생략하면 메모리에 저장됩니다."
              },
              "num_clusters": {
                "label": "군집 수",
                "description": "군집 개수 k. 생략하거나 0을 전달하면 Calinski-Harabasz 유사 F로 k = 2..15를 자동 평가합니다."
              },
              "method": {
                "label": "방법",
                "description": "군집화 방법: 'kmeans'(기본값) 또는 'kmedoids'(PAM. 피처 개수가 적을 때 적합)."
              },
              "seed": {
                "label": "시드",
                "description": "결정론적 k-means++ / 메도이드 초기화를 위한 난수 시드(기본값 1)."
              }
            }
          },
          "near_3d": {
            "name": "3D 근접",
            "description": "ArcGIS Near 3D와 같이 실제 3D 거리에서 가장 가까운 피처를 찾아 거리, 최근접 위치, 각도, 축별 차이를 보고합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 피처 레이어(3D 정점이며 Z가 없으면 0으로 처리)."
              },
              "near_features": {
                "label": "근접 피처",
                "description": "쉼표로 구분된 탐색 대상 레이어 목록. 생략하면 입력 레이어를 자기 결합합니다."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              },
              "search_radius": {
                "label": "탐색 반경",
                "description": "이 3D 거리(지도 단위) 이내의 인접 피처만 고려합니다. 생략하면 제한이 없습니다."
              },
              "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": "ArcGIS Neighborhood Summary Statistics와 같이 각 피처에 대해 이웃(k 최근접, 일정 거리 내 또는 공유 경계 인접성)에 걸쳐 선택한 수치 필드를 요약하여 <field>_nbr_mean/median/std/min/max/sum과 이웃 수를 추가합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어(포인트, 선 또는 폴리곤)."
              },
              "fields": {
                "label": "필드",
                "description": "이웃에 대해 요약할 쉼표로 구분된 숫자 필드."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로(입력 사본 + 이웃 통계량 열). 생략하면 메모리에 저장됩니다."
              },
              "neighborhood": {
                "label": "근방",
                "description": "'knn'(기본값), 'distance_band' 또는 'contiguity'(변을 공유하는 폴리곤)."
              },
              "neighbors": {
                "label": "이웃",
                "description": "knn의 k(기본값 8)."
              },
              "distance": {
                "label": "거리",
                "description": "distance_band의 밴드 거리(지도 단위)."
              },
              "weights": {
                "label": "가중치",
                "description": "'uniform'(기본값) 또는 'inverse_distance'(평균과 표준편차에 가중치를 적용)."
              }
            }
          },
          "non_maximum_suppression": {
            "name": "비최대 억제",
            "description": "각 중첩 군집에서 가장 신뢰도가 높은 탐지를 유지하고 IoU가 임계값을 초과하는 낮은 점수의 폴리곤을 버립니다(ArcGIS Non Maximum Suppression과 유사). count_overlapping_features(개수만 세고 모두 유지), resolve_building_conflicts(이동), find_identical(정확히 일치만)이 제공하지 않는 객체 탐지/OBIA 출력용 점수 기반 중복 제거기입니다.",
            "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명의 관측자 중 누가 각 셀을 볼 수 있는지를 관측자별 비트 마스크로 식별하고, 목표물이 보이게 되려면 얼마나 높여야 하는지를 나타내는 지상 높이 래스터를 기록합니다(OBSERVERS 모드의 ArcGIS Observer Points / Viewshed 2). 번들된 viewshed는 가시 관측소 수만 반환하므로 어느 답도 얻을 수 없습니다. 수 1은 어느 타워가 필지를 커버하는지 알려주지 않고, 수 0은 2미터 부족과 산 뒤를 구분하지 못합니다.",
            "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를 통한 다중 스케일 밀도 기반 군집화(ArcGIS Density-based Clustering의 OPTICS 옵션과 유사): 도달 가능성 순서를 구축하고 ξ-급경사 방법으로 다양한 밀도의 군집을 추출합니다. 작성된 dbscan과 hdbscan이 다루지 않는 DBSCAN/HDBSCAN/OPTICS 3종 중 다중 스케일 구성원입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 포인트 벡터 레이어(투영 CRS, 거리는 해당 단위)."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로(군집 필드가 추가된 입력의 복사본). 생략하면 메모리에 저장됩니다."
              },
              "min_features_cluster": {
                "label": "군집 최소 피처 수",
                "description": "핵심 거리 밀도 추정과 최소 군집에 필요한 최소 포인트 수(2 이상). 기본값 5."
              },
              "search_distance": {
                "label": "탐색 거리",
                "description": "선택적 최대 도달 가능 거리(최대 엡실론). 기본값: 제한 없음(모든 축척)."
              },
              "cluster_sensitivity": {
                "label": "군집 민감도",
                "description": "0-100이며 값이 클수록 더 많고 더 조밀한 군집을 탐지합니다. xi = 1 - sensitivity/100으로 매핑됩니다. 기본값 95(xi = 0.05)."
              }
            }
          },
          "optimal_corridor_connections": {
            "name": "최적 코리더 연결",
            "description": "비용 표면을 가로질러 모든 입력 영역을 최적으로 연결하는 고정 폭 최소 비용 코리더 폴리곤 네트워크와 코리더 중심선을 계산합니다. cost_connectivity(폭 0 선)나 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)를 통해 배경 래스터 필드를 포인트 관측값으로 보정합니다(ArcGIS의 Optimal Interpolation과 유사). 포인트만으로 보간하는 IDW/크리깅/EBK와 달리, 사전 격자 필드와 관측값을 혼합하며 분석 오차 분산 래스터를 출력할 수 있습니다.",
            "params": {
              "background": {
                "label": "배경",
                "description": "보정할 배경(사전) 래스터 필드."
              },
              "observations": {
                "label": "관측값",
                "description": "관측 포인트 레이어."
              },
              "field": {
                "label": "필드",
                "description": "관측 값을 담은 관측 레이어의 숫자 필드."
              },
              "output": {
                "label": "출력",
                "description": "출력 보정(분석) 래스터. 생략하면 메모리에 저장됩니다."
              },
              "correlation_length": {
                "label": "상관 길이",
                "description": "CRS 단위의 공간 상관 길이 L(가우시안). 기본값: 배경의 긴 변의 5%."
              },
              "background_error_variance": {
                "label": "배경 오차 분산",
                "description": "배경 오차 분산 σ_b²(기본값 1.0). 값이 클수록 관측을 더 신뢰합니다."
              },
              "obs_error_variance": {
                "label": "관측 오차 분산",
                "description": "관측 오차 분산 σ_o²(기본값 1.0)로, 포인트별 오차 필드가 지정되지 않았을 때 사용됩니다. 값이 클수록 배경을 더 신뢰합니다."
              },
              "error_field": {
                "label": "오차 필드",
                "description": "각 포인트의 오차 분산을 제공하는 관측 레이어의 선택적 필드(값이 있고 0보다 크면 obs_error_variance를 재정의)."
              },
              "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": "추적을 시작할 목적지: 래스터(0이 아니고 NoData가 아닌 모든 셀) 또는 포인트/멀티포인트 벡터 레이어."
              },
              "backlink": {
                "label": "백링크",
                "description": "cost_back_link에서 생성된 백링크 방향 래스터(0 = 소스, 1-8 = 소스를 향하는 방향, 1 = 동쪽에서 반시계 방향)."
              },
              "accumulation": {
                "label": "누적",
                "description": "선택적 누적 비용 래스터(cost_back_link의 out_distance). 각 경로의 총 비용을 제공하며 path_type이 'each_zone' 및 'best_single'일 때 필요합니다."
              },
              "path_type": {
                "label": "경로 유형",
                "description": "'each_cell'(기본값, 목적지 셀마다 경로 하나), 'each_zone'(목적지 구역마다 가장 저렴한 셀에서 시작하는 경로 하나), 'best_single'(가장 저렴한 단일 경로) 중 하나."
              },
              "zone_field": {
                "label": "구역 필드",
                "description": "path_type이 'each_zone'일 때 벡터 목적지의 구역 id를 담은 속성. 래스터 목적지는 셀 값을 구역으로 사용합니다."
              },
              "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 국지 Moran's I를 실행하고, FDR 보정된 군집/이상치 유형(HH/LL/HL/LH)을 보고합니다. ArcGIS Optimized Outlier Analysis와 유사하며, 번들된 원시 local_morans_i_lisa와 시공간 local_outlier_analysis가 제공하지 않는 비시간 국지 Moran 래퍼입니다.",
            "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": "FDR 알파",
                "description": "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": "ArcGIS Assign Weights By Pairwise Comparison과 같이 AHP 쌍대 비교 행렬(Saaty 1-9 척도)로부터 정규화된 주 고유벡터로 기준 가중치를 도출하며, 일관성 검사(lambda_max, 일관성 지수, 일관성 비율)를 수행합니다.",
            "params": {
              "matrix": {
                "label": "행렬",
                "description": "n x n 상호 비교 행렬을 JSON 2차원 배열로 지정합니다(예: [[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": "ArcGIS Path Distance와 같이 각 단계가 실제 3D 표면 거리(DEM 기반) × 경사 의존 수직 계수(Tobler 도보, 선형, 이진) × 마찰을 지불하는 누적 최소 비용 거리입니다.",
            "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": "0 계수",
                "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 아카이브의 bbox/줌 부분 집합을 새 아카이브로 추출합니다(예: Protomaps 행성 빌드에서 오프라인 베이스맵 생성).",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 .pmtiles 파일 경로."
              },
              "output": {
                "label": "출력",
                "description": "출력 .pmtiles 파일 경로."
              },
              "bbox": {
                "label": "BBox",
                "description": "'min_lon,min_lat,max_lon,max_lat' 형식의 WGS84 경계 상자."
              },
              "min_zoom": {
                "label": "최소 줌",
                "description": "포함할 최저 줌 수준(기본값 0이며, 축소한 상태에서도 지도를 계속 사용할 수 있도록 함)."
              },
              "max_zoom": {
                "label": "최대 줌",
                "description": "포함할 최고 줌 수준(기본값: 원본 아카이브의 최대 줌)."
              },
              "max_tiles": {
                "label": "최대 타일 수",
                "description": "선택 영역이 이보다 많은 타일을 포함하면 중단합니다(기본값 2000000)."
              },
              "url": {
                "label": "URL",
                "description": "HTTP(S) PMTiles URL. url 또는 input 중 하나를 제공합니다. HTTP 소스는 바이트 범위 요청을 사용합니다(호스트가 교차 출처 Range 읽기를 허용해야 함)."
              },
              "bbox_crs": {
                "label": "BBox CRS",
                "description": "bbox 좌표의 EPSG 코드. 기본값은 4326(WGS84 경도/위도)이며, 다른 CRS는 4326으로 재투영됩니다."
              }
            }
          },
          "point_statistics": {
            "name": "포인트 통계",
            "description": "포인트 피처 속성의 이동 윈도우 통계를 래스터화합니다: 각 출력 셀에 대해 근방(원 또는 직사각형)이 내부 포인트에서 선택한 수치 필드 값을 수집하여 mean/majority/maximum/median/minimum/minority/range/std/sum/variety로 축약합니다. 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": "입력 CRS EPSG 코드를 재정의합니다(예: 레이어에 레이블이 없을 때). 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": "ID 필드",
                "description": "테이블에서 각 폴리곤을 식별하는 필드. 기본값: 피처 인덱스."
              },
              "both_sides": {
                "label": "양쪽",
                "description": "각 이웃 쌍을 두 번 생성합니다(src→nbr 및 nbr→src). 기본값 false(쌍당 한 번)."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "경계를 일치시키기 전에 정점을 이 크기(CRS 단위)의 격자로 양자화합니다. 기본값 0(정확한 좌표)."
              }
            }
          },
          "polygon_volume": {
            "name": "폴리곤 부피",
            "description": "ArcGIS Polygon Volume과 같이 각 피처의 참조 평면 높이 위/아래 표면 래스터의 폴리곤별 부피와 3D 표면적을 계산합니다. 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 속도장(darcy_flow가 생성한 크기+방향)을 따라 퍼프 중심을 진행시킨 뒤, 경로 정렬 좌표에서 닫힌 형식의 2D 가우시안 퍼프 농도를 공극률, 두께, 지연 계수, 1차 감쇠로 스케일링하여 평가합니다.",
            "params": {
              "magnitude": {
                "label": "크기",
                "description": "darcy_flow의 'output'이 생성한 Darcy 유속 크기 래스터. 셀 크기/범위는 이 래스터에서 가져옵니다."
              },
              "direction": {
                "label": "방향",
                "description": "darcy_flow의 'direction'이 생성한 Darcy 흐름 방향 래스터(북쪽 기준 시계 방향 방위각 도, 경사 하강 방향). 'magnitude'와 공동 정합되어야 합니다."
              },
              "x": {
                "label": "X",
                "description": "방출 지점 X 좌표(지도 단위, 유속 래스터와 동일한 CRS)."
              },
              "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": "1차 감쇠 상수(기본값 0, 0 이상이어야 하며 'time'과 동일한 시간 단위)."
              },
              "time": {
                "label": "시간",
                "description": "하나 이상의 양의 경과 시간을 쉼표로 구분한 목록. 마지막 시간은 'output'에 기록되며, 모든 시간(마지막 시간 포함)은 'time_series' 출력에 보고됩니다."
              },
              "output": {
                "label": "출력",
                "description": "'time'의 마지막 시간에 대한 출력 농도 래스터 경로. 생략하면 메모리에 저장됩니다."
              },
              "band": {
                "label": "밴드",
                "description": "크기/방향 래스터에서 읽을 1 기반 밴드(기본값 1)."
              },
              "step": {
                "label": "단계",
                "description": "CRS 단위의 퍼프 중심 전진 단계 길이(기본값: 크기 래스터의 셀 크기)."
              },
              "max_steps": {
                "label": "최대 단계 수",
                "description": "요청된 시간당 최대 전진 단계 수(기본값 1000)."
              }
            }
          },
          "predict_using_trend_raster": {
            "name": "추세 래스터 기반 예측",
            "description": "ArcGIS Predict Using Trend Raster와 같이 generate_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 정규화 로지스틱 모델(선형/2차/힌지 기저 확장)을 적합한 뒤, 존재 확률 표면과 변수 중요도 보고서를 예측합니다. 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": "힌지 매듭",
                "description": "힌지 피처를 위한 공변량당 내부 매듭 개수('hinge'가 활성화된 경우에만 사용). 기본값 10."
              },
              "seed": {
                "label": "시드",
                "description": "결정론적 배경 샘플을 위한 난수 시드(기본값 1)."
              }
            }
          },
          "propagate_displacement": {
            "name": "변위 전파",
            "description": "ArcGIS Propagate Displacement와 같이 희소 링크를 매끄러운 IDW 필드로 보간하여 resolve_road_conflicts(또는 임의의 2점 변위 링크 레이어)가 도입한 변위를 인근 피처에 전파합니다: 강체 피처(건물, 필지)는 단일 평균 이동을, 유연한 선은 정점별 호 길이 평활 굽힘을 받습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "조정할 입력 벡터 레이어(모든 지오메트리 유형)."
              },
              "links": {
                "label": "링크",
                "description": "변위 링크: 링크당 정점이 2개인 선 레이어로, 첫 번째 정점 = 원래 위치, 마지막 정점 = 변위된 위치(resolve_road_conflicts의 'links' 출력과 rubbersheet_features의 'links' 입력이 모두 사용하는 스키마)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "adjustment_style": {
                "label": "조정 스타일",
                "description": "'auto'(기본값: 포인트/폴리곤은 강체 이동, 선은 정점별 굽힘), 'preserve_orientation'(점유 영역 전체에 대해 평균한 변위 필드만큼 강체 이동) 또는 'solid'(피처의 대표점에서 한 번 샘플링한 변위 필드만큼 강체 이동)."
              },
              "search_distance": {
                "label": "탐색 거리",
                "description": "링크가 샘플 포인트에 영향을 미칠 수 있는 최대 거리(CRS 단위)이며, 더 먼 링크는 무시됩니다. 기본값: 무제한(모든 링크가 모든 곳에 기여)."
              }
            }
          },
          "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": "CRS 단위의 출력 셀 크기(기본값: 범위 / 200)."
              },
              "iterations": {
                "label": "반복 횟수",
                "description": "최대 평활화 반복 횟수(기본값 100)."
              },
              "tolerance": {
                "label": "허용 오차",
                "description": "셀당 최대 변화량이 평균 밀도의 이 비율 미만으로 떨어지면 중지합니다(기본값 0.001)."
              },
              "non_negative": {
                "label": "음수 없음",
                "description": "음수를 0으로 고정하고 질량을 보존하도록 재분배합니다(기본값 true)."
              }
            }
          },
          "radiometric_terrain_flattening": {
            "name": "방사 지형 평탄화",
            "description": "평탄 지구 참조 면적을 DEM 기반 국지 조명 면적으로 대체하여 보정된 SAR 후방산란에서 지형 밝기 신호를 제거하고, 레이오버와 레이더 그림자를 표시합니다(ArcGIS Apply Radiometric Terrain Flattening). 17라운드의 apply_radiometric_calibration은 타원체 입사각으로 정규화하므로 경사지에서는 sigma0/gamma0가 토지 피복이 아닌 지형을 따라가며, 흔히 6 dB 이상으로 이는 측정하려는 산림/나지 차이를 초과합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "보정된 SAR 후방산란 래스터(기본값은 beta nought, 'input_calibration' 참조)."
              },
              "dem": {
                "label": "DEM",
                "description": "수치 표고 모델로, 입력 래스터와 공동 정합됩니다."
              },
              "output": {
                "label": "출력",
                "description": "출력 지형 평탄화 후방산란 래스터. 생략하면 메모리에 저장됩니다."
              },
              "output_scattering_area": {
                "label": "산란 면적 출력",
                "description": "실제 조사 면적 대 평면 지구 면적의 출력 비율. 항상 생성되며, 경로가 주어지지 않으면 메모리에 저장됩니다."
              },
              "output_geometry_mask": {
                "label": "지오메트리 마스크 출력",
                "description": "출력 마스크: 0은 정상, 1은 레이오버, 2는 레이더 음영. 항상 생성되며, 경로가 주어지지 않으면 메모리에 저장됩니다."
              },
              "incidence_angle": {
                "label": "입사각",
                "description": "도 단위의 타원체 입사각: 상수 또는 셀별 래스터 경로. 필수입니다."
              },
              "look_azimuth": {
                "label": "관측 방위각",
                "description": "대상에서 센서를 향하는 나침반 방위각(도, 기본값 270, 즉 우측 관측 상승 궤도). 우측 관측 하강 Sentinel-1 궤도는 약 283입니다."
              },
              "input_calibration": {
                "label": "입력 보정",
                "description": "입력이 이미 어떤 값인지: 'beta0'(기본값), 'sigma0_ellipsoid' 또는 'gamma0_ellipsoid'. 뒤의 두 가지는 평탄화 전에 타원체 각도를 사용하여 beta nought로 다시 변환됩니다."
              },
              "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": "DEM z 단위를 래스터의 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": "래스터 밴드를 [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": "입력 래스터 파일 경로(지리 좌표계 경위도, 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": "웹 지도를 위해 래스터를 Web Mercator(EPSG:3857) XYZ PNG 타일 피라미드로 슬라이스합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로. 소스 CRS(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와 같이 타임스탬프 포인트를 트랙별 통계가 있는 이동 트랙 폴리라인(ID로 그룹화, 시간순 정렬, 시간/거리 간격에서 분할)으로 변환하고, 선택적으로 이동체가 멈춘 체류 위치를 찾습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "타임스탬프가 있는 관측값의 입력 포인트 벡터 레이어."
              },
              "track_field": {
                "label": "트랙 필드",
                "description": "각 트랙/이동체를 식별하는 필드(예: 차량 또는 동물 ID)."
              },
              "time_field": {
                "label": "시간 필드",
                "description": "각 포인트의 시각을 담고 있는 필드: 수치 초 또는 ISO-8601 타임스탬프."
              },
              "output": {
                "label": "출력",
                "description": "트랙의 출력 선 벡터(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "time_gap": {
                "label": "시간 간격",
                "description": "포인트 사이의 시간 간격이 이 초 수를 초과하면 새 트랙 세그먼트를 시작합니다. 기본값: 시간 분할 없음."
              },
              "distance_gap": {
                "label": "거리 간격",
                "description": "포인트 사이의 거리가 이 값을 초과하면 새 트랙 세그먼트를 시작합니다(지리 좌표계 CRS의 경우 미터, 그 외에는 CRS 단위). 기본값: 거리 분할 없음."
              },
              "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": "항상 유지되어야 하는 포인트를 표시하는 속성(0이 아님/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": "잔차 베리오그램을 적합하는 데 사용되는 랙 구간 개수(기본값 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": "최소 벽 길이이며, 이보다 짧은 모서리는 노이즈로 제거됩니다(CRS 단위). 기본값 1.0."
              },
              "precision": {
                "label": "정밀도",
                "description": "인접한 평행 벽이 같은 직선상에 놓이도록 벽 오프셋을 스냅하는 격자 간격(CRS 단위). 기본값: tolerance."
              },
              "adjacency_distance": {
                "label": "인접 거리",
                "description": "'group' 필드가 지정되지 않은 경우, 정점이 이 거리 이내에 있는 점유 영역들은 하나의 그룹이 됩니다(CRS 단위). 기본값: tolerance의 2배."
              }
            }
          },
          "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": "정규화된 점유 영역이 원래 경계에서 벗어날 수 있는 최대 거리(CRS 단위). 기본값 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": "ArcGIS Remove Overlap (Multiple)과 같이 폴리곤 집합 간의 모든 중첩을 정확히 하나의 피처에 재할당하여 합집합의 간격 없고 중첩 없는 분할(중심선 또는 Thiessen 분할)을 생성합니다.",
            "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": "모든 셀에 적용되는 단일 잡음 등가 sigma nought."
              },
              "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 이하로 내려간 셀은 국소 잡음 전력의 이 비율로 고정됩니다(기본값 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": "잘못된 폴리곤 지오메트리(자기 교차(자기 합집합 통해), 링 와인딩, 중복 정점, null/빈 파트)를 탐지하고 수정하거나, 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": "ArcGIS Rescale By Function과 같이 전달 함수(linear, inverse_linear, power, exponential, logarithmic, logistic, gaussian, near, small, large, symmetric_linear)를 통해 연속 래스터를 공통 적합도 척도로 재조정합니다.",
            "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'이 설정된 경우 페이지 mm). 'symbol_width_field'가 없을 때 사용됩니다."
              },
              "symbol_width_field": {
                "label": "기호 너비 필드",
                "description": "각 도로의 기호화된 폭을 제공하는 숫자 필드(지도 단위, 또는 'scale'이 설정된 경우 페이지 mm). 값이 없으면 'symbol_width'로 대체됩니다."
              },
              "hierarchy_field": {
                "label": "계층 필드",
                "description": "도로 중요도의 순위를 매기는 숫자 필드(값이 낮을수록 더 중요하며 고정됩니다). 없으면 모든 도로가 변위를 동등하게 분담합니다."
              },
              "scale": {
                "label": "스케일",
                "description": "목표 지도 축척 분모. 설정하면 기호 폭이 페이지 밀리미터로 간주되어 지상 단위로 변환됩니다(mm * scale / 1000). 기본값: 폭을 지도 단위로 직접 사용."
              },
              "gap": {
                "label": "간격",
                "description": "기호 띠 사이에 유지할 추가 여유 간격(지도 단위). 기본값 0."
              },
              "max_iter": {
                "label": "최대 반복 횟수",
                "description": "최대 변위 반복 횟수. 기본값 50."
              },
              "pin_endpoints": {
                "label": "끝점 고정",
                "description": "접합부/연결성을 보존하기 위해 모든 도로의 첫/마지막 정점을 고정합니다(기본값 true)."
              },
              "links": {
                "label": "링크",
                "description": "rubbersheet_features에서 사용할 수 있는 변위 링크(from→to 선)에 대한 선택적 출력 경로."
              }
            }
          },
          "ripleys_k": {
            "name": "Ripley's K",
            "description": "여러 거리에 걸친 군집 또는 분산을 탐지하기 위해 몬테카를로 완전 공간 임의성 엔벨로프를 갖는 다중 거리 점 패턴 분석(Ripley's K / L 함수)입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 포인트 벡터 레이어(다른 지오메트리는 정점 평균 대표점을 사용합니다)."
              },
              "output": {
                "label": "출력",
                "description": "K/L 테이블에 대한 선택적 CSV 경로. 이 테이블은 도구 결과로도 반환됩니다."
              },
              "distance_bands": {
                "label": "거리 밴드",
                "description": "평가할 거리 밴드의 개수(기본값 10)."
              },
              "max_distance": {
                "label": "최대 거리",
                "description": "평가할 최대 거리이며, CRS 단위입니다. 기본값: 포인트 경계 상자의 짧은 변의 4분의 1."
              },
              "permutations": {
                "label": "순열 횟수",
                "description": "유의성 포락선을 위한 CSR 시뮬레이션 횟수(기본값 99, 0이면 포락선을 비활성화)."
              },
              "weight_field": {
                "label": "가중치 필드",
                "description": "각 포인트에 가중치를 부여하는 선택적 숫자 필드."
              },
              "seed": {
                "label": "시드",
                "description": "재현 가능한 포락선을 위한 CSR 난수 생성기 시드(기본값 1)."
              }
            }
          },
          "rubbersheet_features": {
            "name": "피처 고무판 변환",
            "description": "변위 링크를 사용하여 벡터 레이어를 대상에 맞게 워프합니다: 기준점을 대상에 정확히 놓고 그 사이의 모든 것을 매끄럽게 변형하는 Delaunay-TIN 구간별 아핀(또는 IDW) 변환입니다. ArcGIS Rubbersheet Features와 같은 통합 변환입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "조정할 입력 벡터 레이어(모든 지오메트리 유형)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 벡터 경로(확장자로 드라이버 결정). 생략하면 메모리에 저장됩니다."
              },
              "links": {
                "label": "링크",
                "description": "변위 링크의 선택적 선 레이어(각 선에서 첫 번째 정점 = 시작, 마지막 정점 = 끝)."
              },
              "target": {
                "label": "대상",
                "description": "선택적 대상 벡터 레이어이며, 각 입력 피처의 대표점을 search_distance 이내의 가장 가까운 대상과 매칭하여 링크가 생성됩니다."
              },
              "search_distance": {
                "label": "탐색 거리",
                "description": "링크 생성 시 입력을 대상과 매칭할 최대 거리(CRS 단위). 'target'과 함께 필수입니다."
              },
              "method": {
                "label": "방법",
                "description": "'linear'(Delaunay TIN 구간별 아핀, 기본값) 또는 'idw'(역거리 가중)."
              },
              "power": {
                "label": "거듭제곱",
                "description": "TIN 외부의 감쇠 또는 method=idw에 사용되는 IDW 지수. 기본값 2."
              }
            }
          },
          "sar_coherence": {
            "name": "SAR 코히어런스",
            "description": "공동 정합된 두 복소 SAR 촬영 사이의 정규화된 간섭계 코히어런스 크기(및 선택적으로 간섭 위상)를 이동 윈도우로 계산합니다(ArcGIS Compute Coherence / Generate Interferogram). 코히어런스는 밝기가 아닌 위상 안정성을 측정하므로, 강도 차분으로 볼 수 없는 변화(붕괴, 식생 아래 침수, 수확, 빙하 이동)를 모든 기상에서 탐지합니다. 두 레지스트리의 어떤 도구도 SAR 위상을 사용하지 않습니다. 입력은 2밴드 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": "너깃에 대한 섭동 반폭(퍼센트, 기본값 10)."
              },
              "partial_sill_span_percent": {
                "label": "부분 실 범위 백분율",
                "description": "부분 문턱값에 대한 섭동 반폭(퍼센트, 기본값 10)."
              },
              "range_span_percent": {
                "label": "범위 범위 백분율",
                "description": "범위에 대한 섭동 반폭(퍼센트, 기본값 10)."
              },
              "nugget_steps": {
                "label": "너깃 단계 수",
                "description": "너깃 구간에 걸친 샘플 개수(기본값 3, 1이면 적합된 값에 고정)."
              },
              "partial_sill_steps": {
                "label": "부분 실 단계 수",
                "description": "부분 문턱값 구간에 걸친 샘플 개수(기본값 3)."
              },
              "range_steps": {
                "label": "범위 단계 수",
                "description": "범위 구간에 걸친 샘플 개수(기본값 3)."
              },
              "lag_count": {
                "label": "시차 수",
                "description": "기준 적합에 사용되는 경험적 베리오그램 랙 구간 개수(기본값 12)."
              }
            }
          },
          "similarity_search": {
            "name": "유사도 검색",
            "description": "ArcGIS Similarity Search와 같이 z 표준화된 수치 필드에 걸쳐 하나 이상의 참조 피처와의 속성 유사도(유클리드 또는 코사인)로 후보 피처의 순위를 매깁니다(최대/최소/양쪽).",
            "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": "3D 선 단순화",
            "description": "ArcGIS Simplify 3D Line과 같이 3차원에서 편차를 측정하는 Douglas-Peucker 분할을 사용하여 수직 프로파일을 보존하면서 3D 폴리라인의 정점 수를 줄입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 폴리라인 레이어(3D 정점이며, 2D 정점은 평면 특수 사례로 처리됩니다)."
              },
              "output": {
                "label": "출력",
                "description": "선택적 출력 경로. 생략하면 결과가 메모리에 저장됩니다."
              },
              "tolerance": {
                "label": "허용 오차",
                "description": "지도 단위의 최대 3D 편차. 현에서 이보다 가까운 정점은 제거됩니다."
              },
              "z_factor": {
                "label": "Z 계수",
                "description": "Z 단위가 XY와 다른 데이터를 위해 거리 검사 전에 Z에 적용되는 승수(기본값 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": "적합된 기본 도형이 원래 정점에서 벗어날 수 있는 최대 허용 편차이며, CRS 단위입니다."
              },
              "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": "적합된 원호 테이블(피처 id, 끝점, 중심, 반경, 부호 있는 스윕 각도)에 대한 선택적 경로. 생략하면 메모리에 저장됩니다(여전히 반환됩니다)."
              }
            }
          },
          "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": "원본으로부터의 최대 수직 편차이며, CRS 단위입니다. EPSG:4326에서는 이것이 도 단위이므로 미터 규모의 작업에는 2.0이 아니라 대략 2e-5가 필요합니다. 이 한계는 적합된 각 선에 대해 적용되므로, 연속된 세그먼트가 만나는 접합부 근처에서는 출력된 체인이 이를 약간 초과할 수 있습니다."
              },
              "anchor_points": {
                "label": "앵커 포인트",
                "description": "위치가 정점으로 반드시 유지되어야 하는 선택적 포인트 레이어(ArcGIS anchor_points). 런은 앵커를 가로질러 확장되지 않습니다."
              },
              "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": "최하위 구역에 할당되는 구역 id(기본값 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": "CRS 단위의 PAEK 평활화 길이: 정점을 평균하는 호 길이 윈도우입니다. 값이 클수록 곡선이 더 부드러워집니다. 기본값 1.0. 'bezier' 알고리즘에서는 무시됩니다."
              },
              "smooth_boundary": {
                "label": "경계 평활화",
                "description": "커버리지의 외부 경계에 있는 아크(단일 폴리곤에 속하는 에지)도 평활화합니다. 기본값 true이며, false로 설정하면 외부 경계를 변경하지 않고 유지합니다."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "토폴로지를 구축하기 전에 정점을 이 크기(CRS 단위)의 격자에 양자화하여 거의 일치하는 공유 정점을 하나로 취급합니다. 기본값 0(좌표를 정확히 사용)."
              }
            }
          },
          "snap_tracks": {
            "name": "트랙 스냅",
            "description": "Viterbi 동적 계획법(방출 = 스냅 거리, 전이 = 경로 연속성)으로 타임스탬프 GPS 트랙을 도로망에 맵 매칭하여, 매칭된 트랙이 평행 도로 사이를 지그재그로 오가지 않고 하나의 그럴듯한 경로를 따르게 합니다. 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": "날짜 범위에 대한 DEM 위의 입사 태양 복사(Wh/m²): 경사/향, 지평선 차폐, 시간에 따른 태양 위치를 고려한 직달 + 산란 복사입니다. 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": "위도(도). 기본값: EPSG:4326 / 3857의 경우 DEM 중심에서 도출됩니다."
              },
              "transmittivity": {
                "label": "투과율",
                "description": "단위 대기 질량에 대한 대기 투과율(0-1). 기본값 0.6."
              },
              "diffuse_proportion": {
                "label": "산란 비율",
                "description": "산란 천공 복사로 취급되는 대기권 밖 수평면 일사량의 비율(0-1). 기본값 0.3."
              },
              "horizon_distance": {
                "label": "지평선 거리",
                "description": "셀 단위의 최대 지평선 광선 길이(그림자 계산 범위를 제한). 기본값 100."
              },
              "band": {
                "label": "밴드",
                "description": "1 기반 DEM 밴드(기본값 1)."
              }
            }
          },
          "sort_features": {
            "name": "피처 정렬",
            "description": "ArcGIS Sort와 같이 속성 필드 또는 Hilbert 공간 채움 곡선(공간 정렬)에 따라 벡터 레이어를 재정렬합니다. 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": "각 피처의 Hilbert 곡선 거리를 저장할 선택적 필드 이름."
              }
            }
          },
          "space_time_kernel_density": {
            "name": "시공간 커널 밀도",
            "description": "타임스탬프 포인트의 시공간 커널 밀도: 분리 가능한 공간(Epanechnikov/4차) × 시간(삼각/Epanechnikov) 커널로부터 시간 슬라이스당 하나의 밀도 밴드(다중 밴드 래스터)를 생성하여 각 밴드가 공간과 시간 모두에서 가까운 포인트를 집계합니다. ArcGIS Space Time Kernel Density와 유사하며, 번들된 2D heat_map의 시간 인식 동반 도구입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 포인트 벡터 레이어. 지리 좌표계(EPSG:4326/태그 없는 경위도)는 하버사인 미터를 사용하고, 투영 좌표계는 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": "구역 1 클래스별 선택적 CSV 테이블(클래스, 개수, 연관성, 우세 구역 2 클래스 및 비율). 전체 지표는 항상 결과로 반환됩니다."
              },
              "band1": {
                "label": "밴드 1",
                "description": "읽어들일 zones1의 1 기반 밴드(기본값 1)."
              },
              "band2": {
                "label": "밴드 2",
                "description": "읽어들일 zones2의 1 기반 밴드(기본값 1)."
              }
            }
          },
          "spatial_eigenvector_filtering": {
            "name": "공간 고유벡터 필터링 (MESF)",
            "description": "ArcGIS Decompose Spatial Structure / Create Spatial Component Explanatory Variables와 같이 공간 가중치 행렬로부터 Moran 고유벡터(공간 필터)를 생성하고 자기상관 성분을 설명 변수 필드(MEV1, MEV2, …)로 추가합니다. 대칭 연결 행렬(인접성 또는 대칭화된 KNN)을 구축하고, 이중 중심화(M C M)한 뒤, 순수 Rust 순환 Jacobi 솔버로 고유분해합니다. Moran's I ≥ min_autocorrelation인 고유벡터를 내림차순으로 유지하며 max_components로 제한합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 레이어(포인트/선/폴리곤, 인접성 방법은 폴리곤이 필요합니다)."
              },
              "output": {
                "label": "출력",
                "description": "출력 벡터 경로 — 유지된 고유벡터가 MEV1, MEV2, …로 추가된 입력 피처. 생략하면 메모리에 저장됩니다."
              },
              "method": {
                "label": "방법",
                "description": "공간 관계의 개념화: 'contiguity_edges'(rook), 'contiguity_edges_corners'(queen) 또는 'knn'(대칭화). 기본값 'contiguity_edges_corners'."
              },
              "number_of_neighbors": {
                "label": "이웃 수",
                "description": "method = knn일 때의 최근접 이웃 개수 k. 기본값 8."
              },
              "min_autocorrelation": {
                "label": "최소 자기상관",
                "description": "고유벡터가 유지되기 위해 가져야 하는 최소 Moran's I(양의 공간 자기상관). 기본값 0.25."
              },
              "max_components": {
                "label": "최대 성분 수",
                "description": "출력할 최대 고유벡터 개수로, Moran's I 내림차순으로 선택됩니다. 기본값 15."
              }
            }
          },
          "spatial_outlier_detection": {
            "name": "공간 이상치 탐지",
            "description": "ArcGIS Spatial Outlier Detection과 같이 각 포인트가 k 최근접 이웃의 국지 밀도에 비해 얼마나 고립되어 있는지를 나타내는 국지 이상치 계수(LOF)로 포인트를 점수화하고 상위 이상치를 표시합니다. 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'(rook, 기본값), 'contiguity_edges_corners'(queen) 또는 '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 제곱, 의사 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": "SAVI의 토양 보정 계수 L(기본값 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와 같이 타일 수, 고정 픽셀 크기 또는 폴리곤 피처로 래스터를 독립 타일로 분할하며, 선택적 픽셀 중첩을 지원합니다. 각 타일은 CRS와 지오레퍼런싱을 보존합니다.",
            "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": "선 ID 필드",
                "description": "LINE_ID를 제공하는 선택적 필드이며, 기본값은 피처 인덱스입니다."
              },
              "method": {
                "label": "방법",
                "description": "표면 샘플링: 'bilinear'(기본값) 또는 'nearest'."
              }
            }
          },
          "storage_capacity": {
            "name": "저류 용량",
            "description": "ArcGIS Storage Capacity와 같이 DEM 위로 수면 고도를 스윕하고 분석 구역별 또는 전체 DEM에 대해 각 수위에서의 침수 표면적과 저류 부피(수위-면적-부피 곡선)를 보고합니다.",
            "params": {
              "dem": {
                "label": "DEM",
                "description": "입력 DEM 래스터(표고)."
              },
              "output": {
                "label": "출력",
                "description": "출력 CSV 경로(zone_id, level, elevation, area, volume)."
              },
              "zones": {
                "label": "구역",
                "description": "선택적 폴리곤 레이어이며, 폴리곤당 수위-면적-체적 곡선 하나가 생성됩니다. 생략하면 DEM 전체가 하나의 구역이 됩니다."
              },
              "zone_id_field": {
                "label": "구역 ID 필드",
                "description": "출력에서 각 구역의 이름을 지정하는 필드(기본값: 피처 인덱스)."
              },
              "num_levels": {
                "label": "레벨 수",
                "description": "각 구역의 최솟값과 최댓값 사이의 표고 단계 개수(기본값 20). 'increment'가 주어지면 무시됩니다."
              },
              "increment": {
                "label": "증가",
                "description": "레벨 사이의 고정 표고 단계(지도 단위). 'num_levels'보다 우선합니다."
              },
              "min_elevation": {
                "label": "최소 고도",
                "description": "스윕의 선택적 하한 표고(기본값: 각 구역의 최소 지형)."
              },
              "max_elevation": {
                "label": "최대 고도",
                "description": "스윕의 선택적 상한 표고(기본값: 각 구역의 최대 지형)."
              },
              "band": {
                "label": "밴드",
                "description": "1 기반 DEM 밴드(기본값 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": "연속된 페이지가 경로를 따라 중첩되는 page_length의 비율 [0, 1). 기본값 0."
              },
              "orientation": {
                "label": "방향",
                "description": "along_line(기본값): 각 페이지를 국소 현 방위로 회전시킵니다. horizontal/vertical: 회전을 가장 가까운 동서/남북 축에 맞춥니다."
              },
              "start_page": {
                "label": "시작 페이지",
                "description": "할당할 첫 페이지 번호. 기본값 1."
              }
            }
          },
          "subdivide_polygon": {
            "name": "폴리곤 세분화",
            "description": "ArcGIS Subdivide Polygon과 같이 주어진 각도의 직선 평행 절단을 사용하여 각 폴리곤을 등면적 파트(지정된 파트 수 또는 각각의 목표 면적)로 나눕니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 폴리곤 벡터 레이어(정확한 등면적을 위해서는 투영/등적 CRS를 사용하십시오)."
              },
              "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": "학습 부분집합 크기: 'size_method'에 따라 백분율(0-100) 또는 절대 피처 개수(기본값 50)."
              },
              "size_method": {
                "label": "크기 방법",
                "description": "'percentage'(기본값) 또는 'absolute'."
              },
              "seed": {
                "label": "시드",
                "description": "재현 가능한 분할을 위한 RNG 시드(기본값은 고정 상수)."
              },
              "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 ID 필드",
                "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": "ID 필드",
                "description": "출력에서 각 원본 피처를 식별하는 입력 레이어의 선택적 필드. 기본값은 입력 피처 인덱스입니다."
              }
            }
          },
          "summarize_percent_change": {
            "name": "변화율 요약",
            "description": "각 영역 피처 내에서 현재 기간과 이전 기간의 사건을 세고 개수 차이, 변화율, 변화 클래스를 보고합니다. 이전 개수가 0인 곳은 변화율이 null(클래스 '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": "하나 이상의 사례 필드에 대한 SQL 방식 GROUP BY: 고유한 사례 필드 조합마다 (필드, 통계량) 집계 목록(count/sum/mean/min/max/std/first/last)과 그룹 레코드 수를 계산합니다. 출력은 순수 속성 테이블입니다. 사례 필드가 없으면 단일 총합 행을 생성합니다(ArcGIS의 Summary Statistics와 유사, count만 사용하면 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": "주어진 날짜와 시각에 대해 3D 솔리드를 태양 벡터를 따라 지면까지 돌출시켜 닫힌 그림자 부피 솔리드를 생성합니다(ArcGIS Sun Shadow Volume). shadow_image, shadow_animation, time_in_daylight는 모두 래스터 DSM에 대해 동작하며 래스터를 출력하고, solar_radiation은 일사량을 계산하므로, 어느 것도 그림자 지오메트리를 만들지 않아 '이 창문이 그늘에 있는가'나 '이 필지의 공역 중 얼마가 그늘에 있는가' 같은 질문에 답할 수 없습니다. 출력은 inside_3d, intersect_3d, union_3d와 결합됩니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "3D 건물 솔리드 또는 돌출된 건물 외곽(Z가 있는 삼각형 메시 MultiPolygon)."
              },
              "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": "DST 적용",
                "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.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": "ArcGIS Surface Parameters와 같이 선택한 근방 거리에 대한 국지 2차/쌍2차 최소제곱 표면 적합을 통해 DEM으로부터 경사, 향 또는 곡률(mean/profile/tangential/plan/gaussian/casorati/contour_geodesic_torsion)을 계산합니다. 번들된 고정 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": "수평 참조 평면에 대해 래스터 표면을 적분하여 평면 위 및/또는 아래 부분의 2D 면적, 3D 표면적, 부피를 보고합니다(ArcGIS의 Surface Volume과 유사). 토공 절토/성토 및 저수지 용량 분석에 사용합니다.",
            "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는 미터, planar는 CRS 단위입니다. 기본값: 고정된 세그먼트 개수."
              },
              "polygon_output": {
                "label": "폴리곤 출력",
                "description": "mode=ellipse 전용: 닫힌 선 외곽선 대신 채워진 Polygon을 생성합니다. 기본값 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는 미터, planar는 CRS 단위)."
              },
              "major": {
                "label": "장축",
                "description": "mode=ellipse: 장반경 길이를 담고 있는 필드(geodesic/rhumb는 미터, planar는 CRS 단위)."
              },
              "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와 같이 연결성을 유지하면서 짧고 하위 계층인 도로를 숨기고 각 도로를 visible/thinned로 표시합니다(비파괴).",
            "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). 번들된 직사각/육각 격자 도구는 입력 CRS에서 임의 격자를 만들며 PMTiles와 raster_to_tiles 도구가 사용하는 WebMercator 쿼드트리와 일치할 수 없습니다.",
            "params": {
              "zoom": {
                "label": "줌",
                "description": "줌 레벨. 'max_zoom'과 함께 사용하면 레벨 피라미드를 생성합니다."
              },
              "max_zoom": {
                "label": "최대 줌",
                "description": "선택적 최고 줌이며, 주어지면 'zoom'부터 'max_zoom'까지 모든 레벨이 생성됩니다."
              },
              "extent": {
                "label": "범위",
                "description": "경계가 격자를 클립하는 선택적 래스터 또는 벡터 레이어. 없으면 해당 줌의 전 세계가 대상이 됩니다('max_tiles'의 제한을 받음)."
              },
              "bbox": {
                "label": "BBox",
                "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": "ArcGIS Time Series Clustering과 같이 결정적 k-메도이드를 사용하여 H3 시공간 큐브의 셀을 시계열 유사도(값, z 정규화 프로파일 또는 상관관계)로 군집화하여 비슷하게 변화하는 장소를 함께 묶습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "타임스탬프 필드가 있는 EPSG:4326(경위도) 입력 포인트 레이어."
              },
              "time_field": {
                "label": "시간 필드",
                "description": "타임스탬프 필드(숫자 또는 ISO-8601 날짜/일시)."
              },
              "output": {
                "label": "출력",
                "description": "cluster_id/is_medoid가 포함된 출력 H3 폴리곤 레이어. 생략하면 메모리에 저장됩니다."
              },
              "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 km² 셀)."
              },
              "seed": {
                "label": "시드",
                "description": "재현 가능한 메도이드 초기화를 위한 난수 시드(기본값 1)."
              }
            }
          },
          "time_series_cross_correlation": {
            "name": "시계열 교차 상관",
            "description": "정렬된 두 시공간 래스터 스택 간의 셀별 시차 교차 상관(ArcGIS의 Time Series Cross Correlation / Multidimensional Raster Correlation과 유사): 각 셀에 대해 선택적으로 추세/계절성을 제거한 뒤, min_lag..=max_lag에 걸쳐 계열 A와 계열 B를 상관시켜 최적 시차와 그 Pearson 상관계수를 보고하며, 선택적으로 시차 0 상관계수와 Pyper-Peterman 유효 표본 크기 의사 p값을 제공합니다. 단일 계열 generate_trend_raster / change_point_detection 큐브 도구에 대한 2변수 시차 인식 보완 도구이며, 번들 도구 중 시간에 걸쳐 두 변수를 연관시키는 것은 없습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "스택 A: 다중 밴드 래스터(시간 단계당 밴드 하나) 또는 시간 순서로 공동 정합된 단일 밴드 래스터 경로의 쉼표로 구분된 목록."
              },
              "secondary": {
                "label": "보조 영상",
                "description": "스택 B: 'input'과 동일한 형태와 길이(다중 밴드 래스터 또는 쉼표로 구분된 단일 밴드 목록)."
              },
              "output": {
                "label": "출력",
                "description": "출력 최적 시차 래스터(|상관계수|를 최대화하는 정수 시차). 생략하면 메모리에 저장됩니다."
              },
              "corr_output": {
                "label": "상관 출력",
                "description": "최적 시차에서의 (부호 있는) Pearson 상관계수의 선택적 출력 래스터."
              },
              "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": "true이면 상관을 구하기 전에 계열별 OLS 선형 추세를 제거합니다(기본값 false)."
              },
              "deseasonalize": {
                "label": "계절성 제거",
                "description": "true이면 상관을 구하기 전에 주기가 'season_length'인 계열별 가법 계절 주기를 제거합니다(기본값 false)."
              },
              "season_length": {
                "label": "계절 길이",
                "description": "'deseasonalize'가 true일 때 사용되는 계절 주기(시간 단계)(기본값 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": "ID 필드",
                "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 to Raster",
            "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": "하류 접촉을 추적할 시드 트랙 ID의 쉼표로 구분된 선택적 목록(접촉 추적)."
              },
              "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점수, 최소-최대, 강건, log/log1p/sqrt/boxcox/역수, 등간격/분위수/표준편차 구간화, 원핫 인코딩.",
            "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": "Box-Cox 람다",
                "description": "'boxcox'의 고정 lambda이며, 생략하면 최대 우도(황금 분할 탐색)로 적합합니다."
              },
              "suffix": {
                "label": "접미사",
                "description": "출력 필드 이름 접미사(기본값은 변환에 따라 다르며, 예를 들어 zscore는 '_z')."
              },
              "drop_input": {
                "label": "입력 제거",
                "description": "true이면 변환 후 출력에서 원본 필드를 제거합니다(기본값 false)."
              }
            }
          },
          "transform_route_events": {
            "name": "경로 이벤트 변환",
            "description": "소스 경로 체계에 대해 측정된 포인트 이벤트를 대상 경로 체계로 재참조합니다: 소스 경로와 측정값으로부터 각 이벤트의 XY를 복원한 뒤, 군집 허용 오차 내의 가장 가까운 대상 경로에 재배치하여 대상 경로 ID와 측정값을 출력합니다. 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": "경로 ID 필드",
                "description": "source_events와 source_routes에서 경로 식별자를 지정하는 필드(기본값 'route_id'). 필드가 없으면 소스 경로 피처 인덱스가 사용됩니다."
              },
              "measure_field": {
                "label": "측정값 필드",
                "description": "소스 체계의 측정값을 담고 있는 source_events의 수치 필드(기본값 'measure')."
              },
              "target_id_field": {
                "label": "대상 ID 필드",
                "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": "쉼표 또는 세미콜론으로 구분된, 언피벗할 값 열."
              },
              "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": "Null 제거",
                "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": "true(기본값)이면 양쪽 끝이 연결되지 않은(고립된) 짧은 세그먼트를 유지하고, false이면 이들도 삭제합니다. 정확히 한쪽 끝이 댕글링인 세그먼트는 짧으면 항상 잘립니다."
              },
              "snap_tolerance": {
                "label": "스냅 허용 오차",
                "description": "이 거리(CRS 단위) 이내의 끝점은 동일한 노드로 처리됩니다. 기본값 1e-6."
              }
            }
          },
          "union_3d": {
            "name": "3D 합집합",
            "description": "중첩된 닫힌 3D 솔리드의 교차를 이중 계산하지 않고 결합 부피와 쌍별 중첩 부피를 계산합니다(ArcGIS Union 3D). 두 레지스트리 어디에도 3D 오버레이가 없어 현재 buffer_3d 캡슐이나 minimum_bounding_volume 헐을 합산하면 모든 중첩이 이중 계산되며, polygon_volume과 surface_volume은 참조 평면에 대해서만 측정합니다. 솔리드별 부피는 정확하고(부호 있는 사면체 합산), 합집합은 보고되는 해상도의 복셀 점유로 추정합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "닫힌 3D 솔리드 피처(buffer_3d 및 minimum_bounding_volume이 생성하는 것과 같은, Z를 가진 삼각형 메시 멀티폴리곤)."
              },
              "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": "라디안 단위의 래핑된 위상 래스터 또는 2밴드 I/Q 간섭도."
              },
              "output": {
                "label": "출력",
                "description": "언래핑된 연속 위상 래스터. 생략하면 메모리에 저장됩니다."
              },
              "method": {
                "label": "방법",
                "description": "ArcGIS가 지원하는 방법과 일치하는 'least_squares_pcg'(기본값)."
              },
              "coherence": {
                "label": "코히어런스",
                "description": "선택적 공동 정합 코히어런스 래스터이며, 간선별 해 가중치로 사용되어 코히어런스가 낮은 픽셀이 해에 미치는 영향을 줄입니다."
              },
              "coherence_threshold": {
                "label": "코히어런스 임계값",
                "description": "코히어런스가 이 값보다 낮은 픽셀을 마스킹합니다(기본값 0.3). 코히어런스 래스터가 주어지지 않으면 무시됩니다. 마스킹으로 유효 픽셀이 서로 연결되지 않은 요소로 나뉘면, 참조 픽셀이 속한 요소를 제외한 각 요소는 자체적인 임의의 가법 상수를 갖게 됩니다."
              },
              "max_iterations": {
                "label": "최대 반복 횟수",
                "description": "PCG 반복 횟수 상한(기본값 500)."
              },
              "tolerance": {
                "label": "허용 오차",
                "description": "해 계산이 중지되는 상대 잔차(기본값 1e-8)."
              },
              "reference_row": {
                "label": "참조 행",
                "description": "0으로 고정되어 해의 가법 상수를 결정하는 픽셀의 행. 기본값: 첫 번째 유효 픽셀."
              },
              "reference_col": {
                "label": "참조 열",
                "description": "고정된 픽셀의 열. 기본값: 첫 번째 유효 픽셀."
              },
              "band": {
                "label": "밴드",
                "description": "위상을 담고 있는 1 기반 밴드. 단일 밴드 위상 래스터나 2 밴드 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": "2의 거듭제곱 단일 코드의 경우 '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": "마칭 테트라헤드라를 통해 3D 복셀 필드에서 하나 이상의 임계값에 대한 삼각분할 등치면을 추출합니다(ArcGIS Export Voxel Isosurface). 두 레지스트리의 등고선 도구군 전체는 2D(평면의 선)이며, 이것은 idw_3d 또는 다차원 래스터의 출력을 렌더링 가능한 지오메트리로 바꾸는 체적 유사 도구입니다. buffer_3d와 minimum_bounding_volume이 사용하는 삼각형 메시 규약으로 출력하므로 결과를 inside_3d에 바로 입력할 수 있습니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "다중 밴드 래스터 형태의 복셀 필드: 밴드 k는 z_min + k * z_spacing에 있는 Z 슬라이스입니다."
              },
              "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). 등치면 아래쪽 셸을 하나 더 마칭하여 구현하므로 뚜껑이 표면에 접합되며, 경계 평면과 그보다 한 셀 바깥 사이에 놓입니다. 이는 외부 면만 밀봉합니다: 내부 NoData에 접한 셀은 건너뛰므로 추출된 표면과 교차하는 NoData 공동이 있으면 여전히 열린 테두리가 남습니다(등치선 안쪽이나 바깥쪽에 완전히 놓인 공동은 메시와 만나지 않습니다)."
              },
              "smooth": {
                "label": "평활화",
                "description": "추출된 메시에 적용되는 라플라시안 평활화 반복 횟수(기본값 0)."
              }
            }
          },
          "warp_raster": {
            "name": "래스터 워프",
            "description": "지상 기준점으로부터 래스터를 지오레퍼런싱합니다(ArcGIS Warp와 유사): 소스 픽셀 → 세계 좌표 GCP 쌍으로부터 1/2/3차 다항식을 적합하고 새 지오레퍼런싱된 격자로 리샘플링(최근접/쌍선형)하며, GCP별 잔차와 RMS 오차를 보고합니다. 벡터 rubbersheet_features가 이미 다루는 통합 이야기의 래스터 절반입니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터(그 픽셀 격자가 소스 좌표 공간입니다)."
              },
              "gcps": {
                "label": "GCP",
                "description": "';'로 구분된 'col,row,x,y' 4요소 형태의 지상 기준점(1차는 3개 이상, 2차는 6개, 3차는 10개)."
              },
              "output": {
                "label": "출력",
                "description": "출력 지오레퍼런싱된 래스터. 생략하면 메모리에 저장됩니다."
              },
              "transform": {
                "label": "변환",
                "description": "다항식 차수: 'poly1'(아핀, 기본값), 'poly2' 또는 'poly3'."
              },
              "resampling": {
                "label": "리샘플링",
                "description": "'nearest'(기본값) 또는 'bilinear'."
              },
              "cell_size": {
                "label": "셀 크기",
                "description": "세계 좌표 단위의 출력 셀 크기(기본값: 입력 너비를 대상 범위에 매핑)."
              },
              "epsg": {
                "label": "EPSG",
                "description": "출력 CRS에 태그할 EPSG 코드(선택 사항)."
              },
              "band": {
                "label": "밴드",
                "description": "워핑할 1 기반 밴드(기본값 1)."
              }
            }
          },
          "weighted_voronoi": {
            "name": "가중 보로노이",
            "description": "가중 보로노이 배분 래스터(상권/지배 영역): ArcGIS Generate Weighted Voronoi와 같이 각 셀을 가중 거리가 가장 작은 지점에 할당합니다. 승법(d/w, Apollonius), 가법(d-w) 또는 거듭제곱(d²-w²) 방식입니다. 번들된 비가중 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, ...)을 기본적으로 Hilbert 정렬 및 ZSTD 압축된 GeoParquet으로 변환합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 벡터 파일 경로(형식 자동 감지) 또는 메모리 내 핸들."
              },
              "output": {
                "label": "출력",
                "description": "출력 GeoParquet 파일 경로(예: /work/data.parquet)."
              },
              "compression": {
                "label": "압축",
                "description": "열 압축: zstd(기본값), snappy, gzip 또는 uncompressed."
              },
              "hilbert_sort": {
                "label": "Hilbert 정렬",
                "description": "공간 국소성을 위해 피처를 Hilbert 곡선을 따라 정렬합니다(기본값 true)."
              }
            }
          },
          "write_pmtiles": {
            "name": "래스터를 PMTiles로 변환",
            "description": "래스터를 단일 PMTiles 아카이브(Web Mercator PNG 타일 피라미드)로 렌더링합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "입력 래스터 파일 경로. 소스 CRS(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": "통계량이 'percentile'인 래스터에 적용되는 백분위수(0-100)(기본값 50)."
              },
              "zone_band": {
                "label": "구역 밴드",
                "description": "구역 래스터에서 읽을 1 기반 밴드(기본값 1)."
              },
              "ignore_nodata": {
                "label": "NoData 무시",
                "description": "값 래스터의 NoData 셀을 건너뜁니다(기본값 true). false이면 구역 내 NoData가 하나라도 있으면 그 구역의 통계량이 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": "출력 래스터(래스터 모드) 또는 CSV 경로(as_table 모드). 생략하면 메모리에 저장되거나 결과로만 반환됩니다."
              },
              "measure": {
                "label": "측정값",
                "description": "래스터 모드 측정값: 'area'(기본값), 'perimeter', 'thickness', 'centroid_x', 'centroid_y', 'major_axis', 'minor_axis' 또는 'orientation'."
              },
              "as_table": {
                "label": "테이블로",
                "description": "true이면 셀별 래스터 대신 구역마다 모든 측정값을 담은 행 하나를 출력합니다(기본값 false)."
              }
            }
          },
          "zonal_histogram": {
            "name": "구역 히스토그램",
            "description": "각 구역 내 값 래스터 셀의 분포를 구역 × 클래스 교차표로 집계합니다: 클래스 개수(범주형) 또는 구간별 빈도(연속형).",
            "params": {
              "zones": {
                "label": "구역",
                "description": "구역 래스터 파일 경로(정수/범주형 구역 ID)."
              },
              "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": "긴 형식(zone,class,count,percent) 변형의 선택적 CSV 경로."
              }
            }
          },
          "extract_cog_subset": {
            "name": "COG 부분 집합 추출",
            "description": "로컬 또는 HTTP Cloud Optimized GeoTIFF에서 bbox 부분 집합을 추출합니다.",
            "params": {
              "input": {
                "label": "입력",
                "description": "로컬 COG 파일. input 또는 url 중 하나를 제공합니다."
              },
              "url": {
                "label": "URL",
                "description": "HTTP(S) COG URL. url 또는 input 중 하나를 제공하며, HTTP 소스는 바이트 범위 요청을 사용합니다."
              },
              "bbox": {
                "label": "BBox",
                "description": "bbox_crs 기준 minX,minY,maxX,maxY 형태의 경계 상자."
              },
              "bbox_crs": {
                "label": "BBox CRS",
                "description": "bbox 좌표의 EPSG 코드."
              },
              "output": {
                "label": "출력",
                "description": "출력 COG 경로."
              },
              "level": {
                "label": "레벨",
                "description": "읽을 COG 오버뷰 레벨이며, 0은 전체 해상도입니다."
              },
              "resolution": {
                "label": "해상도",
                "description": "목표 출력 픽셀 크기. output_crs가 설정되면 output_crs 단위를 사용하고, 그렇지 않으면 bbox_crs 단위를 사용합니다. level이 생략되면 가장 가까운 COG 오버뷰를 선택합니다."
              },
              "output_crs": {
                "label": "출력 CRS",
                "description": "선택적 출력 EPSG 코드. 설정하면 부분 집합이 이 CRS로 재투영됩니다. EPSG 메타데이터로 기록할 수 없는 소스 CRS의 경우 기본값은 bbox_crs입니다."
              },
              "nodata": {
                "label": "NoData",
                "description": "선택적 출력 NoData 값. 재투영 채움 값으로 사용되고 출력 NoData 메타데이터로 기록됩니다."
              }
            }
          },
          "extract_wms_subset": {
            "name": "WMS 부분 집합 추출",
            "description": "WMS GetMap 엔드포인트에 bbox 부분 집합을 요청하고 Deflate COG로 기록합니다.",
            "params": {
              "url": {
                "label": "URL",
                "description": "WMS 엔드포인트 URL."
              },
              "layers": {
                "label": "레이어",
                "description": "쉼표로 구분된 WMS 레이어 이름."
              },
              "styles": {
                "label": "스타일",
                "description": "쉼표로 구분된 WMS 스타일 이름. 기본값은 비어 있습니다."
              },
              "bbox": {
                "label": "BBox",
                "description": "bbox_crs 기준 minX,minY,maxX,maxY 형태의 경계 상자."
              },
              "bbox_crs": {
                "label": "BBox CRS",
                "description": "bbox 좌표의 EPSG 코드."
              },
              "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": "bbox에 대한 XYZ 래스터 타일을 가져와 모자이크하고 Deflate RGB COG로 기록합니다.",
            "params": {
              "url": {
                "label": "URL",
                "description": "XYZ 타일 URL 템플릿, 예: https://.../{z}/{x}/{y}.png."
              },
              "zoom": {
                "label": "줌",
                "description": "XYZ 줌 레벨."
              },
              "bbox": {
                "label": "BBox",
                "description": "bbox_crs 기준 minX,minY,maxX,maxY 형태의 경계 상자."
              },
              "bbox_crs": {
                "label": "BBox CRS",
                "description": "bbox 좌표의 EPSG 코드."
              },
              "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를 0으로 변환",
          "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 to Raster",
          "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-무한 흐름 누적",
          "dinf_mass_flux": "D-무한 질량 유동",
          "dinf_pointer": "D-무한 포인터",
          "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-무한 흐름 누적",
          "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": "LiDAR 카파",
          "lidar_point_density": "LiDAR 포인트 밀도",
          "lidar_point_return_analysis": "LiDAR 포인트 반사 분석",
          "lidar_point_stats": "LiDAR 포인트 통계",
          "lidar_ransac_planes": "LiDAR RANSAC 평면",
          "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": "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": "LiDAR 벡터 TIN 구축",
          "lidar_contour": "LiDAR 등고선",
          "lidar_digital_surface_model": "LiDAR 수치표면모델",
          "lidar_hex_bin": "LiDAR 육각 비닝",
          "lidar_hillshade": "LiDAR 음영기복",
          "lidar_idw_interpolation": "LiDAR IDW 보간",
          "lidar_nearest_neighbour_gridding": "LiDAR 최근접 이웃 격자화",
          "lidar_radial_basis_function_interpolation": "LiDAR 방사 기저 함수 보간",
          "lidar_sibson_interpolation": "LiDAR Sibson 보간",
          "lidar_thin": "LiDAR 희소화",
          "lidar_thin_high_density": "LiDAR 고밀도 희소화",
          "lidar_tile_footprint": "LiDAR 타일 풋프린트",
          "lidar_tin_gridding": "LiDAR TIN 격자화",
          "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 3D",
          "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": "가중 보로노이",
          "zonal_characterization": "구역 특성화",
          "zonal_fill": "구역 채우기",
          "zonal_geometry": "구역 지오메트리",
          "zonal_histogram": "구역 히스토그램",
          "abs": "절대값",
          "aggregate_raster": "래스터 집계",
          "anova": "분산 분석",
          "arccos": "아크코사인",
          "arcosh": "쌍곡 아크코사인",
          "arcsin": "아크사인",
          "arctan": "아크탄젠트",
          "arsinh": "쌍곡 아크사인",
          "artanh": "쌍곡 아크탄젠트",
          "atan2": "Atan2",
          "block_maximum": "블록 최대값",
          "block_minimum": "블록 최소값",
          "boundary_shape_complexity": "경계 형상 복잡도",
          "ceil": "올림",
          "centroid_raster": "래스터 중심점",
          "clip_raster_to_polygon": "래스터를 폴리곤으로 클립",
          "clump": "클럼프",
          "cos": "코사인",
          "cosh": "쌍곡 코사인",
          "create_plane": "평면 생성",
          "crispness_index": "선명도 지수",
          "cross_tabulation": "교차 집계",
          "cumulative_distribution": "누적 분포",
          "dbscan": "DBSCAN",
          "decrement": "감소",
          "edge_proportion": "가장자리 비율",
          "equal_to": "같음",
          "erase_polygon_from_raster": "래스터에서 폴리곤 지우기",
          "exp": "지수 함수",
          "exp2": "2의 거듭제곱",
          "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": "카파 지수",
          "ks_normality_test": "KS 정규성 검정",
          "less_than": "미만",
          "less_than_or_equal_to": "작거나 같음",
          "list_unique_values_raster": "래스터 고유값 목록",
          "ln": "자연로그",
          "log10": "상용로그",
          "log2": "이진로그",
          "map_features": "피처 매핑",
          "max": "최대값",
          "min": "최소값",
          "modified_shepard_interpolation": "수정 Shepard 보간",
          "narrowness_index": "협소도 지수",
          "negate": "부호 반전",
          "nibble": "니블",
          "not_equal_to": "같지 않음",
          "ordinary_cokriging": "정규 코크리깅 보간",
          "paired_sample_t_test": "대응 표본 t 검정",
          "phi_coefficient": "파이 계수",
          "principal_component_analysis": "주성분 분석",
          "print_geotiff_tags": "GeoTIFF 태그 출력",
          "quantiles": "분위수",
          "radial_basis_function_interpolation": "방사 기저 함수 보간",
          "radius_of_gyration": "회전 반경",
          "random_field": "랜덤 필드",
          "random_forest_classification_fit": "랜덤 포레스트 분류 적합",
          "random_forest_classification_predict": "랜덤 포레스트 분류 예측",
          "random_forest_regression_fit": "랜덤 포레스트 회귀 적합",
          "random_forest_regression_predict": "랜덤 포레스트 회귀 예측",
          "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": "사인",
          "sinh": "쌍곡 사인",
          "sqrt": "제곱근",
          "square": "제곱",
          "tan": "탄젠트",
          "tanh": "쌍곡 탄젠트",
          "tin_interpolation": "TIN 보간",
          "to_degrees": "도 단위로 변환",
          "to_radians": "라디안으로 변환",
          "trend_surface": "추세면",
          "trend_surface_vector_points": "벡터 포인트 추세면",
          "truncate": "버림",
          "turning_bands_simulation": "회전 밴드 시뮬레이션",
          "two_sample_ks_test": "2표본 KS 검정",
          "wilcoxon_signed_rank_test": "Wilcoxon 부호 순위 검정",
          "z_scores": "Z 점수",
          "zonal_statistics": "구역 통계",
          "buffer_raster": "래스터 버퍼",
          "cost_allocation": "비용 배분",
          "cost_distance": "비용 거리",
          "cost_pathway": "비용 경로",
          "euclidean_allocation": "유클리드 배분",
          "euclidean_distance": "유클리드 거리",
          "image_correlation_neighbourhood_analysis": "영상 상관 근방 분석",
          "natural_neighbour_interpolation": "자연 이웃 보간",
          "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_lag_regression_raster": "공간 시차 회귀 (래스터)",
          "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": "퍼지 KNN 분류",
          "generalize_classified_raster": "분류 래스터 일반화",
          "generalize_with_similarity": "유사도 기반 일반화",
          "k_means_clustering": "K-평균 군집화",
          "knn_classification": "KNN 분류",
          "knn_regression": "KNN 회귀",
          "logistic_regression": "로지스틱 회귀",
          "min_dist_classification": "최소 거리 분류",
          "modified_k_means_clustering": "수정 K-평균 군집화",
          "nnd_classification": "NND 분류",
          "otsu_thresholding": "Otsu 임계값 처리",
          "parallelepiped_classification": "평행육면체 분류",
          "random_forest_classification": "랜덤 포레스트 분류",
          "random_forest_regression": "랜덤 포레스트 회귀",
          "svm_classification": "SVM 분류",
          "svm_regression": "SVM 회귀",
          "canny_edge_detection": "Canny 경계 탐지",
          "corner_detection": "코너 탐지",
          "laplacian_filter": "라플라시안 필터",
          "laplacian_of_gaussians_filter": "가우시안 라플라시안 필터",
          "prewitt_filter": "Prewitt 필터",
          "roberts_cross_filter": "Roberts 교차 필터",
          "sobel_filter": "Sobel 필터",
          "balance_contrast_enhancement": "균형 대비 강조",
          "create_colour_composite": "컬러 합성 생성",
          "direct_decorrelation_stretch": "직접 비상관 스트레치",
          "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": "양방향 필터",
          "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": "고역 양방향 필터",
          "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": "비국소 평균 필터",
          "olympic_filter": "올림픽 필터",
          "opening": "열림 연산",
          "percentile_filter": "백분위수 필터",
          "range_filter": "범위 필터",
          "remove_spurs": "돌기 제거",
          "savitzky_golay_2d_filter": "Savitzky-Golay 2D 필터",
          "scharr_filter": "Scharr 필터",
          "standard_deviation_filter": "표준편차 필터",
          "thicken_raster_line": "래스터 선 두껍게",
          "tophat_transform": "탑햇 변환",
          "total_filter": "합계 필터",
          "unsharp_masking": "언샤프 마스킹",
          "user_defined_weights_filter": "사용자 정의 가중치 필터",
          "wiener_filter": "Wiener 필터",
          "build_object_hierarchy_multiscale": "다중 스케일 객체 계층 구축",
          "classify_objects_ensemble_pro": "앙상블 객체 분류 (Pro)",
          "classify_objects_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": "마커 기반 워터셰드 분할",
          "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": "감마 MAP 필터",
          "h_alpha_wisart_classification": "H-Alpha Wishart 분류",
          "kuan_filter": "Kuan 필터",
          "refined_lee_filter": "정제 Lee 필터",
          "wisart_iterative_clustering": "Wishart 반복 군집화",
          "yamaguchi_4component_decomposition": "Yamaguchi 4성분 분해",
          "continuum_removal": "연속체 제거",
          "linear_spectral_unmixing": "선형 분광 혼합 분해",
          "minimum_noise_fraction": "최소 잡음 비율",
          "spectral_angle_mapper": "분광 각도 매퍼",
          "spectral_library_matching": "분광 라이브러리 매칭",
          "land_surface_temperature_single_channel": "단일 채널 지표면 온도",
          "land_surface_temperature_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": "곡률도",
          "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": "지형 형태소",
          "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": "3D Z 조정",
          "adjust_stream_to_raster": "하천을 래스터에 맞게 조정",
          "aggregate_points": "포인트 집계",
          "aggregate_polygons": "폴리곤 집계",
          "align_features": "피처 정렬",
          "apportion_polygon": "폴리곤 배분",
          "areal_interpolation": "면적 보간",
          "assign_projection_vector": "벡터 투영 지정",
          "attribute_uncertainty": "속성 불확실성",
          "bivariate_spatial_association": "이변량 공간 연관성",
          "buffer_3d": "3D 버퍼",
          "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": "다이스",
          "difference_3d": "3D 차집합",
          "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": "3D 선을 따라 포인트 생성",
          "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": "3D 내부",
          "integrate": "통합",
          "interpolate_shape": "형상 보간",
          "intersect_3d": "3D 교차",
          "intersect_3d_line_with_surface": "3D 선과 표면 교차",
          "intersecting_layers_masks": "교차 레이어 마스크",
          "intervisibility": "상호 가시성",
          "is_closed_3d": "3D 닫힘 여부",
          "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": "3D 근접",
          "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": "Ripley's K",
          "rubbersheet_features": "피처 고무판 변환",
          "semivariogram_sensitivity": "세미베리오그램 민감도",
          "similarity_search": "유사도 검색",
          "simplify_3d_line": "3D 선 단순화",
          "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": "3D 합집합",
          "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": "경로 측정값 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": "보로노이 다이어그램",
          "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": "Ripley's K 함수",
          "ripleys_k_test": "Ripley's K 검정",
          "spatial_error_regression": "공간 오차 회귀",
          "spatial_lag_regression": "공간 시차 회귀"
        },
        "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": "형상 지표"
        }
      }
    }
  }
}
