Lab: Firefly Mapping

With credit and thanks to John Nelson for his posts on the topic.

Firefly maps, in the words of John Nelson, “tricks normal people into realizing how much they like maps”.  They’re an eye-catching way to represent point data (and sometimes other kinds, but we’ll focus on points here).

For inspiration and general techniques, please see John Nelson’s overview.

A bit of Googling will find a Firefly starter pack for Pro, but the basemap it provides is a cantankerous thing that breaks often in our lab setting, so you’ll find instructions below to make your own.  You will want to download the premade Firefly style, however. To bring the premade images into Pro, use Picture marker as your symbol type and browse to where you unzipped them.

The data for this lab should be a point feature that coalesces in some areas and has a lot of dots. Population-based data is great for this, but there are plenty of other datasets out there that will have similar effects. Suggestions include Starbucks locations, Lord of the Rings filming locations, weather stations, farmers’ markets, Bigfoot sightings, etc. Choose something of interest to you and try it out – the main point is that the dots need to be clustered in some way, to maximize the impact of the glow (see John’s examples).  Some good data sources are POI Factory and GPS Data Team.

The dot size should be relatively small – the firefly effect will enlarge it, and the purpose is not to see individual dots so much as the overall pattern. Also, too large and the dots will get pixelated.

Preparing the Basemap

This is just a starting point – feel free to tinker with the settings once you have it all set up.  The idea is to have a subtle background for your fireflies, with just a hint of figure/ground help.

