Aller au contenu principal

Calculer la géométrie et les champs

Le calcul de champs sert à générer ou mettre à jour des valeurs par lots dans la table attributaire.

  • Calculer des attributs géométriques : coordonnées, longueur, surface, périmètre et autres valeurs.
  • Calculer des indicateurs métier : dériver des champs depuis des champs existants avec des expressions.

Calcul de champs

  1. Ouvrez la table attributaire de la couche cible.
  2. Dans Tools, choisissez Calculate geometry ou Calculate Fields.

Pour les opérations de base, voir Édition des tables attributaires vectorielles.

Calculate Geometry

Calculate geometry écrit des informations géométriques dans des champs : X/Y pour points, longueur pour lignes, surface et périmètre pour polygones.

POINT

Geometry attributeAutomatically added fieldsField description
POINT_X_Y_Z_MPOINT_X
POINT_Y
POINT_Z
POINT_M
Coordonnées x/y/z/m du point.

MULTIPOINT

Geometry attributeAutomatically added fieldsField description
CENTROIDCENTROID_X
CENTROID_Y
CENTROID_Z
CENTROID_M
Coordonnées du centroïde.
EXTENTEXT_MIN_X
EXT_MIN_Y
EXT_MAX_X
EXT_MAX_Y
Valeurs min/max x/y du rectangle englobant.
PART_COUNTPART_COUNTNombre de parties.

POLYLINE / MULTIPOLYLINE

Geometry attributeAutomatically added fieldsField description
LENGTHLENGTHLongueur de la ligne.
LENGTH_GEODESICLENGTH_GEOLongueur géodésique.
LINE_START_MID_ENDSTART_X
START_Y
MID_X
MID_Y
END_X
END_Y
Coordonnées du début, milieu et fin.
CENTROIDCENTROID_X
CENTROID_Y
Coordonnées du centroïde.
PART_COUNTPART_COUNTNombre de parties.
POINT_COUNTPNT_COUNTNombre de points.
LINE_BEARINGBEARINGAzimut début-fin, de 0 à 360.
EXTENTEXT_MIN_X
EXT_MIN_Y
EXT_MAX_X
EXT_MAX_Y
Rectangle englobant.

POLYGON / MULTIPOLYGON

Geometry attributeAutomatically added fieldsField description
AREAPOLY_AREASurface du polygone.
AREA_GEODESICAREA_GEOSurface géodésique.
PERIMETER_LENGTHPERIMETERPérimètre ou longueur de limite.
PERIMETER_LENGTH_GEODESICPERIM_GEOPérimètre géodésique.
CENTROIDCENTROID_X
CENTROID_Y
Coordonnées du centroïde.
PART_COUNTPART_COUNTNombre de parties.
POINT_COUNTPNT_COUNTNombre de points.
EXTENTEXT_MIN_X
EXT_MIN_Y
EXT_MAX_X
EXT_MAX_Y
Rectangle englobant.
astuce

Les valeurs géodésiques comme LENGTH_GEO, AREA_GEO et PERIM_GEO sont calculées par méthode géodésique. Les unités suivent le réglage de l'interface.

Système de coordonnées et unités

  • Un système projeté utilise généralement des mètres et convient mieux aux longueurs et surfaces.
  • Un système géographique utilise des degrés; les calculs planaires directs ne correspondent souvent pas aux attentes métier.
  • Pour des résultats en mètres ou mètres carrés, privilégiez un système projeté ou un calcul géodésique.

Recommandations

  1. Ajoutez d'abord un champ, par exemple len_m ou area_m2.
  2. Validez sur un petit ensemble avant toute la table.
  3. Attention aux entités multiparties, qui produisent souvent une seule valeur pour toute la géométrie.

Calculate Fields

Calculate Fields affecte des valeurs par lots avec des expressions mathématiques, logiques et des fonctions.

Rédaction de formules avec AI

AI peut générer un brouillon depuis une demande en langage naturel. Indiquez clairement le champ cible, les champs utilisés, les seuils et le traitement des valeurs nulles.

Add a density field. Calculate population density by dividing Population by AREA. If the area is 0 or the population is null, output nan.
density = where(logical_or(isnan(Population), AREA == 0), nan, Population / AREA)
Add a risk_level field. Set it to 'High' when slope is greater than 25 and rain is greater than 100. Set it to 'Medium' when slope is greater than 15 or rain is greater than 60. Otherwise, set it to 'Low'.
high_risk = logical_and(slope > 25, rain > 100)
mid_risk = logical_or(slope > 15, rain > 60)
risk_level = where(high_risk, 'High', where(mid_risk, 'Medium', 'Low'))

Points à vérifier avec AI

  • Correspondance exacte des noms de champs.
  • Conditions de limite et signes d'égalité.
  • Conventions de nommage des champs de sortie.
  • Cohérence des valeurs géométriques avec le type de couche et le système de coordonnées.
  • Gestion des valeurs nulles.

Conseils d'expression

  • Les champs peuvent généralement être référencés par leur nom.
  • L'affectation conditionnelle utilise souvent where(condition, x, y).
  • Les opérations logiques par entité utilisent &, | et ~ avec parenthèses.
  • Les affectations multi-lignes peuvent utiliser des variables intermédiaires si l'interface le permet.
Density = Population / AREA
Level = where(Value >= 80, 'A', where(Value >= 60, 'B', 'C'))
Flag = where((Type == 'main') & (Value > 0), 1, 0)
attention

Les fonctions et mots-clés peuvent varier légèrement selon les versions. Pour AREA, LENGTH ou les valeurs géodésiques, utilisez la documentation du Geoprocessing Toolbox et la liste de fonctions de l'interface comme référence finale.

Relation avec Vector Calculator

Pour des expressions complexes, voir Calculate Fields (Vector Calculator). Pour générer une formule en langage naturel, voir Writing Raster Calculator and Field Calculator Formulas with AI.

FAQ

Les résultats ne sont pas ceux attendus

  • Vérifiez d'abord le système de coordonnées.
  • Vérifiez les unités de longueur ou surface, comme m, km, m2 ou km2.
  • Vérifiez le type de champ; un entier peut tronquer les décimales.

Le calcul est lent

  • Filtrez d'abord les enregistrements.
  • Privilégiez les calculs de longueur et surface en système projeté pour éviter des calculs géodésiques inutiles.