Ookla’s Number of Speedtest Intelligence Users

Ookla’s Number of Speedtest Intelligence Users#

Ookla Speedtests are a way for users to find out the download speed, upload speed and latency of their internet connection. This is an analysis of the number of users who took the speedtest. To account for change, we take the baseline number of users from November 2022 to January 2023 and show the percent change in daily users and change in weekly users.

The downloading of raw data from the Ookla Speedtest Intelligence Portal is done using the get-ookla-data.py script.

Hide code cell source
output_notebook()


tabs = []

for adm in ['Aleppo', 'Idleb', 'Lattakia', 'Hama']:
    df = week_type_adm1[week_type_adm1['ADM1_EN']==adm]
    tabs.append(
        TabPanel(
        child=get_line_plot(df, f"Download Speed (mbps) in admin 1 regions", "Source: Ookla for Good", earthquakes=True, subtitle = '', aggregation = 'type', measure = 'download_mbps'),
                    title=adm.capitalize(),
                )
                )

tabs = Tabs(tabs=tabs, sizing_mode="scale_both")
show(tabs, warn_on_missing_glyphs=False)
Loading BokehJS ...
Hide code cell source
output_notebook()


tabs = []

df = week_speed_adm1[week_speed_adm1['ADM1_EN'].isin(['Aleppo', 'Idleb', 'Lattakia', 'Hama'])]
#df = df.groupby(['ADM1_EN', 'date']).mean(['download_kbps', 'upload_kbps', 'download_mbps', 'upload_mbps']).reset_index()
#df = df[df['date']>='2023-01-31']
# for adm in affected_adm1:
#     df = week[week['ADM1_EN']==adm] 

tabs.append(
    TabPanel(
    child=get_line_plot(df, f"Download Speed (mbps) in admin 1 regions", "Source: Ookla for Good", earthquakes=True, subtitle = '', aggregation = 'ADM1_EN', measure = 'download_mbps'),
                #title=adm.capitalize(),
            )
            )

tabs = Tabs(tabs=tabs, sizing_mode="scale_both")
show(tabs, warn_on_missing_glyphs=False)
Loading BokehJS ...
Hide code cell source
output_notebook()


tabs = []

df = week_adm1[week_adm1['ADM1_EN'].isin(['Aleppo', 'Idleb', 'Lattakia', 'Hama'])]
df = df[df['date']>='2023-01-31']
# for adm in affected_adm1:
#     df = week[week['ADM1_EN']==adm] 

tabs.append(
    TabPanel(
    child=get_line_plot(df, f"Weekly average users taking speedtest", "Source: Ookla for Good", earthquakes=True, subtitle = '% change compared to a baseline users from January 2023', aggregation = 'ADM1_EN'),
                #title=adm.capitalize(),
            )
            )

tabs = Tabs(tabs=tabs, sizing_mode="scale_both")
show(tabs, warn_on_missing_glyphs=False)
Loading BokehJS ...
df[['date', 'ADM1_EN', 'n_users', 'n_baseline', 'n_difference','percent_change']].to_csv('../../data/ookla-speedtest/adm1_users_percent_change.csv')
Hide code cell source
output_notebook()


tabs = []

for adm in ['Aleppo', 'Idleb', 'Lattakia', 'Hama']:
    df = week_adm2[week_adm2['ADM1_EN']==adm] 
    df = df[df['date']>='2023-01-15']

    tabs.append(
        TabPanel(
        child=get_line_plot(df, f"Weekly average users taking speedtest", "Source: Ookla for Good", earthquakes=True, subtitle = '% change compared to a baseline users from January 2023'),
                    title=adm.capitalize(),
                )
                )

tabs = Tabs(tabs=tabs, sizing_mode="scale_both")
show(tabs, warn_on_missing_glyphs=False)
Loading BokehJS ...