Difference: DuckyInfoVisProjectProposal (6 vs. 7)

Revision 72005-11-04 - DuckySherwood

Line: 1 to 1
 
META TOPICPARENT name="DuckyInfoVisProject"
Changed:
<
<

Ducky's InfoVis Project Proposal

Proposal specs
>
>

Ducky's InfoVis Project Proposal

 
Changed:
<
<
Participants
>
>

Participants

 Only me, Kaitlin Duck Sherwood, ducky@csDELETEthisTEXT.ubc.ca
Changed:
<
<
Description
>
>

Description

 I plan to show U.S. population density with a zooming/panning interactive display. I would use data derived from the 2000 U.S. Census.

I might need to restrict the dataset to some subset of the United States because of resource limitations. I am not Google, and cannot store as much data as I suspect would be necessary to provide optimal performance.

Line: 17 to 17
 
  • Allowing the user to select information from one of several different censuses is also clearly within the realm of imagination. I believe that this is slighly more ambitious (in part due to disk space limitations), and probably not within the scope of the class.
Changed:
<
<
Personal expertise:
>
>

Personal expertise:

 
  • I did a project integrating maps, floorplans, and a virtual walkthrough about ten years ago at UIUC.
  • I have investigated several maps/census schemes in the past 10 years, but never gotten past the exploratory stages.
  • I have never written anything in Javascript before, nor any dynamic client-side code of any kind, but would like to learn.
Line: 25 to 25
 
  • This could be a really cool project.
Changed:
<
<
Proposed solution
>
>

Proposed solution

 I plan to show U.S. population by rendering (on the fly, presumably) semi-translucent PNG images from the Census Bureau information that I would then overlay on Google Maps.

There are numerous opportunities for the performance to be inadequate. Determining the right data to display for a given clipping region, retrieving the information, aggregating information (when zoomed out), rendering the PNG image, and serving the image all take time (in addition to the time Google takes, which I won't be able to control). I expect that some caching and prefetching of data will be required.

Changed:
<
<
Scenario
Billy Rubin, a fifth-grade student at Rancho Cowabunga Middle School, is exploring population density as part of his urban housing presentation. He goes to Webfoot's Information Visualization site and is presented with a what looks like a standard Google map of Palo Alto, CA.
>
>

Scenario

Billy Rubin, a fifth-grade student at Rancho Cowabunga Middle School, is exploring population density as part of his urban housing presentation. He goes to Webfoot's Information Visualization site and is presented with a what looks like a standard Google map of Palo Alto, CA. Palo Alto not being Rancho Cowabunga, he zooms out until he finds Rancho Cowabunga, then zooms back in.

Once he has zoomed in to the area he's interested in, he clicks the "Show population" checkbox. The map changes to have a translucent overlay over it. Areas with more people have more of a yellow tinge; areas with fewer people have a bluer tinge.

Billy uses the standard Google controls to move around, and the population overlay moves with the map. Billy is able to click-to-recenter, pan by dragging, pan by clicking on the directional controls, and zoom by clicking on the zoom controls. At every stage, the overlay pans and/or resizes to match the map.

Illustration

The following is a fast and dirty mockup of what the result will look like:

 
Changed:
<
<
Interface mock-ups
@@@ illustrations of what the interface will look like
>
>
Note that the labels on the bar will need to be adjusted once I figure out what reasonable values are. Also note that there will be areas with no people (e.g. big parks, the Stanford Industrial Park, commercial districts, the Bay, etc).
 
Changed:
<
<
Implementation approach
>
>

Implementation approach

 
Changed:
<
<
I plan to use Javascript and the Google Maps API to serve maps, capture pan/zoom events, and to overlay area data on top of the Google Maps.
>
>
I plan to use Javascript and the Google Maps API to serve maps, capture pan/zoom events, and to overlay area data on top of the Google Maps.
 
Changed:
<
<
I plan to use the gd library, probably with a perl wrapper, to generate a transparent PNG image to overlay on top of the maps.
>
>
I plan to use the gd library, probably with a perl wrapper, to generate a transparent PNG image to overlay on top of the maps.
 
Changed:
<
<
I plan to use C language Shapefile C library to parse a variant of the TIGER/Line data -- the ESRI shapefile data -- which includes some population demographic information.
>
>
I plan to use C language Shapefile C library to parse a variant of the TIGER/Line data -- the ESRI shapefile data -- which includes population demographic information.
 
Changed:
<
<
Milestones
Include a list of project milestones with dates, breaking down the work into a series of smaller chunks.
>
>

Milestones

 
Changed:
<
<
Tasks (not milestones):
  • Figure out how to overlay one png on static map
  • Figure out how to overlay another png when map is recentered
  • Figure out if Google Maps can overlay maps fast enough.
>
>
  • 4 November: Proposal
  • 16 December: Update due
  • 19 December: Final due date
 
Added:
>
>
  • Explore different color bars in hope of finding something better
 
  • Find good shapefiles
  • Develop a simple test suite for PNG manipulation
  • Write code to create PNG from one known polygon extracted from shapefile; overlay on Google Maps
Line: 72 to 79
 
  • (aggressive) Add sliders to allow changing the parameters of the image (e.g transparency, hue)
  • (aggressive) Add radio buttons to change data sets
Added:
>
>
  • (aggressive) Allow user to choose from several different years of data
 
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback