book

Report

As a team, answer a subset of the questions submitted during the hackathon. But instead of using Tableau, you will need to write Javascript/Lodash code to derive your answers. Similar to before, each team member is responsible for one question. But everyone should work together to come up with a good solution. Your answer should consist of Lodash code and a brief writeup. Utilize _.map, _.filter, _.group ...etc. Do not se any for loop.

This time, the data is not already prepared for you in a nice JSON format. You will need to do it on your own, replacing the placeholder birdstrike.json with real data.

I exported the data to CSV from LibreOffice and then used

csvcut -c 'Airport: Name','Aircraft: Airline/Operator','Aircraft: Make/Model','Effect: Indicated Damage','When: Phase of flight','Feet above ground','Conditions: Sky','Cost: Total $' birdstrike.csv | csvjson --indent 4 > birdstrike.json

With resulting data of the format

console.log(data[0])
console> { "Airport: Name": "NEWARK LIBERTY INTL ARPT", "Aircraft: Airline/Operator": "CONTINENTAL AIRLINES", "Aircraft: Make/Model": "B-757-200", "Effect: Indicated Damage": "No damage", "When: Phase of flight": "Take-off run", "Feet above ground": "0", "Conditions: Sky": "Overcast", "Cost: Total $": "0" }

what are the condition:sky where usually caused a damage? - by fadhilfath

return _.chain(data)
        .groupBy(function(obj) { return obj["Conditions: Sky"]; })
        .mapValues(function(arr) { return arr.length; })
        .value();

{
 "Overcast": 8594,
 "": 50151,
 "No Cloud": 23686,
 "Some Cloud": 16157,
 "No Clouds": 668,
 "Some Clouds": 148
}

Kevin Gifford: Flight Phase of Birdstrikes:

return _.chain(data)
        .groupBy(function(obj) { return obj["When: Phase of flight"]; })
        .mapValues(function(arr) { return arr.length; })
        .value();

{
 "Take-off run": 11914,
 "": 34738,
 "Climb": 10409,
 "Approach": 26329,
 "En Route": 1973,
 "Landing Roll": 11419,
 "Descent": 2032,
 "Taxi": 215,
 "Parked": 60,
 "Landing": 315
}

What is the correlation between the feet above the ground and the number of bird strikes

return _.chain(data)
        .groupBy(function(obj) { return obj["Feet above ground"]; })
        .mapValues(function(arr) { return arr.length; })
        .value()

