Skip to content

[v1.6.0] DSL geom fcts T1 : geom_area_m2 / geom_perimeter_m / geom_length_m #116

@imagodata

Description

@imagodata

Parent epic : #104

Objectif

Exposer 3 fonctions géométriques pures dans le DSL set_field, exécutées via DuckDB en push-down, sans run_sql.

Scope

Whitelist :

  • geom_area_m2()ST_Area(ST_Transform(geom, 'EPSG:source', 'EPSG:lambert_local'))
  • geom_perimeter_m()ST_Perimeter(...) projeté
  • geom_length_m()ST_Length(...) projeté (pour lignes)

CRS handling :

  • Auto-pick projection métrique locale (Lambert 93 si en France, sinon Web Mercator)
  • Override geom_area_m2(epsg='EPSG:2154') possible

Parsing :

  • Entrée DSL : set_field: surface = geom_area_m2() ou set_field: surface_ha = geom_area_m2() / 10000
  • Output → SQL DuckDB compilé + write-back via adapter natif

Acceptance criteria

  • 3 fcts disponibles dans le parser DSL
  • Tests précision sur communes IGN (vs valeur officielle ±0.5%)
  • Tests CI : SET_FIELD surface_ha = geom_area_m2() / 10000 sur GPKG 100 features

Estimation

M (3j)

Metadata

Metadata

Assignees

No one assigned

    Labels

    cliCommand-line interfaceenhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions