24.1.4. Interpolation

24.1.4.1. Carte de chaleur (estimation par noyau)

Crée un raster de densité (heatmap) d’une couche vectorielle de points d’entrée à l’aide de l’estimation de la densité du noyau.

La densité est calculée en fonction du nombre de points dans un emplacement, avec un plus grand nombre de points groupés résultant en des valeurs plus grandes. Les cartes thermiques permettent d’identifier facilement les points chauds et de regrouper les points.

Paramètres

Libellé

Nom

Type

Description

Couche de points

INPUT

[vector: point]

Couche vectorielle ponctuelle à utiliser pour la carte thermique

Rayon

RADIUS

[number]

Par défaut : 100.0

Rayon de recherche de la carte thermique (ou bande passante du noyau) en unités de carte. Le rayon spécifie la distance autour d’un point auquel l’influence de ce point sera ressentie. Des valeurs plus élevées entraînent un plus grand lissage, mais des valeurs plus petites peuvent montrer des détails plus fins et une variation de la densité de points.

Taille du raster en sortie

PIXEL_SIZE

[number]

Par défaut : 0.1

Taille de pixel de la couche raster en sortie en unités de couche.

Dans l’interface graphique, la taille peut être spécifiée par le nombre de lignes (Nombre de lignes)/colonnes (Nombre de colonnes) ou la taille de pixel (Taille de pixel X/ Taille de pixel Y). L’augmentation du nombre de lignes ou de colonnes diminuera la taille des cellules et augmentera la taille du fichier du raster en sortie. Les valeurs dans Lignes, Colonnes, Taille de pixel X et Taille de pixel Y seront mises à jour simultanément - doubler le nombre de lignes doublera le nombre de colonnes et la cellule la taille sera divisée par deux. L’étendue du raster en sortie restera la même (approximativement).

Rayon du champ

Optionnel

RADIUS_FIELD

[tablefield: numeric]

Définit le rayon de recherche pour chaque entité à partir d’un champ d’attribut dans la couche d’entrée.

Poids du champ

Optionnel

WEIGHT_FIELD

[tablefield: numeric]

Permet aux entités en entrée d’être pondérées par un champ d’attribut. Cela peut être utilisé pour augmenter l’influence de certaines entités sur la carte thermique résultante.

Kernel shape

KERNEL

[enumeration]

Par défaut : 0

Contrôle la vitesse à laquelle l’influence d’un point diminue à mesure que la distance par rapport au point augmente. Différents noyaux se désintègrent à des rythmes différents, donc un noyau Cubique donne plus de poids aux entités plus proches du point que le noyau d’Epanechnikov. Par conséquent, le noyau Cubique produit des points chauds «plus nets» et Epanechnikov donne des points chauds plus lissés.

Il existe de nombreuses formes disponibles (veuillez consulter la page Wikipedia pour plus d’informations) :

  • 0 — Quadratique

  • 1 — Triangulaire

  • 2 — Uniforme

  • 3 — Cubique

  • 4 — Epanechnikov

Taux de désintégration (noyaux triangulaires uniquement)

Optionnel

DECAY

[number]

Par défaut : 0.0

Peut être utilisé avec des noyaux triangulaires pour contrôler davantage la façon dont la chaleur d’une entité diminue avec la distance de l’entité.

  • Une valeur de 0 (= minimum) indique que la chaleur sera concentrée au centre du rayon donné et complètement éteinte au bord.

  • Une valeur de 0,5 indique que les pixels au bord du rayon recevront la moitié de la chaleur sous forme de pixels au centre du rayon de recherche.

  • Une valeur de 1 signifie que la chaleur est répartie uniformément sur tout le cercle du rayon de recherche. (Cela équivaut au noyau ‘Uniforme’.)

  • Une valeur supérieure à 1 indique que la chaleur est plus élevée vers le bord du rayon de recherche qu’au centre.

Mise à l’échelle de la valeur de sortie

OUTPUT_VALUE

[enumeration]

Default: Raw

Permet de modifier les valeurs du raster de carte thermique en sortie. Un des:

  • 0 — brut

  • 1 — à l’échelle

Carte de chaleur

OUTPUT

[raster]

Default: [Save to temporary file]

Spécifiez la couche raster en sortie avec des valeurs de densité de noyau. Un des:

  • Enregistrer dans un fichier temporaire

  • Enregistrer dans un fichier…

