seed house and power data
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
bin/
|
bin/
|
||||||
|
data/example/
|
||||||
|
|||||||
@@ -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){
|
||||||
|
|||||||
@@ -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();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(){
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ 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",
|
||||||
instanceMethods: {
|
instanceMethods: {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user