ooni / explorer

OONI Explorer: uncover evidence of internet censorship worldwide
https://explorer.ooni.org
BSD 3-Clause "New" or "Revised" License
74 stars 38 forks source link

Improve the country coverage chart #687

Open hellais opened 2 years ago

hellais commented 2 years ago

The country coverage chart in the country pages is not incredibly useful. I think we should reconsider it and display some metrics related to coverage that are a bit more meaningful.

Perhaps we could show the plots related to how many networks have at least N number of measurements.

This task also has a data analysis component to it.

d80ep08th commented 2 years ago

I am interested. Can you please tell me what the path to that page is ?

hellais commented 2 years ago

Yes the path to the country page is the following: https://explorer.ooni.org/country/IT.

It's probably helpful if I share a bit more insight into what I was thinking of in terms of improvements to this view.

At a high level, what we are trying to convey through this chart is "how well do we cover with OONI measurements this particular country".

In terms of coverage for a particular country, I think the main ways in which we have been slicing it is:

In the current chart we are basically collapsing both of these into one, but I feel like the chart doesn't do a very good job at communicating the interpretation of this data. If you just look at the absolute values, it's unclear if the numbers you are seeing are good or bad, because there is no point of reference.

Moreover the chart is able to display information from the last month, so it's not providing longitudinal information on the coverage over time.

What I was thinking of is that we could simplify this a bit and use a chart like this one: https://nivo.rocks/calendar/, where we define for the absolute count of measurements 4 ranges, that have an associated color:

The tricky part is coming up with reasonable values for k1,k2,k3,k4 and evaluating if these should change over time or we should just hardcode them in the client. The other question is, should these values change depending on the country in question? For example it might be the case that some number of measurements is enough to have a good coverage in a small country with few networks, but that value may be insufficient for countries with more networks. A good starting point could be looking at the .25, .50, .75, .90 quantiles of measurement counts by country and seeing if using those as ranges leads to something useful. This can be computed quite easily using the data made available by the aggregation API: https://api.ooni.io/api/v1/aggregation?axis_y=probe_cc&axis_x=measurement_start_day&since=2022-01-03&until=2022-01-05

For the ASN coverage we would do something similar, yet in this case I think the values must somehow take into account the number of networks that exist in a particular country. For example we can use the number of ASNs that are announcing prefixes (from something like RIPE: https://stat.ripe.net/ui2013/IT#tabId=database) and use some factor of the ones we see measurements for vs the total number (it's important to keep in mind that many of these ASs might not be residential ones, so we aren't actually aiming for ever reaching 100%).

Mohamed-Ayaan358 commented 2 years ago

@hellais, just to confirm image This is the chart that we are discussing? And if so may I take a shot at solving this issue?

hellais commented 2 years ago

Hi @Mohamed-Ayaan358 , the chart I'm talking about here is actually the one at the beginning of the country page: Screenshot 2022-04-05 at 11 36 51

agrabeli commented 2 years ago

This is also related to: https://github.com/ooni/explorer/issues/266#issuecomment-1102860915 (displaying monthly and yearly coverage per country)