#1 Thu 28 February 2019 15:06
- OhCheat
- Participant actif
- Lieu: Toulouse
- Date d'inscription: 11 Apr 2014
- Messages: 58
QGIS: Jointure spatiale peu rigoureuse...
Bonjour,
Après quelques recherche je n'ai pas pu trouver de solutions au problème suivant :
Je souhaite réaliser une jointure spatiale pour qu'à chacun des points d'un fichier soit attribué le nom d'un secteur sur lequel il est situé. J'utilise donc la fonction "Joindre les attributs par localisation", et en ouvrant la table attributaire du la couche résultante, surprise, certains des points ont le mauvais secteur qui leur est attribué. La photo en PJ montre un extrait de points se trouvant tous de le même secteur, pourtant, l'un d'eux n'a pas le bon secteur qui lui a été attribué.
Ce point là n'est pas le seul concerné et je n'ai pas pu tous les vérifier mais sur plus de 60 000 points, le taux d'erreurs doit être non négligeable. Savez vous ce qui pourrait être la cause de cette erreur et comment la rectifier ?
Merci d'avance
Corentin
Hors ligne
#2 Thu 28 February 2019 15:42
- sylvain poupard
- Participant assidu
- Date d'inscription: 19 Mar 2009
- Messages: 362
Re: QGIS: Jointure spatiale peu rigoureuse...
Bonjour,
Je ne sais pas d'où vient votre problème (différence de projection?) mais vous pouvez utiliser le plugin reffunctions qui rend accessible depuis la calculatrice de champs la fonction geomwithin (ou geomintersect):
geomwithin(targetLayer,targetField)
Retrieve target field value when source feature is within target feature in target layer
exemple : geomwithin('communes', 'code_insee')
Bon courage
Hors ligne
#3 Thu 28 February 2019 16:55
- OhCheat
- Participant actif
- Lieu: Toulouse
- Date d'inscription: 11 Apr 2014
- Messages: 58
Re: QGIS: Jointure spatiale peu rigoureuse...
Merci pour la solution, dans l'aperçu du résultat sur le calculateur de champs, le résultat a l'air correct.
Le traitement tourne depuis une grosse demi-heure sur mon PC, le traitement est aussi long en temps normal ?
Hors ligne
#4 Fri 01 March 2019 08:26
Re: QGIS: Jointure spatiale peu rigoureuse...
Bonjour,
Quelques détail sur les données, la fonction et les paramètres que tu as utilisé permettrait peut-être de t'aider...
J'utilise couramment la fonction "Joindre les attributs par localisation" sans difficulté particulière.
Christophe Damour (SIGéal)
Hors ligne
#5 Fri 01 March 2019 08:37
- sylvain poupard
- Participant assidu
- Date d'inscription: 19 Mar 2009
- Messages: 362
Re: QGIS: Jointure spatiale peu rigoureuse...
Merci pour la solution, dans l'aperçu du résultat sur le calculateur de champs, le résultat a l'air correct.
Le traitement tourne depuis une grosse demi-heure sur mon PC, le traitement est aussi long en temps normal ?
Je ne l'ai jamais fait avec 60 000 données mais oui ça mets du temps, pour qqch de plus rapide je pense qu'il faut préférer postgre ou un équivalent.
Bon courage
Hors ligne
#6 Fri 01 March 2019 09:01
- OhCheat
- Participant actif
- Lieu: Toulouse
- Date d'inscription: 11 Apr 2014
- Messages: 58
Re: QGIS: Jointure spatiale peu rigoureuse...
Bonjour,
Quelques détail sur les données, la fonction et les paramètres que tu as utilisé permettrait peut-être de t'aider...
J'utilise couramment la fonction "Joindre les attributs par localisation" sans difficulté particulière.
Bonjour,
C'est aussi la première fois que je remarque des erreurs sur cette fonction, je l'ai essayé plusieurs fois en faisant attention aux paramètres, rien n'y fait (je précise que j'ai bien vérifié, aucun problème de projection).
Les données sont :
- des points d'élèves géolocalisés
- des polygones représentant les secteurs de collèges
Les paramètres sont les suivants :
- couche cible : mon fichier de points
- couche jointe : mes secteurs à attribuer aux points
- résumé de l'attribut : Prendre les attributs de la première entité localisée
- Pas de statistiques résumées.
- table jointe : Conserver tous les enregistrements (même ceux sans correspondance)
J'ai quand même trouvé la solution au problème grâce au plugin Reffunctions que m'a suggéré Sylvain, mais je suis tout de même curieux de savoir qu'est ce qui pourrait causer ce genre de problème.
Hors ligne
#7 Fri 01 March 2019 09:38
Re: QGIS: Jointure spatiale peu rigoureuse...
On parle bien du même outil (voir copie d'écran sous QGIS 3.6) ?
Dernière modification par SIGEAL (Fri 01 March 2019 09:38)
Christophe Damour (SIGéal)
Hors ligne
#8 Fri 01 March 2019 10:08
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS: Jointure spatiale peu rigoureuse...
Bonjour,
La photo en PJ montre un extrait de points se trouvant tous de le même secteur, pourtant, l'un d'eux n'a pas le bon secteur qui lui a été attribué.
Et pourtant quand on regarde les attributs de l'entité qui serait mal renseignée, 5ième colonne depuis la fin, on a la même info que ce que renvoie la jointure. Cohérent avec les autres entités. Coïncidence? Ou une sélection graphique qui a un peu débordé et chopé un intrus?
Merci pour la solution, dans l'aperçu du résultat sur le calculateur de champs, le résultat a l'air correct.
Je suis curieux de savoir comment vous arrivez à déduire cela? Par défaut, l'information affichée en bas correspond à l'application de votre expression sur la première entité de la couche donc le résultat est celui d'une SEULE entité, et confirme que l'expression est "certainement" juste mais pas que le résultat de traitement sera juste pour toutes les entités.
Le traitement tourne depuis une grosse demi-heure sur mon PC, le traitement est aussi long en temps normal ?
Je dirais, c'est pas étonnant. Il y a quelques semaines, j'évoquais ce plugin comme devant être plus mis en exergue sur le site de QGIS (d'ailleurs pour ceux qui ont des plugins à conseiller, c'est par là jusqu'à lundi) et un développeur de QGIS a expliqué que ce n'était pas désirable car justement tel que codé, il parcourait toute la couche pour vérifier les relations spatiales pour chaque entité, donc plutôt lent et desservirait le projet. Par contre, il suggère de compiler les usages de cette extension (ce que vous faites avec et que vous ne pouvez pas faire par défaut (ou simplement) avec QGIS tout seul) pour voir dans quelles conditions cela pourrait être ajouté à QGIS. Sylvain et autres?
En outre, l'aide de la fonction geomwithin indique un seuil max de 100 000 entités (d'accord vous êtes en dessous mais peut-être que 100 000 était déjà "exagéré"?).
Anyway, content que le résultat vous convienne.
Les paramètres sont les suivants :
- couche cible : mon fichier de points
- couche jointe : mes secteurs à attribuer aux points
- résumé de l'attribut : Prendre les attributs de la première entité localisée
- Pas de statistiques résumées.
- table jointe : Conserver tous les enregistrements (même ceux sans correspondance)
Euh vous utilisez quelle version de QGIS? Ceci ressemble à une interface 2.x, sauf erreur de ma part.
Dernière modification par SANTANNA (Fri 01 March 2019 10:16)
Hors ligne
#9 Fri 01 March 2019 10:56
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Jointure spatiale peu rigoureuse...
Ce serait top d'avoir un extrait anonymisé des données sur un secteur avec erreurs afin de pouvoir faire des tests , isoler le problème et remonter le bug si besoin.
Hors ligne
#10 Fri 01 March 2019 11:30
- OhCheat
- Participant actif
- Lieu: Toulouse
- Date d'inscription: 11 Apr 2014
- Messages: 58
Re: QGIS: Jointure spatiale peu rigoureuse...
Et pourtant quand on regarde les attributs de l'entité qui serait mal renseignée, 5ième colonne depuis la fin, on a la même info que ce que renvoie la jointure. Cohérent avec les autres entités. Coïncidence? Ou une sélection graphique qui a un peu débordé et chopé un intrus?
Oui c'est normal, c'est un sélection d'entités dans laquelle je savait qu'il y avait une erreur. La 5ème c'est le résultat de la jointure spatiale et la dernière c'est quand j'ai réessayé la jointure spatiale pour confirmer que le problème venait bien de ce traitement.
Je suis curieux de savoir comment vous arrivez à déduire cela? Par défaut, l'information affichée en bas correspond à l'application de votre expression sur la première entité de la couche donc le résultat est celui d'une SEULE entité, et confirme que l'expression est "certainement" juste mais pas que le résultat de traitement sera juste pour toutes les entités.
Je l'ai déduis car je sais que la première entité fait partie des entités contenant une erreur. Après avoir terminé le traitement avec l'extension refFonctions, c'est confirmé que cette fois les résultats sont exact.
Euh vous utilisez quelle version de QGIS? Ceci ressemble à une interface 2.x, sauf erreur de ma part.
C'est ça, c'est la version 2.18.1.
Ce serait top d'avoir un extrait anonymisé des données sur un secteur avec erreurs afin de pouvoir faire des tests , isoler le problème et remonter le bug si besoin.
Ca aurait été bien en effet, malheureusement je n'ai pas l'autorisation de faire sortir la donnée du service sous quelle forme que ce soit (on est sur de la donnée sensible impliquant des enfants).
Dernière modification par OhCheat (Fri 01 March 2019 11:34)
Hors ligne
#11 Fri 01 March 2019 11:50
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS: Jointure spatiale peu rigoureuse...
OK Pour l'explication. Juste pour savoir, les points déconnants, ils seraient aussi dans le rectangle englobant de l'entité retournée par la jointure par localisation? Ou le résultat était vraiment aberrant?
dominique.lys a écrit:Ce serait top d'avoir un extrait anonymisé des données sur un secteur avec erreurs afin de pouvoir faire des tests , isoler le problème et remonter le bug si besoin.
Ca aurait été bien en effet, malheureusement je n'ai pas l'autorisation de faire sortir la donnée du service sous quelle forme que ce soit (on est sur de la donnée sensible impliquant des enfants).
En fait, sauf à avoir obtenu les mêmes erreurs avec une version >=3.4, ça ne changerait pas grand chose en soi vu que les précédentes versions ne sont plus maintenues.
Hors ligne
#12 Fri 01 March 2019 12:02
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: Jointure spatiale peu rigoureuse...
Du coup avez-vous la possibilité de faire une test sur une version 3.4 ?
Hors ligne
#13 Fri 01 March 2019 12:29
- OhCheat
- Participant actif
- Lieu: Toulouse
- Date d'inscription: 11 Apr 2014
- Messages: 58
Re: QGIS: Jointure spatiale peu rigoureuse...
Juste pour savoir, les points déconnants, ils seraient aussi dans le rectangle englobant de l'entité retournée par la jointure par localisation? Ou le résultat était vraiment aberrant?
Oui le résultat est aberrant, certains point plus près de Blagnac sont bien localisés et celui-là est le seul attribué à Blagnac alors qu'il ne le devrait pas. On parle de quelques points sur plus de 63 000 entités donc la marge d'erreur est très faible mais je n'ai vraiment pas le temps de les contrôler tous, peut être y en a t-il plus.
Je ne peut d'ailleurs pas essayer sur la 3.4, on est en train de migrer vers une version plus récente mais je n'ai pas les droits administrateurs pour l'installer indépendamment pour le moment.
Hors ligne
#14 Fri 01 March 2019 14:25
- trovez
- Participant occasionnel
- Lieu: Nantes
- Date d'inscription: 17 Sep 2007
- Messages: 24
Re: QGIS: Jointure spatiale peu rigoureuse...
Une idée parmi d'autres :
Est-ce que vous avez un index spatial qui aurait pu être détérioré ...
Quels sont les formats des tables : shape, mapinfo, postgis...?
Hors ligne