I created a few Google Earth animated choropleth (literally, area-filling) maps of population change in Ohio. One map shows total population by county from 1900 to 2006. The other shows percent population change from decade to decade. Details on how I created these animated maps along with links to the downloadable KMZ files are below.
In the most recent version of Google Earth (Mac 4.0.2736, Windows 4.1.7087), a “time slider” appears if a KML or KMZ file contains temporal data. For example, many GPS receivers can attach time to a recorded location. When formatted correctly, a series of points can be viewed as an animation in Google Earth, as in this example of a Whale Shark track [download kml]. More examples are in a list of the “Top 10 Time Animations from 2006 in Google Earth” and “Animation Roundup.”
I have not seen any animated choropleth maps in Google Earth. I have my students create animated choropleth maps in one of my courses at Ohio Wesleyan, and thought it would be swell if the students could display the animated maps in Google Earth. The entire project works well for an undergrad cartography/GIS course. Here are my two examples:
There are undoubtedly many paths to getting animated maps into Google Earth. I used Excel (to process historical census data), ArcGIS 9.2 to create the maps, and a utility to export from ArcGIS to Google Earth (Arc2Earth). No free software here, but you may be able to repeat the process using less cash-intensive software (and I will try to do so – in a future post). Also, the animations have a few flaws (the flash between maps, a few counties show up with no color, etc.) that I have yet to work out. But the animations work, more or less.
For more information on timestamps and timespans in Google Earth, see the tutorial “Adding Time as a Fourth Dimension.”
The process below will be detailed in my class lab notes here when I update them later this summer. The jargon below will make sense to those who use ArcGIS.
2. Clean up the data in Excel: so it looks like the image below; then save as DBF4.
3. In ArcGIS: Add a map of U.S. counties (I use ESRI’s counties.shp), select your state, and save the selection as a new layer. Join your DBF4 file to your state, using the county fips codes (FIPS) as the common column.
4. Export your state layer (right mouse click on layer, data, export data). This extracts your state from the entire US shape file, and also combines your joined data: you cannot export an ArcGIS project with a joined table to Google Earth using Arc2Earth (step 9 below) [update: I have been told this bug will be fixed in the next version of Arc2Earth]. Add this layer to your ArcGIS project and delete all other layers.
5. Generate the population change data: in a new field, use the field calculator to determine the percent change from decade to decade. For 1900 to 1910:
( ( ( [ Y1910 ] – [ Y1900 ] ) / [ Y1900 ] ) * 100 )
where Y1900 and Y1910 are the names of the columns of total population for 1900 and 1910. Do this for 1910 to 1920, 1920 to 1930, etc.
6. Copy and paste this layer: create as many layers as you have data for: one for 1900-1910, one for 1910-1920, and so on. I did the same for the total population data (one layer for 1900, one for 1910, etc.) but in a second ArcGIS project file (so two ArcGIS mxd files, one for population change, one for total population). Derived data, such as percent change, is best shown with a choropleth map. Total numbers, such as our total population, are not optimal for choropleth maps because geographic areas vary in size (and thus there may be more of something in a geographic area just because it is larger). But Ohio’s counties don’t vary much in size, so we can map totals (and gaze upon the map, as should you always, with a critical eye).
7. Classify your data: If you want to compare a series of maps, you have to use the same classification scheme, that is, same number of classes and same breaks between classes. The bottom of the classification scheme must be the lowest value in all the years in your series, the top of the classification scheme the highest value. If you have negative and positive values (as with my percent population change data) 0 is a good break. Six or seven classes are a good default but you are certainly allowed more or less. Create a second classification scheme that fits your total population data (in your second ArcGIS project file).
8. Choose colors for the maps: Choose an appropriate color scheme (color value is best). If you have negative and positive values use a double-ended color scheme (as in my percent population change example above). I made the county borders white, and 3 points in size. It looks bad in ArcGIS but good in Google Earth (always design for the final medium). ArcGIS allows you to set the classification scheme and colors in one layer and import them to another layer. This saves you from re-typing the custom classification scheme on each layer.
9. Export to Google Earth using Arc2Earth: While there are several free software packages that convert ArcGIS data to Google Earth data, Arc2Earth was strongly recommended to me (and was affordable, at least for my non-profit college). Arc2Earth operates from within ArcGIS. When you export the whole map, you have a series of options. I chose not to have a legend floating near the map itself (the legend does carry over to the Google Earth Places panel) and left the other settings at default. Select a specific layer and hit the time data tab. I applied a time value to the entire layer: so population change 1900-1910 is set as in this image:
Adjust the time settings in subsequent layers (change 1900 to 1910 and 1909 to 1919 for the 1910-1920 layer, etc.). Hit export.
10. Open the files in Google Earth: when you open the files, you should see the time slider:
You probably want to slow the animations down: hit the clock icon (on the left side of the time slider) to set options, including animation speed. You can hit the play button and watch the entire series of maps, animated, or grab the slider bar and move through the layers yourself.
The flashing of the animation is distracting, but that might disappear if overlapping time spans are imposed on each layer (something I will experiment with). Also, the time slider is broken down by month, implying a monthly resolution of time data rather than the decade resolution of census data. There are certainly a myriad of other details – why a few counties dropped out when exported from ArcGIS, how well colors are maintained from ArcGIS to Google Earth, where best to place a legend (on the map or in the Places panel), how to use placemarks and overlays in addition to the animations, etc. But it is great to be able to view animated maps in Google Earth.
I am hopeful that the diversity of ideas about animated maps and animated map types cartographers and others have generated over the last decade will translate into Google Earth.
Update: the GeoChalkboard Blog has a related tutorial entitled “Creating Google Earth Time Display Data with ArcGIS.”