Tuesday 16 May 2017

Using directional shading on boundaries for cartographic effect in ArcGIS Desktop?


The attached screenshot of a National Geographic map shows some beautiful directional shading of boundaries. I'm trying to reproduce this sort of shading for a burn perimeter map, as I want to highlight features within the burn perimeter and not overshadow them with a transparent polygon or crosshatch. Is there a way to accomplish this sort of boundary shading using ArcGIS 10?


Link to larger map titled: "1946 Political Subdivisions Of India By National Geographic.jpg"


enter image description here



Answer



I've usually used one of two methods to shade the interior of polygons. Assuming this is our set of input polygons:


Input data



Option 1 is to use the Buffer tool, create a buffer of negative distance (e.g. -500 meters) and set the line_side parameter to OUTSIDE_ONLY. This will generate areas inside of each polygon, giving the nice look of country borders on a political map when combined with a transparency setting:


Interior buffer


Option 2 is to convert polygons to lines and then use the Euclidean Distance tool (in Spatial Analyst) to create a distance raster. Use ExtractByAttributes to remove areas farther than you want to shade, change the raster symbology to Stretched with the min/max values equal to 0 and your max distance. Add in some transparency, and it looks pretty good:


Distance raster


If you wanted a different color for each raster area, you could rasterize the R/G/B values for each polygon, multiply them by the fraction of the max distance, and merge them back into a multiband raster. Let me know if you want more detailed instructions on this part.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...