L’encodage du fichier peut également être modifié ici.

Sorties

Libellé

Nom

Type

Description

Carte de chaleur

OUTPUT

[raster]

Couche raster avec valeurs de densité de noyau

Exemple: création d’une carte thermique

Pour l’exemple suivant, nous utiliserons la couche vectorielle de points airports de l’échantillon de données QGIS (voir Téléchargement de données test). Un autre excellent tutoriel QGIS sur la création de heatmaps peut être trouvé sur http://qgistutorials.com.

Dans Fig. 24.2, les aéroports de l’Alaska sont représentés.

../../../../_images/heatmap_start.png

Fig. 24.2 Aéroports de l’Alaska

  1. Ouvrez l’algorithme Heatmap (Kernel Density Estimation) du groupe QGIS Interpolation

  2. Dans le Point layer selectString , sélectionnez airports dans la liste des couches de points chargées dans le projet en cours.

  3. Changez le Radius en 1000000 mètres.

  4. Remplacez le Pixel size X par 1000. Les Pixel size Y, Rows et Columns seront automatiquement mis à jour.

  5. Cliquez sur exécuter pour créer et charger la carte de chaleur des aéroports (voir Fig. 24.4).

../../../../_images/heatmap_dialog.png

Fig. 24.3 La boîte de dialogue Heatmap

QGIS va générer la carte thermique et l’ajouter à votre fenêtre de carte. Par défaut, la carte thermique est ombrée en niveaux de gris, avec des zones plus claires montrant des concentrations plus élevées d’aéroports. La carte thermique peut maintenant être stylisée dans QGIS pour améliorer son apparence.

../../../../_images/heatmap_loaded_grey.png

Fig. 24.4 La carte thermique après le chargement ressemble à une surface grise

  1. Ouvrez la boîte de dialogue des propriétés de la couche heatmap_airports (sélectionnez la couche heatmap_airports, ouvrez le menu contextuel avec le bouton droit de la souris et sélectionnez Propriétés).

  2. Sélectionnez l’onglet Symbologie.

  3. Changez le Render type selectString à «pseudo-couleur à bande unique».

  4. Sélectionnez une étiquette appropriée Color ramp selectString, par exemple YlOrRd.

  5. Cliquez sur le bouton Classifier.

  6. Appuyez sur OK pour mettre à jour la couche.

Le résultat final est présenté dans Fig. 24.5.

../../../../_images/heatmap_loaded_colour.png

Fig. 24.5 Carte thermique stylisée des aéroports de l’Alaska

Code Python

ID de l’algorithme : qgis:heatmapkerneldensityestimation

import processing
processing.run("algorithm_id", {parameter_dictionary})

L”id de l’algorithme est affiché lors du survol du nom de l’algorithme dans la boîte à outils Traitements. Les nom et valeur de chaque paramètre sont fournis via un dictionnaire de paramètres. Voir Utiliser les algorithmes du module de traitements depuis la console Python pour plus de détails sur l’exécution d’algorithmes via la console Python.

24.1.4.2. Interpolation IDW

Génère une interpolation IDW (Inverse Distance Weighted) d’une couche vectorielle ponctuelle.

Les points d’échantillonnage sont pondérés pendant l’interpolation de telle sorte que l’influence d’un point par rapport à un autre diminue avec la distance par rapport au point inconnu que vous souhaitez créer.

La méthode d’interpolation IDW présente également certains inconvénients: la qualité du résultat d’interpolation peut diminuer si la distribution des points de données d’échantillon est inégale.

De plus, les valeurs maximales et minimales dans la surface interpolée ne peuvent se produire qu’aux points de données d’échantillonnage.

Paramètres

Libellé

Nom

Type

Description

Couche (s) d’entrée

INTERPOLATION_DATA

[string]

Couche(s) vectorielle(s) et champ(s) à utiliser pour l’interpolation, codés dans une chaîne (voir la classe ParameterInterpolationData dans InterpolationWidgets pour plus de détails).

Les éléments d’interface graphique suivants sont fournis pour composer la chaîne de données d’interpolation:

  • Vector layer [vector: any]

  • Attribut d’interpolation [champ de table: numérique]: attribut à utiliser dans l’interpolation

  • Utiliser la coordonnée Z pour l’interpolation [booléen]: Utilise les valeurs Z stockées de la couche (Par défaut: Faux)

