seed house and power data

This commit is contained in:
Eric Hulburd
2016-01-31 11:35:22 -06:00
parent e4513282f9
commit 2c42090cd9
5 changed files with 32 additions and 17 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
node_modules/ node_modules/
bin/ bin/
data/example/

View File

@@ -21,8 +21,6 @@ class Database {
Database[model.name] = model; Database[model.name] = model;
Database.models.push(model); Database.models.push(model);
}); });
console.log("!!!! TEST !!!!")
console.log(Database.PowerDatum);
// add associations // add associations
for (var model of Database.models){ for (var model of Database.models){

View File

@@ -16,33 +16,46 @@ export class PowerDataSeed {
rows = []; rows = [];
csvStream.on("data", function(data){ csvStream.on("data", function(data){
rows.push(rows); data.time = moment.utc(parseInt(data.time)).format();
rows.push(data);
if (rows.length % 100 === 0){
DB.PowerDatum.bulkCreate(rows, {validate: true}).then(()=>{
rows = [];
});
}
}); });
csvStream.on("end", function(){ csvStream.on("end", function(){
DB.PowerDatum.bulkCreate(rows, {validate: true}).then(done); DB.PowerDatum.bulkCreate(rows, {validate: true}).then(()=>{
console.log("DONE!")
done();
});
}); });
} }
static generateCsv(opts, done){ static generateCsv(opts, done){
opts = extend({ opts = extend({
start_date: moment.subtract(1, "months").unix(), start_date: moment().subtract(2, "months").unix(),
end_date: moment().unix(), end_date: moment().unix(),
interval: 15 * 60, // every 15 minutes (in s) interval: 180, // every 3 minutes (in s)
average: 1400, // Wh average: 1400, // Wh
path: __dirname + "/../../data/example/power_data.csv" path: __dirname + "/../../data/example/power_data.csv"
}, opts || {}); }, opts || {});
var row_date = opts.start_date, var row_date = opts.start_date,
csvStream = csv.format({headers: true}), csvStream = csv.format({headers: true}),
writableStream = fs.createWriteStream(opts.path); writableStream = fs.createWriteStream(opts.path),
house_ids = opts.house_ids.split(",")
csvStream.pipe(writableStream); csvStream.pipe(writableStream);
writableStream.on("finish", done); writableStream.on("finish", ()=>{
console.log("DONE!")
done();
});
while (row_date <= end_date){ while (row_date <= opts.end_date){
csvStream.write(house_ids.map((house_id)=>{ for (var house_id of house_ids){
return [house_id, row_date, MathUtils.normal(opts.average)] csvStream.write([house_id, row_date, MathUtils.normal(opts.average)]);
})); }
row_date += opts.interval; row_date += opts.interval;
} }
csvStream.end(); csvStream.end();
@@ -64,7 +77,10 @@ export class HouseSeed {
}); });
csvStream.on("end", function(){ csvStream.on("end", function(){
console.log(rows); console.log(rows);
DB.House.bulkCreate(rows, {validate: true}).then(done); DB.House.bulkCreate(rows, {validate: true}).then(()=>{
console.log("DONE!")
done();
});
}); });
} }
} }

View File

@@ -1,7 +1,7 @@
export default class { export default class {
static normal(average){ static normal(average){
return average + n6() * average; return average + this.n6() * average;
} }
static n6(){ static n6(){

View File

@@ -23,7 +23,7 @@ var PowerDatum = DB.sequelize.define('PowerDatum', {
primaryKey: true, primaryKey: true,
autoIncrement: true // Automatically gets converted to SERIAL for postgres autoIncrement: true // Automatically gets converted to SERIAL for postgres
}, },
time: DB.Sequelize.FLOAT, time: DB.Sequelize.DATE,
power: DB.Sequelize.FLOAT power: DB.Sequelize.FLOAT
}, { }, {
tableName: "power_data", tableName: "power_data",