Label | Explanation | Data Type |
Input Layer | The symbolized input layer from which the masks will be created. | Layer |
Output Feature Class | The feature class that will contain the mask features. | Feature Class |
Reference Scale | The reference scale used for calculating the masking geometry when masks are specified in page units. This is typically the reference scale of the map. | Double |
Calculation coordinate system | The spatial reference of the map in which the masking polygons will be created. This is not the spatial reference that will be assigned to the output feature class. It is the spatial reference of the map in which the masking polygons will be used, since the position of symbology may change when features are projected. | Spatial Reference |
Margin | The space in page units surrounding the symbolized input features used to create the mask polygons. Typically, masking polygons are created with a small margin around the symbol to improve visual appearance. Margin values are specified in either page units or map units. Most of the time, you will specify your margin distance value in page units. The margin cannot be negative. | Linear Unit |
Mask Kind | Specifies the type of masking geometry that will be created.
| String |
Create masks for unplaced annotation | Specifies whether to create masks for unplaced annotation. This option is only used when masking geodatabase annotation layers.
| String |
Transfer Attributes (Optional) | Specifies the attributes that will be transferred from the input features to the output features.
| String |
Summary
Creates mask polygons at a specified distance and shape around the symbolized features in the input layer.
See How Feature Outline Masks and Intersecting Layers Masks work to learn more about the kinds of masks you can create.
Usage
This tool accepts point, line, and polygon feature layers, as well as geodatabase annotation layers, as input.
When creating masks, it is important to know that adding masks to maps adds complexity that will slow map drawing and affect map printing and exporting. Generally, there are three things to consider when creating masks for a map: the number of masks, the complexity of the masks, and whether the masks will be used to mask polygon features filled with marker or line symbols. An increase in the number of masks, having more complex masks, and masking against marker or polygon fill symbols will result in slower drawing on your screen. In addition, printing and exporting performance can be poor and even fail to produce valid output. This is because of the large amount of processing required to print and export maps with masks, and because of known limitations in how graphic file formats store map export results that have many complicated masks.
To improve drawing performance as well as printing and exporting performance and reliability, the most important guideline to follow is to use the simplest masks necessary for the purposes of your map. In particular, when masking annotation text, CONVEX_HULL type masks are sufficient for many map purposes. If you need more detailed text masks, use the EXACT_SIMPLIFIED type. Generally, when masking much text on a relatively large map, avoid using the EXACT type mask, because it will create too many complicated masks to produce valid output efficiently.
Margin values are typically specified in page units, but map units are also accepted.
Typically, margins are greater than 0. A margin size of 0 creates masks that represent the exact shape of the symbolized features.
If the input layer is an annotation layer, the reference scale will be automatically set to the reference scale of the layer's feature class to ensure accurate calculation of the mask.
When masking annotation projected on the fly, masks should be created using the map's spatial reference by properly setting it in the spatial reference parameter. Readability is preserved when text is projected on the fly, which is why there may be differences in the spatial area that text occupies in different projections.
Masks of annotation features are font specific. When using masks with text, it is important to ensure that the same font is used on-screen as in the output. To do this, embed fonts in vector output or download SoftFonts to printers or plotters.
Parameters
arcpy.cartography.FeatureOutlineMasks(input_layer, output_fc, reference_scale, spatial_reference, margin, method, mask_for_non_placed_anno, {attributes})
Name | Explanation | Data Type |
input_layer | The symbolized input layer from which the masks will be created. | Layer |
output_fc | The feature class that will contain the mask features. | Feature Class |
reference_scale | The reference scale used for calculating the masking geometry when masks are specified in page units. This is typically the reference scale of the map. | Double |
spatial_reference | The spatial reference of the map in which the masking polygons will be created. This is not the spatial reference that will be assigned to the output feature class. It is the spatial reference of the map in which the masking polygons will be used, since the position of symbology may change when features are projected. | Spatial Reference |
margin | The space in page units surrounding the symbolized input features used to create the mask polygons. Typically, masking polygons are created with a small margin around the symbol to improve visual appearance. Margin values are specified in either page units or map units. Most of the time, you will specify your margin distance value in page units. The margin cannot be negative. | Linear Unit |
method | Specifies the type of masking geometry that will be created.
| String |
mask_for_non_placed_anno | Specifies whether to create masks for unplaced annotation. This option is only used when masking geodatabase annotation layers.
| String |
attributes (Optional) | Specifies the attributes that will be transferred from the input features to the output features.
| String |
Code sample
The following Python window script demonstrates how to use the FeatureOutlineMasks tool in immediate mode.
import arcpy
arcpy.env.workspace = "C:/data"
sr = arcpy.SpatialReference(4326)
arcpy.FeatureOutlineMasks_cartography("C:/data/cartography.gdb/transportation/roads",
"C:/data/cartography.gdb/transportation/fom_polys",
"25000", sr, "5 meters","EXACT_SIMPLIFIED",
"ALL_FEATURES", "ALL")
This stand-alone script shows an example of using the FeatureOutlineMasks tool.
# Name: FeatureOutlineMasks_standalone_script.py
# Description: Creates mask polygons at a specified distance and shape
# around symbolized features.
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
input_layer = "roads.lyrx"
output_fc = "cartography.gdb/transportation/roads_fom_polys"
reference_scale = "25000"
spatial_reference = arcpy.SpatialReference(4326)
margin = "5 meters"
method = "EXACT_SIMPLIFIED"
mask_for_non_placed_anno = "ONLY_PLACED"
attributes = "ALL"
# Execute Feature Outline Masks
arcpy.FeatureOutlineMasks_cartography(input_layer,
output_fc,
reference_scale,
spatial_reference,
margin, method,
mask_for_non_placed_anno,
attributes)
Environments
Licensing information
- Basic: No
- Standard: No
- Advanced: Yes