Git Product home page Git Product logo

Comments (6)

ivan-aksamentov avatar ivan-aksamentov commented on July 17, 2024 3

I was thinking about making the containment (mitigation) plot into a sort of a bar chart:

  • bar width corresponds to the time interval
  • bar height is the value
  • click on the bar (or on its continuation above the upper edge of it) adjusts the value
  • optionally, click and drag will display the date and the value being adjusted, for better UX
  • this would work for any time-aware parameter.
  • intervals can be non-uniform
  • interval can be set by the user
  • changing global start and end dates adds or removes the bars on the sides
  • optionally, when global dates were shrinked, and then expanded back, plot would remember the values lost on the sides and restore them

Additionally, we can represent the same data as a table. We could either display both or to add a toggle.

from covid19_scenarios.

rneher avatar rneher commented on July 17, 2024 2

Here is another proposal to improve the specification of mitigation and infection control measures.

2020-03-01 -- 2020-04-15   schools closed        -10%
2020-03-15 -- 2020-05-31   bars, restaurants     -10%
2020-04-01 -- 2020-05-31   lock-down             -20%

One could have a date range selector and then include these as horizontal bars in the result plot. More measures could be added with an 'add' button (similar to filters in search interfaces). This would then translate into a time series with a few vertical steps. But the general logic of a linearly interpolated function would still hold, so this would require few changes in the algorithm.

The constraint that the combined measures can't be more than 100% is most readily addressed by making these effects multiplicative (Effects of -10%, -20%, -15% would then combine to 0.90.80.85)

@rodolfoalmeida01 and @arieltonglet, if this is something you'd be keen on, let me know. Happy to touch base.

from covid19_scenarios.

arieltonglet avatar arieltonglet commented on July 17, 2024 1

This seems like an awesome feature :)
It worries me a little that it could make this part of the app a little too complex for the average user, but it sure deserves a try, specially as we are working with presets already.
I think we could tackle this when me and @rodolfoalmeida01 finish the “overall design” changes, and get to the charts. Do you agree?

from covid19_scenarios.

rneher avatar rneher commented on July 17, 2024

I like this idea. Certainly worth exploring.

from covid19_scenarios.

rneher avatar rneher commented on July 17, 2024

That would be fantastic! We could then also have presets for different measures like school closure, lock-down, vaccine etc that can be added one by one from a drop down or similar with a default value (school -20%, lock-down -40%, vaccine -80% just as examples). User then would need to select beginning and end (and these could have presets based on what we are observing now).

from covid19_scenarios.

rneher avatar rneher commented on July 17, 2024

Let me try to flesh out a little more what I have in mind and what it would take to get there.

The basic idea is an interface of the sort
image
The names of the measures don't really matter for the algorithm and could be chosen by the user. The last number is how much the measure reduces transmission.

This would produce an array of

{tMin, tMax, name, value}

The run function would convert this into a piece-wise constant function that steps down by value at every tMin and up at every tMax. This could be represented by the current TimeSeries object with each vertical step having two entries a fraction of a day apart. Steps on the same day would need to be globbed together.

Finally, these measures could be represented by horizontal bars in the results graph to provide a visual guide.

  • form elements and data structure in state
  • function that converts sets of intervals into a TimeSeries
  • visualization of the measures in the result.

Open to more ideas!

from covid19_scenarios.

Related Issues (20)

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.