Riverview data insertion problem

Hi there,
I’ve been reading about HTM and quite interesting about it so much. I’m interested in HTMEngine Traffic tutorial, but seeing that there’s some problem with RiverView at data.numenta.org, I’m following the guide at riverview GitHub repo to install riverview locally and create a river on my own. However, I’m facing issue while trying to create the river as follow:

  • in the json file that i’m trying to insert, there are 19 records. But when running riverview, it shows only 13 records. I’m trying to use different date, but result always missing some records.
  • while running the “npm start” command, the log shows all 19 records, but not in riverview

I cannot find where to change so that all records are inserted properly.

log when starting command “npm start”

Steam Name 1501548931 860,1100,2352,469
Steam Name 1501548944 865,1100,2352,470
Steam Name 1501548957 865,1100,2352,470
Steam Name 1501548970 865,1100,2352,470
Steam Name 1501548983 861,1100,2352,467
Steam Name 1501548996 864,1100,2352,468
Steam Name 1501549009 862,1100,2352,466
Steam Name 1501549022 864,1100,2352,466
Steam Name 1501549035 864,1100,2352,467
Steam Name 1501549048 865,1100,2352,465
Steam Name 1501549061 864,1100,2352,467
Steam Name 1501549074 861,1100,2352,470
Steam Name 1501549087 863,1100,2352,470
Steam Name 1501549100 860,1100,2352,468
Steam Name 1501549113 860,1100,2352,466
Steam Name 1501549126 864,1100,2352,468
Steam Name 1501549139 863,1100,2352,470
Steam Name 1501549152 862,1100,2352,470
Steam Name 1501549165 861,1100,2352,470

data shows in riverview

datetime	temperature	value1	value2	value3
2017/08/01 08:55:31	860	1100	2352	469
2017/08/01 08:56:10	865	1100	2352	470
2017/08/01 08:56:23	861	1100	2352	467
2017/08/01 08:56:49	862	1100	2352	466
2017/08/01 08:57:02	864	1100	2352	466
2017/08/01 08:57:28	865	1100	2352	465
2017/08/01 08:57:41	864	1100	2352	467
2017/08/01 08:58:20	860	1100	2352	468
2017/08/01 08:58:33	860	1100	2352	466
2017/08/01 08:58:46	864	1100	2352	468
2017/08/01 08:58:59	863	1100	2352	470
2017/08/01 08:59:12	862	1100	2352	470
2017/08/01 08:59:25	861	1100	2352	470

parser.js to create river:

var _ = require('lodash');
var moment = require('moment-timezone');
function dateStringToTimestampWithZone(timeIn, zone) {
    var pieces = timeIn.split('T'),
        dateString = pieces[0],
        timeString = pieces[1],
        datePieces = dateString.split('-'),
        timePieces = timeString.split(':'),
        timeObject = {},
        timestamp;
    timeObject.year = parseInt(datePieces.shift());
    timeObject.month = parseInt(datePieces.shift()) - 1;
    timeObject.day = parseInt(datePieces.shift());
    timeObject.hour = parseInt(timePieces.shift());
    timeObject.minute = parseInt(timePieces.shift());
    timeObject.seconds = parseInt(timePieces.shift());
    timestamp = moment.tz(timeObject, zone).unix();
    return timestamp;
}
module.exports = function(body, options, temporalDataCallback, metaDataCallback) {
  // 1. parse the body
  var payload = JSON.parse(body),
      config = options.config,
      timezone = options.config.timezone;
  moment.tz.setDefault(config.timezone);
  _.each(payload, function(point) {
    var streamId = 'Steam Name',
        timestamp,
        fieldValues,
        datetime = point.datetime,
        temperature = point.temperature,
        value1 = point.value1,
        value2 = point.value2,
        value3 = point.value3;
    fieldValues = [
        temperature,
        value1,
        value2,
        value3
    ];
    timestamp = dateStringToTimestampWithZone(datetime, timezone);
    temporalDataCallback(streamId, timestamp, fieldValues);
    console.log(streamId + ' ' + timestamp + ' ' + fieldValues);
  });
}