Pour chacune des combinaisons couche-champ ajoutées, un type peut être choisi:

  • Points

  • Lignes de structure

  • Lignes de rupture

Dans la chaîne, les éléments de champ de couche sont séparés par '::|::'. Les sous-éléments des éléments de champ de couche sont séparés par '::~::'.

Coefficient de distance P

DISTANCE_COEFFICIENT

[number]

Par défaut : 2.0

Définit le coefficient de distance pour l’interpolation. Minimum: 0,0, maximum: 100,0.

Extent (xmin, xmax, ymin, ymax)

EXTENT

[emprise]

Étendue de la couche raster en sortie. Vous devez déclarer l’étendue de sortie en la choisissant dans le canevas de carte, en la sélectionnant dans une autre couche ou en la tapant manuellement.

Taille du raster en sortie

PIXEL_SIZE

[number]

Par défaut : 0.1

Taille de pixel de la couche raster en sortie en unités de couche.

Dans l’interface graphique, la taille peut être spécifiée par le nombre de lignes (Nombre de lignes)/colonnes (Nombre de colonnes) ou la taille de pixel (Taille de pixel X/ Taille de pixel Y). L’augmentation du nombre de lignes ou de colonnes diminuera la taille des cellules et augmentera la taille du fichier du raster en sortie. Les valeurs dans Lignes, Colonnes, Taille de pixel X et Taille de pixel Y seront mises à jour simultanément - doubler le nombre de lignes doublera le nombre de colonnes et la cellule la taille sera divisée par deux. L’étendue du raster en sortie restera la même (approximativement).

Interpolé

OUTPUT

[raster]

Default: [Save to temporary file]

Couche raster de valeurs interpolées. Un des:

  • Enregistrer dans un fichier temporaire

  • Enregistrer dans un fichier…

L’encodage du fichier peut également être modifié ici.

Sorties

Libellé

Nom

Type

Description

Interpolé

OUTPUT

[raster]

Couche raster de valeurs interpolées

Code Python

ID de l’algorithme : qgis:idwinterpolation

import processing
processing.run("algorithm_id", {parameter_dictionary})

L”id de l’algorithme est affiché lors du survol du nom de l’algorithme dans la boîte à outils Traitements. Les nom et valeur de chaque paramètre sont fournis via un dictionnaire de paramètres. Voir Utiliser les algorithmes du module de traitements depuis la console Python pour plus de détails sur l’exécution d’algorithmes via la console Python.

24.1.4.3. Densité des lignes

Calcule pour chaque cellule raster, la mesure de densité des entités de type ligne dans un voisinage circulaire. Cette mesure est obtenue en additionnant tous les segments de ligne coupant le voisinage circulaire et en divisant cette somme par la surface de ce voisinage. Un facteur de pondération peut être appliqué aux segments de ligne.

../../../../_images/linedensity.png

Fig. 24.6 Exemple de densité de lignes. Source de la couche d’entrée : Routes Overijssel - Pays-Bas (OSM).

Paramètres

Libellé

Nom

Type

Description

Couche de ligne d’entrée

INPUT

[vector: any]

Couche de vecteur d’entrée contenant des entités de type linéaire

poids du champ

WEIGHT

[number]

Champ de la couche contenant le facteur de pondération à utiliser lors du calcul.

rayon de recherche

RADIUS

[number]

Default: 10

Rayon du voisinage circulaire. Les unités peuvent être spécifiées ici.

Taille du pixel

PIXEL_SIZE

[number]

Default: 10

Taille de pixel de la couche raster de sortie en unités de couche. Le raster a des pixels carrés.

Réseau de densité linéaire

OUTPUT

[raster]

Default: [Save to temporary file]

La sortie sous forme de couche raster. L’une des options suivantes :

  • Enregistrer dans un fichier temporaire

  • Enregistrer dans un fichier…

L’encodage du fichier peut également être modifié ici.

Sorties

Libellé

Nom

Type

Description

Réseau de densité linéaire

OUTPUT

[raster]

La couche raster de densité de lignes de sortie.

Code Python

ID de l’algorithme : native:linedensity

import processing
processing.run("algorithm_id", {parameter_dictionary})

L”id de l’algorithme est affiché lors du survol du nom de l’algorithme dans la boîte à outils Traitements. Les nom et valeur de chaque paramètre sont fournis via un dictionnaire de paramètres. Voir Utiliser les algorithmes du module de traitements depuis la console Python pour plus de détails sur l’exécution d’algorithmes via la console Python.

