Load this example in Data Janitor
SpaceX has its flight manifest directly on their website. The objective is to extract NASA launches to the International Space Station and determine the number of days between those launches.
First step is to copy the data from the SpaceX Manifest web page, and paste it into Data Janitor.
Second step is to write the JavaScript function to transform that data. It is necessary to sort rows by launch date in order to calculate days elapsed. I wrote a special function sortByDate
for sorting. It uses Underscore.js's sortBy
to do that. The comparator function uses Moment.js's unix
function to convert to a timestamp. Notice that only NASA launches are processed.
function sortByDate(list, column, descending) { return _.sortBy(list, function(o) { return moment(o[column]).unix() * (descending ? -1 : 1); }); } function process(input, columns) { input = sortByDate(input, 'LAUNCH DATE'); var output = []; var lastDate; input.forEach(function(inRow, r) { if (inRow.CUSTOMER.indexOf('NASA RESUPPLY TO ISS') >= 0) { var date = moment(inRow['LAUNCH DATE']); outRow = { Launch: date.format('LL'), 'Days since last launch': lastDate ? date.diff(lastDate, 'days') : '', Customer: inRow['CUSTOMER'], Site: inRow['LAUNCH SITE'], Vehicle: inRow['VEHICLE'] }; lastDate = date; output.push(outRow); } }); return sortByDate(output, 'Launch', true); }
And the output. Notice we are missing flight 7. This relates to flight CRS-7, where Falcon disintegrated 139 seconds into flight on June 28 2015. It took another year (360 days) before the next launch.
1 | June 29, 2018 | 88 | NASA RESUPPLY TO ISS (FLIGHT 15) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
2 | April 2, 2018 | 108 | NASA RESUPPLY TO ISS (FLIGHT 14) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
3 | December 15, 2017 | 123 | NASA RESUPPLY TO ISS (FLIGHT 13) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
4 | August 14, 2017 | 72 | NASA RESUPPLY TO ISS (FLIGHT 12) | KENNEDY SPACE CENTER (39A) | DRAGON & FALCON 9 |
5 | June 3, 2017 | 104 | NASA RESUPPLY TO ISS (FLIGHT 11) | KENNEDY SPACE CENTER (39A) | DRAGON & FALCON 9 |
6 | February 19, 2017 | 216 | NASA RESUPPLY TO ISS (FLIGHT 10) | KENNEDY SPACE CENTER (39A) | DRAGON & FALCON 9 |
7 | July 18, 2016 | 101 | NASA RESUPPLY TO ISS (FLIGHT 9) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
8 | April 8, 2016 | 360 | NASA RESUPPLY TO ISS (FLIGHT 8) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
9 | April 14, 2015 | 94 | NASA RESUPPLY TO ISS (FLIGHT 6) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
10 | January 10, 2015 | 111 | NASA RESUPPLY TO ISS (FLIGHT 5) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
11 | September 21, 2014 | 156 | NASA RESUPPLY TO ISS (FLIGHT 4) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
12 | April 18, 2014 | 413 | NASA RESUPPLY TO ISS (FLIGHT 3) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
13 | March 1, 2013 | 144 | NASA RESUPPLY TO ISS (FLIGHT 2) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |
14 | October 8, 2012 | NASA RESUPPLY TO ISS (FLIGHT 1) | CAPE CANAVERAL (40) | DRAGON & FALCON 9 |