#1 Tue 12 July 2022 22:01
- bapteis
- Juste Inscrit !
- Date d'inscription: 12 Jul 2022
- Messages: 4
QGIS: Attribuer N points a des polygones (Carte France)
Bonjour,
J'essaie depuis plusieurs semaines de "territorialiser" des points sur une carte de la France, je m'explique :
Objectif : Avoir une carte de la France par canton ou département avec le nombre de jours anormalement chauds (comme en page 194 ici : https://www.ecologie.gouv.fr/sites/defa … CC_WEB.pdf)
Je commence par télécharger une liste de points sur drias-climat.fr/qui indique l'écart à la normale Ecart de nombre de jours anormalement chauds (jour(s)) ainsi que la Latitude;Longitude; dans un fichier texte (WGS 84)
je l'importe comme fichier texte délimité (pas de soucis), comme suivant[img]https://i.ibb.co/KLbVTRZ/capture-tete-d-limit.png[/img] , me voila avec une vague de points en forme de France.
J'apporte ensuite un fond de la carte de la France au format .shp, SCR : Lambert 93. La superposition avec la couche précédente "colle" bien. Le niveau de la maille de cette carte étant trop fin (certaines zones n'ont pas de "points chaleurs") je regroupe par cantons ma carte de la France.
Et depuis c moment, impossible de joindre par localisation (résumé) la moyenne(ou le max) des valeurs des points de ma couche anormalement chauds ... ou en passant par joindre par localisation (non résumé) comme ceci
Les tests que j'ai pu réaliser :
- joindre par localisation avec ma Carte France avant regroupement ( prend du temps à calculer, fonctionne assez bien mais il y a des polygones sans graduations car pas de points "chaleurs" associés)
- joindre par localisation en intersec OU / contient / ou à l'intérieur et avec plusieurs types de jointures (chevauchement, premier élément, plusieurs éléments distincts) comme ici https://ibb.co/tqgjKt1
-joindre par localisation plus proche (en ajoutant la colonne ATnx à ma carte France_regroupé par canton)
- joindre par localisation (résumé) avec médian ou moyenne ou max (ibid qu'au dessus pour les entités)
-passer par un champ virtuel et la commande overlay_nearest ou overleay_intersec comme suivant " array_to_string(( overlay_nearest('indicesALADIN63_CNRM-CM5_vagues chaleur RCP4.5 H1',ATX35))) " (la gradation en sortie est trop faible)
et les conclusions que j'en tire :
- Pas besoin de faire une reprojection de WGS 84 vers Lambert 93 ou vice versa pour utiliser la jonction par localisation
- utiliser l'intersec pour les prédicats géométriques
- utiliser le champ virtuel avec un overleay_intersec et combiner avec un max pour n'avoir qu'un seul 1 (avec la valeur la plus élevé) pour gradué le polygone
Je suis assez novice sur QGIS et j'essaie par tâtonnements, mais je suis tombé sur trop compliqué pour moi. J'aurais souhaité avoir vos conseils pour surmonter cet obstacle.
Merci pour votre temps, n'hésitez pas à me demander plus de conseils ou de capture d'écrans pour que je puisse éclairer mon propos
Baptiste
Hors ligne
#2 Wed 13 July 2022 11:28
- Joseph Jacquet
- Participant actif
- Date d'inscription: 19 Feb 2020
- Messages: 92
Re: QGIS: Attribuer N points a des polygones (Carte France)
Bonjour,
Quels attributs sont présents dans la couche csv ? N'est-il pas possible de faire une jointure autrement que par localisation ?
Avez-vous essayer de sauvegarder votre couche csv vers un autre format (shape, geojson...) et de refaire la manipulation de jointure par localisation avec ce nouveau fichier ?
JJ
Hors ligne
#3 Wed 13 July 2022 11:37
- bapteis
- Juste Inscrit !
- Date d'inscription: 12 Jul 2022
- Messages: 4
Re: QGIS: Attribuer N points a des polygones (Carte France)
Bonjour,
Merci pour votre retour, le fichier CSV contient les colonnes suivantes :
Point;Latitude;Longitude;Contexte;Période;ATXAV;ATX35;ATXND;ATNHT;ATXHWD;ATXQ90;
Un exemple d'une ligne : 282;41.4087;9.1577;RCP4.5;H1;1.06;4.67;17;22;6;1.37;
Les indicateurs après "Période" correspondent à des indicateurs en lien avec la température.
En sauvegardant en shape, les résultats sont les mêmes (j'ai une carte incohérente de polygones qui ne correspond pas à ma couche de points, malgré une graduation avec les mêmes classes)
Je ne vois pas quels autres informations utiliser autre que la localisation ... (contexte étant le scénario climatique, ici RCP 4.5)
Hors ligne
#4 Mon 18 July 2022 13:44
- ondeos
- Participant occasionnel
- Date d'inscription: 31 Mar 2011
- Messages: 28
Re: QGIS: Attribuer N points a des polygones (Carte France)
Bonjour
Peux tu utiliser l’extension NNjoin pour effectuer la même chose avec je l’espère un résultat qui te conviendra.
Hors ligne
#5 Wed 20 July 2022 18:36
- bapteis
- Juste Inscrit !
- Date d'inscription: 12 Jul 2022
- Messages: 4
Re: QGIS: Attribuer N points a des polygones (Carte France)
Bonjour,
J'ai essayé ce module avec les différentes options et impossible d'avoir un résultat cohérent. J'ai l'impression qu'ils prennent des valeurs incohérentes, en prenant une valeur au hasard ...
Je vais essayer sinon en faisant des calculs via excel et les données des centroides et des lat et longitutde de mes points en prenant le plus proche à chaque fois.
Si vous avez d'autres idées, je suis preneur
Hors ligne
#6 Thu 21 July 2022 09:28
- Joseph Jacquet
- Participant actif
- Date d'inscription: 19 Feb 2020
- Messages: 92
Re: QGIS: Attribuer N points a des polygones (Carte France)
Bonjour,
Avez-vous essayé de remplacer le point par une virgule dans votre champ ? Calculatrice de champ -> sélection du champ pour la modification dans la liste : replace("champs", '.',',')
Lors du passage en shape, quel est le type du champ ? Je ne crois pas que le csv est un "type" de champ, je ne veux pas m'avancer... mais peut-être que le fait qu'il y est un point a transformé le champ en chaine de caractère ce qui rend les calculs plus compliqués..
JJ
Dernière modification par Joseph Jacquet (Thu 21 July 2022 09:29)
Hors ligne
#7 Thu 21 July 2022 15:37
- bapteis
- Juste Inscrit !
- Date d'inscription: 12 Jul 2022
- Messages: 4
Re: QGIS: Attribuer N points a des polygones (Carte France)
J'ai finalement réussi à résoudre le problème. J'ai utilisé un fond de carte des EPCI déjà fait et fourni par GeoServices du nom de ADMIN-EXPRESS édition Juin 2022 par territoire disponible ici https://geoservices.ign.fr/adminexpress. Mon erreur à du provenir du regroupement que j'ai fait en premier lieu qui n'était pas une bonne façon de faire (peut-être cela combinait les attributs de positions de façon que je ne pouvais plus les exploiter comme j'en avais besoin)
Merci pour votre aide en tout cas, la jonction par localisation marche très bien. J'utilise comme type de jointure "Créer une entité distincte pour chaque entité correspondante (un à plusieurs)" qui donne un résultat plus cohérent avec plus de points que de polygones.
Bonne journée à vous, Baptiste
Hors ligne