Créer des masques à partir de couches en intersection (Cartography)
Résumé
Crée des polygones de masquage avec une forme et une taille spécifiques au niveau des intersections de couches symbolisées en entrée.
Usage
-
Cet outil accepte les couches d'entités ponctuelles, linéaires et surfaciques ainsi que les couches d'annotations de géodatabase comme entrées.
-
Les masques seront créés si la distance de marge est 0 ou négative. Une distance de marge de 0 créera un polygone qui représente la forme exacte de l'entité symbolisée. Une distance de marge négative génèrera un polygone plus petit que l'entité symbolisée. En général, une valeur de marge supérieure à 0 devra être spécifiée pour produire l'effet de masquage souhaité.
-
Lors de la création de masques, n'oubliez pas que le fait d'ajouter des masques aux cartes apporte un surcroît de complexité qui ralentit leur affichage et a une incidence sur leur impression et leur exportation. En général, trois points sont à prendre en compte lors de la création de masques pour une carte : (1) le nombre de masques, (2) la complexité des masques, et (3) l'utilisation des masques, à savoir s'ils doivent masquer des entités surfaciques remplies de symboles ponctuels ou linéaires. Une augmentation du nombre de masques, de leur complexité et/ou un masquage par rapport à des symboles ponctuels ou de remplissage des polygones se traduit par un ralentissement du tracé à l'écran. En outre, les performances d'impression et d'exportation risquent d'être médiocres, voire d'échouer à produire une sortie valide, premièrement en raison du traitement extrêmement volumineux nécessaire pour imprimer et exporter des cartes avec des masques et deuxièmement en raison des limitations connues sur la manière dont les formats de fichiers graphiques stockent les résultats des exportations des cartes dotées d'un grand nombre de masques complexes.
-
Lorsque vous cherchez à améliorer les performances de dessin, d'impression, d'exportation et de fiabilité, la règle la plus importante à respecter consiste à utiliser les masques les plus simples. Lors du masquage du texte de l'annotation en particulier, vous constaterez que les masques de type CONVEX_HULL répondent à la plupart des besoins de votre carte. Si vous recherchez des masques de texte plus détaillés, utilisez le type EXACT_SIMPLIFIED. En règle générale, si vous masquez une quantité importante de texte sur une carte relativement grande, évitez d'utiliser le masque de type EXACT, car il crée un trop grand nombre de masques compliqués pour espérer obtenir des résultats exploitables.
-
Les valeurs de marge sont exprimées en unités de page ou en unités de carte. En général, il est préférable de spécifier la valeur de distance de marge en unités de page.
La valeur de marge est interprétée différemment selon les unités choisies. Si vous sélectionnez des points, des pouces, des millimètres ou des centimètres, les masques sont alors créés à partir de la distance de marge telle que calculée dans l'espace de la page (la marge correspond à une distance mesurée sur le papier). La valeur de l'échelle de référence est prise en compte dans ce calcul.
Si vous sélectionnez d'autres unités, les masques sont alors créés en utilisant la distance de marge telle que calculée dans l'espace cartographique (la marge correspond à une distance réelle mesurée sur la terre). Dans ce cas, la valeur de l'échelle de référence n'est pas prise en compte dans ce calcul.
-
Si l'une des couches en entrée est une couche d'annotation, l'échelle de référence sera définie automatiquement sur celle de la classe d'entités de la couche pour garantir la précision du calcul du masque. Si deux couches d'annotation entrent en intersection, elles doivent avoir la même échelle de référence.
-
Si vous masquez une annotation projetée à la volée, les masques doivent être créés à l'aide de la référence spatiale de la carte en la définissant correctement dans le paramètre de référence spatiale. La lisibilité est conservée lorsque le texte est projeté à la volée, ce qui explique pourquoi des différences peuvent exister dans la surface spatiale que le texte occupe dans les différentes projections.
-
Les masques d'entités annotations sont spécifiques à la police. Si vous utilisez des masques avec le texte, il est important de vous assurer que la même police est utilisée à l'écran comme dans la sortie. Pour cela, choisissez d'incorporer des polices dans la sortie vectorielle ou de télécharger SoftFonts sur les imprimantes ou les traceurs.
Syntaxe
Paramètre | Explication | Type de donnée |
masking_layer |
Couche symbolisée en entrée à intersecter avec la couche masquée pour créer des polygones de masquage. Il s'agit de la couche la plus visible lorsqu'un masquage est appliqué à la couche masquée. | Layer |
masked_layer |
Couche symbolisée en entrée à masquer. Il s'agit de la couche qui sera masquée par les polygones de masquage. | Layer |
output_fc |
Classe d'entités contenant les entités masques. | Feature Class |
reference_scale |
Echelle de référence utilisée pour calculer la géométrie de masquage lorsque les masques sont spécifiés en unités de page. Il s'agit, en règle générale, de l'échelle de référence de la carte. | Double |
spatial_reference |
Référence spatiale pour laquelle les polygones de masquage sont créés. Il ne s'agit pas de la référence spatiale attribuée à la classe d'entités en sortie. Il s'agit de la référence spatiale de la carte dans laquelle les polygones de masquage seront utilisés étant donné que la position de la symbologie est susceptible de varier lorsque les entités sont projetées. | Spatial Reference |
margin |
Espace en unités de page entourant les entités symbolisées en entrée permettant de créer le polygone de masquage. En règle générale, les polygones de masquage sont créés avec une petite marge autour du symbole afin d'améliorer l'apparence visuelle. Les valeurs de marge sont exprimées en unités de page ou en unités de carte. En général, il est préférable de spécifier la valeur de distance de marge en unités de page. La valeur de marge est interprétée différemment selon les unités choisies. Si vous sélectionnez des points, des pouces, des millimètres ou des centimètres, les masques sont alors créés à partir de la distance de marge telle que calculée dans l'espace de la page (la marge correspond à une distance mesurée sur le papier). La valeur de l'échelle de référence est prise en compte dans ce calcul. Si vous sélectionnez d'autres unités, les masques sont alors créés à partir de la distance de marge telle que calculée dans l'espace cartographique (la marge correspond à une distance réelle mesurée sur la Terre). Dans ce cas, la valeur de l'échelle de référence n'est pas prise en compte dans ce calcul. | Linear unit |
method |
Type de géométrie de masquage créé. Quatre types sont disponibles :
| String |
mask_for_non_placed_anno |
Spécifie s'il faut créer des masques pour l'annotation non placée. Cette option s'applique uniquement lors du masquage de couches d'annotations de géodatabase.
| String |
attributes (Facultatif) |
Détermine les attributs à transférer à partir des entités en entrée vers les entités en sortie.
| String |
Exemple de code
Le script de fenêtre Python suivant illustre l'utilisation de l'outil IntersectingLayersMasks en mode immédiat.
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.IntersectingLayersMasks_cartography("C:/data/cartography.gdb/transportation/roads", "C:/data/cartography.gdb/transportation/railroads", "C:/data/cartography.gdb/transportation/ilm_polys", "25000", "", "5 meters", "EXACT_SIMPLIFIED", "", "ALL")
Ce script autonome montre un exemple de l'utilisation de l'outil IntersectingLayersMasks.
# Name: IntersectingLayersMasks_standalone_script.py # Description: Creates masking polygons at a specified shape and size at the intersections of symbolized features. # Author: ESRI # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Set local variables masking_layer = "C:/data/cartography.gdb/transportation/roads" masked_layer = "C:/data/cartography.gdb/transportation/railroads" outpuf_fc = "C:/data/cartography.gdb/transportation/ilm_polys" reference_scale = "25000" spatial_reference = "" margin = "5 meters" method = "EXACT_SIMPLIFIED" mask_for_non_placed_anno = "" attributes = "ALL" # Execute Intersecting Layers Masks arcpy.IntersectingLayersMasks_cartography(masking_layer, masked_layer, output_fc, reference_scale, spatial_reference, margin, method, mask_for_non_placed_anno, attributes)