Note: If you’re not one of my current students, check out Hacking the Firefly Basemap instead, and skip to the next section.

  1. Grab the data from the Google Drive (  Unzip into your Originals folder, as usual.
  2. Set your data frame background to Black (Properties > General), and your coordinate system to something for the US that preserves area.
  3. Add USeast.tif and USwest.tif to your map.
    1. Group these two layers (select both, right click > Group) and rename the group to Color.
    1. Set the group to 80% transparent.
  4. Copy the Color group, paste, and rename as BW. 
    1. Move it to the bottom, and set it to 30% transparent.
    1. Symbolize each layer in the BW group as Stretch, and use the default grayscale ramp that comes up.
  5. Add LatLongOceans to your map.
    1. Symbolize as Unique Values, using the field DEGREE5.  Remove all values, then add back in just the Y value.
    1. Symbolize in bright blue, 0.5 pt and 80% transparent
  6. Copy LatLongOceans and paste as LatLongOceansGlow.
    1. Move LatLongOceansGlow underneath LatLongOceans.
    1. Adjust to 5pt and 95% transparent
  7. Add the Coast layer to your map.
    1. Set the color to No color and the outline to Sahara Sand, 0.5 pt, 75% transparent.
  8. Copy/paste as CoastGlow and move underneath Coast.
    1. Adjust to 3pt and 95% transparent

You should now have a snazzy but low-key basemap for your point data. 

Pro Tip: You’ll need to repeat setting the data frame background to black in your Layout also, or your map will look washed out.

Working with XY Data

Remember that most latitude and longitude values collected via GPS or from an internet map service are in the geographic spatial reference system WGS 1984. When adding the data to ArcMap/Pro, the software reads the decimal degrees but has no context for which spatial reference system to use, so it will always assume it should be the same as your data frame. You’ll need to specify WGS 1984 when you use the tool.

  1. Bring the file into your map, right click and Display XY Data, and make sure to specify the coordinate system (don’t trust the default, even if it looks right!). Click Run when done.
  2. Recall that the Events file created is a temporary layer, so export it as a shapefile to your working folder. Specify the data frame as the coordinate system, or use the Project tool to set the correct coordinate system after export.
  3. Remove the .csv and events layers from your map, and the old version if you reprojected.

Making Fireflies

  1. Download the firefly style from John’s blog into your Originals folder
  2. In Catalog, right click on the Firefly style (looks like a painter’s palette) and select Add Style
  3. Click your point symbol, and you should see the fireflies in the Gallery

What to Turn In

A Firefly map, 8 ½ x 11, printed in color for critique and submitted as a PDF to Canvas.


Hacking the Firefly Basemap

Related image

John Nelson, the name to know in Firefly Cartography, has been making these eye-catching gems for probably a decade now.  And, true to form, he’s always trying to find ways to make them more accessible to anyone who wants to make them.

Toward that end, he released a nifty Firefly Basemap Starter Pack a short while back, and my students were overjoyed that they could simply download the ArcGIS Pro project file, skip all that imagery gathering, desaturation stuff and get right to the fireflies.

Enter disappointment.  Whether it is something to do with our IT configuration here on campus, or student file management skills, many of my students found that the basemap project was cantankerous, losing data sources or just plain not displaying.  Every time they sat at a new computer to work on the project, they had to re-download the project file and then rebuild their maps.

So, to make their lives (and mine!) easier this semester, I set about hacking John’s project.  Many years ago, when he was still keeping the firefly technique for his own personal glory, he introduced a blog post on Severe Satellite Basemaps, which the savvy reader will spot immediately as the foundations for the firefly technique.  This post details downloading Blue Marble images from NASA and desaturating them, for a dramatic backdrop to your data.

I’m generally a pretty lazy person, so rather than wade through all of those beautiful images (they’re a glorious place to get lost), I figured I’d just ride John’s coattails and dissect his Pro project instead.  This way, he’s done all the hard work of collecting the images, setting up the layers and customizing them, and I can simply bask in the sunlight of having fewer student issues, and also tricking them into working a little harder for that firefly-y goodness.  (See, John? I can make up words too!)

So, if you’re having some challenges with that Pro pack yourself, or you just want a little peek into John’s genius/madness, here’s how to do it yourself:

Getting the Goods

Grab that starter package from here.   Because of our IT policies, we’re still in Pro 2.2, so the Open in ArcGIS Pro option doesn’t work for us, but the Download option does.

Simplify your life, or at least your Contents pane.  John built in some nifty, scale-dependent layers on the side, and as you zoom in and out, you’ll notice that only one of these displays at a time.  Zoom to the level that you want for your basemap, identify which of the groups (0-5) is displayed, then remove the rest of them, just to make life less confusing.  My students will be working with data for North America, so I zoomed in there, which turned out to be group 2, given my screen size. YMMV.

Get coordinated.  In my map, although the map frame is displayed in Web Mercator, the individual image tiles all act like they don’t know they have a coordinate system, so exporting the raster layers proved a little tricky.  So, I exported the vector layers first, because they’ve got it together, and will export as WGS 1984.  Once you export one of them and let Pro add it to your map, the raster export tool will now let you choose that layer as a CS for the raster export.

Only take what you need.  If you look closely, you’ll see that Coast and CoastGlow are the same layer with different symbology treatments.  Same for LatLongOceans and its glowy counterpart.  So just export one of each, and then you can reuse them in your new basemap (more on that later).  Same for the Color and Black and White imagery layers – they’re just duplicates, symbolized differently.  I also poked around to see which tiles were displayed in my North America extent, and chose only to export those couple of tiles, but choose whichever ones are visible in your extent, or take them all.  It’s your disk space.

To vignette or not vignette?  The vignette effect is pretty subtle, but can be pretty cool.  In my chosen extent, it barely shows up, so I decided not to export it, but you do you.

You should now have all the layers you need: a Coast layer, a LatLongOceans layer, a set of image tiles, and optionally, vignette layers.

Putting it all back together

Here’s where I reveal John’s secrets.  For reassembly, I recommend a fresh Pro project, just to get rid of any lingering whatever that caused my students such grief.

  1. Set your map frame background to Black.  (This is also a great time to set your display CS – see previous post on Projections and their misuse.)
  2. Bring in your image tiles, and group them.  Name this group Color, and set it to 80% transparent
  3. Copy the Color group, and paste it into your map frame.  Rename it Black and White, and move it to the bottom of your layers.  Set the group to 30% transparent.
    1. Set the Symbology for each layer in this group to Stretch, and use the default grayscale ramp.
  4. Add in your LatLongOceans layer.  Symbolize as Unique Values, using the field DEGREE5.  Remove all values, then add back in just the Y value.
    1. Change the symbol to something bright blue (although an orangey-yellow can look pretty cool, too), set the line weight to 0.5pt and the layer to 80% transparent
  5. Copy LatLongOceans and paste it into your map frame.  Rename as LatLongOceansGlow and move it underneath LatLongOceans.
    1. Adjust the line weight to 5pt and the layer transparency to 95% transparent
  6. Add the Coast layer to your map.
    1. Set the fill color to No color and the outline to Sahara Sand, 0.5 pt, and make the layer 75% transparent.
  7. Copy Coast and paste it into your map frame.  Rename as CoastGlow and move it underneath Coast.
    1. Adjust the outline to 3 pt and set the layer to 95% transparent.
  8. Optional: Add in the vignette layers.  These should already be suitably transparent, but feel free to adjust.

And there you have it.  You should now have a a snazzy but low-key basemap ready for firefly-ification.

With thanks to @John_M_Nelson for allowing me to ruthlessly dissect his contributions!


The first week in Pro, it’s a doozy!

Let me start with a little context: In our program, we want to prepare students for as many types of GIS environments as we can.  So, we start them out in ArcMap, which still has a strong fanbase, then expose them to Pro in a couple of courses, and multiple open source options in the later courses.

The students have been in ArcPro for about a week now, and for most of them, it’s the first time they’ve touched this shiny new version of ArcGIS.  It’s a tough slog.  By this point, they have two or three other geospatial courses under their belts, enough to start really feeling comfortable with ArcMap, and now we’re asking them to remember all the concepts, but chuck out most of the techniques they’ve learned.

It’s a bit like getting into a rental car and not being able to figure out how to work the windshield wipers, but all the time, with everything they’re trying to do.  They know the button is there somewhere, but nope, that’s the cruise control – oh, there it is, now does it go up or down?  Fortunately, crashing ArcMap seldom results in lasting injuries.

So I start them out with a heavily step-by-step introduction to both the interface and map design principles.  (Shameless book plug: Chapter 2 closely resembles this lab.  Link below.)  Here are the places where they often stumble:

  1. Creating a new map.  I provide a starter project (.aprx) file for them to get them past the first obstacle of having no map at all, as this is almost always bewildering to users of ArcMap who are accustomed to having a map window pop up right away, and instead get a dashboard of stuff they don’t know how to process.  We’ll deal with that particular balrog in a future lab.
  2. What is this “stuff” in my new map?  When you insert a new map, you get a complimentary set of layers that, frankly, I don’t know why you’d want.  There’s a setting in the Options where you can set the default basemap to None, which I did immediately on my own computer.  I don’t need someone else’s base layers in my map, and we prohibit students from using pre-designed layers in this class anyway, since it’s all about them learning to design their own stuff.   But guess what?  That setting doesn’t stick when you’re in a laboratory setting, so every time they log into the computer, they have to do that again (or delete layers from every new map).
  3.  Folder connections don’t stick.  They’re a little bit used to this, as even in ArcMap, the connections went away when the computer profiles reset (in our case, every night), but in Pro, every time you start a new project, you have to make new folder connections, even on your own computer.  The folks at Esri have provided some very plausible reasons for this, relating to organizations that have 8,000 years of folder connections stacked in their Catalog window, but I find it frustrating.  I’d prefer something like a setting in Options, or even something IT policy could determine, like a “keep alive” setting that disconnects them after x days, or x days of non-use.  Anyway, you need to remind your students to make folder connections every time they open Pro (which is sometimes a lot with new users who may rage quit, or opened the wrong lab project, etc.).  Also, trying to coast without them often results in empty results when browsing for data.
  4. OMG, my map is gone! Translation: I’ve added a Layout, and it’s empty.  I actually love this, because it means I can make multiple layouts in my project, and pick and choose which maps go in which ones, which is super awesome, and thanks so much to the Pro team for adding this one 🙂  However, for ArcMap users used to flipping over to Layout view and finding all their data frames there in a heap waiting to be organized, it’s a little traumatic.  So, you’ll want to prepare your students for this.

For us old dogs who have been using ArcMap since the dawn of time, there’s also the challenge of troubleshooting in Pro.  It crashes less often, but there are some funky little things (like the empty folder windows noted above) that only crop up when you have 30 students doing things 30 different ways and pushing buttons you’d never think of pushing yourself.

If you’re teaching in Pro, I’d love to hear your top stumbling blocks with students in the comments.

Happy mapping!

Disclaimer: One of the key components of this blog will be talking about teaching students in ArcGIS Pro, and the conversion from ArcMap to ArcPro as a coordinated effort across our program.  I receive no compensation from Esri or its affiliates for these posts, but I did write a book last year called Mapping with ArcGIS Pro, which you might find useful if you’re starting out with maps or ArcPro.