Ask A Cartographer

Clipped Data Frame Cuts Off Annotation

April 06 2009 | 6 comments

The options to clip a data frame to a boundary or a selected graphic is great when I want to limit the data to be displayed in my map. However, when I apply this property to the data frame, both labels and annotation also get clipped in mid-word if they cross the clip extent.

I believe from an earlier question that Maplex is required to fix the problem for labels (which doesn't help the hundreds of thousands of ArcView only users), but is there a way to make full annotation text display when part of it is outside the clip boundary?

Mapping Center Answer:

Have you tried using the Clip (Analysis) tool in Toolbox (Analysis Tools > Extract > Clip)? Using this tool you can actually clip the data to your desired extent and any annotation that overlaps the boundary of the clip extent will not be cut off.  For example, if you are showing a county worth of data and you have the boundary of the county you can use this as the Clip Features input.

Unlike the Clip tool in Toolbox, clipping data frames to a custom shape option functions like a mask.  It covers everything outside of your extent including labels and annotation.  If you start an annotation editing session and select a piece of 'cut-off' annotation and move it to another location within your clip area, you will see that all of the word(s) are still there.  Once you move that same piece of annotation outside of the clip area, it will no longer be displayed as it is being masked by the clip graphic or area. 

A tip for using the Clip (Analysis) tool: if you want to clip multiple feature classes to a specified extent at once, you can right click on the tool in the Toolbox tree and select Batch. This brings up an interface where you can have multiple input, clip and output features.

Considering your desired result, the Clip (Analysis) tool is probably your best bet.

I really don't want to create more data copies... posted by Terese Rowekamp on Apr 6 2009 2:28PM
I know I can use the Clip tool to extract the data extent I want, but then I'm creating more copies of data. I was hoping there was a way to clip the data frame without having to do this since I may have a simple mapping need that could be addressed by the data frame clip, and tomorrow I may need to do the same thing for a slightly different extent.

If the data frame clip recognized labels and annotation as things to not clip in the middle of the text, that would be ideal, but it's just not the way it is.
Selection Layer will also work posted by Charlie Frye on Apr 6 2009 5:56PM
Use your selected graphic to select the anno (one caveat is that it selects based on intersects vs. contains; so maybe use a feature instead of a graphic). Then right click on the annotation layer(s) and in the selection pull-right, choose to Create a Layer from the Selected Features.
but data frame clip still clips selection layers posted by Terese Rowekamp on Apr 9 2009 7:00AM
If the goal is to limit what is printed in the final map (by masking out what you don't want to display), the data frame clip is the easiest way to create that effect. Selection layers also get clipped, so this doesn't help the original problem.

But using selection layers for each layer I want to display and then shutting off the original layers is better than using Clip which creates new data that I really don't want to have around -- if selections get me the features I want (linear features like roads/rivers often extent outside the area I want to show, and selecting will keep the entire feature in the selection layer).

The best suggestion I've gotten so far came from a colleague who suggested that if the area I want to show in my map can be limited by a feature boundary (e.g., a county), select all the other counties around it and create a selection layer. Then set the new layer to gray with a low transparency so that you can see a little of the other layers through it but they are obviously not the area of interest. Put this new selection layer at the top of the TOC (but under annotation layers). Labels/annotation will draw after this new layer and be fully visible throughout the entire data frame, but the rest of data is obviously toned down.

If I want to use a graphic shape (rather than an existing feature boundary) I can create the same effect by converting the graphic shape to a feature and then editing it. If I create a rectangle bigger than my data frame, I can use Cut Polygon Feature to create a polygon with a hole in it where my graphic shape falls. I can then bring this feature class into the data frame and make it transparent gray to get a similar effect. At least in this case I'm only creating 1 new feature class, instead of creating new data for every layer I'm showing in the map.
Whitewash effect posted by Aileen Buckley on Apr 9 2009 1:02PM
The effect you describe in the third paragraph of your comment is what we call a "whitewash effect". We describe how we used it on the Crater Lake here:
Advanced Drawing options posted by Michael Stead on May 18 2011 2:43PM
ESRI should just have a checkbox in the Advanced Drawing Options - Layer Masking to invert the mask. But they don't..... so create a polygon of the area you DON'T want, right click your dataframe in the TOC, go to Advanced Drawing Options and set it to mask each layer you want to exclude from drawing. This doesn't affect anno or labels I don't think.
Good idea! posted by Aileen Buckley on May 27 2011 10:58AM
There are many ways to approach this and this is another good one from Michael.

If you would like to post a comment, please login.

Contact Us | Legal | Privacy |