Difference between revisions of "DataVis2012/Projects/Schapiro"

From VistrailsWiki
Jump to navigation Jump to search
 
(11 intermediate revisions by the same user not shown)
Line 14: Line 14:


I think my best bet for geo hyped music data is to scrape the data myself. I have set up a server script to scrape from the Last.fm API. I grab the weekly hyped artists charts for 46 US cities (http://bit.ly/wBWTk7). The two API calls will be geo.getMetroArtistChart and geo.getMetroHypeArtistChart (http://bit.ly/yoYlvF). The results will be stored in a mySQL database.
I think my best bet for geo hyped music data is to scrape the data myself. I have set up a server script to scrape from the Last.fm API. I grab the weekly hyped artists charts for 46 US cities (http://bit.ly/wBWTk7). The two API calls will be geo.getMetroArtistChart and geo.getMetroHypeArtistChart (http://bit.ly/yoYlvF). The results will be stored in a mySQL database.
UPDATE: Full scraped database at: http://theitt.com/InternalProjects/DataViz/lastfm.sql


=== Step 2: Filtering Data ===
=== Step 2: Filtering Data ===
The subset of the artists I use will be decided based on the richness of the data that is scraped. Hopefully we'll see something interesting here!
The subset of the artists I use will be decided based on the richness of the data that is scraped. Hopefully we'll see something interesting here!
I will take the top 5 artists for each city from each week and put into JSON as such:
<pre>
Rank_data = { // obj containing cities
Boston: [ // each city is array of weeks
  [ // each week has array of artist rank objs
{
artist: 'Beyonce',
listeners: 501
},
{
artist: 'Arcade Fire',
listeners: 200
},
...
  ],
  [
...
  ]
]
}
Weeks = [ // use FROM_UNIXTIME over full set of weeks
'2009-02-01',
'2009-02-08',
...
]
</pre>
To keep clutter minimum, I think I'll use this subset of cities:
*Boston
*Austin
*Philadelphia
*Nashville
*San Francisco
*Miami
*New York


=== Step 3: Rendering Data ===
=== Step 3: Rendering Data ===
Line 22: Line 61:
My current design idea is a map of the US (or world) with circles of differing sizes compared to how popular an artist is, overlaced with a connecting line betweens cities traveled to (in order) in the upcoming/previous tour
My current design idea is a map of the US (or world) with circles of differing sizes compared to how popular an artist is, overlaced with a connecting line betweens cities traveled to (in order) in the upcoming/previous tour


==== Version 1: Timecloud ====
UPDATE: After discussing with Silva, the new plan to a slider to deal with time, and as you slide along, tag clouds appear over the various cities of the most popular artists. There is also the option to filter these artists by genre, etc.
UPDATE: After discussing with Silva, the new plan to a slider to deal with time, and as you slide along, tag clouds appear over the various cities of the most popular artists. There is also the option to filter these artists by genre, etc.


I imagine the final result looking something like: http://www.nytimes.com/interactive/2009/02/02/sports/20090202_superbowl_twitter.html
I imagine the final result looking something like: http://www.nytimes.com/interactive/2009/02/02/sports/20090202_superbowl_twitter.html
I may be able to do this by modifying https://github.com/stef/timecloud to place tag clouds atop a static image of the United States or a dynamic image such as: http://www.openstreetmap.org/
Update: MOCKUP at http://theitt.com/InternalProjects/DataViz/tagcloud
'''Conclusion''': This doesn't give very much useful information. Time to go back to my original idea
==== Version 2: Google Maps ====
// rewrite API to take band name and year and find out total number of listeners in each city
// getting past events
// then put them on the map
http://ws.audioscrobbler.com/2.0/?method=artist.getpastevents&format=json&artist=phish&api_key=46d8e5af527082f81cd3e592d5d832a8&limit=300
// numbered icons
http://code.google.com/p/google-maps-icons/wiki/NumericIcons
// circle overlays (for # of listeners in city)
https://developers.google.com/maps/documentation/javascript/reference#MarkerShape
FINISHED: http://theitt.com/InternalProjects/DataViz/tour/
Source code: https://github.com/yono38/Listeners-Concerts-Corr

Latest revision as of 23:27, 7 May 2012

My Projects

Visualizing Music Hype and Music Tour Correlations

I will be mapping out how many people listen to an artist in various metros compared to the most recent tour route.

Step 1: Acquiring Data

The band tour data will be loaded dynamically, using one of the following datasources: Last.fm Eventful Songkick JamBase

I'll need to test and see which produces the most accurate and extensive data.

I think my best bet for geo hyped music data is to scrape the data myself. I have set up a server script to scrape from the Last.fm API. I grab the weekly hyped artists charts for 46 US cities (http://bit.ly/wBWTk7). The two API calls will be geo.getMetroArtistChart and geo.getMetroHypeArtistChart (http://bit.ly/yoYlvF). The results will be stored in a mySQL database.

UPDATE: Full scraped database at: http://theitt.com/InternalProjects/DataViz/lastfm.sql

Step 2: Filtering Data

The subset of the artists I use will be decided based on the richness of the data that is scraped. Hopefully we'll see something interesting here!

I will take the top 5 artists for each city from each week and put into JSON as such:

Rank_data = { // obj containing cities
	Boston: [ // each city is array of weeks
		   [ // each week has array of artist rank objs
			{
				artist: 'Beyonce',
				listeners: 501
			},
			{
				artist: 'Arcade Fire',
				listeners: 200
			},
			...
		   ],
		   [ 
			...
		   ]	
	]
}

Weeks = [ // use FROM_UNIXTIME over full set of weeks
	'2009-02-01',
	'2009-02-08',
	...
]

To keep clutter minimum, I think I'll use this subset of cities:

  • Boston
  • Austin
  • Philadelphia
  • Nashville
  • San Francisco
  • Miami
  • New York

Step 3: Rendering Data

My current design idea is a map of the US (or world) with circles of differing sizes compared to how popular an artist is, overlaced with a connecting line betweens cities traveled to (in order) in the upcoming/previous tour

Version 1: Timecloud

UPDATE: After discussing with Silva, the new plan to a slider to deal with time, and as you slide along, tag clouds appear over the various cities of the most popular artists. There is also the option to filter these artists by genre, etc.

I imagine the final result looking something like: http://www.nytimes.com/interactive/2009/02/02/sports/20090202_superbowl_twitter.html

I may be able to do this by modifying https://github.com/stef/timecloud to place tag clouds atop a static image of the United States or a dynamic image such as: http://www.openstreetmap.org/

Update: MOCKUP at http://theitt.com/InternalProjects/DataViz/tagcloud

Conclusion: This doesn't give very much useful information. Time to go back to my original idea

Version 2: Google Maps

// rewrite API to take band name and year and find out total number of listeners in each city

// getting past events // then put them on the map http://ws.audioscrobbler.com/2.0/?method=artist.getpastevents&format=json&artist=phish&api_key=46d8e5af527082f81cd3e592d5d832a8&limit=300

// numbered icons http://code.google.com/p/google-maps-icons/wiki/NumericIcons

// circle overlays (for # of listeners in city) https://developers.google.com/maps/documentation/javascript/reference#MarkerShape

FINISHED: http://theitt.com/InternalProjects/DataViz/tour/ Source code: https://github.com/yono38/Listeners-Concerts-Corr