{
 "0": 22898,
 "1": 45,
 "2": 84,
 "3": 66,
 "4": 31,
 "5": 516,
 "6": 21,
 "7": 20,
 "8": 24,
 "9": 5,
 "10": 1496,
 "11": 1,
 "12": 8,
 "13": 5,
 "14": 2,
 "15": 241,
 "16": 1,
 "19": 2,
 "20": 943,
 "21": 4,
 "22": 1,
 "23": 3,
 "24": 2,
 "25": 273,
 "26": 1,
 "27": 3,
 "28": 1,
 "30": 432,
 "32": 1,
 "33": 1,
 "34": 2,
 "35": 49,
 "37": 7,
 "38": 4,
 "40": 148,
 "43": 1,
 "45": 7,
 "47": 1,
 "48": 1,
 "50": 2302,
 "53": 1,
 "55": 9,
 "60": 54,
 "62": 1,
 "63": 2,
 "65": 7,
 "70": 32,
 "72": 1,
 "74": 2,
 "75": 205,
 "80": 40,
 "83": 1,
 "85": 4,
 "87": 1,
 "90": 38,
 "95": 4,
 "99": 1,
 "100": 2564,
 "105": 1,
 "110": 6,
 "111": 1,
 "115": 1,
 "120": 20,
 "125": 23,
 "126": 1,
 "130": 10,
 "133": 1,
 "140": 3,
 "142": 2,
 "145": 2,
 "146": 1,
 "150": 493,
 "153": 1,
 "160": 3,
 "169": 1,
 "170": 4,
 "175": 10,
 "180": 9,
 "190": 4,
 "200": 1950,
 "210": 5,
 "220": 1,
 "223": 1,
 "225": 2,
 "230": 2,
 "250": 174,
 "255": 1,
 "260": 1,
 "270": 5,
 "272": 1,
 "275": 2,
 "280": 3,
 "300": 1441,
 "320": 4,
 "325": 1,
 "327": 1,
 "330": 3,
 "340": 4,
 "350": 106,
 "360": 1,
 "370": 1,
 "374": 1,
 "380": 3,
 "400": 901,
 "410": 2,
 "420": 2,
 "425": 2,
 "430": 1,
 "440": 2,
 "450": 59,
 "460": 3,
 "470": 3,
 "475": 2,
 "480": 3,
 "490": 1,
 "500": 1991,
 "501": 1,
 "506": 1,
 "510": 1,
 "520": 5,
 "525": 1,
 "538": 1,
 "545": 1,
 "550": 39,
 "560": 5,
 "565": 1,
 "570": 1,
 "580": 2,
 "583": 1,
 "600": 483,
 "620": 1,
 "630": 1,
 "634": 1,
 "640": 3,
 "650": 29,
 "680": 1,
 "700": 467,
 "720": 1,
 "734": 1,
 "740": 1,
 "750": 60,
 "755": 1,
 "760": 1,
 "775": 1,
 "790": 2,
 "800": 805,
 "820": 1,
 "825": 1,
 "850": 15,
 "860": 1,
 "880": 2,
 "900": 232,
 "905": 1,
 "930": 1,
 "940": 1,
 "950": 3,
 "982": 1,
 "995": 1,
 "1000": 1819,
 "1020": 1,
 "1022": 1,
 "1030": 1,
 "1040": 1,
 "1050": 7,
 "1060": 1,
 "1070": 1,
 "1075": 1,
 "1100": 140,
 "1110": 2,
 "1126": 1,
 "1130": 1,
 "1140": 2,
 "1150": 6,
 "1160": 1,
 "1170": 1,
 "1182": 1,
 "1185": 1,
 "1200": 501,
 "1220": 2,
 "1250": 29,
 "1260": 1,
 "1265": 1,
 "1270": 2,
 "1300": 172,
 "1350": 6,
 "1400": 146,
 "1450": 1,
 "1500": 1232,
 "1540": 1,
 "1550": 3,
 "1560": 1,
 "1580": 1,
 "1600": 155,
 "1617": 1,
 "1650": 4,
 "1675": 1,
 "1680": 1,
 "1700": 262,
 "1740": 1,
 "1750": 11,
 "1760": 1,
 "1800": 276,
 "1825": 1,
 "1850": 9,
 "1870": 1,
 "1880": 1,
 "1900": 96,
 "1950": 2,
 "1970": 1,
 "1980": 2,
 "2000": 1232,
 "2081": 1,
 "2100": 71,
 "2130": 1,
 "2150": 2,
 "2200": 174,
 "2250": 6,
 "2300": 116,
 "2350": 4,
 "2375": 1,
 "2400": 97,
 "2440": 1,
 "2448": 1,
 "2450": 1,
 "2500": 620,
 "2530": 1,
 "2550": 2,
 "2600": 97,
 "2650": 2,
 "2700": 228,
 "2720": 1,
 "2750": 1,
 "2800": 86,
 "2850": 5,
 "2900": 27,
 "2950": 1,
 "2970": 1,
 "3000": 1192,
 "3100": 32,
 "3120": 1,
 "3150": 3,
 "3200": 77,
 "3300": 63,
 "3350": 1,
 "3400": 41,
 "3500": 291,
 "3550": 1,
 "3600": 47,
 "3660": 1,
 "3680": 1,
 "3700": 104,
 "3740": 1,
 "3750": 1,
 "3800": 33,
 "3850": 4,
 "3900": 14,
 "4000": 720,
 "4050": 1,
 "4100": 16,
 "4200": 47,
 "4225": 1,
 "4240": 1,
 "4260": 1,
 "4300": 28,
 "4350": 3,
 "4400": 22,
 "4500": 162,
 "4600": 25,
 "4650": 1,
 "4700": 73,
 "4750": 2,
 "4800": 24,
 "4850": 1,
 "4900": 7,
 "5000": 562,
 "5100": 13,
 "5200": 24,
 "5250": 1,
 "5300": 12,
 "5330": 1,
 "5400": 20,
 "5450": 1,
 "5500": 112,
 "5600": 12,
 "5700": 40,
 "5770": 2,
 "5800": 13,
 "5900": 9,
 "6000": 382,
 "6100": 6,
 "6200": 14,
 "6300": 13,
 "6400": 6,
 "6500": 72,
 "6517": 1,
 "6600": 11,
 "6650": 1,
 "6700": 18,
 "6800": 13,
 "6900": 2,
 "7000": 248,
 "7080": 1,
 "7100": 2,
 "7200": 12,
 "7250": 1,
 "7300": 12,
 "7350": 1,
 "7400": 9,
 "7500": 68,
 "7600": 10,
 "7700": 13,
 "7800": 5,
 "7900": 2,
 "8000": 193,
 "8100": 4,
 "8200": 6,
 "8300": 9,
 "8400": 5,
 "8500": 45,
 "8600": 4,
 "8700": 6,
 "8800": 6,
 "8900": 5,
 "9000": 90,
 "9150": 1,
 "9200": 3,
 "9300": 1,
 "9400": 4,
 "9500": 26,
 "9600": 3,
 "9650": 1,
 "9700": 7,
 "9800": 5,
 "9980": 1,
 "10000": 149,
 "10001": 1,
 "10100": 2,
 "10200": 6,
 "10300": 1,
 "10400": 5,
 "10500": 15,
 "10700": 2,
 "10800": 2,
 "10900": 1,
 "11000": 88,
 "11200": 1,
 "11300": 1,
 "11400": 2,
 "11500": 6,
 "11700": 4,
 "12000": 53,
 "12300": 2,
 "12400": 1,
 "12500": 7,
 "12600": 1,
 "12700": 1,
 "12800": 1,
 "13000": 26,
 "13400": 1,
 "13500": 2,
 "13700": 1,
 "13800": 1,
 "14000": 15,
 "14300": 1,
 "14400": 1,
 "14500": 2,
 "14600": 1,
 "15000": 15,
 "15500": 1,
 "16000": 13,
 "16500": 3,
 "17000": 4,
 "17500": 2,
 "18000": 2,
 "18500": 1,
 "20000": 4,
 "21000": 3,
 "21300": 1,
 "22000": 1,
 "23000": 1,
 "24000": 3,
 "25000": 1,
 "30000": 1,
 "31300": 1,
 "": 43955
}

