Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 19 January 2022 10:38

Kiecane
Participant actif
Date d'inscription: 31 Oct 2021
Messages: 91

somme jointure spatiale

Bonjour,

Je travaille sur ArcGIS et je rencontre le problème suivant :

Je dispose de deux couches, l'une qui correspond à la BD haie de l'IGN et l'autre qui correspond à un maillage hexagonal de 100 m d'espacement que j'ai créé. Je cherche à calculer le linéaire de haies (=la longueur) présent dans chaque maille. Pour cela j'ai commencé par intersecter ma couche de haies avec mon maillage. Puis, j'ai recalculé la longueur de mes haies. Par la suite, j'ai réalisé une jointure spatiale, en utilisant l'option Join_one_to_many et intersect. Le problème, c'est dans la table attributaire de la jointure créée, je n'ai pas la somme du linéaire de haies présentes dans une maille, mais la valeur maximale de longueur de haie observable dans cette maille. Quelqu'un pourrait m'indiquer comment modifier cela ?

Merci d'avance pour votre aide

Hors ligne

 

#2 Wed 19 January 2022 11:07

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

Re: somme jointure spatiale

[edit]
Fausse manip, j'ai supprimé par erreur ma réponse précédente et je ne peux plus la retrouver à priori ! hmm

Dernière modification par Sylvain M. (Thu 20 January 2022 11:07)


Sylvain M.

Hors ligne

 

#3 Thu 20 January 2022 15:00

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

Re: somme jointure spatiale

Voici à peu près ce que je conseillais dans mon message d'hier :

Pour gérer les statistiques des champs joints, il faut gérer le "field_mapping" (appariement des champs), comme indiqué sur l'aide :
https://desktop.arcgis.com/fr/arcmap/10 … l-join.htm
Qui renvoi notamment vers :
https://desktop.arcgis.com/fr/arcmap/10 … ontrol.htm

Mais pour ce qui concerne votre besoin, ce travail est beaucoup plus simple en SQL, si vous avez accès à un moteur SQL (ArcSDE, PostGreSQL, Spatialite, ou même les "couches virtuelles" dans QGis)

Voici la requête en supposant que vous avez :
- une couche "mailles" avec un identifiant (id)
- une couche "haies_inter_mailles" avec l'id des mailles (id_maille), et un champ "longueur"

Code:

SELECT    m.id,
        sum(h.longueur) as lineaire_haies
FROM    mailles m
JOIN    haies_inter_mailles h ON (m.id = h.id_maille)
GROUP BY m.id

Dernière modification par Sylvain M. (Thu 20 January 2022 15:06)


Sylvain M.

Hors ligne

 

#4 Thu 20 January 2022 15:13

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

Re: somme jointure spatiale

La même chose, mais en SQL spatial (ce qui évite d'avoir à faire l'intersection en préalable) :

Code:

SELECT    m.id,
        sum(length(st_intersection(m.geom, h.geom))) as lineaire_haies,
        m.geom
FROM    mailles m
JOIN    haies h ON ST_Intersects(m.geom, h.geom)
GROUP BY m.id, m.geom

Sylvain M.

Hors ligne

 

Pied de page des forums

Powered by FluxBB