GithubHelp home page GithubHelp logo

julian-alexander / ferryboxes Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 488 KB

Visualization of Data gathered from ship "Ferryboxes" to assess water quality

HTML 11.64% JavaScript 81.84% CSS 6.52%

ferryboxes's Introduction

NIVA FERRYBOX

Data visualization of measurements done by both stationary and automatic sensors for environmental monitoring. "Ferryboxes" are installed in ships and used to measure water properties to be analysed and sent via satellite connection.

Initialize Project

To start the Ferrybox data visualizer.

  • Access ferrybox folder

    cd ferrybox
    
  • Install dependencies

    yarn
    

    or if using NPM:

    npm i
    
  • Start project by running

    yarn start
    

    or if using NPM:

    npm start
    

Review Time Window

  • Reviewing a time window can be easily done by selecting the desired time at the visualizer and dragging to the desired time.
  • Once Zoomed in, all functionality including Chart toggling still works. You can pan through the graph by clicking the panning "Cross" icon that will appear on the top right corner of the visualizer.
  • You can keep zooming in for a new time window inside of the previous time window.
  • To reset, click the "Circling Arrow" icon to go back to the general view of the visualizer.

Dependencies and libraries

Dependencies

  • node-sass

Libraries

  • CanvasJS
  • React

Environmental data visualisation

The purpose of this repo is to be used as a coding challenge during interviews.

Introduction

We do a lot of environmental monitoring in NIVA. We have automatic sensors measuring the surrounding environment, both stationary and moving sensors.

One of our data sources are so called "ferryboxes", which are installed in various ships. These pump in water and have sensors in place, feeding us data over satellite connection.

Below is an example of a transferred json file with ferrybox measurements:

{
  "t": [
       {
      "measurements": {
        "FA/ferrybox/CTD/SALINITY": 15.873,
        "FA/ferrybox/CTD/TEMPERATURE": 2.02,
        "FA/ferrybox/OXYGEN/CONCENTRATION": 362.44,
        "FA/ferrybox/OXYGEN/TEMPERATURE": 2.27,
        "FA/ferrybox/TURBIDITY": 1.901
      },
      "properties": {
        "signal_id": "1dbf8568-838e-44a4-8cfc-8199ac3c49d3",
        "platform_code": "FA",
        "datetime": "2011-03-16T22:07:21"
      },
      "location": {
        "FA/gpstrack": {
          "latitude": 56.7767,
          "longitude": 11.8912
        }
      }
    },
    {
      "measurements": {
        "FA/ferrybox/CTD/SALINITY": 15.877,
        "FA/ferrybox/CTD/TEMPERATURE": 2.05,
        "FA/ferrybox/OXYGEN/CONCENTRATION": 361.89,
        "FA/ferrybox/OXYGEN/TEMPERATURE": 2.3,
        "FA/ferrybox/TURBIDITY": 1.846
      },
      "properties": {
        "signal_id": "a0ca726d-0482-4857-8246-9ee6489ddd3e",
        "platform_code": "FA",
        "datetime": "2011-03-16T22:08:21"
      },
      "location": {
        "FA/gpstrack": {
          "latitude": 56.7822,
          "longitude": 11.8876
        }
      }
    }
  ]
}

Task

  • read and parse the signals.json file with ferrybox measurements
  • create a simple web application with a visualization of the measurements
  • add controls which allows the user to specify start/end time, allowing the user to choose which time period to display

Deliverables

We expect you to make a web application with visualizations described above.

To make sure you don't stay up all night to complete this, we want to timecap the task to 2-3 hours. We don't expect a fully polished solution.

Please bring the code (either on your own machine or do a private github fork) and prepare a short oral presentation of your work in the interview.

Technology

You are free to choose any language and library. If you have no strong preferences, we currently use the following relevant javascript libraries:

  • react
  • recharts
  • openlayers (maps)

One quick way to get started is to use https://github.com/facebook/create-react-app

ferryboxes's People

Contributors

julian-alexander avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.