ArcGIS Running Slow? Check your Basemaps and Projections
Every so often, I get a question about how to speed up ArcGIS – specifically that the interface is slow, or that it’s slow to draw layers. While you may be inclined to chalk it up to the software or complexities in your data, it’s often fixable. To understand how, we first need a quick overview of projections.
What are projections and how are they used in ArcMap?
To be brief, a projection is a set of parameters that allows us to draw the mostly spherical features of the Earth on a flat surface like your computer screen or a piece of paper. Your geospatial information has projection information attached to it that helps software like ArcGIS understand how the coordinates in the dataset should be interpreted, and which can be used to line that data up with the rest of the data on your map. Your map document also has its own projection – more accurately, your data frame does – and if your datasets don’t use the same projection as your map document, then ArcMap reprojects the data into the map document’s projection behind the scenes in order to display it on the screen together. This reprojection is where things get slow. Here are some options to handle that problem.
Option 1: Turn off the affected layers
Your first option is simple – figure out which layers are slow and disable them. This is often not a good option for people.
Option 2: Change the projection of the data frame to match the basemap
Here’s a common situation. You open ArcMap and add your data to the map. You decide you want some context for your data, so you add a Basemap – and now ArcGIS slows down. What’s going on?
The basemaps available from the Add Basemap dialog in ArcGIS all come in the projection “WGS 1984 Web Mercator (auxiliary sphere)” (EPSG 3857). It’s rare for your own data to be in that projection, so if you add your data before you add the basemap, then the data frame takes on the projection of your data and is reprojecting the basemap tiles to match. This is slow. Want to speed it up? You can switch the data frame to use the projection of the basemap.
- Right click on Layers in your Table of Contents
- Click Properties
- Go to the Coordinate System tab
- In the search box, type Web mercator and hit the Enter key on your keyboard
- Select WGS 1984 Web Mercator (auxiliary sphere) when it appears
- Click OK
Now, ArcGIS no longer needs to reproject your basemap tiles, and instead will reproject your other data to match the new projection. However, we made some tradeoffs here:
- If your dataset is large, you may find that it takes a long time to reproject too – maybe long enough to warrant switching the map document back to its original projection (if you’ve forgotten, look at the Source tab of the Properties dialog for your dataset).
- Selecting a new projection introduces distortion into your map – maybe distortion you don’t like – because the Web Mercator projection is optimized for the whole planet, and if your data is stored well, it’s probably using a projection optimized for your area – depending on many factors. For this reason, you should plan to switch your data frame’s projection back to its original projection (or another desirable one) before you produce map exports.
Option 2b: Change the projection of the data frame to match your other layers
It may be that basemaps aren’t your slowest layer to reproject – maybe reprojecting your own data is even slower, or similar. If this is the case, follow the instructions in the previous option, but instead of Web Mercator, match the projection of your own dataset.
Option 3: Reproject the data layers
If you find yourself unable to resolve this problem with either of the previous options, you could reproject all of your data into a common projection. I caution that you shouldn’t do this unless you understand what you are doing to the data though as this process changes your underlying dataset. I extra caution that you definitely should not do this with raster data layers if your goal is just performance (basemaps are a special case since they are purely cartographic). I don’t recommend projecting all your data into Web Mercator though – this option deals with if you have slowness due to mismatched projections from your other datasets.
Non-projection option: Change the data format
One last option that’s not related to projections, but that does affect the speed of your maps. The storage format (shapefile, geodatabase feature class) can heavily impact rendering performance. While I’m a big advocate of using file geodatabases because they are faster in many cases, store better, and encourage better naming practices for attributes and feature classes, your choice of them can sometimes make things slower and in others faster. If you are just symbolizing a layer as a single color, shapefiles will render fastest on your screen – often nearly instantly after the first load. However, if you want to change symbols based on an attribute, then geodatabase feature classes – specifically file geodatabases – are the best option. Check your format in the layer properties dialog, and if necessary, export to a new format and copy the symbology over.