json record:

[
 {
   "datetime": "2017-08-01T08:55:31",
   "temperature": 860,
   "value1": 1100,
   "value2": 2352,
   "value3": 469
 },
 {
   "datetime": "2017-08-01T08:55:44",
   "temperature": 865,
   "value1": 1100,
   "value2": 2352,
   "value3": 470
 },
 {
   "datetime": "2017-08-01T08:55:57",
   "temperature": 865,
   "value1": 1100,
   "value2": 2352,
   "value3": 470
 },
 {
   "datetime": "2017-08-01T08:56:10",
   "temperature": 865,
   "value1": 1100,
   "value2": 2352,
   "value3": 470
 },
 {
   "datetime": "2017-08-01T08:56:23",
   "temperature": 861,
   "value1": 1100,
   "value2": 2352,
   "value3": 467
 },
 {
   "datetime": "2017-08-01T08:56:36",
   "temperature": 864,
   "value1": 1100,
   "value2": 2352,
   "value3": 468
 },
 {
   "datetime": "2017-08-01T08:56:49",
   "temperature": 862,
   "value1": 1100,
   "value2": 2352,
   "value3": 466
 },
 {
   "datetime": "2017-08-01T08:57:02",
   "temperature": 864,
   "value1": 1100,
   "value2": 2352,
   "value3": 466
 },
 {
   "datetime": "2017-08-01T08:57:15",
   "temperature": 864,
   "value1": 1100,
   "value2": 2352,
   "value3": 467
 },
 {
   "datetime": "2017-08-01T08:57:28",
   "temperature": 865,
   "value1": 1100,
   "value2": 2352,
   "value3": 465
 },
 {
   "datetime": "2017-08-01T08:57:41",
   "temperature": 864,
   "value1": 1100,
   "value2": 2352,
   "value3": 467
 },
 {
   "datetime": "2017-08-01T08:57:54",
   "temperature": 861,
   "value1": 1100,
   "value2": 2352,
   "value3": 470
 },
 {
   "datetime": "2017-08-01T08:58:07",
   "temperature": 863,
   "value1": 1100,
   "value2": 2352,
   "value3": 470
 },
 {
   "datetime": "2017-08-01T08:58:20",
   "temperature": 860,
   "value1": 1100,
   "value2": 2352,
   "value3": 468
 },
 {
   "datetime": "2017-08-01T08:58:33",
   "temperature": 860,
   "value1": 1100,
   "value2": 2352,
   "value3": 466
 },
 {
   "datetime": "2017-08-01T08:58:46",
   "temperature": 864,
   "value1": 1100,
   "value2": 2352,
   "value3": 468
 },
 {
   "datetime": "2017-08-01T08:58:59",
   "temperature": 863,
   "value1": 1100,
   "value2": 2352,
   "value3": 470
 },
 {
   "datetime": "2017-08-01T08:59:12",
   "temperature": 862,
   "value1": 1100,
   "value2": 2352,
   "value3": 470
 },
 {
   "datetime": "2017-08-01T08:59:25",
   "temperature": 861,
   "value1": 1100,
   "value2": 2352,
   "value3": 470
 }
]

I really wish I had time to help you with this, because River View was like my baby for awhile there. When we were still building out sample applications of NuPIC and really pushing hard on temporal data streams and anomaly detection, this was really useful. Now my focus is on HTM education, and I just don’t have time to support this. I would love to spend time on this project, because I think River View is a unique application and has potential for training machine intelligence systems easily for experiments. Feel free to contribute. I will likely be turning off data.numenta.org soon, so forks to this app are welcome if you want to drive it forward.

Also, I’m going to move this to #htm-hackers because River View is not a part of the “numenta-apps” suite.