This material is based upon work supported by the National Institutes of Health under Grant # R01 CA95949-01 Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Institutes of Health, the National Cancer Institute, or the Pennsylvania State University.

Recent News

Geovisualization of the 2004 Presidential Election

I've created this page so that people can download the 2004 Election results by county and view them using a geovisualization toolkit we're developing here at the Penn State GeoVISTA Center.

Download 2004 Election County Results GIS Data (in ArcGIS shapefile format) here. (Updated 11.4.08 to fix problems with Florida results)

I developed this dataset in 2004 to demonstrate the capabilities of the ESTAT Geovisualization toolkit. ESTAT (Exploratory Spatio-Temporal Analysis Toolkit), and is based on the open-source JAVA project called GeoVISTA Studio. Studio is a visual programming environment that lets you assemble geovisualization applications like ESTAT (and ones far more complicated).

The data files formatted for ESTAT are located in the /data directory in the ESTAT archive linked below. This data was created in ArcMap 9.0, so there may be compatibility issues with older versions of ESRI software.

I assume that many people will find this page useful because of the database alone - but I encourage you to try ESTAT, as it is not anything like the GIS you have encountered before. It's designed for exploration, and therefore interaction and dynamism are its strong suits. It augments, not replaces, traditional GIS software.

Check out the FAQ at the bottom of this page.

UPDATED: 8.1.2005 - There is a new home on the web for ESTAT, with newer toolkits and documentation. I will keep this page here since it has proven quite popular, but you should check this link for future developments:

To install ESTAT:

Download ESTAT here.

Unzip the archive and make sure you have selected the "use folder names" option so that it creates the right directory structure. I recommend you unzip it to C:\ with this option so that it creates C:\pcpHome... etc.

Navigate to the C:\pcpHome\ folder using My Computer or Finder or whatever file manager program you prefer.

Double-click the file called ESTAT.jar to launch ESTAT.

In the extremely unlikely event that you do not have Java (JRE) installed on your machine, head over to Sun.

Also, if you run into memory issues while using ESTAT (usually when resizing the PCP window), for Windows users we have a solution:

Launch ESTAT from the command prompt with the following:

C:\pcpHome\java -Xms1024m -jar ESTAT.jar

Hopefully we will have an installer or sort out JWS for ESTAT in the near future - (un)fortunately I'm not a programmer myself, so I can't make that happen immediately.

Using ESTAT to look at the 2004 Election Data:

First, if you haven't yet, launch ESTAT.

Once ESTAT has loaded (it takes a little bit, be patient), click the folder icon in the upper left corner. This will start the ESTAT Data Wizard.

Since this is the first time you're using ESTAT, make sure the "Create New Project" option is selected and click "Next" to proceed.

The Wizard will prompt you to choose the types of data you want to load. I haven't created any time series data, so for now please deselect the "Time Series" option and leave the "Primary Data" option selected. Click "Next" when you're ready.

Now you need to select the paths for the three files ESTAT needs for this particular project. The first file, an "Ob" file, is the database of county records. Click the folder icon for the "Ob" file path selector and navigate to "C:\pcpHome\data\Election2004\2004_Election_Counties_Ob.csv."

Click "Ok" when you've selected this file.

Next, do the same with the "ObMeta" and "Shape" files.

The "ObMeta" path should be "C:\pcpHome\data\Election2004\2004_Election_Counties_ObMeta.csv."

The "Shape" path should be "C:\pcpHome\data\ArcGIS Files\2004_Election_Counties.shp."

Leave the checkbox for "Projected Data" unchecked - as these data are provided in geographic coordinates and need to be projected in order to appear properly.

The final portion of the ESTAT Data Wizard allows you the opportunity to select the variables you'd like to look at from the dataset you have selected. In this case, I have compiled 66 variables across a range of different categories, from a number of different sources for 3111 counties in the lower 48 states. Use the icons and the variable moving tools to sort and select the variables you are interested in. ESTAT features a special visualization tool called a parallel coordinate plot that lets you visualize lots of variables at once, so don't feel restricted by what you might be accustomed to!

Click the "Finish" button when you're ready and ESTAT will load all of the data you've selected. In this case, since you have no temporal data, you'll be shown three panels. The top left corner is a Scatterplot, the bottom left is a Bivariate Map, and the upper right is a parallel coordinate plot.

Our tools are designed to be dynamically linked at all times and provide lots of visual feedback. So I recommend you start mousing over the views and dragging boxes/lines over things to see how it works. Also, usually the default variables that are placed in the scatterplot and map aren't terribly interesting - so change them to something else, say '% voted for Bush' versus 'pcincome.'

