Time is a theme that appears in many stories. For instance, some interesting story maps that include time show tracking the spread of diseases like Zika or white nose syndrome (which affects bats), finding patterns in where and when car accidents occur to help make roads safe, or the history of national parks in the US.
To show time in a story map you first need to publish or find layers that show temporal data and add them to a web map. There are several ways temporal data can be transformed into layers, and how the data is published and presented may dictate — or at least influence — how you show it in a story map. This post shows some ways time can be represented in maps and how you can weave the dimension of time into your story maps.
Time as a layer
A single layer often shows a snapshot of data for a moment in time. For example, Esri’s Living Atlas has US population density layers for 2014, 2015, and 2016 (as well as other years). These layers do not have any time-stamped attributes that vary with time, but each layer as a whole represents a measurement at a particular point in time. Specifically, each layer represents the population recorded for a single year, so together they could be used to show how population density has changed over time or to compare between two or more years.
Imagery layers capture snapshots of a location at an instant in time. For example, imagery can be used to show the extent of damage caused by a flood or the removal of vegetation surrounding an urban area across several decades.
A single layer can also reflect time by showing the change in an attribute over time, like in this layer of the population change in France between 2006 and 2010.
In each of the cases above, the attribute that is mapped doesn’t vary by time, rather it represents a state or measurement of a phenomenon at a point in time or the change in that state across a period of time.
Pro Tip! For layers that have several attributes corresponding to different times, including charts in a layer pop-up is a great way to show time. In the examples above, the pop-ups show bar charts with three years of information.
Time as an attribute
If a layer has a time attribute (that is, an attribute in a date/time format like “date created” or “time of day”) that means its other attributes vary across time. In this case simply rendering the layer as-is will show all available data across time, which may not show the interesting patterns you want to communicate in your story.
For storytelling purposes, you’ll likely want to refine the display to show specific times or ranges. To do this you can filter or style the layer by time — or even publish it as a time-enabled layer that will exhibit special behavior.
Filtering by time
A layer with a time attribute can easily be turned into a snapshot layer using filters. If you need more than one snapshot or range, simply create copies of the layer and apply different date filters to each copy. Choosing a date/time attribute in the filter will present date-specific operators like “is on,” “is before,” and “is between” that will let you specify a snapshot or a time range. For more information on how to filter by date see the the help on how to Apply Filters.
Smart Mapping with time
There are several ways to style layers to show time using Smart Mapping. You can use the time-based smart mapping renderers like Continuous Timeline and Age to present data that has a time attribute to answer questions like:
- Where are older features and where are newer ones?
- Which features have dates that are before or after a key date?
Using Smart Mapping, you can even combine a time attribute with a second numeric, category, or time attribute using the Color & Size or Types & Size renderers. These renderers let you show time and another variable simultaneously. A layer must have a field formatted with a date/time format to be used with these renderers.
Check out these story maps for more information about showing time using Smart Mapping:
Pro Tip! If the ability to interact with a map is not critical to your story (and if your data isn’t changing) you can prepare your map (either in Desktop or Online), take a screenshot or export it as an image, and add the image to your story. Images will always perform better than live maps and are often the best way to include maps in your story. Use a mix of static map images and dynamic web maps depending on the purpose of each map in your story.
Temporal Analysis Results
You can flex your GIS geek muscles and use some of the advanced spatiotemporal analysis tools in ArcGIS to generate a space-time cluster, space-time cube, or emerging hot spots. Here’s a great story that shows the results of an insightful temporal analysis:
This is a good time to bring up that you can also include charts/graphs in your story to communicate how something changes over time. Charts can be created in your favorite desktop app such as ArcGIS Pro (learn more about making charts in ArcGIS Pro) or Excel and added to your story as screenshots, or you can create and embed dynamic charts using web tools or developer charting APIs (see the nice interactive charts in this story about transportation infrastructure).
Temporal data may also be published as a time-enabled layer, either from ArcGIS Desktop or directly to ArcGIS Online from a file source like a CSV. Time-enabled layers contain time-stamped features across a time range and have special behavior in ArcGIS. Adding a time-enabled layer to a map automatically shows a time slider that can be used to interactively browse the data through time. A time-enabled layer can also be filtered to show a specific date or a range of dates as described above. For example, the National Weather Service’s time-enabled precipitation forecast is a time-enabled layer that’s available in Esri’s Living Atlas.
Pro Tip! Need to aggregate or summarize data by time? Check out this advanced workflow.
If you are using someone else’s layer in your story map, you’ll need to use it in whichever format it has been published. However, if you are starting with your own data, you can choose how to publish it to best tell your story.
Pro Tip! Usually publishing a single time-enabled layer gives you the most flexibility since you can work with the data interactively using a time slider or create copies of it and use filters to show different snapshots or ranges. However, querying very large temporal datasets can be slow, so consider publishing individual snapshot layers if performance becomes an issue.
Interactive time maps can be fun and informative, but keep in mind that when you include one in a story you are leaving it up to your reader to use it the way you envision. That isn’t always a good thing, and you can’t bank on all your readers being comfortable or successful using a time slider. Often a good tactic is to create several snapshot maps that clearly illustrate the patterns and interesting things about your data and present those very deliberately at the beginning of your story as part of your narrative. Later in your story you can provide an interactive map so interested readers can explore further.
Pro Tip! ArcGIS Pro has animation tools that let you animate a map through time. Animations can be exported to video, uploaded to YouTube or Vimeo, and easily added to a story map. Animation videos can work better than embedding interactive time maps since they only require your readers to click “play.” You can also create animated GIFs with screen capture apps like Camtasia. Animated GIFs can be uploaded directly to your story map and don’t require a separate hosting service like videos.
Using temporal layers in story maps
After you create or identify the layers you need you’re ready to add them to your story. Below are a few ways you can present layers showing different time snapshots or ranges in a story map:
- Compare two different time snapshots in a Swipe or Spyglass story map. Example: Kathmandu earthquake before and after imagery
- Show several time snapshots across sections of Journal. Example: Zika Virus: 1947 to 2016
- Show several time snapshots in tabs of a Series. Examples: Canada’s Federal Elections | Historic earthquakes of Australia
- Enable the reader to click to show different time layers using story actions in one section of a Journal.
- Step through time snapshots in views of an immersive section in a Cascade story. Example: How To Cascade: Map Legends
Pro Tip! You can add each layer you need for your story to a different map, but for performance and organizational reasons it’s often best to add all layers to the same map and use the capabilities of the story map builder to toggle layer visibility as needed for each place the map appears. See this article for more information.
Embed the Time Aware app
The Time Aware configurable app is a great way to show time-enabled layers in a story map. It’s the most dynamic way to show time in a story map and provides the most interactivity for your readers. There are many configuration options so you can tailor the experience for your story; for example, you can have the time-enabled map start playing automatically, set the speed of the time animation, and control the number of time steps on the slider and the interval between them.
The Time Aware app works well when added to the main stage of a Journal or Series story. You can also add it to an immersive or narrative section of a Cascade story, but it’s recommended that you set the interaction mode to Button to enable in these situations to prevent your readers from accidentally navigating the map with the scroll wheel.
Here is a great story map about white nose syndrome, a disease that is threatening bats, that uses the Time Aware configurable app.
Do something custom
If you’re a developer, or know one you can work with, you can design your own custom time-enabled story map. Developing a custom app is good solution if you have a specific need to show a phenomenon through time or give your readers the ability to browse and explore an interesting temporal dataset that’s not met by any of the options described above.
For more information
For more information about publishing and working with time-enabled layers see the following resources: