Assignment 4 - Data Critique

I did this assignment as a conceptual project.


Data collection becomes a tool for us to know ourselves today. We post blogs, twitters, instagrams. We took hundreds of selfies. We become more forgetful about true memories but remember forever with self-tracking data.  Would we understand ourselves better by going over all of our past post again? Are they representing the real us? Are we modifying our lives and characters by polished words and pictures? Are we who we are on social media?

For these questions, I was thinking about hosting an event or party, asking people wearing a mask generated by their selfies on social media, and let them hangout with friends and strangers.




There are two options to generate the mask after people registered the event and sent their social media account.

1) Choose the selfie which got the most likes, and use a 3D Face Reconstruction tool to make it.

2) Morph all the selfies together as one face, which has more problem about merging different face angles, then use 3D Face Reconstruction tool

Then make the mask with colored 3D printing and give it to the person before the event.



Assignment 3 -Spatial data

For this assignment, I treat it as a chance to learn new tools in class, such as mapbox.


Public surveillance and privacy is a hot topic today, so I was wondering the surveillance camera setting in this big city. Is it covered everywhere? Is it too dense to cause concern?


1. Download data from here into google sheets

2. Translate address to coordinates in google sheets with tutorial from here 

camera sheets.jpeg

3. Visualization and editing in Mapbox


Final outcome



The translation from address to coordinates is definitely inaccurate, which needs to improve by a new solution.

The  visualization choices in Mapbox is very limited.

Data is not verified. (Should we consider the verification of data source when we use it? )

Assignment 2 - Text data

As a group with Manning and Pan, I was in charge with data finding and basic processing.

Idea building

When we talk about text data, we talk about meaning, communication, emotion, and expression. Since all of us are fans of the TV show <Friends>, we thought about using the scripts of this show as our data source. We were thinking about different kinds of data visualization of this script, such as places they went to in NY, relationship or intimacy between these six characters according to time, and personal characteristic analyzing from each one's words choosing. But finally we decided to try something different from visualization, vocalization.

Then we had this conversation about creature communication with each other without words, like bird. So what is going to be like when we have no text and talk like a bird in a super abstract way, can we express ourselves very well? Can we sense the emotion from each other?

Finally we settled down our idea about "script vocalization in a abstract way".

For this assignment I really want to treat it as a chance to learn node.js with this sentiment library . I failed before our presentation, so I did data processing in Excel, again, for my team. After that I spent more time on it and figure it out as below.


1. Data collection

I kept this 10 seasons <Friends> script for a long time. It's a large quantity of data, so we choose on episode, episode 10 in season 7, as our data source.

2. Basic data analyzing

1) clean up raw data


2) analyse sentences' sentiment in Node.js and export result to team member so that they can play music based on character name and sentiment scores in p5.js.

var sentiment = require(‘sentiment’);
var fs = require(‘fs’);
var path = require(‘path’);

var filePathRead = path.join(__dirname, ‘friends.txt’);
var filePathWrite = path.join(__dirname, ‘friends-out.txt’);

var readStream = fs.createReadStream(filePathRead, ‘utf8’);
var writeStream = fs.createWriteStream(filePathWrite,’utf8’);

//read file and split it to myData[][]
readStream.on(‘data’, function (chunk) {
var myData = new Array();
var data = chunk.toString().split(‘\r’);
for (var i = 0; i < data.length; i++) {
//console.log(“data[“+i+”]:” + data[i]+”\r\n”);
myData[i] = new Array();
myData[i] = data[i].split(“:”);
//console.log(myData[i][0]); //all the [][0] is the name of scentence speaker
// for(var j = 0;j// console.log(“myData[“+i+”][“+j+”]:”+myData[i][j]+”\r\n”);
// }

readStream.on(‘end’, function(){
//console.log(“length of myData:”+myData.length);

function getSentiment(data){
for(var i = 0; i for(var j = 1;j data[i][j]=sentiment(data[i][j]).score;


In this project, I went through the whole Node.js basic tutorial which is super helpful for my future skill set.

Assignment 1 - Data Self-Portrait

Final piece:


I feel interesting that someone says "you might present yourself as someone else on anonymous social networks". That makes me curious about how I look like on internet. So I made this self-portrait according to 7 years' data from my most used social network website, Weibo, which is a Chinese version of twitter. Each row is one month and each dot is one day. The different shapes of dots represent different number of my posts on that day. This is the evidence of my existence on this digital public. It show's how I appeared on and gradually disappeared from this web public.




Home page of my Weibo

1. Data collection

The website only allow me to download some useless data, so I found a crawling tool called gooseeker, which can automatically grab specific informations on webpages. Then I got all my 1894 posts in 7 years as a .xml file.

2. Data screening and rough analysing

The raw data has so many information, but I only need is the time I posted. I separated the"year-month-date time" column with function "text to column", counted posts based on dates by function "subtotal", then inserted zero-post dates to the timeline using formula "=IF(ISERR(VLOOKUP(F2,B:C,2,)),"0",VLOOKUP(F2,B:C,2,))", finally I got the "date to post number" set, and a rough graphic analyzation to get better understand of this data set.

Raw Data

Raw Data

Final data set with rough graphic analyse

Final data set with rough graphic analyse

3. Translate number to image

I manually separated every month as a column and replaced the number to different symbols, so that I can get a image by screen capture.


4. Image processing in Photoshop/Text editing in Illustrator