in jena-weather/data.js [52:116]
async load() {
let response;
try {
response = await fetch(LOCAL_JENA_WEATHER_CSV_PATH);
} catch (err) {}
if (response != null &&
(response.statusCode === 200 || response.statusCode === 304)) {
console.log('Loading data from local path');
} else {
response = await fetch(REMOTE_JENA_WEATHER_CSV_PATH);
console.log(
`Loading data from remote path: ${REMOTE_JENA_WEATHER_CSV_PATH}`);
}
const csvData = await response.text();
// Parse CSV file.
const csvLines = csvData.split('\n');
// Parse header.
const columnNames = csvLines[0].split(',');
for (let i = 0; i < columnNames.length; ++i) {
// Discard the quotes around the column name.
columnNames[i] = columnNames[i].slice(1, columnNames[i].length - 1);
}
this.dateTimeCol = columnNames.indexOf('Date Time');
tf.util.assert(this.dateTimeCol === 0, `Unexpected date-time column index`);
this.dataColumnNames = columnNames.slice(1);
this.tempCol = this.dataColumnNames.indexOf('T (degC)');
tf.util.assert(this.tempCol >= 1, `Unexpected T (degC) column index`);
this.dateTime = [];
this.data = []; // Unnormalized data.
// Day of the year data, normalized between 0 and 1.
this.normalizedDayOfYear = [];
// Time of the day, normalized between 0 and 1.
this.normalizedTimeOfDay = [];
for (let i = 1; i < csvLines.length; ++i) {
const line = csvLines[i].trim();
if (line.length === 0) {
continue;
}
const items = line.split(',');
const parsed = this.parseDateTime_(items[0]);
const newDateTime = parsed.date;
if (this.dateTime.length > 0 &&
newDateTime.getTime() <=
this.dateTime[this.dateTime.length - 1].getTime()) {
}
this.dateTime.push(newDateTime);
this.data.push(items.slice(1).map(x => +x));
this.normalizedDayOfYear.push(parsed.normalizedDayOfYear);
this.normalizedTimeOfDay.push(parsed.normalizedTimeOfDay);
}
this.numRows = this.data.length;
this.numColumns = this.data[0].length;
this.numColumnsExcludingTarget = this.data[0].length - 1;
console.log(
`this.numColumnsExcludingTarget = ${this.numColumnsExcludingTarget}`);
await this.calculateMeansAndStddevs_();
}