Carroyage
| Entrée |
1 Donnée continue
sur un fond de carte de points ou de surfaces
OU
1 Donnée continue sur un fond de carte de points ou de surfaces
et 1 fond de carte contenant 1 polygone fermé |
| Sortie |
Donnée continue |
Description :
Le module va construire un nouveau fond de carte contenant uniquement des carreaux. Puis, il va calculer la valeur
associée à chaque carreau.
Les carreaux auront tous la même taille, définie dans le champ de saisie Taille, que vous pouvez
modifier en décochant la case Taille automatique.
Le point Origine du carroyage, que vous pouvez modifier en décochant la case Origine
automatique, détermine la position des carreaux. Le premier carreau aura pour centre ce point, sauf si vous
le placez hors de la carte: dans ce cas aucun carreau n'aura ce point pour centre, les carreaux seront quand même
câlés sur ce point mais à distance.
Vous avez le choix entre deux traitements différents, disponibles sous forme d'onglet à
sélectionner: "Méthode standard" ou "Interpolation de points".
Vous devez au préalable indiquer le type de la donnée en entrée, car les calculs seront
différents selon ce type:
- donnée absolue : il s'agit en général d'un nombre d'éléments (ex: 100
personnes, 2000 tonnes, 70 000 véhicules), etc...
- donnée relative : il s'agit en général d'un taux (la division de deux données
absolues), etc...
Onglet Méthode standard
Le calcul est différent selon la nature du fond de carte associé à la donnée en
entrée:
- Si le fond de carte ne contient que des surfaces, la formule utilisée est indiquée ci-dessous.
- Si le fond de carte ne contient que des points, vous avez le choix entre 3 opérations: somme,
moyenne ou nombre d'entités. Les formules utilisées sont indiquées
ci-dessous.
-
Si le fond de carte contient à la fois des points et des surfaces, ce qui est FORTEMENT DECONSEILLE, alors
le type de la première entité de ce fond de carte déterminera le type de calcul à
effectuer:
- si la première entité est un point, alors toutes les surfaces seront ignorées et le
traitement sera effectué uniquement sur les points.
- si la première entité est une surface, alors tous les points seront ignorés et le
traitement sera effectué uniquement sur les surfaces.
La valeur associée à chaque carreau est définie de la façon suivante:
-
Si le fond de carte initial ne contient que des surfaces :
Soient :
- Ri la région numéro i
- Vi la valeur pour cette région
- Si la surface du carreau remplie par Ri
- V la valeur associée au carreau
Alors,
-
Si le fond de carte initial ne contient que des points :
Soient :
- Pi le point numéro i
- Vi la valeur pour ce point
- V la valeur associée au carreau
Alors, pour tous les Pi du fond de carte initial contenus dans ce carreau:
- somme: V = somme(Vi)
- moyenne: V = somme(Vi)/(nombre de points du fond de carte initial contenus dans le
carreau)
- nombre d'entités: V = (nombre de points du fond de carte initial contenus dans le
carreau)
Remarques:
- Si la donnée en entrée est relative, la seule méthode proposée sera le
nombre d'entités.
- Les carreaux du fond de carte créé peuvent être disjoints, puisqu'il faut qu'un
carreau contienne au moins un point du fond de carte initial pour être créé.
Le lissage permet d'éliminer les pics de valeurs. Vous pouvez choisir le niveau de lissage que vous
désirez (1, 3, 5, 7 ou 9). Si le lissage est différent de 1, alors la valeur V obtenue pour chaque
carreau est la moyenne des 9, 25, 49, ou 81 carreaux autour.
Si la donnée en entrée est absolue, le lissage est interdit ( sa valeur sera donc automatiquement
mise à 1). En effet, dans le cas d'une donnée absolue, on calcule pour le carreau une valeur
théorique, il est donc impossible d'appliquer un lissage qui biaiserait forcément plus encore cette
valeur. Ce biais est moins grave avec une donnée relative, déjà biaisée et
dépendante d'une autre donnée par nature.
Le seuil de visibilité permet d'éliminer tous les carreaux incomplètement remplis par
les régions intersectrices. La valeur que vous saisissez indique un pourcentage, donc ce seuil varie de 0
à 100.
Par exemple, si un carreau placé au bord de la carte ne rencontre qu'une seule région, que cette
région occupe 30% du carreau, et que le seuil est de 40%, alors le carreau ne sera pas utilisé.
Onglet Interpolation de points
Cette méthode est disponible uniquement si la donnée en entrée est absolue.
Comme son nom l'indique, cette méthode travaille sur des points. Un prétraitement automatique est
ainsi effectué sur toutes les surfaces du fond de carte en entrée pour travailler sur leur
centroïde.
L'idée consiste à trouver une valeur approximative de la donnée, non plus sur les points
fournis (points jaunes ci-dessous), mais sur un nuage de points régulièrement répartis (points
bleus ci-dessous). L'approximation est faite selon une méthode d'interpolation dite de "distance
pondérée" (voir ci-dessous le calcul exact).
Il suffit ensuite de contruire un carreau (rouge ci-dessous) autour de chaque point bleu, et de conserver uniquement
les carrés qui ont une intersection avec l'enveloppe convexe du nuage de points en entrée.
L'avantage de cette méthode est de tenir compte du voisinage lors de l'approximation de la valeur des carreaux,
ce qui n'est pas possible dans la "Méthode standard".
où les points jaunes sont les points du nuage de départ
les carreaux noirs constituent la grille d'interpolation
les points bleus sont les noeuds de la grille d'interpolation
les carreaux rouges constituent le fond de carte fourni en sortie du
module
Selon la nature de votre fond de carte, la formule d'interpolation est différente.
Soient :
- Pi le point numéro i
- Vi la valeur pour ce point
- Vk la valeur associée au noeud k de la grille d'interpolation
- Vp la valeur du point le plus proche du noeud k
- dik la distance entre le point i et le noeud k
- m le nombre de points voisins du noeud k
Alors:
- Cas d'un nuage de points régulier
Votre nuage de points est bien régulier, il ne comporte pas trop de zones vides ou bien elles sont de petite
dimension.
- Cas d'un nuage de points avec de grands espaces vides
Dans votre nuage de points, de grandes zones de la carte ne comportent aucun point (ou bien leur donnée est
invalide). Dans ce cas, le calcul sera légèrement différent. On va ajouter au calcul la moyenne
avec le point le plus proche. Cela permettra de donner aux zones vides une valeur plus proche de la
réalité supposée. Mais ce procédé a tendance à "lisser" un peu les valeurs,
alors on va élever la distance au carré (au lieu du cube), de manière à compenser ce
lissage abusif.
Vous pouvez choisir le nombre de voisins à prendre en compte dans la formule d'interpolation. Il est
difficile de déterminer un nombre de voisins qui produira la meilleure carte, car cela dépend notamment
de l'espacement des points de départ.
Cependant, on peut dire que si plus de 12 points sont utilisés, le résultat sera fortement lissé,
et si moins de 4 points sont utilisés, le résultat aura des changements brutaux sur la surface
(discontinuités).
La meilleure valeur semble être comprise entre 6 et 9.
Pour éviter les effets de bord, il est conseillé de travailler sur une grille plus large que le nuage
de points. Un pourcentage d'élargissement de la grille est donc à votre disposition (il est
appliqué dans les 4 directions).
Attention: les carreaux qui sont en dehors de la carte représentent une "extrapolation" du nuage et sont
à considérer avec précaution.
Remarque: le fond de carte créé est une grille régulière, il ne peut donc pas
comporter de trous.
Enveloppe du carroyage :
En reliant au module carroyage un module fond de carte contenant un polygone fermé, il est possible de
définir l'enveloppe sur laquelle l'interpolation doit être représentée.
Export :
Vous pouvez exporter le fond de carte produit ainsi que la donnée associée grâce au bouton
Export de la carte et des données (cette possibilité est limitée dans certaines versions du
logiciel, notamment sur les CDROM cryptés tels que Europe des populations).
Script :
2 module untyped_list ""
3 mod_type integer "103"
3 mod_subtype integer "504"
3 mod_name string "Carroyage"
3 mod_dads integer_list ""
4 ? integer "8"
3 with_interpol boolean "F"
3 data_abs boolean "F"
3 threshold double "50"
3 size double "2"
3 is_auto_size boolean "F"
3 is_auto_origin boolean "T"
3 blur_level integer "3"
3 origin vector ""
4 x_val double "476.849991"
4 y_val double "2248.150024"
4 z_val double "0"
3 pt_calc_type integer "2"
3 neighb_count integer "6"
3 margin_percent integer "5"
3 is_regular_map boolean "T"
3 map_bounds bounds ""
4 bottom_left vector ""
5 x_val double "427.100006"
5 y_val double "2194"
5 z_val double "0"
4 top_right vector ""
5 x_val double "526.599976"
5 y_val double "2302.300049"
5 z_val double "0"
Valeurs pour pt_calc_type :
Somme 0
Moyenne 1
Nombre d'entités 2
Exemple d'utilisation
|