24.1.4.4. Interpolation TIN

Génère une interpolation de réseau irrégulier triangulé (TIN) d’une couche vectorielle ponctuelle.

Avec la méthode TIN, vous pouvez créer une surface formée par des triangles de points voisins les plus proches. Pour ce faire, des cercles autour des points d’échantillonnage sélectionnés sont créés et leurs intersections sont connectées à un réseau de triangles non superposés et aussi compacts que possible. Les surfaces résultantes ne sont pas lisses.

L’algorithme crée à la fois la couche raster des valeurs interpolées et la couche de lignes vectorielles avec les limites de triangulation.

Paramètres

Libellé

Nom

Type

Description

Couche (s) d’entrée

INTERPOLATION_DATA

[string]

Couche(s) vectorielle(s) et champ(s) à utiliser pour l’interpolation, codés dans une chaîne (voir la classe ParameterInterpolationData dans InterpolationWidgets pour plus de détails).

Les éléments d’interface graphique suivants sont fournis pour composer la chaîne de données d’interpolation:

  • Vector layer [vector: any]

  • Attribut d’interpolation [champ de table: numérique]: attribut à utiliser dans l’interpolation

  • Utiliser la coordonnée Z pour l’interpolation [booléen]: Utilise les valeurs Z stockées de la couche (Par défaut: Faux)

Pour chacune des combinaisons couche-champ ajoutées, un type peut être choisi:

  • Points

  • Lignes de structure

  • Lignes de rupture

Dans la chaîne, les éléments de champ de couche sont séparés par '::|::'. Les sous-éléments des éléments de champ de couche sont séparés par '::~::'.

Méthode d’interpolation

METHOD

[enumeration]

Par défaut : 0

Définissez la méthode d’interpolation à utiliser. Un des:

  • Linéaire

  • Clough-Toucher (cubique)

Extent (xmin, xmax, ymin, ymax)

EXTENT

[emprise]

Étendue de la couche raster en sortie. Vous devez déclarer l’étendue de sortie en la choisissant dans le canevas de carte, en la sélectionnant dans une autre couche ou en la tapant manuellement.

Taille du raster en sortie

PIXEL_SIZE

[number]

Par défaut : 0.1

Taille de pixel de la couche raster en sortie en unités de couche.

Dans l’interface graphique, la taille peut être spécifiée par le nombre de lignes (Nombre de lignes)/colonnes (Nombre de colonnes) ou la taille de pixel (Taille de pixel X/ Taille de pixel Y). L’augmentation du nombre de lignes ou de colonnes diminuera la taille des cellules et augmentera la taille du fichier du raster en sortie. Les valeurs dans Lignes, Colonnes, Taille de pixel X et Taille de pixel Y seront mises à jour simultanément - doubler le nombre de lignes doublera le nombre de colonnes et la cellule la taille sera divisée par deux. L’étendue du raster en sortie restera la même (approximativement).

Interpolé

OUTPUT

[raster]

Default: [Save to temporary file]

L’interpolation TIN en sortie en tant que couche raster. Un des:

  • Enregistrer dans un fichier temporaire

  • Enregistrer dans un fichier…

L’encodage du fichier peut également être modifié ici.

Triangulation

TRIANGULATION

[vector: line]

Par défaut: [Skip output]

Le TIN en sortie en tant que couche vectorielle. Un des:

  • Ignorer la sortie

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • Enregistrer dans un fichier…

  • Enregistrer dans un GeoPackage…

  • Enregistrer dans la table PostGIS …

Sorties

Libellé

Nom

Type

Description

Interpolé

OUTPUT

[raster]

L’interpolation TIN en sortie en tant que couche raster

Triangulation

TRIANGULATION

[vector: line]

Le TIN en sortie en tant que couche vectorielle.

Code Python

ID de l’algorithme : qgis:tininterpolation

import processing
processing.run("algorithm_id", {parameter_dictionary})

L”id de l’algorithme est affiché lors du survol du nom de l’algorithme dans la boîte à outils Traitements. Les nom et valeur de chaque paramètre sont fournis via un dictionnaire de paramètres. Voir Utiliser les algorithmes du module de traitements depuis la console Python pour plus de détails sur l’exécution d’algorithmes via la console Python.