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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 08 April 2022 15:17

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

QGIS: rattachement point centroide

Bonjour,

J'aurais besoin d'aide par rapport au problème suivant que je rencontre actuellement :

J'ai un vieux fichier point_repartition qui contient des points de répartition des individus d'une espèce. Seulement, certains de ces points ont une précision ponctuelle (champ precision = ponctuelle) tandis que d'autres correspondent à un ensemble de données (c'est-à-dire à un plus ou moins grand nombre d'individus de l'espèce) acquis à l'échelle communale (ou éventuellement du lieu-dit mais je me dis que dans ce cas-là je considérerai les coordonnées ponctuelles également). Comme cette couche est assez vieille, il y a pas mal d'erreurs de localisation de points pour les données acquises à l'échelle communale, dont les points devraient donc se situer sur les centroïdes de leur commune.

Mon objectif serait de produire une requête SQL qui calcule le centroïde des communes actuelles de France métropolitaine, et qui rattache chaque ligne de point_repartition correspondant à de la donnée acquise à l'échelle communale, au centroïde de la commune correspondante. Pour résumer, il faudrait que, pour une ligne donnée du fichier point_repartition, lorsqu'on a le champ precision = commune, alors la requête remplace les coordonnées x et y (les champs x et y existent déjà dans point_repartition) par les coordonnées du centroïde de la commune, et donc que le point initial change de place pour correspondre à ce centroïde.

Pour cela, j'ai commencé par télécharger la couche des communes de France de Admin Express. Ensuite, j'ai réussi à trouver, à l'aide de forums et via internet de manière plus globale, la manière dont calculer le centroïde de toutes ces communes en ayant le point qui tombe forcément dans la commune : via st_PointOnSurface.
Mon problème, c'est que je ne vois pas comment :
- 1 : rattacher les coordonnées de ces points de centroïdes de commune que j'ai calculés aux données de mon fichier point_repartition qui ont été acquises à l'échelle communale
- 2 : modifier l'emplacement des points pour lesquels il y avait une erreur de position (le centroïde avait été mal calculé, ou le centroïde n'est plus bon car actuellement l'ancienne commune correspond à deux nouvelles, ect.)
- 3 : faire tout ceci dans la même requête SQL

Quelqu'un aurait-il une solution à me proposer svp ?

N'hésitez pas à me dire si je n'ai pas été assez claire ou s'il vous manque des informations pour m'apporter de l'aide !

Merci d'avance !

Hors ligne

 

#2 Mon 25 April 2022 08:27

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 726

Re: QGIS: rattachement point centroide

Bonjour,
Votre couche possède un code INSEE ou vous ne disposez que de l'information géographique pour faire la jointure ?

Hors ligne

 

#3 Wed 27 April 2022 11:20

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

Re: QGIS: rattachement point centroide

Bonjour,

Merci de reprendre ce sujet, je commençais à désespérer que quelqu'un me vienne en aide;). Je dispose du code INSEE dans ma vieille couche point_repartition, et également dans la couche de AdminExpress que j'ai téléchargée. Cependant, je ne suis pas certaine que les codes INSEE soient tous correctes étant donné que ma couche contient des vieilles communes qui n'existent plus aujourd'hui.

Hors ligne

 

#4 Wed 27 April 2022 14:50

Robin.k
Participant occasionnel
Date d'inscription: 15 Mar 2022
Messages: 45

Re: QGIS: rattachement point centroide

Bonjour,

Pour obtenir le nouveau code INSEE dans votre vieille couche, vous pouvez utiliser une couche des communes avec leur code insee, et dans votre vieille couche taper la fonction : array_to_string(overlay_within('communes',insee )) cette fonction va vous chercher les valeurs dans la colonne "insee" de la couche "communes".

Vous aurez donc le bon insee dans votre vieille couche et pourrez donc réaliser la jointure.

Sinon j'ai pas tout compris mais à la fin vous souhaitez avoir plusieurs points superposés au centroide de la commune avec vos données de répartition ou toutes les infos contenues dans un même point qui est le centroide de la commune ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB