-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuTFL_flow.txt
1 lines (1 loc) · 22.2 KB
/
buTFL_flow.txt
1
[{"id":"c1f9562b.960cc","type":"http request","z":"3f650f22.57c568","name":"HTM Traffic Predictor","method":"GET","ret":"txt","url":"http://192.168.1.62/cgi-bin/HostedHTM?camera_id={{{camera_id}}}","tls":"","x":1269.7140502929688,"y":702,"wires":[[]]},{"id":"e017b19e.aabdb","type":"http request","z":"3f650f22.57c568","name":"LSTM Traffic Predictor","method":"GET","ret":"txt","url":"http://192.168.1.62/cgi-bin/HostedLSTM?camera_id={{{camera_id}}}","tls":"","x":1269.7140502929688,"y":742,"wires":[[]]},{"id":"4408a5cc.c96684","type":"function","z":"3f650f22.57c568","name":"Apply JSON-LD Context","func":"function AddUUID(input_msg,context_dict)\n{\n for (var plain_json_key in context_dict)\n {\n uuid = context_dict[plain_json_key];\n input_msg.payload = input_msg.payload.replace('\"'+plain_json_key+'\":','\"'+uuid+'\":');\n }\n \n return input_msg\n}\n\nvar node_context_dictionary = {\"camera_id\":\"test\",\"geo_lat\":\"wgs84_pos:lat\",\"geo_long\":\"wgs84_pos:long\"};\n\nreturn AddUUID(msg,node_context_dictionary);","outputs":1,"noerr":0,"x":1539.7140502929688,"y":362,"wires":[["49defdd2.28ad44"]]},{"id":"94183f45.c67828","type":"http request","z":"3f650f22.57c568","name":"OSM Speed Limit Call","method":"GET","ret":"txt","url":"http://localhost:5001/osm-api/tfl-speedlimit/{{{camera_id}}}","tls":"","x":1279.9974365234375,"y":361.5499725341797,"wires":[["4408a5cc.c96684"]]},{"id":"49defdd2.28ad44","type":"ui_text","z":"3f650f22.57c568","group":"4e755ab5.9f289c","order":5,"width":0,"height":0,"name":"Speed Limit Display","label":"Speed Limit","format":"{{msg.payload}}","layout":"col-center","x":2149.7140502929688,"y":402,"wires":[]},{"id":"800ef3d8.b2c558","type":"function","z":"3f650f22.57c568","name":"camera_id from Request","func":"msg.camera_id = msg.req.query.camera_id;\nreturn msg;","outputs":1,"noerr":0,"x":439.71405029296875,"y":362,"wires":[["94183f45.c67828","e6c61b81.3c2778","71060286.90a40c","c8be609e.ee13b","738c8059.c55d2","990ba9b0.ab3bd","ac47d5b3.e8a35","3a653922.4edf8e"]]},{"id":"50d51222.823604","type":"function","z":"3f650f22.57c568","name":"camera_id from Payload","func":"msg.camera_id = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":439.71405029296875,"y":322,"wires":[["94183f45.c67828","e6c61b81.3c2778","c8be609e.ee13b","738c8059.c55d2","990ba9b0.ab3bd","ac47d5b3.e8a35","3a653922.4edf8e"]]},{"id":"c6146d8f.d45f78","type":"function","z":"3f650f22.57c568","name":"Fetching New Data","func":"msg.payload = \"-\";\nreturn msg;","outputs":1,"noerr":0,"x":1219.7140502929688,"y":262,"wires":[["49defdd2.28ad44","8b8d2871.55d128","fbbbd8ef.02c628"]]},{"id":"e4815324.1bcad","type":"http in","z":"3f650f22.57c568","name":"Set Camera Id","url":"/set-camera","method":"get","swaggerDoc":"","x":159.71405029296875,"y":282,"wires":[["800ef3d8.b2c558","c6146d8f.d45f78"]]},{"id":"e6c61b81.3c2778","type":"ui_text","z":"3f650f22.57c568","group":"4e755ab5.9f289c","order":1,"width":0,"height":0,"name":"Camera Id DIsplay","label":"Current Camera Id","format":"{{msg.camera_id}}","layout":"row-spread","x":2146.8809814453125,"y":318.3333282470703,"wires":[]},{"id":"71060286.90a40c","type":"http response","z":"3f650f22.57c568","name":"camera-set","x":2129.3809814453125,"y":276.3333282470703,"wires":[]},{"id":"c8be609e.ee13b","type":"template","z":"3f650f22.57c568","name":"Camera Image Template","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<img src=\"http://s3-eu-west-1.amazonaws.com/jamcams.tfl.gov.uk/00001.{{camera_id}}.jpg\" />\n\n","x":1239.7140502929688,"y":182,"wires":[[]]},{"id":"180f9ff2.4047e8","type":"template","z":"3f650f22.57c568","name":"Camera Video Template","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<video controls autoplay>\n<source src=\"http://s3-eu-west-1.amazonaws.com/jamcams.tfl.gov.uk/00001.{{camera_id}}.mp4\" type=\"video/mp4\">\n</video> ","x":1405.714111328125,"y":32,"wires":[["b78f804c.afc29"]]},{"id":"738c8059.c55d2","type":"http request","z":"3f650f22.57c568","name":"Get Image","method":"GET","ret":"bin","url":"http://s3-eu-west-1.amazonaws.com/jamcams.tfl.gov.uk/00001.{{camera_id}}.jpg","tls":"","x":719.7140502929688,"y":422,"wires":[["c26b9292.05a48"]]},{"id":"547dee87.c10798","type":"inject","z":"3f650f22.57c568","name":"","topic":"","payload":"04503","payloadType":"str","repeat":"","crontab":"","once":false,"x":179.71405029296875,"y":242,"wires":[["50d51222.823604","c6146d8f.d45f78"]]},{"id":"2c1bf4b7.95199c","type":"ui_dropdown","z":"3f650f22.57c568","name":"Camera Id Dropdown","label":"Set Camera Id","place":"Select Camera Id","group":"4e755ab5.9f289c","order":3,"width":"20","height":"1","passthru":false,"options":[{"label":"04503","value":"04503","type":"str"},{"label":"04252","value":"04252","type":"str"}],"payload":"","topic":"","x":869.7140502929688,"y":122,"wires":[["50d51222.823604","c6146d8f.d45f78"]]},{"id":"8b8d2871.55d128","type":"ui_text","z":"3f650f22.57c568","group":"4e755ab5.9f289c","order":6,"width":"20","height":"4","name":"Detected Cars Display","label":"Cars Detected","format":"{{msg.payload}}","layout":"col-center","x":2149.7140502929688,"y":442,"wires":[]},{"id":"fbbbd8ef.02c628","type":"ui_text","z":"3f650f22.57c568","group":"4e755ab5.9f289c","order":4,"width":0,"height":0,"name":"Congestometre Rating","label":"Congestometre Rating:","format":"{{msg.payload}}","layout":"row-spread","x":2149.7140502929688,"y":482,"wires":[]},{"id":"c26b9292.05a48","type":"function","z":"3f650f22.57c568","name":"encode to string","func":"msg.payload = {camera_id:msg.camera_id,\n image:encodeURI(Buffer.from(msg.payload).toString('base64'))};\nmsg.headers = {'content-type':'application/x-www-form-urlencoded'};\nreturn msg;","outputs":1,"noerr":0,"x":909.7140502929688,"y":422,"wires":[["22421f4d.fd37e","de23422d.89ce88","957aedc6.b2e18","ca904273.4e2988"]]},{"id":"4a6a7bd7.c2f25c","type":"function","z":"3f650f22.57c568","name":"Camera Id Array","func":"//var camera_id = ['01251', '01252', '01260', '01301', '01302', '01350', '01400', '01401', '01402', '01403', '01404', '01406', '01407', '01408', '01409', '01410', '01411', '01412', '01413', '01414', '01416', '01417', '01418', '01419', '01420', '01421', '01422', '01424', '01425', '01426', '01427', '01428', '01429', '01430', '01432', '01433', '01436', '01437', '01438', '01439', '01440', '01441', '01442', '01445', '01460', '01462', '01467', '01502', '01503', '01509', '01510', '01551', '01601', '01603', '01604', '01605', '01606', '01607', '01611', '01615', '01685', '02001', '02002', '02006', '02025', '02050', '02075', '02080', '02100', '02101', '02102', '02103', '02104', '02105', '02106', '02109', '02110', '02115', '02145', '02146', '02147', '02150', '02151', '02152', '02154', '02156', '02158', '02160', '02200', '02201', '02202', '02204', '02205', '02206', '02252', '02253', '02254', '02255', '02256', '02257', '02258', '02259', '02260', '02262', '02263', '02264', '02265', '02267', '02268', '02269', '02301', '02307', '02310', '02312', '02313', '02314', '02315', '02331', '02335', '02339', '02342', '02351', '02352', '02353', '02414', '02418', '02420', '02424', '02425', '02431', '02433', '02434', '02453', '02500', '02645', '02646', '02900', '03005', '03007', '03105', '03108', '03111', '03115', '03118', '03125', '03205', '03220', '03223', '03488', '03490', '03500', '03505', '03506', '03507', '03540', '03551', '03553', '03555', '03556', '03557', '03590', '03591', '03600', '03601', '03603', '03604', '03606', '03608', '03609', '03610', '03611', '03612', '03651', '03652', '03653', '03654', '03656', '03657', '03658', '03659', '03660', '03662', '03663', '03664', '03665', '03666', '03667', '03668', '03670', '03671', '03672', '03674', '03675', '03680', '03700', '03701', '03702', '03703', '03704', '03705', '03706', '03707', '03708', '03712', '03718', '03720', '03721', '03747', '03748', '03749', '03750', '03751', '03752', '03753', '03754', '03755', '03756', '03757', '03758', '03759', '03760', '03761', '03762', '03763', '03764', '03765', '03766', '03767', '03768', '03769', '03770', '03778', '03800', '03802', '03803', '03805', '03806', '03808', '03809', '03810', '03811', '03812', '03813', '03815', '03816', '03817', '03819', '03820', '03821', '03822', '03824', '03825', '03826', '03835', '03850', '03856', '03858', '03865', '03901', '03902', '03905', '03950', '04005', '04150', '04214', '04220', '04223', '04225', '04226', '04227', '04235', '04244', '04245', '04250', '04252', '04254', '04255', '04256', '04275', '04276', '04277', '04279', '04280', '04281', '04300', '04303', '04304', '04305', '04322', '04324', '04327', '04328', '04329', '04331', '04332', '04333', '04335', '04336', '04338', '04339', '04340', '04341', '04342', '04343', '04344', '04345', '04346', '04348', '04351', '04353', '04354', '04355', '04375', '04376', '04377', '04407', '04427', '04451', '04473', '04474', '04476', '04477', '04485', '04486', '04500', '04502', '04503', '04505', '04506', '04507', '04509', '04510', '04511', '04512', '04513', '04514', '04515', '04516', '04518', '04519', '04520', '04521', '04522', '04523', '04524', '04525', '04526', '04527', '04528', '04529', '04530', '04532', '04533', '04534', '04535', '04536', '04540', '04541', '04542', '04545', '04546', '04548', '04549', '04550', '04551', '04553', '04554', '04560', '04561', '04562', '04563', '04564', '04565', '04567', '04568', '04569', '04570', '04572', '04573', '04575', '04601', '04604', '04605', '04606', '04607', '04608', '04609', '04610', '04611', '04613', '04614', '04615', '04616', '04618', '04620', '04621', '04622', '04623', '04624', '04626', '04627', '04629', '04630', '04631', '04632', '04633', '04634', '04636', '04637', '04638', '04639', '04640', '04641', '04642', '04643', '04644', '04646', '04648', '04649', '04650', '04651', '04653', '04654', '04655', '04656', '04658', '04659', '04660', '04661', '04662', '04663', '04664', '04665', '04666', '04667', '04668', '04669', '04670', '04672', '04674', '04675', '04676', '04678', '04679', '04680', '04683', '04684', '04690', '04750', '04880', '04901', '05750', '05752', '05825', '05826', '05827', '05828', '05829', '05830', '05831', '05832', '05900', '05975', '05976', '05982', '06408', '06500', '06501', '06502', '06503', '06504', '06506', '06507', '06508', '06509', '06510', '06511', '06512', '06514', '06515', '06516', '06517', '06518', '06519', '06520', '06521', '06522', '06530', '06549', '06550', '06551', '06552', '06560', '06570', '06580', '06581', '06584', '06585', '06586', '06587'];\nvar camera_ids = msg.payload[\"camera_ids\"]\nmsg.options = camera_ids;\nreturn msg;","outputs":1,"noerr":0,"x":629.7140502929688,"y":122,"wires":[["2c1bf4b7.95199c"]]},{"id":"be46180e.19a19","type":"function","z":"3f650f22.57c568","name":"Apply JSON-LD Context","func":"function AddUUID(input_msg,context_dict)\n{\n for (var plain_json_key in context_dict)\n {\n uuid = context_dict[plain_json_key];\n input_msg.payload = input_msg.payload.replace('\"'+plain_json_key+'\":','\"'+uuid+'\":');\n }\n \n return input_msg\n}\n\nvar node_context_dictionary = {\"camera_id\":\"@tfl:camera_id\",\"geo_lat\":\"wgs84_pos:lat\",\"geo_long\":\"wgs84_pos:long\"};\n\nreturn AddUUID(msg,node_context_dictionary);","outputs":1,"noerr":0,"x":1539.7140502929688,"y":422,"wires":[["8b8d2871.55d128"]]},{"id":"22421f4d.fd37e","type":"http request","z":"3f650f22.57c568","name":"Car Detector","method":"POST","ret":"txt","url":"http://localhost:5010/car-detector/image","tls":"","x":1239.7140502929688,"y":422,"wires":[["be46180e.19a19"]]},{"id":"5f2c2dc7.4ad7d4","type":"http request","z":"3f650f22.57c568","name":"Get Camera IDs","method":"GET","ret":"obj","url":"http://localhost:5002/tfl-api/camera-ids","tls":"","x":429.71405029296875,"y":122,"wires":[["4a6a7bd7.c2f25c"]]},{"id":"590428ca.e521c","type":"inject","z":"3f650f22.57c568","name":"Trigger Dropdown Setup","topic":"","payload":"04503","payloadType":"str","repeat":"","crontab":"","once":false,"x":119.71405029296875,"y":122,"wires":[["5f2c2dc7.4ad7d4"]]},{"id":"dfc44005.4d761","type":"ui_button","z":"3f650f22.57c568","name":"Populate Cameras Button","group":"4e755ab5.9f289c","order":2,"width":0,"height":0,"passthru":false,"label":"Populate Camera List","color":"Get Cameras","bgcolor":"","icon":"","payload":"04503","payloadType":"str","topic":"","x":115,"y":179.1905059814453,"wires":[["5f2c2dc7.4ad7d4"]]},{"id":"de23422d.89ce88","type":"http request","z":"3f650f22.57c568","name":"CNN Congestometre","method":"POST","ret":"obj","url":"http://localhost:5020/congestometre/image","tls":"","x":1258.4639892578125,"y":540.75,"wires":[["a005b.add6f7a58","bb3c94a0.9034c","d66b4147.6fdd1"]]},{"id":"a005b.add6f7a58","type":"ui_text","z":"3f650f22.57c568","group":"5609dc1f.991e84","order":4,"width":0,"height":0,"name":"Congestometre Rating (Test)","label":"Congestometre Rating:","format":"{{msg.payload.congestion_rating}}","layout":"row-spread","x":1649.7140502929688,"y":542,"wires":[]},{"id":"bb3c94a0.9034c","type":"ui_template","z":"3f650f22.57c568","group":"5609dc1f.991e84","name":"LIME explanation Image","order":0,"width":"10","height":"10","format":"\n<div>\n <p>Explanation</p>\n <img src=\"data:image/jpg;base64, {{msg.payload.explanations[0].explanation_data}}\" alt=\"Explanation LIME\" />\n</div> ","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":1635.9642333984375,"y":590.7501220703125,"wires":[[]]},{"id":"d66b4147.6fdd1","type":"function","z":"3f650f22.57c568","name":"","func":"msg.payload = msg.payload.congestion_rating;\nreturn msg;","outputs":1,"noerr":0,"x":1878.9997645786825,"y":499.2142682756695,"wires":[["fbbbd8ef.02c628"]]},{"id":"b78f804c.afc29","type":"ui_video","z":"3f650f22.57c568","group":"4e755ab5.9f289c","order":0,"width":"10","height":"5","videoHeight":"350","autoplay":false,"controls":false,"name":"TFL Video","label":"video","format":"{{msg.payload}}","x":2109,"y":223.183349609375,"wires":[]},{"id":"990ba9b0.ab3bd","type":"function","z":"3f650f22.57c568","name":"Video Settings","func":"msg.payload = {src: \"http://s3-eu-west-1.amazonaws.com/jamcams.tfl.gov.uk/00001.\"+msg.camera_id+\".mp4\",\ntype: \"video/mp4\",\nautoplay: true,\nloop:true,\ncontrols: false\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":1207,"y":222.10000610351562,"wires":[["b78f804c.afc29"]]},{"id":"957aedc6.b2e18","type":"ui_template","z":"3f650f22.57c568","group":"5609dc1f.991e84","name":"TFL Image","order":0,"width":"10","height":"10","format":"\n<div>\n <p>TFL Image</p>\n <img src=\"data:image/jpg;base64, {{msg.payload.image}}\" alt=\"TFL Image\" />\n</div> ","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":2116.5625,"y":555.3125,"wires":[[]]},{"id":"65b286d5.46105","type":"function","z":"3f650f22.57c568","name":"Initialise Globals","func":"\nglobal.set(\"camera_car_movements\",{});\n\nreturn msg;","outputs":1,"noerr":0,"x":738.75,"y":865.1250610351562,"wires":[[]]},{"id":"68885d94.bc0074","type":"inject","z":"3f650f22.57c568","name":"Initalise","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":497.5,"y":865.4583740234375,"wires":[["65b286d5.46105"]]},{"id":"6b8c417.ca64dc","type":"debug","z":"3f650f22.57c568","name":"number of cars at Camera","active":true,"console":"false","complete":"cars_at_camera","x":1443.75,"y":948.7291870117188,"wires":[]},{"id":"3210d6ef.9ef7b2","type":"function","z":"3f650f22.57c568","name":"Add New Car Observation","func":"var car_movements = global.get(\"camera_car_movements\");\n\nif(!(msg.camera_id in car_movements))\n{\n car_movements[msg.camera_id] = [];\n}\n\n//('b7fc4a5c', 144, 223.0, 124.0, -0.016143799, 0.84008789)\n\nmsg.timestamp = new Date();\n\nfor( var frame_array_key in msg.payload)\n{\n msg.debug = frame_array_key;\n \n for(var movement in msg.payload[frame_array_key])\n {\n msg.payload[frame_array_key][movement][\"camera_id\"] = msg.camera_id;\n msg.payload[frame_array_key][movement][\"timestamp\"] = msg.timestamp;\n car_movements[msg.camera_id].push(msg.payload[frame_array_key][movement]);\n \n }\n \n // for(var movement in msg.payload[frame_array_key])\n // {\n // msg.payload[frame_array_key][movement][\"camera_id\"] = msg.camera_id;\n // msg.payload[frame_array_key][movement][\"timestamp\"] = msg.timestamp;\n // car_movements[msg.camera_id].push(msg.payload[\"200\"][movement]);\n \n // }\n}\n\n\n\n//car_movements[msg.camera_id].push(\n // {\"camera_id\":msg.camera_id,\n// \"timestamp\":msg.timestamp,\n// \"car_id\":\"b7fc4a5c\",\n// \"frameNumber\":144,\n// \"posXinCamera\":223,\n// \"posYinCamera\":124,\n// \"pixelXSpeed\":-0.016143799,\n// \"pixelYSpeed\":0.84008789}\n// );\n\n\nglobal.set(\"camera_car_movements\",car_movements);\n\nreturn msg;","outputs":1,"noerr":0,"x":1123.75,"y":950.7500610351562,"wires":[["a8f2e9e.67d9198","4511f5c6.286a1c"]]},{"id":"f8f7bfff.343f88","type":"inject","z":"3f650f22.57c568","name":"Add Test Car","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":477.5,"y":949.2083740234375,"wires":[["61c0c299.eaa1bc"]]},{"id":"61c0c299.eaa1bc","type":"function","z":"3f650f22.57c568","name":"add fake data","func":"msg.timestamp = msg.payload;\nmsg.camera_id = \"04500\";\nreturn msg;","outputs":1,"noerr":0,"x":670,"y":949.5000610351562,"wires":[["ac47d5b3.e8a35"]]},{"id":"a8f2e9e.67d9198","type":"function","z":"3f650f22.57c568","name":"Aggregate Movement","func":"function TimeSince(date)\n{\n return Math.floor((new Date() - date) / 1000);\n}\n\nfunction Sum(array)\n{\n var total=0;\n \n for(var i in array) { total += array[i]; }\n \n return total;\n}\n\nfunction Average(array)\n{\n if(array.length === 0)\n {\n return 0;\n }\n return Sum(array)/array.length;\n}\n\nvar car_movements = global.get(\"camera_car_movements\");\n\nmsg.cars_at_camera = car_movements[msg.camera_id].length;\n\ntime_period = 5;\n\nfiltered_movements = car_movements[msg.camera_id].filter(function(movement){return TimeSince(movement.timestamp) < time_period;});\n\nmsg.filtered = filtered_movements.length;\n\nvar x_pixel_velocities = filtered_movements.map(movement => Math.abs(movement.pixelXSpeed));\n\nmsg.x_aggregate = Average(x_pixel_velocities);\n\n\nvar y_pixel_velocities = filtered_movements.map(movement => Math.abs(movement.pixelYSpeed));\n\nmsg.y_aggregate = Average(y_pixel_velocities);\n\n\nreturn msg;","outputs":1,"noerr":0,"x":1141.25,"y":1027,"wires":[["6b8c417.ca64dc","9f6f0600.f84bf","3d959949.2ef3d6","e8adefa8.8dd8b8","7920d7c0.37f268","406bb4.b6483c4c"]]},{"id":"151e727b.ee115e","type":"inject","z":"3f650f22.57c568","name":"Get Count","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":461.25,"y":1026.7083740234375,"wires":[["994e2c71.e4f8e"]]},{"id":"994e2c71.e4f8e","type":"function","z":"3f650f22.57c568","name":"add fake data","func":"msg.timestamp = msg.payload;\nmsg.camera_id = \"04500\";\nreturn msg;","outputs":1,"noerr":0,"x":772.1875,"y":1031.5625,"wires":[["a8f2e9e.67d9198"]]},{"id":"9f6f0600.f84bf","type":"debug","z":"3f650f22.57c568","name":"","active":true,"console":"false","complete":"filtered","x":1397.5,"y":1012.4791259765625,"wires":[]},{"id":"3d959949.2ef3d6","type":"debug","z":"3f650f22.57c568","name":"x_aggregate","active":true,"console":"false","complete":"x_aggregate","x":1396.5625,"y":1075.9375,"wires":[]},{"id":"e8adefa8.8dd8b8","type":"debug","z":"3f650f22.57c568","name":"y_aggregate","active":true,"console":"false","complete":"y_aggregate","x":1397.5,"y":1139.9791259765625,"wires":[]},{"id":"ac47d5b3.e8a35","type":"http request","z":"3f650f22.57c568","name":"OpticalFlow","method":"GET","ret":"obj","url":"http://localhost:5050/opticalflow/tfl-id/{{camera_id}}","tls":"","x":930.3125,"y":885.9375,"wires":[["3210d6ef.9ef7b2"]]},{"id":"1b8a60c4.90f67f","type":"function","z":"3f650f22.57c568","name":"Add New Car Observation","func":"var car_movements = global.get(\"camera_car_movements\");\n\nif(!(msg.camera_id in car_movements))\n{\n car_movements[msg.camera_id] = [];\n}\n\n//('b7fc4a5c', 144, 223.0, 124.0, -0.016143799, 0.84008789)\n\ncar_movements[msg.camera_id].push(\n {\"camera_id\":msg.camera_id,\n \"timestamp\":msg.timestamp,\n \"car_id\":\"b7fc4a5c\",\n \"frameNumber\":144,\n \"posXinCamera\":223,\n \"posYinCamera\":124,\n \"pixelXSpeed\":-0.016143799,\n \"pixelYSpeed\":0.84008789}\n);\n\n\n//global.set(\"camera_car_movements\",car_movements);\n\nreturn msg;","outputs":1,"noerr":0,"x":964.0625,"y":827.1875,"wires":[[]]},{"id":"7920d7c0.37f268","type":"ui_text","z":"3f650f22.57c568","group":"3aa5c27.dad123e","order":0,"width":0,"height":0,"name":".x_aggregate","label":"X Aggregate Velocity","format":"{{msg.x_aggregate}}","layout":"row-spread","x":1781.25,"y":985.8541870117188,"wires":[]},{"id":"406bb4.b6483c4c","type":"ui_text","z":"3f650f22.57c568","group":"3aa5c27.dad123e","order":0,"width":0,"height":0,"name":"y_aggregate","label":"Y Aggregate Velocity","format":"{{msg.y_aggregate}}","layout":"row-spread","x":1780.3125,"y":1058.4375,"wires":[]},{"id":"4511f5c6.286a1c","type":"debug","z":"3f650f22.57c568","name":"","active":true,"console":"false","complete":"debug","x":1407.5,"y":846.2291259765625,"wires":[]},{"id":"ca904273.4e2988","type":"ui_template","z":"3f650f22.57c568","group":"4e755ab5.9f289c","name":"Camera Image Display","order":7,"width":"10","height":"10","format":"\n<div>\n <p>TFL Image</p>\n <img src=\"data:image/jpg;base64, {{msg.payload.image}}\" alt=\"TFL Image\" />\n</div> ","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":2149.6875,"y":599.0625,"wires":[[]]},{"id":"3a653922.4edf8e","type":"http request","z":"3f650f22.57c568","name":"Car Detector","method":"GET","ret":"obj","url":"http://localhost:5010/tfl-api/detect-cars-video/{{camera_id}}","tls":"","x":1108.4375,"y":1269.0625,"wires":[["54c958f3.05ceb8"]]},{"id":"54c958f3.05ceb8","type":"debug","z":"3f650f22.57c568","name":"Detected Cars","active":true,"console":"false","complete":"payload","x":1445,"y":1248.729248046875,"wires":[]},{"id":"4e755ab5.9f289c","type":"ui_group","z":"","name":"Camera Summary","tab":"9d169d21.1fc778","disp":true,"width":"20"},{"id":"5609dc1f.991e84","type":"ui_group","z":"","name":"Explanation Testing","tab":"9d169d21.1fc778","order":2,"disp":true,"width":"13"},{"id":"3aa5c27.dad123e","type":"ui_group","z":"","name":"OPtical Flow","tab":"9d169d21.1fc778","order":3,"disp":true,"width":"10"},{"id":"9d169d21.1fc778","type":"ui_tab","z":"","name":"TFL Decision Support","icon":"dashboard"}]