caware / c-vis Goto Github PK
View Code? Open in Web Editor NEWGraphing toolkit for C-aware energy sensors
Graphing toolkit for C-aware energy sensors
Repo for the development of a visualisation tool to display the energy use of C-Aware energy sensors More information about the project can be found at http://www.cl.cam.ac.uk/research/srg/netos/c-aware/ Change log: v4.0: Upgraded charting library from Protovis to D3.js v3 Upgraded Bootstrap from v1.3.0 to v3.0.0 Upgraded SlickGrid.js from v2.0 alpha to v2.2 Upgraded jQuery from v1.9.1 to v2.0.3 New visual design Added "Reset selection" button on tree Added Sankey diagrams and Tree maps Line chart: Hour-precision range selection Zoom on chart using mouse wheel Added filter button to remove high frequencies from large datasets Added area gradient to help visualise plot lines Points on the chart are sampled to limit the amount to c.600 per plot line Sankey diagram: Diagram based on average values at an interval, from hourly to monthly, over a defined time range Options to change maximum depth and zoom into diagram Tree Map: Tree map representation of the tree New script structure using objects and chart options timeSeries class to manage concatenation of data time series handling missing data v3.0: N/A v2.2: Release! Added ability to plot difference in monitored sum and overall total Added &fix44=true option to patch chilled data being factor of 40 out Fixed non-display of single digit meters v2.1: Fixed bugs which allowed attempt at download of non-existent data Added Y Axis scaling buttons for alternative data views Added bad data suppression support: Added SVG dashed line support in protons Added dashed lines for data points which are considered bad by index generator Added auto clamping from config file, allowing Y axis power limits on data v2.0: Sensor data awareness, won't extend viewport when no data exists. UI overhaul, using bootstrap from Twitter, including loading indicators. Added Info, Warning and Error messages when files not found / no data to display etc. Added ability to ignore sensors, and/or to avoid them increasing the averages in the tree above. Improved code portability Added config file support. Improved SensorAccessor class, and make use of it Fixed page resizing errors Added external temperature plotting support Added multiple visualisation support Added sensor info panel Added sensor error index Improved visual scheme v1.9.5: Now adds up and sorts multiple plots preventing plots repeating themselves. Started frequency testing. v1.9: Tool now deals with missing data files, presenting the earliest and latest files at max and min. Improved average code. Displays N/A in tree when sensors below have differing data dates for average calc. Restored S-m27. v1.8.6: Code clean up. Added overall meter on load. v1.8.5: Bug fixes. Started additions to HTML validation. Now uses coverage fields from data in tree and table. Now indexes daily meter data. Ignores S-m27 meter for release. v1.8: Plots no longer jump colours on sensor changes. Added months for which node averages were calculated into tree text. Added Google Chrome Frame banner for IE users. Added colour swatches in table. Added simple caching of sensor files. v1.7: Added support for displaying previous months data as well as the current month. Tidied up the UI, split the time and date below and above the main graph panel. v1.6: Added increased number of plots to be displayed, and general code and UI tweaks v1.5: Added ability for Average nodes to display summation of all nodes beneath them. v1.4: Added Average nodes into the exploration tree.
Nodes should be sorted by alphabetical for function, and floor for geographical
With view for creating tabbed style visualisations - monthly data, daily data, sunburst, radar / streamgraph
Increase maximum amount of plots to 10.
Use Chrome Frame when an IE user visits
Add in additional main power meter into tree.
Multiple sensors of the same type should be dealt with - Raw sensor names in each room when multiple rooms are used.
Becomes very very sluggish around 3 months worth.
Bash / python script to check presence of console.log() etc strings for production version.
Add ability to graph data that represents all functions IE: all Sockets, all Sockets on the first floor etc.
Plot code to decide how many lines to draw is stupid and hacky.
Midnight lines on the charts are too hard to see on some screens.
Two sensors, one in FW10, one in SW05 both labelled as 'Power', S-m31 and S-m29 respectively - what are these!?
Add links to raw sensor data used for charting, as well as the sensor index files.
Find out the status of the 257 overall meter, change the labels to have similar capitalisation throughout, identify the lack of 00:00 data
Add a (grey?) bar to indicate weekends for easier understanding of the chart timeframe.
Chart zoomed area is not drag-able on iPhone 4.
Data selection box resets position and size after adding a new sensor
Implement a caching system for sensor data files, to avoid fetching the data more than once. ~20k per sensor file, max of 50 for ~1MB maximum?
Add year to dropdown box timeframe selection for clarity.
Scale to fit and zoom options on main page produce errors with no sensor selected, and do not affect the plot's scale when one or more sensor plots are displayed.
When data is missing or not the length of others notify the user
Clicking the headers in the table would result in a sorted list below
The panel used for overall dataset plotting and controlled the focus zoomed plot's data uses only the first sensor selected, and is in the wrong colour.
Create nice looking site for tools etc and api docs etc!
When first sensor is a smaller data set than the second, adding the seconds data to the first breaks as the array is not big enough.
Use separate nodes for Average (information) and sensors (data, and or navigation).
Possible Triangles for nodes with children, Crosses for nodes with no clickable action (Average info) and squares for graph-able sensors
Mac style spinner in the graph div, or in a top corner.
Changing sensor layout can lead to inserting a sensor with a non-unique id and crash Slick grid
Info panel showing the number of sensors, the granularity of the data, a chart of the sensors by location, total build use last month, average building use, max and min overall. hall of fame- top 5 biggest users of power this month, total power use right now.
Possible carbon output etc too?
Instead of room location field.
Reset to the initial position
Plot colours should be a pool of available colours, not a fixed array.
The addition of a button that would remove all other plots apart from the selected one, but not change the view scale or size etc, to enable a user to clearly see individual plots that may be clouded by others.
Selection box uses position on page, not actual data selected to remember position.
In geography tree, in room GN17 and both top power are the same sensor, and is skewing averages etc.
Adding a new sensor shouldn't reset the view back to the initial selection
Fix totals in tree by changing energy to average power units, and specify what time frame the average was calculated over.
For data series that occur at different times, graphing chart will only chart up to the first dataset's cutoff, even if other data extends past this point.
Add one-time notification for displaying Alpha status of the tool.
Change columns in the table to show colour and total energy selected, and change average kW Total to Average kW in timeframe. Add double height top bar to Selected and Timeframe data.
Average calculation after initial sensor read could well be off - caware.util.js sumAverages only adds a new average?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.