#!/usr/bin/php
<?php
namespace SmartData;
require_once( __DIR__ . '/../Backend.php');
require_once( __DIR__ . '/KairosGetter.php');
$time_interval = Time::MONTH;
$to_be_imported = array();
//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Domain: hydrology
//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
$_domain = 'hydro';
$_begin = strtotime("2017/01/01")*1000*1000; // from the beginning
$_end = strtotime("2018/10/01")*1000*1000;
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_f1_lvl', // Exutorio
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Length, 374672400, -423762500, -293721000, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_f7_lvl', // CCJ
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Length, 374642900, -423784200, -293727600, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_f6_lvl', // Aplicacao
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Length, 374619700, -423795900, -293741100, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_f5_lvl', // CDS
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Length, 374636700, -423757700, -293773100, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_fa_plu', // ESMESC
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Length, 374874100, -423624800, -293662600, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => '000050c58075b2700490226529d4620000000000000000000000000000ffffffffffffffff', // HU01
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Water_Flow, 374677500, -423772800, -293700300, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => '00fc7fcf9f75b2700490226529d4620000000000000000000000000000ffffffffffffffff', // HU01
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Water_Flow, 374677500, -423772800, -293700300, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => '000050c580a7b2700490226529d4620000000000000000000000000000ffffffffffffffff', // HU02
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Water_Flow, 374677600, -423772700, -293700200, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => '00fc7fcf9fa7b2700490226529d4620000000000000000000000000000ffffffffffffffff', // HU02
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Water_Flow, 374677600, -423772700, -293700200, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => '00fc7fcf9f059b700424346529d4620000000000000000000000000000ffffffffffffffff', // HU03
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Water_Flow, 374672600, -423773000, -293706400, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => '00fc7fcf9fcdb670043b526529d4620000000000000000000000000000ffffffffffffffff', // HU05
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Water_Flow, 374690300, -423766300, -293692900, 0, $_begin, $_end, 0)
// ));
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => '00fc7fcf9f0da470043b396529d4620000000000000000000000000000ffffffffffffffff', // HU06
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Water_Flow, 374695800, -423766400, -293685900, 0, $_begin, $_end, 0)
// ));
// $begin = strtotime("2017/08/09")*1000*1000; //*since: 09/08/2017
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_fb_Pluviometer', // BU
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Length, 374665000, -423767000, -293725000, 0, $_begin, $_end, 0)
// ));
// $begin = strtotime("2017/09/15")*1000*1000; //*since: 15/09/2017
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_f8_lvl', // Corrego Grande
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Length, 374795300, -423642000, -293737500, 0, $_begin, $_end, 0)
// ));
// $begin = strtotime("2017/12/04")*1000*1000; //*since: 04/12/2017
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_f8_tur', // Corrego Grande
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Amount_of_Substance, 374795300, -423642000, -293737500, 0, $_begin, $_end, 0)
// ));
// $begin = strtotime("2017/02/07")*1000*1000; //*since: 07/02/2017
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_f9_lvl', // Ana D'Avila
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Length, 374880900, -423611900, -293673500, 0, $_begin, $_end, 0)
// ));
// $begin = strtotime("2017/12/02")*1000*1000; //*since: 02/12/2017
// array_push($to_be_imported, array(
// 'domain' => $_domain, 'begin' => $_begin, 'end' => $_end, 'metric' => 'h_f9_tur', // Ana D'Avila
// 'series' => new Series(SmartData::STATIC_VERSION, TypicalUnit::Amount_of_Substance, 374880900, -423611900, -293673500, 0, $_begin, $_end, 0)
// ));
//$__FORCE_SCREEN_LOG = true;
foreach($to_be_imported as $series_metadata) {
$domain = $series_metadata['domain'];
$begin = $series_metadata['begin'];
$end = $series_metadata['end'];
$metric = $series_metadata['metric'];
$series = $series_metadata['series'];
$cred = new Credentials($domain, Config::config()::CASSANDRA_SUPERUSER, Config::config()::CASSANDRA_SUPERPASS);
echo "------------------------------------------------------------\n";
echo "- Importing Series from metric \"{$metric}\" to domain \"$domain\"\n";
echo "- Unit : ".$series->unit()."\n";
echo "- Region : ({$series->x},{$series->y},{$series->z})->{$series->r}\n";
echo "- Dev : {$series->dev}\n";
echo '- From '.Time::time_to_date($begin).' to '.Time::time_to_date($end)."\n";
echo "------------------------------------------------------------\n";
$t0 = $begin;
$t1 = $begin + $time_interval;
$zero = 0;
$cc = 0;
while($t0 < $end){
$series->t0 = $t0;
$series->t1 = $t1;
echo 'Sub-series from '.Time::time_to_date($t0).' to '.Time::time_to_date($t1)."\n";
$json = KairosGetter::query($metric, ($series->t0/Time::mSECOND), ($series->t1/Time::mSECOND));
$json = json_decode($json, true);
$values = $json['queries'][0]['results'][0]['values'] ?? array();
$count = count($values);
if($count > 0){
$batch = array();
foreach($values as $value) {
$_time = $value[0] * Time::mSECOND; // from Kairos
$_value = $value[1]; // from Kairos
// NOTICE: we can get the fields below from $json['queries'][0]['results'][0]['tags']
$_error = 0;
$_confidence = 0;
$_x = $series->x;
$_y = $series->y;
$_z = $series->z;
$smartdata = new StaticSmartData (
$series->unit,
$_value,
$_error,
$_confidence,
$_x,
$_y,
$_z,
$_time,
$series->dev
);
array_push($batch, $smartdata);
}
$__FORCE_VERSION = Config_Common::VERSION_1_1;
$to_db = new Backend_V1_1($cred, true);
echo "Creating data series...\n";
if(!$to_db->create($series))
die ("Create error");
if(!$to_db->insertBatch($series, ...$batch)) {
die ("Insertion Batch Failed! [$count entries]\n");
} else {
echo "Insertion Batch Done! [$count entries]\n";
}
}
$t0 += $time_interval;
$t1 += $time_interval;
}
}