Which airport had the highest number of bird strikes? (Zhya215).

return _.chain(data)
        .groupBy(function(obj) { return obj["Airport: Name"]; })
        .values()
        .map(function(arr) { return [arr[0]["Airport: Name"], arr.length]; })
        .reduce(function(n, p) {
            if ((n[1] > p[1]) && (n[0] != "UNKNOWN")) { return n; } else { return p; }
        }).value()

[
 "DENVER INTL AIRPORT",
 3397
]

Which airline have to incur most repair cost due to damage ? (sumi6109)

return _.chain(data)
        .groupBy(function(obj) { return obj["Aircraft: Airline/Operator"]; })
        .values()
        .map(function(arr) { return [arr[0]["Aircraft: Airline/Operator"], arr.length]; })
        .reduce(function(n, p) {
            if ((n[1] > p[1]) && (n[0] != "UNKNOWN")) { return n; } else { return p; }
        }).value()

[
 "MILITARY",
 9193
]

Which plane model strikes the most birds? (twagar95)

return _.chain(data)
        .groupBy(function(obj) { return obj["Aircraft: Make/Model"]; })
        .values()
        .map(function(arr) { return [arr[0]["Aircraft: Make/Model"], arr.length]; })
        .reduce(function(n, p) {
            if ((n[1] > p[1]) && (n[0] != "UNKNOWN")) { return n; } else { return p; }
        }).value()

[
 "A-320",
 4654
]