feat: embed gf3 water extraction workflow
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
"""Small geospatial math helpers for lon/lat products."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import math
|
||||
|
||||
|
||||
def meters_to_degrees(meters: float, lat: float) -> tuple[float, float]:
|
||||
deg_lat = meters / 111_320.0
|
||||
deg_lon = meters / max(111_320.0 * math.cos(math.radians(lat)), 1.0)
|
||||
return deg_lon, deg_lat
|
||||
|
||||
|
||||
def pixel_area_m2(info) -> float:
|
||||
center_lat = info.y0 - info.lines * info.dy * 0.5
|
||||
meters_per_deg_lat = 111_320.0
|
||||
meters_per_deg_lon = 111_320.0 * math.cos(math.radians(center_lat))
|
||||
return abs(info.dx * meters_per_deg_lon * info.dy * meters_per_deg_lat)
|
||||
|
||||
|
||||
def polygon_area_m2(geom, center_lat: float) -> float:
|
||||
meters_per_deg_lat = 111_320.0
|
||||
meters_per_deg_lon = 111_320.0 * math.cos(math.radians(center_lat))
|
||||
return float(abs(geom.area) * meters_per_deg_lon * meters_per_deg_lat)
|
||||
|
||||
Reference in New Issue
Block a user