If you want to know more about how these things work, check out this tutorial. In the meantime, here are a couple quick screen captures and explanations of the two things you may not be familiar with in ESTAT:

Bivariate Map:

In this example, I've chosen to map the % of votes for John Kerry versus each county's population in 2000. With a bivariate map, each variable is assigned a color ramp, and these ramps converge on each other. Here, the darkest corner (in the upper right of the legend) represents those places that fall into the upper-most class of Kerry votes as well as the upper-most class of 2000 population. Places that are green are high in Kerry votes but low in population, and places that are purple are simply high in population. Mind you - this does not indicate anything about Bush's vote share - it only shows classes within the range of Kerry votes.

Parallel Coordinate Plot:

The Parallel Coordinate Plot (PCP) is a complicated, albeit powerful visualization method. Each line, in this case, represents a county. The axes represent the variables in this particular dataset, and the lines cross these axes depending on the values each county has for a particular variable. For example, if Centre County, PA has a Bush vote percentage of 52% and Kerry percentage of 47%, then the line for centre county will cross those axes at those points. The PCP in ESTAT lets you roll your mouse over the lines to check out the specific values for each variable in a particular county. Also, you can click-hold and draw a line to select a bunch of lines at once and watch how those places play out across the rest of the PCP, the scatterplot, and the bivariate map.

FAQ Version 1.0:

1. Who built these tools? Lots of people contribute to GeoVISTA Studio, but Jin Chen is the lead developer for the ESTAT application. Email him if you have specific questions about implementing this kind of cool stuff in Java.

2. Why is it called pcpHome? Well, the part of it we're working on the most is the PCP - the Parallel Coordinate Plot. What's that? Check out the ESTAT Quickstart Guide here.

3. How come the map looks really distorted? It's likely that you checked the box in the data wizard that says "Projected Data." Originally, my instructions on this page told you to do that - but somebody else correctly pointed out that this was wrong. As a result, you may have seen a weird warped version of the United States (one that isn't a cartogram that should appear that way).  

4. Why does it tell me "obj passed in must be a double[] or int[]"? In the final stage of the Data Loading wizard you need to move the variables you'd like to visualize over into the empty right-hand portion of the panel. If you pick only one to look at, you'll get this error message. This is because ESTAT is by default a multivariate tool - and is specially designed to handle far more than even a few variables. I recommend for first timers just to move all of the available variables over at once (using the double arrow button) and then clicking "Finish" to have ESTAT load everything.

5. Is there a place I can report bugs or things I'd like to see in ESTAT? Yes! Go here and you can access our issue tracking system - we'd be thrilled to hear your ideas or address your technical issues.

6. Did you really compile all of that data? Yes. I did. I hated it, and it was terribly difficult (especially matching FIPS codes - because I wanted this file to be nice I was very careful about checking a bunch of different ways to make sure they were right).

7. Why bother? Because I couldn't find 2004 Election data by county anywhere for free. I ran across a bunch of people mapping this stuff and I really wanted to map it too, but nobody was sharing this data. will sell it for 49 bucks, and I'm sure it's a little nicer and more complete, but that's 49 bucks for something that I think shouldn't cost a dime. It's our election, right?

8. Where can I find out more about these sorts of tools? and .

9. Where can I download more tools like these? Right here. (they'll even work fine with the data I've provided at this page!)

10. Are there minimum system specs for this application? Not officially, but I wouldn't try it on anything less than a 1 Ghz P4. I'd recommend 512 mb of RAM, too. If you are crashing ESTAT a lot it's probably because you have resized the PCP window, which takes a lot of memory to draw - by default the Java VM only allocates 128 mb of system memory, and the only way we know of avoiding that problem at the moment is by launching ESTAT from the command line and specifying a different memory 'heap' size. We're trying to figure out a more elegant solution for that.

11. Will this run on my Mac/Linux/Whatever? Yes, as long as you have the appropriate Java VM installed. I'm unable to do tech support for installs on non-PCs, however. UPDATED: We may have figured out a solution for this - try our new self-executing .jar file. We are continuing to look for an installer for this that will work across all platforms (and is free!).

12. Do you have data that shows _____ ? What I have I've posted - if you have access to county level data for the lower 48 states that shows something you think might be interesting, please let me know and I'd be happy to add it to the database and share it with everyone else.

Questions or comments? Email me here.