56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
"""Configuration objects for GF-3 water extraction."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from pathlib import Path
|
|
|
|
|
|
@dataclass
|
|
class WaterExtractionConfig:
|
|
hh: Path
|
|
hv: Path
|
|
out_dir: Path
|
|
dem: Path | None = None
|
|
dltb_gdb: Path | None = None
|
|
dltb_cache_dir: Path | None = None
|
|
dltb_layer: str = "DLTB"
|
|
dltb_field: str = "DLMC"
|
|
dltb_mode: str = "soft"
|
|
dltb_max_features: int | None = None
|
|
water_vector: list[Path] = field(default_factory=list)
|
|
paddy_vector: list[Path] = field(default_factory=list)
|
|
river_buffer_meters: float = 120.0
|
|
paddy_buffer_meters: float = 0.0
|
|
threshold_method: str = "otsu"
|
|
score_percentile: float = 92.0
|
|
hv_percentile: float = 35.0
|
|
prior_score_percentile: float = 85.0
|
|
prior_hv_percentile: float = 45.0
|
|
paddy_score_percentile: float = 88.0
|
|
paddy_hv_percentile: float = 45.0
|
|
candidate_score_percentile: float = 90.0
|
|
candidate_hv_percentile: float = 50.0
|
|
slope_max: float = 8.0
|
|
close_pixels: int = 0
|
|
open_pixels: int = 0
|
|
paddy_close_pixels: int = 0
|
|
paddy_open_pixels: int = 0
|
|
candidate_close_pixels: int = 0
|
|
candidate_open_pixels: int = 0
|
|
cartographic_water: bool = False
|
|
cartographic_include_paddy: bool = False
|
|
cartographic_close_pixels: int = 3
|
|
cartographic_open_pixels: int = 0
|
|
cartographic_fill_hole_pixels: int = 4096
|
|
cartographic_min_component_pixels: int = 512
|
|
min_component_pixels: int = 128
|
|
fill_hole_pixels: int = 512
|
|
no_morphology: bool = False
|
|
out_vector_gpkg: Path | None = None
|
|
out_vector_shp_dir: Path | None = None
|
|
min_polygon_area_m2: float = 1000.0
|
|
simplify_meters: float = 0.0
|
|
smooth_meters: float = 0.0
|
|
min_hole_area_m2: float = 0.0
|