IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

OpenLayers+Carte de chaleur : je ne comprends pas comment sont interprétés les données


Sujet :

IGN API Géoportail

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 879
    Points : 373
    Points
    373
    Par défaut OpenLayers+Carte de chaleur : je ne comprends pas comment sont interprétés les données
    Salut à tous
    Un nouveau sujet sur les cartes de chaleurs.
    Le fichier https://visiolittoral.fr/heatmap.kml est utilisé dans la carte https://visiolittoral.fr/IGN_TEST_HEATMAPS.php,
    Conformément aux instructions, les valeurs à cartographiés sont comprises entre 1 et 0. Ainsi pour arriver à cette fourchette, j'utilise une échelle logarithmique nivelant les valeurs à cartographier de 0.99 (correspond au nombre 68323) à 0 (correspond au nombre 1).
    Ok pour tout le monde ?
    Donc quand on affiche la carte, on arrive à cela, ce qui me semble cohérent au vu de ma connaissance du comptage effectué !
    Nom : F1.jpg
Affichages : 142
Taille : 280,8 Ko
    Là où je ne comprends plus, c'est si on fait un zoom, en particulier sur la ville de Moëze en Charente-Maritime. Pourquoi Moëze ? Parce que pour les coordonnées -1.037683,45.906238 correspond une valeur de 0.97 (Nombre=49876).
    Dans le cas présent, la carte zoomée donne ceci
    Nom : F2.jpg
Affichages : 144
Taille : 107,1 Ko
    Pourquoi la zone à l'indice 97 n'est-elle pas en Rouge ?

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 879
    Points : 373
    Points
    373
    Par défaut
    Salut à tous
    Le passage au fichiers geojson et lieu et place des KML a trois conséquences :
    - Traitement 5 fois plus rapide.
    - Moëze apparait en rouge (bug avec les KML ?)
    - On accède facilement aux autres propriétés des placemarks (voir clic sur la carte).
    Nom : F3.jpg
Affichages : 110
Taille : 62,2 Ko
    Ceci dit, si qqu sait comment sont interprétés les nombres pour la représentation des patates, je suis preneur

  3. #3
    Membre actif Avatar de azarzelli
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2020
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Septembre 2020
    Messages : 137
    Points : 270
    Points
    270
    Par défaut
    Bonjour,

    Pour l'interprétation des nombres, voici comment les heatmaps sont générées :
    - On récupère chaque point de la couche d'origine
    - On applique un buffer fixe à chacun de ces points
    - Pour chaque pixel affiché à l'écran, on compte le nombre de buffers qui l'intersectent.
    - On récupère la valeur maximale, on normalise ensuite chaque pixel à une valeur entre 0 et 1
    - Un gradient de couleurs est défini, et chaque valeur entre 0 et 1 est associée à une couleur de ce gradient.

    De plus, un flou est appliqué aux buffers pour des raisons esthétiques

    Ce fonctionnement est assez visible lorsqu'on a un rayon de flou minimal et un grand rayon de buffer :
    Nom : Capture d’écran de 2022-09-05 14-04-36.png
Affichages : 114
Taille : 76,8 Ko

    Cordialement,

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 879
    Points : 373
    Points
    373
    Par défaut
    OK je comprends.
    Maintenant, dans ton exemple, admettons qu'un point corresponde à 1000 observations et que les autres à 1 seule chacun, comment mettre en évidence ces 1000 observations.
    Si j'ai bien compris le code d'emploi de Openlayers Heatmap, le weigth attribué à 1000 doit être 1 les autres 0.

  5. #5
    Membre actif Avatar de azarzelli
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2020
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Septembre 2020
    Messages : 137
    Points : 270
    Points
    270
    Par défaut
    Ce que je ferais à ta place, c'est déterminer une échelle normalisée entre 1 observation et le max d'observation, c'est à dire que le weight va être calculé avec la formule : nb_observation_point / max_observation

    Cordialement,

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 879
    Points : 373
    Points
    373
    Par défaut
    C'est ce que je fais mais le ratio n'est pas compris entre 1 et 0 comme demandé.
    Pour y arriver (en PHP, c'est ainsi que sont créés mes fichiers geojson à partir de MySQL)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $MAXI=0;
    while ($row_HeatMap = mysqli_fetch_assoc($RecordHeatMap)) {
    if ($MAXI==0)
                {
                    $MAXI=$row_HeatMap["SUMNBINV"];
                     $iLogMaxi=log($MAXI);
                }
     
                $LogVal=log($row_HeatMap["SUMNBINV"]);
    	    $iLog=intval($LogVal*100/$iLogMaxi)/100;
     
                $WEIGHT=number_format($iLog,10,'.',''); 
    }

    J'obtiens ainsi des Weight allant de 0.99 à 0

    Suis-je obligé de transformer les valeurs pour quelles entrent entre 1 et 0 ?

Discussions similaires

  1. OpenLayers+Carte de chaleur : les patatoïdes sont-ils cliquables ?
    Par saxrub dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 01/09/2022, 16h09
  2. OpenLayers+Carte de chaleur : la couche ne s'affiche pas !
    Par saxrub dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 18/08/2022, 13h11
  3. [MySQL] cron ne comprend pas comment faire
    Par schats dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/06/2007, 17h42
  4. Réponses: 3
    Dernier message: 13/06/2007, 18h47
  5. [MySQL] Php, je ne comprends pas comment faire pour introduire des données dans une table
    Par Liondd dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 14/12/2006, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo