V.1.2 - Dernière mise à jour : 28/05/2007
(avec l'autorisation du Clark Labs - traduction du didacticiel de CartaLinx par Michelle GIBOIRE - adaptation Vincent GODARD)
Objectifs : Assemblages de couches voisines, changement de projections et extraction de sous zones
Fonctions décrites dans ce TP : Couches adjacentes, Superposition des noeuds, Projection, Généralisation, Extraction, Extraction par filtrage
Cet exercice présente les opérations les plus fréquentes sur les couches vectorielles. Elles affectent leur caractéristique spatiale -- la définition géographique des objets d'une couche vectorielle.
La première opération que nous allons traiter est celle du raccordement des couches vectorielles adjacentes. ALASKA1 et ALASKA2 sont des couches distinctes des unités administratives du comté, développées pour les moitiés occidentale et orientale de l'état d'Alaska.
Utilisez l'option OPEN du menu FILE (ou l'icône Open Existing Coverage) pour examiner brièvement ALASKA2. Notez que chacun des arcs de la marge occidentale de la couche vectorielle se présente comme des arcs pendants (dangle arcs) car ils ne sont pas connectés sur ce bord.
Ouvrez maintenant ALASKA1 (ce qui va automatiquement fermer ALASKA2). Vous noterez ici que les arcs pendants (dangle arcs) tombent sur le bord droit. Accédez aussi à l'onglet de Géoréférencement de la boîte de dialogue Preferences/Properties/Options et examinez le système de référence et les unités utilisés. Laissez cette couche vectorielle ouverte -- ce sera la couche principale pour l'opération de réunion.
Si nous souhaitons joindre ALASKA2 et ALASKA1 en une seule couche vectorielle pour l'ensemble de l'état d'Alaska, nous devrons les joindre. Pour cela, nous utiliserons l'option APPEND du menu COVERAGE. Cependant, il faut tout d'abord définir correctement la tolérance de capture des noeuds "node snap" (cf. fiche guide n°2 pour le détail de la tolérance "snap"). Pour illustrer l'importance de cette précaution, nous donnerons volontairement à cette tolérance une valeur trop faible.
Cliquez sur l'icône Set Tolerances et donnez à la tolérance de capture des noeuds "snap" la valeur 0.000278. C'est le degré décimal équivalent à 1 seconde d'arc (c'est-à-dire, 1/3600). Puis cliquez sur OK pour sortir de la boîte de dialogue.
La définition de la tolérance de capture des noeuds "snap" affectera la façon dont CartaLinx joindra les deux couches au niveau de leur frontière commune. La tolérance étant fixée à 1 seconde, les noeuds vont se superposer à la jonction s'ils se présentent à cette distance l'un de l'autre.
Sélectionnez maintenant l'option APPEND du menu COVERAGE. Le message suivant va s'afficher : " Cette opération va s'exécuter sur le fichier ouvert actuellement. Si vous souhaitez continuer, choisissez Yes (oui)?" . Vous verrez alors s'afficher la boîte de dialogue Enter Snap Tolerance. Une autre possibilité de modification de la couche vectorielle ci-dessus serait d'entrer 0.000278 dans cette boîte de dialogue, auquel cas, c'est la nouvelle tolérance de capture qui s'appliquerait seulement à l'opération APPEND. Cliquez sur OK. Vous verrez alors s'afficher une boîte de dialogue Open file dans laquelle vous pouvez indiquer ALASKA2 comme couche vectorielle à joindre. Dès que vous cliquez sur OPEN, l'opération démarre. Allez-y maintenant.
Notez que CartaLinx recalcule automatiquement les limites de la couche.
Comme vous pouvez le voir d'après la présence permanente d'arcs pendants, il est clair que la valeur que nous avons fixée comme tolérance de capture était insuffisante. La plupart des extrémités des arcs de la partie occidentale de la carte ne se trouvaient pas à l'intérieur de la valeur 0.000278 degré des extrémités correspondantes des arcs de la partie orientale de la carte, et par conséquent les arcs n'ont pas été connectés. Une tolérance de capture plus appropriée serait généralement du niveau d'une précision de capture "snap precision" (équivalent de l'erreur probable circulaire (CPE) = 0.674 RMS).
Cependant, si des problèmes de précision ne sont pas importants, nous pouvons libérer cette valeur pour garantir une plus grande probabilité que les noeuds se superposent à l'endroit où les couches se rejoignent. Si nous procédons de la sorte, la carte qui en résulte ne doit être utilisée que pour la représentation de thèmes. Une tolérance plus grande est alors acceptable. Il est évident, cependant, qu'une tolérance de capture trop importante peut entraîner une superposition des noeuds non souhaitée. Dans notre cas, nous utiliserons une tolérance de 0.001 degré. Au lieu de recommencer au moyen de la commande APPEND, nous utiliserons la possibilité offerte par CartaLinx pour lancer une opération de superposition des noeuds.
CartaLinx offre deux possibilités pour forcer la superposition des noeuds -- SNAP ALL NODES et SNAP ALL NODES IN DISPLAY WINDOW. Chaque fois qu'il est nécessaire de provoquer la capture des noeuds dans une région limitée, la seconde de ces possibilités est préférable car elle réduit la probabilité de superposition non souhaitée des noeuds. Nous allons donc zoomer sur la région de la jonction entre les feuilles de la carte et utiliser l'option Snap All Nodes in Display Window.
Tout d'abord, cliquez sur l'icône Set Tolerances et définissez les tolérances de capture et sélection à 0.001. La tolérance de proximité des sommets "weed tolérance" peut rester à 0. Pour faciliter le zoom, appuyez d'abord sur la touche Page Up pour prévoir des marges autour de la carte. Cliquez maintenant sur l'icône Interactive Zoom et définissez une boîte qui couvre en totalité, verticalement, les arcs à superposer l'un sur l'autre, mais définit horizontalement ces arcs sur une surface très étroite la zone de la jonction. Passez ensuite au menu COVERAGE et sélectionnez l'option SNAP ALL NODES IN DISPLAY WINDOW. Une boîte de dialogue s'affiche, acceptez les valeurs par défaut et continuez. A la fin de l'opération, vous devez constater que tous les arcs pendants disparaissent, indiquant que l'opération de capture a réussi. Cliquez sur l'icône Zoom to Coverage Bounds pour faire apparaître la couche vectorielle en totalité.
Puis pour achever le processus d'adjonction, cliquez sur l'icône Build Polygons . Vous devez avoir maintenant une couche complète pour les comtés d'Alaska. Pour cela, sélectionnez l'option SAVE AS du menu FILE et sauvegardez le résultat sous la forme d'une nouvelle couche appelée ALASKA.
L'option PROJECT du menu COVERAGE propose un outil de qualité géodésique pour la projection/reprojection des coordonnées des couches. La couche ALASKA se trouve dans un système de coordonnées LATLONG. Nous allons maintenant explorer la projection de ces données dans deux autres projections, Albers Equal Area et Lambert Azimuthal Equal Area.
Avant de poursuivre la projection, cliquez d'abord sur l'icône Circle Visibility et choisissez l'option All Circles Off, ce qui rendra les affichages plus lisibles.
Sélectionnez maintenant l'option PROJECT du menu COVERAGE. CartaLinx vous indique que l'opération de projection affectera directement la couche vectorielle (l'objectif est de vous conseiller de sauvegarder la couche actuelle si vous souhaitez conserver une version dans l'ancien système des coordonnées). Appuyez sur Yes pour continuer.
Une boîte de dialogue s'affiche alors, dans laquelle vous pouvez sélectionner un nouveau système de référence dans une liste déroulante. Cherchez et sélectionnez le système appelé ALBERSAK, puis cliquez sur OK. Vous devez voir presque instantanément la nouvelle projection.
Puis pour une troisième vue, utilisez de nouveau l'option PROJECT pour reprojeter les données dans une projection d'aspect "normal" Lambert Azimuthal Equal Area. Pour cela, procédez comme ci-dessus, mais choisissez le système de référence appelé LAZEANP dans la liste déroulante.
Pour terminer cette étape, cliquez sur l'icône Build Polygons.
Le choix du système de référence dépend de ce que vous avez l'intention de faire avec la carte.
CartaLinx offre plusieurs routines de généralisation des arcs. En outre, vous pouvez décider de généraliser un seul arc (comme nous l'avons fait au cours de l'exercice 2) ou la totalité de la couche vectorielle. Nous entreprendrons ici cette dernière opération pour réduire le volume de données de la couche vectorielle ALASKA.
Pour avoir une idée de l'effet de GENERALIZE, localisez le polygone avec PolyID 65. Zoomez sur la partie supérieure gauche du polygone et notez le détail de sa limite occidentale.
Vous pouvez cliquer sur cet enregistrement dans la Table des Polygones. Le polygone sera alors mis en évidence dans la fenêtre d'affichage.
Notez le travail très détaillé des lignes autour de sa frontière et comment il produit un aspect quelque peu disgracieux. C'est le résultat de la présence d'un trop grand nombre de détails pour l'échelle de représentation. Assurez-vous que vous avez annulé le zoom pour que vous puissiez voir la totalité de la couche vectorielle mais surveillez cette zone lorsque vous lancez l'opération GENERALIZE.
Sélectionnez l'option GENERALIZE du menu COVERAGE. Un message d'avertissement s'afficher. Appuyez sur Continue. Choisissez l'option bande de tolérance (Tolerance band). Entrez ensuite une bande de tolérance de 2000 mètres. Cliquez sur OK et observez le résultat. Après généralisation de la couche, exécutez de nouveau Build Polygons.
Comme vous l'aurez noté, cette procédure a grandement amélioré l'aspect visuel de la couche tout en maintenant son caractère global. En outre, si vous choisissez de sauvegarder ce résultat sous un nom différent et comparez la taille du fichier du cadre spatial (le fichier ".lnx") avec celle de l'original, vous constaterez qu'elle a diminué d'un tiers! Les deux procédures de généralisation que vous avez testées (la technique de la bande de tolérance ici, et le filtre passe bas (low-pass) que vous avez testé dans l'exercice 2) sont probablement les procédures que vous utiliserez le plus souvent. Le filtre passe bas ne réduit pas le volume des données, mais lisse les lignes. La technique de la bande de tolérance ne lisse pas mais réduit le volume des données d'une façon très intelligente.
Il s'agit du processus de création d'un sous-ensemble spatial de la couche en fonction soit de la limite rectangulaire de la fenêtre d'affichage, soit de la limite d'un polygone délimité. Nous examinerons cette première possibilité ici.
Pour le découpage selon une région rectangulaire, la logique consiste à redéfinir temporairement les limites de la couche, zoomer sur les limites de la nouvelle couche, puis de lancer la commande CLIP.
Cliquez sur l'icône Preferences et sélectionnez l'onglet de Géoréférencement. Puis entrez les coordonnées suivantes comme nouvelles limites de la couche. Ne vous occupez pas des coordonnées négatives de cette couche -- c'est simplement le résultat de l'utilisation d'un système de référence qui était conçu pour une région différente de l'arctique :
Min X -3750000
Max X -2450000
Min Y -2207000
Max Y -1231000
Cliquez sur OK pour accepter ces coordonnées, puis cliquez sur l'icône Zoom to Coverage Bounds . Vous verrez maintenant la fenêtre à redéfinir.
Sélectionnez maintenant l'option CLIP du menu COVERAGE et choisissez l'option TO DISPLAY WINDOW. Une boîte de dialogue s'affiche alors, dans laquelle vous spécifiez le nom de la couche redécoupée à créer. Indiquez ALKWIN. La couche redéfinie sera créée, mais la couche d'origine est encore celle qui est ouverte.
Maintenant, pour rétablir les limites de la couche d'origine, cliquez sur l'icône Preferences sélectionnez encore une fois l'onglet de Géoréférencement. Cliquez sur Set Coverage Bounds to Feature Bounds, puis sur OK. Cliquez ensuite sur l'icône Zoom to Coverage Bounds, vous devriez revoir la couche complète.
Pour achever cette étape, cliquez sur l'icône Build Polygons.
Dans la dernière section, nous avons sauvegardé un sous-ensemble spatial de la couche dans un nouveau fichier à l'aide d'une opération CLIP. Dans la présente section, la dernière opération que nous tenterons, nous sauvegarderons un sous-ensemble de la couche d'après les attributs des objets. Dans ce cas, nous créerons une nouvelle couche du comté numéro 18 seulement.
Cliquez sur l'icône Design Filter et choisissez de filtrer la table des Polygones pour trouver tous les polygones ayant le numéro 18 (NumericUserID of 18). Votre critère doit se présenter ainsi :
[NumericUserID] = 18
Après utilisation du filtre, choisissez l'option COPY FILTERED FEATURES TO NEW COVERAGE du menu FILE. une boîte de dialogue s'affiche dans laquelle vous indiquez le nom de la couche à créer. Indiquez CNTY18.
Utilisez maintenant l'option Open Coverage pour voir CNTY18. Après cela, utilisez aussi cette option pour voir la couche ALKWIN créée précédemment par l'opération CLIP.
NB : les mots suivis de "*" font partie du vocabulaire géographique, donc leur définition doit être connue. Faites-vous un glossaire.