From 4443f452ec5cdeeccb96f301e60b3933bb4f3e04 Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Fri, 16 Aug 2024 17:03:46 +0300 Subject: [PATCH 1/8] Port R docs vignettes to epidatpy --- Makefile | 4 +- docs/getting_started_with_epidatpy.rst | 201 +++++++++++++++++++++++++ docs/images/Figure_1.png | Bin 0 -> 24300 bytes docs/index.rst | 2 + docs_smoke_test.py | 75 +++++++++ epidatpy/_covidcast.py | 2 +- 6 files changed, 281 insertions(+), 3 deletions(-) create mode 100644 docs/getting_started_with_epidatpy.rst create mode 100644 docs/images/Figure_1.png create mode 100644 docs_smoke_test.py diff --git a/Makefile b/Makefile index 9ff983a..22bf0f0 100644 --- a/Makefile +++ b/Makefile @@ -24,11 +24,11 @@ format: test: env/bin/pytest . -docs: +doc: env/bin/sphinx-build -b html docs docs/_build env/bin/python -m webbrowser -t "docs/_build/index.html" -clean_docs: +clean_doc: rm -rf docs/_build clean_build: diff --git a/docs/getting_started_with_epidatpy.rst b/docs/getting_started_with_epidatpy.rst new file mode 100644 index 0000000..a020326 --- /dev/null +++ b/docs/getting_started_with_epidatpy.rst @@ -0,0 +1,201 @@ +Getting started with epidatpy +============================= + +The epidatpy package provides access to all the endpoints of the `Delphi Epidata +API `_, and can be used to make +requests for specific signals on specific dates and in select geographic +regions. + +Setup +----- + +**Installation** + +You can install the stable version of this package from PyPi: + +>>> pip install epidatpy + +Or if you want the development version, install from GitHub: + +>>> pip install -e "git+https://github.com/cmu-delphi/epidatpy.git#egg=epidatpy" + +**API Keys** + +The Delphi API requires a (free) API key for full functionality. While most +endpoints are available without one, there are +`limits on API usage for anonymous users `_, +including a rate limit. + +To generate your key, +`register for a pseudo-anonymous account `_. + +*Note* that private endpoints (i.e. those prefixed with ``pvt_``) require a +separate key that needs to be passed as an argument. These endpoints require +specific data use agreements to access. + +Basic Usage +----------- + +Fetching data from the Delphi Epidata API is simple. Suppose we are +interested in the ``covidcast`` +`endpoint `_, +which provides access to a +`wide range of data `_ +on COVID-19. Reviewing the endpoint documentation, we see that we +`need to specify `_ +a data source name, a signal name, a geographic level, a time resolution, and +the location and times of interest. + +The ``pub_covidcast`` function lets us access the ``covidcast`` endpoint: + +>>> from epidatpy import EpiDataContext, EpiRange +>>> epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) +>>> # Obtain the most up-to-date version of the smoothed covid-like illness (CLI) +>>> # signal from the COVID-19 Trends and Impact survey for the US +>>> apicall = epidata.pub_covidcast( +... data_source = "fb-survey", +... signals = "smoothed_cli", +... geo_type = "nation", +... time_type = "day", +... geo_values = "us", +... time_values = EpiRange(20210405, 20210410)) +EpiDataCall(endpoint=covidcast/, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'geo_type': 'nation', 'time_type': 'day', 'geo_values': 'us', 'time_values': '20210405-20210410'}) + +``pub_covidcast`` returns an ``EpiDataCall``, which can be further converted into different output formats - such as a Pandas DataFrame: + +>>> data = apicall.df() +>>> data.head() + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 fb-survey smoothed_cli nation us day 2021-04-05 2021-04-10 5 0.675832 0.014826 244046 0 0 0 +1 fb-survey smoothed_cli nation us day 2021-04-06 2021-04-11 5 0.690687 0.014998 242979 0 0 0 +2 fb-survey smoothed_cli nation us day 2021-04-07 2021-04-12 5 0.690664 0.015023 242153 0 0 0 +3 fb-survey smoothed_cli nation us day 2021-04-08 2021-04-13 5 0.706503 0.015236 241380 0 0 0 +4 fb-survey smoothed_cli nation us day 2021-04-09 2021-04-14 5 0.724306 0.015466 240256 0 0 0 + +Each row represents one observation in the US on one +day. The geographical abbreviation is given in the ``geo_value`` column, the date in +the ``time_value`` column. Here `value` is the requested signal -- in this +case, the smoothed estimate of the percentage of people with COVID-like +illness, based on the symptom surveys, and ``stderr`` is its standard error. + +The Epidata API makes signals available at different geographic levels, +depending on the endpoint. To request signals for all states instead of the +entire US, we use the ``geo_type`` argument paired with ``*`` for the +``geo_values`` argument. (Only some endpoints allow for the use of ``*`` to +access data at all locations. Check the help for a given endpoint to see if +it supports ``*``.) + +>>> apicall = epidata.pub_covidcast( +... data_source = "fb-survey", +... signals = "smoothed_cli", +... geo_type = "state", +... time_type = "day", +... geo_values = "*", +... time_values = EpiRange(20210405, 20210410)) +EpiDataCall(endpoint=covidcast/, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'geo_type': 'state', 'time_type': 'day', 'geo_values': '*', 'time_values': '20210405-20210410'}) +>>> apicall.df.head() + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 fb-survey smoothed_cli state ak day 2021-04-05 2021-04-10 5 0.736883 0.275805 720.0 0 0 0 +1 fb-survey smoothed_cli state al day 2021-04-05 2021-04-10 5 0.796627 0.137734 3332.1117 0 0 0 +2 fb-survey smoothed_cli state ar day 2021-04-05 2021-04-10 5 0.561916 0.131108 2354.9911 0 0 0 +3 fb-survey smoothed_cli state az day 2021-04-05 2021-04-10 5 0.62283 0.105354 4742.2778 0 0 0 +4 fb-survey smoothed_cli state ca day 2021-04-05 2021-04-10 5 0.444169 0.040576 21382.3806 0 0 0 + +We can fetch a subset of states by listing out the desired locations: + +>>> apicall = epidata.pub_covidcast( +... data_source = "fb-survey", +... signals = "smoothed_cli", +... geo_type = "state", +... time_type = "day", +... geo_values = "pa,ca,fl", +... time_values = EpiRange(20210405, 20210410)) +EpiDataCall(endpoint=covidcast/, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'geo_type': 'state', 'time_type': 'day', 'geo_values': 'pa,ca,fl', 'time_values': '20210405-20210410'}) +>>> apicall.df.head() + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 fb-survey smoothed_cli state ca day 2021-04-05 2021-04-10 5 0.444169 0.040576 21382.3806 0 0 0 +1 fb-survey smoothed_cli state fl day 2021-04-05 2021-04-10 5 0.690415 0.058204 16099.0005 0 0 0 +2 fb-survey smoothed_cli state pa day 2021-04-05 2021-04-10 5 0.715758 0.072999 10894.0057 0 0 0 +3 fb-survey smoothed_cli state ca day 2021-04-06 2021-04-11 5 0.45604 0.04127 21176.3902 0 0 0 +4 fb-survey smoothed_cli state fl day 2021-04-06 2021-04-11 5 0.730692 0.059907 15975.0007 0 0 0 + +We can also request data for a single location at a time, via the ``geo_values`` argument. + +>>> apicall = epidata.pub_covidcast( +... data_source = "fb-survey", +... signals = "smoothed_cli", +... geo_type = "state", +... time_type = "day", +... geo_values = "pa,ca,fl", +... time_values = EpiRange(20210405, 20210410)) +EpiDataCall(endpoint=covidcast/, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'geo_type': 'state', 'time_type': 'day', 'geo_values': 'pa', 'time_values': '20210405-20210410'}) +>>> apicall.df.head() + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 fb-survey smoothed_cli state pa day 2021-04-05 2021-04-10 5 0.715758 0.072999 10894.0057 0 0 0 +1 fb-survey smoothed_cli state pa day 2021-04-06 2021-04-11 5 0.69321 0.070869 10862.0055 0 0 0 +2 fb-survey smoothed_cli state pa day 2021-04-07 2021-04-12 5 0.685934 0.070654 10790.0054 0 0 0 +3 fb-survey smoothed_cli state pa day 2021-04-08 2021-04-13 5 0.681511 0.071394 10731.0044 0 0 0 +4 fb-survey smoothed_cli state pa day 2021-04-09 2021-04-14 5 0.709416 0.072162 10590.0049 0 0 0 + +Getting versioned data +---------------------- + +The Epidata API stores a historical record of all data, including corrections +and updates, which is particularly useful for accurately backtesting +forecasting models. To fetch versioned data, we can use the ``as_of`` +argument: + +>>> apicall = epidata.pub_covidcast( +... data_source = "fb-survey", +... signals = "smoothed_cli", +... geo_type = "state", +... time_type = "day", +... geo_values = "pa,ca,fl", +... time_values = EpiRange(20210405, 20210410), +... as_of = "2021-06-01") + +Plotting +-------- + +Because the output data is a standard Pandas DataFrame, we can easily plot +it using any of the available Python libraries: + +>>> data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") + +.. image:: images/Figure_1.png + :width: 800 + :alt: Smoothed CLI from Facebook Survey + +Finding locations of interest +----------------------------- + +Most data is only available for the US. Select endpoints report other countries at the national and/or regional levels. Endpoint descriptions explicitly state when they cover non-US locations. + +For endpoints that report US data, see the +`geographic coding documentation `_ +for available geographic levels. + +International data +------------------ + +International data is available via + +- ``pub_dengue_nowcast`` (North and South America) +- ``pub_ecdc_ili`` (Europe) +- ``pub_kcdc_ili`` (Korea) +- ``pub_nidss_dengue`` (Taiwan) +- ``pub_nidss_flu`` (Taiwan) +- ``pub_paho_dengue`` (North and South America) +- ``pvt_dengue_sensors`` (North and South America) + +Finding data sources and signals of interest +-------------------------------------------- + +Above we used data from `Delphi’s symptom surveys `_, +but the Epidata API includes numerous data streams: medical claims data, cases +and deaths, mobility, and many others. This can make it a challenge to find +the data stream that you are most interested in. + +The Epidata documentation lists all the data sources and signals available +through the API for `COVID-19 `_ +and for `other diseases `_. diff --git a/docs/images/Figure_1.png b/docs/images/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..44fd25023b4c6029c9c9898e48aacc98a7d4afe1 GIT binary patch literal 24300 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⩔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 HiJQIy9L24h literal 0 HcmV?d00001 diff --git a/docs/index.rst b/docs/index.rst index a046b74..c7cfd5e 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -74,3 +74,5 @@ Contents epidatpy + getting_started_with_epidatpy + diff --git a/docs_smoke_test.py b/docs_smoke_test.py new file mode 100644 index 0000000..830754c --- /dev/null +++ b/docs_smoke_test.py @@ -0,0 +1,75 @@ +from epidatpy import CovidcastEpidata, EpiDataContext, EpiRange +import pandas as pd + +epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) +apicall = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "nation", + time_type = "day", + geo_values = "us", + time_values = EpiRange(20210405, 20210410)) +print(apicall) + +pd.set_option('display.max_columns', None) +pd.set_option('display.max_rows', None) +pd.set_option('display.width', 1000) + +data = apicall.df() +print(data.head()) + +apicall2 = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "state", + time_type = "day", + geo_values = "*", + time_values = EpiRange(20210405, 20210410)) +print(apicall2) + +data2 = apicall2.df() +print(data2.head()) + +apicall3 = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "state", + time_type = "day", + geo_values = "pa,ca,fl", + time_values = EpiRange(20210405, 20210410)) +print(apicall3) + +data3 = apicall3.df() +print(data3.head()) + +apicall4 = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "state", + time_type = "day", + geo_values = "pa", + time_values = EpiRange(20210405, 20210410)) +print(apicall4) + +data4 = apicall4.df() +print(data4.head()) + +apicall5 = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "state", + time_type = "day", + geo_values = "pa", + time_values = EpiRange(20210405, 20210410), + as_of = "2021-06-01") +print(apicall5) + +data5 = apicall5.df() +print(data5.head()) + +# requires matplotlib +import matplotlib.pyplot as plt + +data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") +plt.subplots_adjust(bottom=.2) +plt.show() \ No newline at end of file diff --git a/epidatpy/_covidcast.py b/epidatpy/_covidcast.py index 4b6557e..f24d8c2 100644 --- a/epidatpy/_covidcast.py +++ b/epidatpy/_covidcast.py @@ -72,7 +72,7 @@ def define_covidcast_fields() -> List[EpidataFieldInfo]: EpidataFieldInfo("lag", EpidataFieldType.int), EpidataFieldInfo("value", EpidataFieldType.float), EpidataFieldInfo("stderr", EpidataFieldType.float), - EpidataFieldInfo("sample_size", EpidataFieldType.int), + EpidataFieldInfo("sample_size", EpidataFieldType.text), EpidataFieldInfo("direction", EpidataFieldType.float), EpidataFieldInfo("missing_value", EpidataFieldType.int), EpidataFieldInfo("missing_stderr", EpidataFieldType.int), From 99fee9802f6103a7fbb085862b763bcd644dc15e Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Tue, 27 Aug 2024 18:43:11 +0300 Subject: [PATCH 2/8] Port all initial vignettes --- docs/index.rst | 3 + docs/signal_discovery.rst | 83 ++++++++++++++++++++ docs/versioned_data.rst | 154 ++++++++++++++++++++++++++++++++++++++ docs_smoke_test.py | 95 +++++++++++++++++++++-- 4 files changed, 330 insertions(+), 5 deletions(-) create mode 100644 docs/signal_discovery.rst create mode 100644 docs/versioned_data.rst diff --git a/docs/index.rst b/docs/index.rst index c7cfd5e..93887e4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -76,3 +76,6 @@ Contents getting_started_with_epidatpy + signal_discovery + + versioned_data diff --git a/docs/signal_discovery.rst b/docs/signal_discovery.rst new file mode 100644 index 0000000..97c3492 --- /dev/null +++ b/docs/signal_discovery.rst @@ -0,0 +1,83 @@ + +Finding data sources and signals of interest +============================================ + +The Epidata API includes numerous data streams -- medical claims data, cases and deaths, +mobility, and many others -- covering different geographic regions. This can make it a +challenge to find the data stream that you are most interested in. + +Example queries with all the endpoint functions available in this package are +given below. + + +Using the documentation +----------------------- + +The Epidata documentation lists all the data sources and signals available +through the API for +`COVID-19 `_ and +for `other diseases `_. +The site also includes a search tool if you have a keyword (e.g. "Taiwan") in mind. + + +Signal metadata +--------------- + +The ``source_df`` property lets us obtain a Pandas DataFrame of metadata describing all +data streams which are publically accessible from the COVIDcast API. See the `data source +and signals documentation `_ +for descriptions of the available sources. + +>>> from epidatpy import CovidcastEpidata +>>> epidata = CovidcastEpidata() +>>> sources = epidata.source_df +>>> sources.head() + source name description reference_signal license dua signals +0 chng Change Healthcare Change Healthcare is a healthcare technology c... smoothed_outpatient_cli CC BY-NC https://cmu.box.com/s/cto4to822zecr3oyq1kkk9xm... smoothed_outpatient_cli,smoothed_adj_outpatien... +1 covid-act-now Covid Act Now (CAN) COVID Act Now (CAN) tracks COVID-19 testing st... pcr_specimen_total_tests CC BY-NC None pcr_specimen_positivity_rate,pcr_specimen_tota... +2 doctor-visits Doctor Visits From Claims Information about outpatient visits, provided ... smoothed_cli CC BY https://cmu.box.com/s/l2tz6kmiws6jyty2azwb43po... smoothed_cli,smoothed_adj_cli +3 fb-survey Delphi US COVID-19 Trends and Impact Survey We conduct the Delphi US COVID-19 Trends and I... smoothed_cli CC BY https://cmu.box.com/s/qfxplcdrcn9retfzx4zniyug... raw_wcli,raw_cli,smoothed_cli,smoothed_wcli,ra... +4 google-symptoms Google Symptoms Search Trends Google's [COVID-19 Search Trends symptoms data... s05_smoothed_search To download or use the data, you must agree to... None ageusia_raw_search,ageusia_smoothed_search,ano... + +This DataFrame contains the following columns: + +- ``source`` - Data source name. +- ``signal`` - Signal name. +- ``description`` - Description of the signal. +- ``reference_signal`` - Geographic level for which this signal is available, such as county, state, msa, hss, hrr, or nation. Most signals are available at multiple geographic levels and will hence be listed in multiple rows with their own metadata. +- ``license`` - The license +- ``dua`` - Link to the Data Use Agreement. + +The ``signal_df`` DataFrame can also be used to obtain information about the signals +that are available - for example, what time range they are available for, +and when they have been updated. + +>>> signals = epidata.signal_df +>>> signals.head() + source signal name active short_description description time_type time_label value_label format category high_values_are is_smoothed is_weighted is_cumulative has_stderr has_sample_size geo_types +0 chng smoothed_outpatient_cli COVID-Related Doctor Visits False Estimated percentage of outpatient doctor visi... Estimated percentage of outpatient doctor visi... day Date Value raw early bad True False False False False county,hhs,hrr,msa,nation,state +1 chng smoothed_adj_outpatient_cli COVID-Related Doctor Visits (Day-adjusted) False Estimated percentage of outpatient doctor visi... Estimated percentage of outpatient doctor visi... day Date Value raw early bad True False False False False county,hhs,hrr,msa,nation,state +2 chng smoothed_outpatient_covid COVID-Confirmed Doctor Visits False COVID-Confirmed Doctor Visits Estimated percentage of outpatient doctor visi... day Date Value raw early bad True False False False False county,hhs,hrr,msa,nation,state +3 chng smoothed_adj_outpatient_covid COVID-Confirmed Doctor Visits (Day-adjusted) False COVID-Confirmed Doctor Visits Estimated percentage of outpatient doctor visi... day Date Value raw early bad True False False False False county,hhs,hrr,msa,nation,state +4 chng smoothed_outpatient_flu Influenza-Confirmed Doctor Visits False Estimated percentage of outpatient doctor visi... Estimated percentage of outpatient doctor visi... day Day Value raw early bad True False False None None county,hhs,hrr,msa,nation,state + +This DataFrame contains one row each available signal, with the following columns: + +- ``data_source`` - Data source name. +- ``signal`` - Signal name. +- ``name`` - Name of signal. +- ``active`` - Whether the signal is currently not updated or not. Signals may be inactive because the sources have become unavailable, other sources have replaced them, or additional work is required for us to continue updating them. +- ``short_description`` - Brief description of the signal. +- ``description`` - Full description of the signal. +- ``geo_types`` - Spatial resolution of the signal (e.g., `county`, `hrr`, `msa`, `dma`, `state`). More detail about all `geo_types` is given in the `geographic coding documentation `_. +- ``time_type`` - Temporal resolution of the signal (e.g., day, week; see `date coding details `_). +- ``time_label`` - The time label ("Date", "Week"). +- ``value_label`` - The value label ("Value", "Percentage", "Visits", "Visits per 100,000 people"). +- ``format`` - The value format ("per100k", "percent", "fraction", "count", "raw"). +- ``category`` - The signal category ("early", "public", "late", "other"). +- ``high_values_are``- What the higher value of signal indicates ("good", "bad", "neutral"). +- ``is_smoothed`` - Whether the signal is smoothed. +- ``is_weighted`` - Whether the signal is weighted. +- ``is_cumulative`` - Whether the signal is cumulative. +- ``has_stderr`` - Whether the signal has `stderr` statistic. +- ``has_sample_size`` - Whether the signal has `sample_size` statistic. diff --git a/docs/versioned_data.rst b/docs/versioned_data.rst new file mode 100644 index 0000000..c82cc5c --- /dev/null +++ b/docs/versioned_data.rst @@ -0,0 +1,154 @@ +Understanding and accessing versioned data +========================================== + + +The Epidata API records not just each signal's estimate for a given location +on a given day, but also *when* that estimate was made, and all updates to that +estimate. + +For example, let's look at the `doctor visits +signal `_ +from the ``covidcast`` `endpoint `_, +which estimates the percentage of outpatient doctor visits that are +COVID-related. + +Consider a result row with ``time_value = 2020-05-01`` for +``geo_values = "pa"``. This is an estimate for Pennsylvania on +May 1, 2020. That estimate was *issued* on May 5, 2020, the delay being due to +the aggregation of data by our source and the time taken by the Epidata API to +ingest the data provided. + +Later, the estimate for May 1st could be updated, +perhaps because additional visit data from May 1st arrived at our source and was +reported to us. This constitutes a new *issue* of the data. + + +Data known "as of" a specific date +---------------------------------- + +By default, endpoint functions fetch the most recent issue available. This +is the best option for users who simply want to graph the latest data or +construct dashboards. But if we are interested in knowing *when* data was +reported, we can request specific data versions using the ``as_of``, ``issues``, or +``lag`` arguments. + +**Note** that these are mutually exclusive; only one can be specified +at a time. Also, not all endpoints support all three parameters, so please +check the documentation for that specific endpoint. + +First, we can request the data that was available *as of* a specific date, using +the ``as_of`` argument: + +>>> from epidatpy import EpiDataContext, EpiRange +>>> epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) +>>> apicall = epidata.pub_covidcast( +... data_source = "doctor-visits", +... signals = "smoothed_cli", +... time_type = "day", +... time_values = EpiRange("2020-05-01", "2020-05-01"), +... geo_type = "state", +... geo_values = "pa", +... as_of = "2020-05-07" +...) +>>> apicall.df.head() + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 doctor-visits smoothed_cli state pa day 2020-05-01 2020-05-07 6 2.32192 0 5 5 + +This shows that an estimate of about 2.3% was issued on May 7. If we don't +specify `as_of`, we get the most recent estimate available: + +>>> apicall = epidata.pub_covidcast( +... data_source = "doctor-visits", +... signals = "smoothed_cli", +... time_type = "day", +... time_values = EpiRange("2020-05-01", "2020-05-01"), +... geo_type = "state", +... geo_values = "pa" +...) +>>> apicall.df.head() + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 doctor-visits smoothed_cli state pa day 2020-05-01 2020-07-04 64 5.075015 0 5 5 + +Note the substantial change in the estimate, from less than 3% to over 5%, +reflecting new data that became available after May 7 about visits *occurring on* +May 1. This illustrates the importance of issue date tracking, particularly +for forecasting tasks. To backtest a forecasting model on past data, it is +important to use the data that would have been available *at the time* the model +was or would have been fit, not data that arrived much later. + +Multiple issues of observations +------------------------------- + +By using the ``issues`` argument, we can request all issues in a certain time +period: + +>>> apicall = epidata.pub_covidcast( +... data_source = "doctor-visits", +... signals = "smoothed_adj_cli", +... time_type = "day", +... time_values = EpiRange("2020-05-01", "2020-05-01"), +... geo_type = "state", +... geo_values = "pa", +... issues = EpiRange("2020-05-01", "2020-05-15") +...) +>>> apicall.df.head(7) + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-07 6 2.581509 0 5 5 +1 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-08 7 3.278896 0 5 5 +2 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-09 8 3.321781 0 5 5 +3 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-12 11 3.588683 0 5 5 +4 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-13 12 3.631978 0 5 5 +5 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-14 13 3.658009 0 5 5 + +This estimate was clearly updated many times as new data for May 1st arrived. + +**Note** that these results include only data issued or updated between +(inclusive) 2020-05-01 and 2020-05-15. If a value was first reported on +2020-04-15, and never updated, a query for issues between 2020-05-01 and +2020-05-15 will not include that value among its results. + +Observations issued with a specific lag +--------------------------------------- + +Finally, we can use the ``lag`` argument to request only data reported with a +certain lag. For example, requesting a lag of 7 days fetches only data issued +exactly 7 days after the corresponding ``time_value``: + +>>> apicall = epidata.pub_covidcast( +... data_source = "doctor-visits", +... signals = "smoothed_adj_cli", +... time_type = "day", +... time_values = EpiRange("2020-05-01", "2020-05-07"), +... geo_type = "state", +... geo_values = "pa", +... lag = 7 +...) +>>> apicall.df.head() + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-08 7 3.278896 0 5 5 +1 doctor-visits smoothed_adj_cli state pa day 2020-05-02 2020-05-09 7 3.225292 0 5 5 +2 doctor-visits smoothed_adj_cli state pa day 2020-05-05 2020-05-12 7 2.779908 0 5 5 +3 doctor-visits smoothed_adj_cli state pa day 2020-05-06 2020-05-13 7 2.557698 0 5 5 +4 doctor-visits smoothed_adj_cli state pa day 2020-05-07 2020-05-14 7 2.191677 0 5 5 + +**Note** that though this query requested all values between 2020-05-01 and +2020-05-07, May 3rd and May 4th were *not* included in the results set. This is +because the query will only include a result for May 3rd if a value were issued +on May 10th (a 7-day lag), but in fact the value was not updated on that day: + +>>> apicall = epidata.pub_covidcast( +... data_source = "doctor-visits", +... signals = "smoothed_adj_cli", +... time_type = "day", +... time_values = EpiRange("2020-05-03", "2020-05-03"), +... geo_type = "state", +... geo_values = "pa", +... issues = EpiRange("2020-05-09", "2020-05-15") +...) +>>> apicall.df.head() + source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size +0 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-09 6 2.788618 0 5 5 +1 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-12 9 3.015368 0 5 5 +2 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-13 10 3.03931 0 5 5 +3 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-14 11 3.021245 0 5 5 +4 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-15 12 3.048725 0 5 5 diff --git a/docs_smoke_test.py b/docs_smoke_test.py index 830754c..f7c5a6e 100644 --- a/docs_smoke_test.py +++ b/docs_smoke_test.py @@ -1,7 +1,16 @@ from epidatpy import CovidcastEpidata, EpiDataContext, EpiRange import pandas as pd +# Set common options and context + +pd.set_option('display.max_columns', None) +pd.set_option('display.max_rows', None) +pd.set_option('display.width', 1000) + epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) + +# Getting started with epidatpy + apicall = epidata.pub_covidcast( data_source = "fb-survey", signals = "smoothed_cli", @@ -11,10 +20,6 @@ time_values = EpiRange(20210405, 20210410)) print(apicall) -pd.set_option('display.max_columns', None) -pd.set_option('display.max_rows', None) -pd.set_option('display.width', 1000) - data = apicall.df() print(data.head()) @@ -72,4 +77,84 @@ data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") plt.subplots_adjust(bottom=.2) -plt.show() \ No newline at end of file +plt.show() + +# Signal discovery + +epidata2 = CovidcastEpidata() +sources = epidata2.source_df +print(sources.head()) + +signals = epidata2.signal_df +print(signals.head()) + +# Versioned data + +apicall6 = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_cli", + time_type = "day", + time_values = EpiRange("2020-05-01", "2020-05-01"), + geo_type = "state", + geo_values = "pa", + as_of = "2020-05-07" +) +print(apicall6) + +data6 = apicall6.df() +print(data6.head()) + +apicall7 = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_cli", + time_type = "day", + time_values = EpiRange("2020-05-01", "2020-05-01"), + geo_type = "state", + geo_values = "pa" +) +print(apicall7) + +data7 = apicall7.df() +print(data7.head()) + +apicall8 = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_adj_cli", + time_type = "day", + time_values = EpiRange("2020-05-01", "2020-05-01"), + geo_type = "state", + geo_values = "pa", + issues = EpiRange("2020-05-01", "2020-05-15") +) +print(apicall8) + +data8 = apicall8.df() +print(data8.head(7)) + +apicall9 = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_adj_cli", + time_type = "day", + time_values = EpiRange("2020-05-01", "2020-05-07"), + geo_type = "state", + geo_values = "pa", + lag = 7 +) +print(apicall9) + +data9 = apicall9.df() +print(data9.head()) + +apicall10 = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_adj_cli", + time_type = "day", + time_values = EpiRange("2020-05-03", "2020-05-03"), + geo_type = "state", + geo_values = "pa", + issues = EpiRange("2020-05-09", "2020-05-15") +) +print(apicall10) + +data10 = apicall10.df() +print(data10.head()) From af4838c24f294c539c183a9a2bf0bac37862a78f Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Tue, 10 Sep 2024 16:48:07 +0300 Subject: [PATCH 3/8] Dynamic code generation --- .gitignore | 1 + docs/conf.py | 1 + docs/covidcast_examples.rst | 60 --------- docs/getting_started_with_epidatpy.rst | 171 ++++++++++++++----------- docs/index.rst | 6 +- docs/signals_covid.rst | 72 ----------- docs/versioned_data.rst | 152 +++++++++++----------- docs_charts.py | 28 ++++ docs_smoke_test.py | 160 ----------------------- epidatpy/_covidcast.py | 2 +- pyproject.toml | 2 + 11 files changed, 205 insertions(+), 450 deletions(-) delete mode 100644 docs/covidcast_examples.rst delete mode 100644 docs/signals_covid.rst create mode 100644 docs_charts.py delete mode 100644 docs_smoke_test.py diff --git a/.gitignore b/.gitignore index f7c6b05..72f6f9b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ dist/ build/ docs/_build env/ +venv/ diff --git a/docs/conf.py b/docs/conf.py index 20fc7be..44008ef 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -35,6 +35,7 @@ "sphinx.ext.autodoc", "sphinx_autodoc_typehints", # 'matplotlib.sphinxext.plot_directive' + "sphinx_exec_directive" ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/covidcast_examples.rst b/docs/covidcast_examples.rst deleted file mode 100644 index e02329d..0000000 --- a/docs/covidcast_examples.rst +++ /dev/null @@ -1,60 +0,0 @@ -Basic examples --------------- - -To obtain all available sources of epidemiological data, we can use the following command: - ->>> from delphi_epidata.request import CovidcastEpidata, EpiRange ->>> epidata = CovidcastEpidata() ->>> print(list(epidata.source_names)) -['chng-cli', 'chng-covid', 'covid-act-now', 'doctor-visits', 'fb-survey', 'google-symptoms', 'hhs', 'hospital-admissions', 'indicator-combination-cases-deaths', 'jhu-csse', 'quidel-covid-ag', 'safegraph-weekly', 'usa-facts', 'ght', 'google-survey', 'indicator-combination-nmf', 'quidel-flu', 'safegraph-daily', 'nchs-mortality'] - - -To obtain smoothed estimates of COVID-like illness from our symptom survey, -distributed through Facebook (`fb-survey`), for every county in the United States between -2020-05-01 and 2020-05-07: - ->>> from delphi_epidata.request import EpiRange ->>> apicall = epidata[("fb-survey", "smoothed_cli")].call( -... 'county', "*", EpiRange(20200501, 20200507), -... ) -EpiDataCall(endpoint=covidcast, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'time_type': 'day', 'time_values': '20200501-20200507', 'geo_type': 'county', 'geo_values': '*'}) ->>> data = apicall.df() ->>> data.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 fb-survey smoothed_cli county 01000 day 2020-05-01 2020-09-03 125 0.825410 0.136003 1722 NaN 0 0 0 -1 fb-survey smoothed_cli county 01001 day 2020-05-01 2020-09-03 125 1.299425 0.967136 115 NaN 0 0 0 -2 fb-survey smoothed_cli county 01003 day 2020-05-01 2020-09-03 125 0.696597 0.324753 584 NaN 0 0 0 -3 fb-survey smoothed_cli county 01015 day 2020-05-01 2020-09-03 125 0.428271 0.548566 122 NaN 0 0 0 -4 fb-survey smoothed_cli county 01031 day 2020-05-01 2020-09-03 125 0.025579 0.360827 114 NaN 0 0 0 - -Each row represents one observation in one county on one day. The county FIPS -code is given in the ``geo_value`` column, the date in the ``time_value`` -column. Here ``value`` is the requested signal---in this case, the smoothed -estimate of the percentage of people with COVID-like illness, based on the -symptom surveys. ``stderr`` is its standard error. The ``issue`` column -indicates when this data was reported; in this case, the survey estimates for -May 1st were updated on September 3rd based on new data, giving a ``lag`` of 125 days. -See the `Delphi Epidata API `_ documentation for details on all fields of the returned data frame. - -The API documentation lists each available signal and provides technical details -on how it is estimated and how its standard error is calculated. In this case, -for example, the `symptom surveys documentation page -`_ -explains the definition of "COVID-like illness", links to the exact survey text, -and describes the mathematical derivation of the estimates. - -Using the ``geo_values`` argument, we can request data for a specific geography, -such as the state of Pennsylvania for the month of September 2021: - ->>> pa_data = epidata[("fb-survey", "smoothed_cli")].call( -... 'state', "pa", EpiRange(20210901, 20210930) -... ).df() ->>> pa_data.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 fb-survey smoothed_cli state pa day 2021-09-01 2021-09-06 5 0.928210 0.088187 9390 NaN 0 0 0 -1 fb-survey smoothed_cli state pa day 2021-09-02 2021-09-07 5 0.894603 0.087308 9275 NaN 0 0 0 -2 fb-survey smoothed_cli state pa day 2021-09-03 2021-09-08 5 0.922847 0.088324 9179 NaN 0 0 0 -3 fb-survey smoothed_cli state pa day 2021-09-04 2021-09-09 5 0.984799 0.092566 9069 NaN 0 0 0 -4 fb-survey smoothed_cli state pa day 2021-09-05 2021-09-10 5 1.010306 0.093357 9016 NaN 0 0 0 - -We can request multiple states by providing a list, such as ``["pa", "ny", "mo"]``. diff --git a/docs/getting_started_with_epidatpy.rst b/docs/getting_started_with_epidatpy.rst index a020326..f76cfd1 100644 --- a/docs/getting_started_with_epidatpy.rst +++ b/docs/getting_started_with_epidatpy.rst @@ -13,11 +13,15 @@ Setup You can install the stable version of this package from PyPi: ->>> pip install epidatpy +.. code-block:: sh + + pip install epidatpy Or if you want the development version, install from GitHub: ->>> pip install -e "git+https://github.com/cmu-delphi/epidatpy.git#egg=epidatpy" +.. code-block:: sh + + pip install -e "git+https://github.com/cmu-delphi/epidatpy.git#egg=epidatpy" **API Keys** @@ -48,29 +52,38 @@ the location and times of interest. The ``pub_covidcast`` function lets us access the ``covidcast`` endpoint: ->>> from epidatpy import EpiDataContext, EpiRange ->>> epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) ->>> # Obtain the most up-to-date version of the smoothed covid-like illness (CLI) ->>> # signal from the COVID-19 Trends and Impact survey for the US ->>> apicall = epidata.pub_covidcast( -... data_source = "fb-survey", -... signals = "smoothed_cli", -... geo_type = "nation", -... time_type = "day", -... geo_values = "us", -... time_values = EpiRange(20210405, 20210410)) -EpiDataCall(endpoint=covidcast/, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'geo_type': 'nation', 'time_type': 'day', 'geo_values': 'us', 'time_values': '20210405-20210410'}) +.. exec:: + :context: true + + from epidatpy import EpiDataContext, EpiRange + import pandas as pd + + # Set common options and context + pd.set_option('display.max_columns', None) + pd.set_option('display.max_rows', None) + pd.set_option('display.width', 1000) + + epidata = EpiDataContext(use_cache=False) + + # Obtain the most up-to-date version of the smoothed covid-like illness (CLI) + # signal from the COVID-19 Trends and Impact survey for the US + apicall = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "nation", + time_type = "day", + geo_values = "us", + time_values = EpiRange(20210405, 20210410)) + + print(apicall) ``pub_covidcast`` returns an ``EpiDataCall``, which can be further converted into different output formats - such as a Pandas DataFrame: ->>> data = apicall.df() ->>> data.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 fb-survey smoothed_cli nation us day 2021-04-05 2021-04-10 5 0.675832 0.014826 244046 0 0 0 -1 fb-survey smoothed_cli nation us day 2021-04-06 2021-04-11 5 0.690687 0.014998 242979 0 0 0 -2 fb-survey smoothed_cli nation us day 2021-04-07 2021-04-12 5 0.690664 0.015023 242153 0 0 0 -3 fb-survey smoothed_cli nation us day 2021-04-08 2021-04-13 5 0.706503 0.015236 241380 0 0 0 -4 fb-survey smoothed_cli nation us day 2021-04-09 2021-04-14 5 0.724306 0.015466 240256 0 0 0 +.. exec:: + :context: true + + data = apicall.df() + print(data.head()) Each row represents one observation in the US on one day. The geographical abbreviation is given in the ``geo_value`` column, the date in @@ -85,57 +98,51 @@ entire US, we use the ``geo_type`` argument paired with ``*`` for the access data at all locations. Check the help for a given endpoint to see if it supports ``*``.) ->>> apicall = epidata.pub_covidcast( -... data_source = "fb-survey", -... signals = "smoothed_cli", -... geo_type = "state", -... time_type = "day", -... geo_values = "*", -... time_values = EpiRange(20210405, 20210410)) -EpiDataCall(endpoint=covidcast/, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'geo_type': 'state', 'time_type': 'day', 'geo_values': '*', 'time_values': '20210405-20210410'}) ->>> apicall.df.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 fb-survey smoothed_cli state ak day 2021-04-05 2021-04-10 5 0.736883 0.275805 720.0 0 0 0 -1 fb-survey smoothed_cli state al day 2021-04-05 2021-04-10 5 0.796627 0.137734 3332.1117 0 0 0 -2 fb-survey smoothed_cli state ar day 2021-04-05 2021-04-10 5 0.561916 0.131108 2354.9911 0 0 0 -3 fb-survey smoothed_cli state az day 2021-04-05 2021-04-10 5 0.62283 0.105354 4742.2778 0 0 0 -4 fb-survey smoothed_cli state ca day 2021-04-05 2021-04-10 5 0.444169 0.040576 21382.3806 0 0 0 +.. exec:: + :context: true + + apicall = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "state", + time_type = "day", + geo_values = "*", + time_values = EpiRange(20210405, 20210410)) + + print(apicall) + print(apicall.df().head()) We can fetch a subset of states by listing out the desired locations: ->>> apicall = epidata.pub_covidcast( -... data_source = "fb-survey", -... signals = "smoothed_cli", -... geo_type = "state", -... time_type = "day", -... geo_values = "pa,ca,fl", -... time_values = EpiRange(20210405, 20210410)) -EpiDataCall(endpoint=covidcast/, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'geo_type': 'state', 'time_type': 'day', 'geo_values': 'pa,ca,fl', 'time_values': '20210405-20210410'}) ->>> apicall.df.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 fb-survey smoothed_cli state ca day 2021-04-05 2021-04-10 5 0.444169 0.040576 21382.3806 0 0 0 -1 fb-survey smoothed_cli state fl day 2021-04-05 2021-04-10 5 0.690415 0.058204 16099.0005 0 0 0 -2 fb-survey smoothed_cli state pa day 2021-04-05 2021-04-10 5 0.715758 0.072999 10894.0057 0 0 0 -3 fb-survey smoothed_cli state ca day 2021-04-06 2021-04-11 5 0.45604 0.04127 21176.3902 0 0 0 -4 fb-survey smoothed_cli state fl day 2021-04-06 2021-04-11 5 0.730692 0.059907 15975.0007 0 0 0 +.. exec:: + :context: true + + apicall = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "state", + time_type = "day", + geo_values = "pa,ca,fl", + time_values = EpiRange(20210405, 20210410)) + + print(apicall) + print(apicall.df().head()) We can also request data for a single location at a time, via the ``geo_values`` argument. ->>> apicall = epidata.pub_covidcast( -... data_source = "fb-survey", -... signals = "smoothed_cli", -... geo_type = "state", -... time_type = "day", -... geo_values = "pa,ca,fl", -... time_values = EpiRange(20210405, 20210410)) -EpiDataCall(endpoint=covidcast/, params={'data_source': 'fb-survey', 'signals': 'smoothed_cli', 'geo_type': 'state', 'time_type': 'day', 'geo_values': 'pa', 'time_values': '20210405-20210410'}) ->>> apicall.df.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 fb-survey smoothed_cli state pa day 2021-04-05 2021-04-10 5 0.715758 0.072999 10894.0057 0 0 0 -1 fb-survey smoothed_cli state pa day 2021-04-06 2021-04-11 5 0.69321 0.070869 10862.0055 0 0 0 -2 fb-survey smoothed_cli state pa day 2021-04-07 2021-04-12 5 0.685934 0.070654 10790.0054 0 0 0 -3 fb-survey smoothed_cli state pa day 2021-04-08 2021-04-13 5 0.681511 0.071394 10731.0044 0 0 0 -4 fb-survey smoothed_cli state pa day 2021-04-09 2021-04-14 5 0.709416 0.072162 10590.0049 0 0 0 +.. exec:: + :context: true + + apicall = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "state", + time_type = "day", + geo_values = "pa", + time_values = EpiRange(20210405, 20210410)) + + print(apicall) + print(apicall.df().head()) Getting versioned data ---------------------- @@ -145,14 +152,20 @@ and updates, which is particularly useful for accurately backtesting forecasting models. To fetch versioned data, we can use the ``as_of`` argument: ->>> apicall = epidata.pub_covidcast( -... data_source = "fb-survey", -... signals = "smoothed_cli", -... geo_type = "state", -... time_type = "day", -... geo_values = "pa,ca,fl", -... time_values = EpiRange(20210405, 20210410), -... as_of = "2021-06-01") +.. exec:: + :context: true + + apicall = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "state", + time_type = "day", + geo_values = "pa", + time_values = EpiRange(20210405, 20210410), + as_of = "2021-06-01") + + print(apicall) + print(apicall.df().head()) Plotting -------- @@ -160,11 +173,13 @@ Plotting Because the output data is a standard Pandas DataFrame, we can easily plot it using any of the available Python libraries: ->>> data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") +.. code-block:: python + + data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") .. image:: images/Figure_1.png - :width: 800 - :alt: Smoothed CLI from Facebook Survey + :width: 800 + :alt: Smoothed CLI from Facebook Survey Finding locations of interest ----------------------------- diff --git a/docs/index.rst b/docs/index.rst index 93887e4..cb4d733 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -68,14 +68,10 @@ Contents getting_started - covidcast_examples - - signals_covid + getting_started_with_epidatpy epidatpy - getting_started_with_epidatpy - signal_discovery versioned_data diff --git a/docs/signals_covid.rst b/docs/signals_covid.rst deleted file mode 100644 index 46d486b..0000000 --- a/docs/signals_covid.rst +++ /dev/null @@ -1,72 +0,0 @@ -Fetching Data -============= - ->>> from epidatpy.request import Epidata ->>> epi = Epidata() ->>> epi.pub_covidcast('usa-facts', 'confirmed_7dav_incidence_num', '20210101', '20210131', 'state', 'tx') - -This package provides various functions that can be called on the ``Epidata`` object to obtain any :ref:`Epidata endpoint ` signals of interest. The functions below are inherited by the ``Epidata`` object. - -Detailed examples are provided in the :ref:`usage examples `. - -COVIDcast Signals ------------------ - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_covidcast - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_covidcast_meta - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_covid_hosp_facility - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_covid_hosp_facility_lookup - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_covid_hosp_state_timeseries - -Other Epidata Signals ---------------------- - -.. automethod:: epidatpy.AEpiDataEndpoints.pvt_cdc - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_delphi - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_ecdc_ili - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_flusurv - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_fluview - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_fluview_meta - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_fluview_clinical - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_gft - -.. automethod:: epidatpy.AEpiDataEndpoints.pvt_ght - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_kcdc_ili - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_meta - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_nidss_flu - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_nowcast - -.. automethod:: epidatpy.AEpiDataEndpoints.pvt_quidel - -.. automethod:: epidatpy.AEpiDataEndpoints.pvt_sensors - -.. automethod:: epidatpy.AEpiDataEndpoints.pvt_twitter - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_wiki - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_dengue_nowcast - -.. automethod:: epidatpy.AEpiDataEndpoints.pvt_dengue_sensors - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_nidss_dengue - -.. automethod:: epidatpy.AEpiDataEndpoints.pub_paho_dengue - -.. automethod:: epidatpy.AEpiDataEndpoints.pvt_meta_norostat - -.. automethod:: epidatpy.AEpiDataEndpoints.pvt_norostat diff --git a/docs/versioned_data.rst b/docs/versioned_data.rst index c82cc5c..322ed11 100644 --- a/docs/versioned_data.rst +++ b/docs/versioned_data.rst @@ -39,35 +39,49 @@ check the documentation for that specific endpoint. First, we can request the data that was available *as of* a specific date, using the ``as_of`` argument: ->>> from epidatpy import EpiDataContext, EpiRange ->>> epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) ->>> apicall = epidata.pub_covidcast( -... data_source = "doctor-visits", -... signals = "smoothed_cli", -... time_type = "day", -... time_values = EpiRange("2020-05-01", "2020-05-01"), -... geo_type = "state", -... geo_values = "pa", -... as_of = "2020-05-07" -...) ->>> apicall.df.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 doctor-visits smoothed_cli state pa day 2020-05-01 2020-05-07 6 2.32192 0 5 5 +.. exec:: + :context: true + + from epidatpy import EpiDataContext, EpiRange + import pandas as pd + + # Set common options and context + pd.set_option('display.max_columns', None) + pd.set_option('display.max_rows', None) + pd.set_option('display.width', 1000) + + epidata = EpiDataContext(use_cache=False) + + # Obtain the most up-to-date version of the smoothed covid-like illness (CLI) + # signal from the COVID-19 Trends and Impact survey for the US + apicall = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_cli", + time_type = "day", + time_values = EpiRange("2020-05-01", "2020-05-01"), + geo_type = "state", + geo_values = "pa", + as_of = "2020-05-07") + + print(apicall.df().head()) + print(apicall.df().head()["value"]) This shows that an estimate of about 2.3% was issued on May 7. If we don't specify `as_of`, we get the most recent estimate available: ->>> apicall = epidata.pub_covidcast( -... data_source = "doctor-visits", -... signals = "smoothed_cli", -... time_type = "day", -... time_values = EpiRange("2020-05-01", "2020-05-01"), -... geo_type = "state", -... geo_values = "pa" -...) ->>> apicall.df.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 doctor-visits smoothed_cli state pa day 2020-05-01 2020-07-04 64 5.075015 0 5 5 +.. exec:: + :context: true + + apicall = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_cli", + time_type = "day", + time_values = EpiRange("2020-05-01", "2020-05-01"), + geo_type = "state", + geo_values = "pa") + + print(apicall.df().head()) + print(apicall.df().head()["value"]) Note the substantial change in the estimate, from less than 3% to over 5%, reflecting new data that became available after May 7 about visits *occurring on* @@ -82,23 +96,19 @@ Multiple issues of observations By using the ``issues`` argument, we can request all issues in a certain time period: ->>> apicall = epidata.pub_covidcast( -... data_source = "doctor-visits", -... signals = "smoothed_adj_cli", -... time_type = "day", -... time_values = EpiRange("2020-05-01", "2020-05-01"), -... geo_type = "state", -... geo_values = "pa", -... issues = EpiRange("2020-05-01", "2020-05-15") -...) ->>> apicall.df.head(7) - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-07 6 2.581509 0 5 5 -1 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-08 7 3.278896 0 5 5 -2 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-09 8 3.321781 0 5 5 -3 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-12 11 3.588683 0 5 5 -4 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-13 12 3.631978 0 5 5 -5 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-14 13 3.658009 0 5 5 +.. exec:: + :context: true + + apicall = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_adj_cli", + time_type = "day", + time_values = EpiRange("2020-05-01", "2020-05-01"), + geo_type = "state", + geo_values = "pa", + issues = EpiRange("2020-05-01", "2020-05-15")) + + print(apicall.df().head(7)) This estimate was clearly updated many times as new data for May 1st arrived. @@ -114,41 +124,35 @@ Finally, we can use the ``lag`` argument to request only data reported with a certain lag. For example, requesting a lag of 7 days fetches only data issued exactly 7 days after the corresponding ``time_value``: ->>> apicall = epidata.pub_covidcast( -... data_source = "doctor-visits", -... signals = "smoothed_adj_cli", -... time_type = "day", -... time_values = EpiRange("2020-05-01", "2020-05-07"), -... geo_type = "state", -... geo_values = "pa", -... lag = 7 -...) ->>> apicall.df.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 doctor-visits smoothed_adj_cli state pa day 2020-05-01 2020-05-08 7 3.278896 0 5 5 -1 doctor-visits smoothed_adj_cli state pa day 2020-05-02 2020-05-09 7 3.225292 0 5 5 -2 doctor-visits smoothed_adj_cli state pa day 2020-05-05 2020-05-12 7 2.779908 0 5 5 -3 doctor-visits smoothed_adj_cli state pa day 2020-05-06 2020-05-13 7 2.557698 0 5 5 -4 doctor-visits smoothed_adj_cli state pa day 2020-05-07 2020-05-14 7 2.191677 0 5 5 +.. exec:: + :context: true + + apicall = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_adj_cli", + time_type = "day", + time_values = EpiRange("2020-05-01", "2020-05-01"), + geo_type = "state", + geo_values = "pa", + lag = 7) + + print(apicall.df().head()) **Note** that though this query requested all values between 2020-05-01 and 2020-05-07, May 3rd and May 4th were *not* included in the results set. This is because the query will only include a result for May 3rd if a value were issued on May 10th (a 7-day lag), but in fact the value was not updated on that day: ->>> apicall = epidata.pub_covidcast( -... data_source = "doctor-visits", -... signals = "smoothed_adj_cli", -... time_type = "day", -... time_values = EpiRange("2020-05-03", "2020-05-03"), -... geo_type = "state", -... geo_values = "pa", -... issues = EpiRange("2020-05-09", "2020-05-15") -...) ->>> apicall.df.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-09 6 2.788618 0 5 5 -1 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-12 9 3.015368 0 5 5 -2 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-13 10 3.03931 0 5 5 -3 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-14 11 3.021245 0 5 5 -4 doctor-visits smoothed_adj_cli state pa day 2020-05-03 2020-05-15 12 3.048725 0 5 5 +.. exec:: + :context: true + + apicall = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_adj_cli", + time_type = "day", + time_values = EpiRange("2020-05-03", "2020-05-03"), + geo_type = "state", + geo_values = "pa", + issues = EpiRange("2020-05-09", "2020-05-15")) + + print(apicall.df().head()) diff --git a/docs_charts.py b/docs_charts.py new file mode 100644 index 0000000..92788bc --- /dev/null +++ b/docs_charts.py @@ -0,0 +1,28 @@ +from epidatpy import EpiDataContext, EpiRange +import matplotlib.pyplot as plt +import pandas as pd + +# Set common options and context + +pd.set_option('display.max_columns', None) +pd.set_option('display.max_rows', None) +pd.set_option('display.width', 1000) + +epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) + +# Getting started with epidatpy + +apicall = epidata.pub_covidcast( + data_source = "fb-survey", + signals = "smoothed_cli", + geo_type = "nation", + time_type = "day", + geo_values = "us", + time_values = EpiRange(20210405, 20210410)) +print(apicall) + +data = apicall.df() + +data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") +plt.subplots_adjust(bottom=.2) +plt.show() diff --git a/docs_smoke_test.py b/docs_smoke_test.py deleted file mode 100644 index f7c5a6e..0000000 --- a/docs_smoke_test.py +++ /dev/null @@ -1,160 +0,0 @@ -from epidatpy import CovidcastEpidata, EpiDataContext, EpiRange -import pandas as pd - -# Set common options and context - -pd.set_option('display.max_columns', None) -pd.set_option('display.max_rows', None) -pd.set_option('display.width', 1000) - -epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) - -# Getting started with epidatpy - -apicall = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "nation", - time_type = "day", - geo_values = "us", - time_values = EpiRange(20210405, 20210410)) -print(apicall) - -data = apicall.df() -print(data.head()) - -apicall2 = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - time_type = "day", - geo_values = "*", - time_values = EpiRange(20210405, 20210410)) -print(apicall2) - -data2 = apicall2.df() -print(data2.head()) - -apicall3 = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - time_type = "day", - geo_values = "pa,ca,fl", - time_values = EpiRange(20210405, 20210410)) -print(apicall3) - -data3 = apicall3.df() -print(data3.head()) - -apicall4 = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - time_type = "day", - geo_values = "pa", - time_values = EpiRange(20210405, 20210410)) -print(apicall4) - -data4 = apicall4.df() -print(data4.head()) - -apicall5 = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - time_type = "day", - geo_values = "pa", - time_values = EpiRange(20210405, 20210410), - as_of = "2021-06-01") -print(apicall5) - -data5 = apicall5.df() -print(data5.head()) - -# requires matplotlib -import matplotlib.pyplot as plt - -data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") -plt.subplots_adjust(bottom=.2) -plt.show() - -# Signal discovery - -epidata2 = CovidcastEpidata() -sources = epidata2.source_df -print(sources.head()) - -signals = epidata2.signal_df -print(signals.head()) - -# Versioned data - -apicall6 = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_cli", - time_type = "day", - time_values = EpiRange("2020-05-01", "2020-05-01"), - geo_type = "state", - geo_values = "pa", - as_of = "2020-05-07" -) -print(apicall6) - -data6 = apicall6.df() -print(data6.head()) - -apicall7 = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_cli", - time_type = "day", - time_values = EpiRange("2020-05-01", "2020-05-01"), - geo_type = "state", - geo_values = "pa" -) -print(apicall7) - -data7 = apicall7.df() -print(data7.head()) - -apicall8 = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_adj_cli", - time_type = "day", - time_values = EpiRange("2020-05-01", "2020-05-01"), - geo_type = "state", - geo_values = "pa", - issues = EpiRange("2020-05-01", "2020-05-15") -) -print(apicall8) - -data8 = apicall8.df() -print(data8.head(7)) - -apicall9 = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_adj_cli", - time_type = "day", - time_values = EpiRange("2020-05-01", "2020-05-07"), - geo_type = "state", - geo_values = "pa", - lag = 7 -) -print(apicall9) - -data9 = apicall9.df() -print(data9.head()) - -apicall10 = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_adj_cli", - time_type = "day", - time_values = EpiRange("2020-05-03", "2020-05-03"), - geo_type = "state", - geo_values = "pa", - issues = EpiRange("2020-05-09", "2020-05-15") -) -print(apicall10) - -data10 = apicall10.df() -print(data10.head()) diff --git a/epidatpy/_covidcast.py b/epidatpy/_covidcast.py index f24d8c2..8a2fb32 100644 --- a/epidatpy/_covidcast.py +++ b/epidatpy/_covidcast.py @@ -72,7 +72,7 @@ def define_covidcast_fields() -> List[EpidataFieldInfo]: EpidataFieldInfo("lag", EpidataFieldType.int), EpidataFieldInfo("value", EpidataFieldType.float), EpidataFieldInfo("stderr", EpidataFieldType.float), - EpidataFieldInfo("sample_size", EpidataFieldType.text), + EpidataFieldInfo("sample_size", EpidataFieldType.float), EpidataFieldInfo("direction", EpidataFieldType.float), EpidataFieldInfo("missing_value", EpidataFieldType.int), EpidataFieldInfo("missing_stderr", EpidataFieldType.int), diff --git a/pyproject.toml b/pyproject.toml index 8321b5c..f6ee24a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,7 @@ dependencies = [ [project.optional-dependencies] dev = [ + "matplotlib", "mypy", "pylint", "pytest", @@ -47,6 +48,7 @@ dev = [ "ruff", "sphinx_rtd_theme", "sphinx-autodoc-typehints", + "sphinx-exec-directive", "sphinx", "twine", "types-requests", From 933be09ec485a5602c9330984b92eb4d76c03eaf Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Tue, 10 Sep 2024 18:26:49 +0300 Subject: [PATCH 4/8] Visualization --- docs/getting_started_with_epidatpy.rst | 28 +++++++++++-- docs/images/Figure_1.png | Bin 24300 -> 0 bytes docs/images/Getting_Started.png | Bin 0 -> 120130 bytes docs/images/Versioned_Data.png | Bin 0 -> 191103 bytes docs/signal_discovery.rst | 38 +++++++++-------- docs/versioned_data.rst | 45 ++++++++++++++++++++ docs_charts.py | 56 +++++++++++++++++++++++-- 7 files changed, 141 insertions(+), 26 deletions(-) delete mode 100644 docs/images/Figure_1.png create mode 100644 docs/images/Getting_Started.png create mode 100644 docs/images/Versioned_Data.png diff --git a/docs/getting_started_with_epidatpy.rst b/docs/getting_started_with_epidatpy.rst index f76cfd1..82e8167 100644 --- a/docs/getting_started_with_epidatpy.rst +++ b/docs/getting_started_with_epidatpy.rst @@ -77,7 +77,7 @@ The ``pub_covidcast`` function lets us access the ``covidcast`` endpoint: print(apicall) -``pub_covidcast`` returns an ``EpiDataCall``, which can be further converted into different output formats - such as a Pandas DataFrame: +``pub_covidcast`` returns an ``EpiDataCall``, which is a not-yet-executed query that can be inspected. The query can be executed and converted to a DataFrame by using the ``.df()`` method: .. exec:: :context: true @@ -175,9 +175,29 @@ it using any of the available Python libraries: .. code-block:: python - data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") - -.. image:: images/Figure_1.png + import matplotlib.pyplot as plt + + fig, ax = plt.subplots(figsize=(6, 5)) + plt.rc("axes", titlesize=16) + plt.rc("axes", labelsize=16) + plt.rc("xtick", labelsize=14) + plt.rc("ytick", labelsize=14) + ax.spines["right"].set_visible(False) + ax.spines["left"].set_visible(False) + ax.spines["top"].set_visible(False) + + data.pivot_table(values = "value", index = "time_value", columns = "geo_value").plot( + title="Smoothed CLI from Facebook Survey", + xlabel="Date", + ylabel="CLI", + ax = ax, + linewidth = 1.5 + ) + + plt.subplots_adjust(bottom=.2) + plt.show() + +.. image:: images/Getting_Started.png :width: 800 :alt: Smoothed CLI from Facebook Survey diff --git a/docs/images/Figure_1.png b/docs/images/Figure_1.png deleted file mode 100644 index 44fd25023b4c6029c9c9898e48aacc98a7d4afe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24300 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⩔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 HiJQIy9L24h diff --git a/docs/images/Getting_Started.png b/docs/images/Getting_Started.png new file mode 100644 index 0000000000000000000000000000000000000000..eaccb42d1daa749eeb1ea26d095c850677c3b661 GIT binary patch literal 120130 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 literal 0 HcmV?d00001 diff --git a/docs/images/Versioned_Data.png b/docs/images/Versioned_Data.png new file mode 100644 index 0000000000000000000000000000000000000000..93287e614670e1daa844e4572f0db1c1953d5a3f GIT binary patch literal 191103 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 UzN&IhWx``He(Ja=y*X?CKT~6;^#A|> literal 0 HcmV?d00001 diff --git a/docs/signal_discovery.rst b/docs/signal_discovery.rst index 97c3492..240c24f 100644 --- a/docs/signal_discovery.rst +++ b/docs/signal_discovery.rst @@ -28,16 +28,20 @@ data streams which are publically accessible from the COVIDcast API. See the `da and signals documentation `_ for descriptions of the available sources. ->>> from epidatpy import CovidcastEpidata ->>> epidata = CovidcastEpidata() ->>> sources = epidata.source_df ->>> sources.head() - source name description reference_signal license dua signals -0 chng Change Healthcare Change Healthcare is a healthcare technology c... smoothed_outpatient_cli CC BY-NC https://cmu.box.com/s/cto4to822zecr3oyq1kkk9xm... smoothed_outpatient_cli,smoothed_adj_outpatien... -1 covid-act-now Covid Act Now (CAN) COVID Act Now (CAN) tracks COVID-19 testing st... pcr_specimen_total_tests CC BY-NC None pcr_specimen_positivity_rate,pcr_specimen_tota... -2 doctor-visits Doctor Visits From Claims Information about outpatient visits, provided ... smoothed_cli CC BY https://cmu.box.com/s/l2tz6kmiws6jyty2azwb43po... smoothed_cli,smoothed_adj_cli -3 fb-survey Delphi US COVID-19 Trends and Impact Survey We conduct the Delphi US COVID-19 Trends and I... smoothed_cli CC BY https://cmu.box.com/s/qfxplcdrcn9retfzx4zniyug... raw_wcli,raw_cli,smoothed_cli,smoothed_wcli,ra... -4 google-symptoms Google Symptoms Search Trends Google's [COVID-19 Search Trends symptoms data... s05_smoothed_search To download or use the data, you must agree to... None ageusia_raw_search,ageusia_smoothed_search,ano... +.. exec:: + :context: true + + from epidatpy import CovidcastEpidata + import pandas as pd + + pd.set_option('display.max_columns', None) + pd.set_option('display.max_rows', None) + pd.set_option('display.width', 1000) + + epidata = CovidcastEpidata() + sources = epidata.source_df + + print(sources.head()) This DataFrame contains the following columns: @@ -52,14 +56,12 @@ The ``signal_df`` DataFrame can also be used to obtain information about the sig that are available - for example, what time range they are available for, and when they have been updated. ->>> signals = epidata.signal_df ->>> signals.head() - source signal name active short_description description time_type time_label value_label format category high_values_are is_smoothed is_weighted is_cumulative has_stderr has_sample_size geo_types -0 chng smoothed_outpatient_cli COVID-Related Doctor Visits False Estimated percentage of outpatient doctor visi... Estimated percentage of outpatient doctor visi... day Date Value raw early bad True False False False False county,hhs,hrr,msa,nation,state -1 chng smoothed_adj_outpatient_cli COVID-Related Doctor Visits (Day-adjusted) False Estimated percentage of outpatient doctor visi... Estimated percentage of outpatient doctor visi... day Date Value raw early bad True False False False False county,hhs,hrr,msa,nation,state -2 chng smoothed_outpatient_covid COVID-Confirmed Doctor Visits False COVID-Confirmed Doctor Visits Estimated percentage of outpatient doctor visi... day Date Value raw early bad True False False False False county,hhs,hrr,msa,nation,state -3 chng smoothed_adj_outpatient_covid COVID-Confirmed Doctor Visits (Day-adjusted) False COVID-Confirmed Doctor Visits Estimated percentage of outpatient doctor visi... day Date Value raw early bad True False False False False county,hhs,hrr,msa,nation,state -4 chng smoothed_outpatient_flu Influenza-Confirmed Doctor Visits False Estimated percentage of outpatient doctor visi... Estimated percentage of outpatient doctor visi... day Day Value raw early bad True False False None None county,hhs,hrr,msa,nation,state +.. exec:: + :context: true + + signals = epidata.signal_df + + print(signals.head()) This DataFrame contains one row each available signal, with the following columns: diff --git a/docs/versioned_data.rst b/docs/versioned_data.rst index 322ed11..cf1f617 100644 --- a/docs/versioned_data.rst +++ b/docs/versioned_data.rst @@ -90,6 +90,51 @@ for forecasting tasks. To backtest a forecasting model on past data, it is important to use the data that would have been available *at the time* the model was or would have been fit, not data that arrived much later. +By plotting API results with different values of the ``as_of`` parameter, we can +see how the indicator value changes over time as new observations become available: + +.. code-block:: python + + results = [] + for as_of_date in ["2020-05-07", "2020-05-14", "2020-05-21", "2020-05-28"]: + apicall = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_adj_cli", + time_type = "day", + time_values = EpiRange("2020-04-20", "2020-04-27"), + geo_type = "state", + geo_values = "pa", + as_of = as_of_date) + + results.append(apicall.df()) + + final_df = pd.concat(results) + final_df["issue"] = final_df["issue"].dt.date + + fig, ax = plt.subplots(figsize=(6, 5)) + ax.spines["right"].set_visible(False) + ax.spines["left"].set_visible(False) + ax.spines["top"].set_visible(False) + + def sub_cmap(cmap, vmin, vmax): + return lambda v: cmap(vmin + (vmax - vmin) * v) + + final_df.pivot_table(values = "value", index = "time_value", columns = "issue").plot( + xlabel="Date", + ylabel="CLI", + ax = ax, + linewidth = 1.5, + colormap=sub_cmap(plt.get_cmap('viridis').reversed(), 0.2, 1) + ) + + plt.title("Smoothed CLI from Doctor Visits", fontsize=16) + plt.subplots_adjust(bottom=.2) + plt.show() + +.. image:: images/Versioned_Data.png + :width: 800 + :alt: Smoothed CLI from Facebook Survey + Multiple issues of observations ------------------------------- diff --git a/docs_charts.py b/docs_charts.py index 92788bc..3610fd2 100644 --- a/docs_charts.py +++ b/docs_charts.py @@ -15,14 +15,62 @@ apicall = epidata.pub_covidcast( data_source = "fb-survey", signals = "smoothed_cli", - geo_type = "nation", + geo_type = "state", + geo_values = "pa,ca,fl", time_type = "day", - geo_values = "us", time_values = EpiRange(20210405, 20210410)) print(apicall) data = apicall.df() -data.plot(x="time_value", y="value", title="Smoothed CLI from Facebook Survey", xlabel="Date", ylabel="CLI") +fig, ax = plt.subplots(figsize=(6, 5)) +ax.spines["right"].set_visible(False) +ax.spines["left"].set_visible(False) +ax.spines["top"].set_visible(False) + +data.pivot_table(values = "value", index = "time_value", columns = "geo_value").plot( + xlabel="Date", + ylabel="CLI", + ax = ax, + linewidth = 1.5 +) + +plt.title("Smoothed CLI from Facebook Survey", fontsize=16) +plt.subplots_adjust(bottom=.2) +plt.savefig("docs/images/Getting_Started.png", dpi=300) + +results = [] +for as_of_date in ["2020-05-07", "2020-05-14", "2020-05-21", "2020-05-28"]: + apicall = epidata.pub_covidcast( + data_source = "doctor-visits", + signals = "smoothed_adj_cli", + time_type = "day", + time_values = EpiRange("2020-04-20", "2020-04-27"), + geo_type = "state", + geo_values = "pa", + as_of = as_of_date) + + results.append(apicall.df()) + +final_df = pd.concat(results) +final_df["issue"] = final_df["issue"].dt.date + +fig, ax = plt.subplots(figsize=(6, 5)) +ax.spines["right"].set_visible(False) +ax.spines["left"].set_visible(False) +ax.spines["top"].set_visible(False) + +def sub_cmap(cmap, vmin, vmax): + return lambda v: cmap(vmin + (vmax - vmin) * v) + +final_df.pivot_table(values = "value", index = "time_value", columns = "issue").plot( + xlabel="Date", + ylabel="CLI", + ax = ax, + linewidth = 1.5, + colormap=sub_cmap(plt.get_cmap('viridis').reversed(), 0.2, 1) +) + +plt.title("Smoothed CLI from Doctor Visits", fontsize=16) plt.subplots_adjust(bottom=.2) -plt.show() +plt.savefig("docs/images/Versioned_Data.png", dpi=300) From ee6cec9f27b247c39ec508b9fb347a48a1535b6e Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Tue, 10 Sep 2024 20:17:00 +0300 Subject: [PATCH 5/8] Final touches --- Makefile | 1 + docs/data/endpoints.csv | 29 +++ docs/getting_started.rst | 276 ------------------------- docs/getting_started_with_epidatpy.rst | 38 ++-- docs/images/Getting_Started.png | Bin 120130 -> 120130 bytes docs/images/Versioned_Data.png | Bin 191103 -> 191103 bytes docs/index.rst | 6 +- docs_charts.py => docs/preprocess.py | 13 +- docs/signal_discovery.rst | 22 +- 9 files changed, 81 insertions(+), 304 deletions(-) create mode 100644 docs/data/endpoints.csv delete mode 100644 docs/getting_started.rst rename docs_charts.py => docs/preprocess.py (82%) diff --git a/Makefile b/Makefile index 22bf0f0..7c2ff5b 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,7 @@ test: env/bin/pytest . doc: + env/bin/python docs/preprocess.py env/bin/sphinx-build -b html docs docs/_build env/bin/python -m webbrowser -t "docs/_build/index.html" diff --git a/docs/data/endpoints.csv b/docs/data/endpoints.csv new file mode 100644 index 0000000..caee036 --- /dev/null +++ b/docs/data/endpoints.csv @@ -0,0 +1,29 @@ +Endpoint,Description +pub_covid_hosp_facility,Fetch COVID hospitalization data for specific facilities. +pub_covid_hosp_facility_lookup,Lookup COVID hospitalization facility identifiers. +pub_covid_hosp_state_timeseries,Fetch COVID hospitalization data. +pub_covidcast,Fetch Delphi's COVID-19 Surveillance Streams +pub_covidcast_meta,Fetch COVIDcast surveillance stream metadata. +pub_delphi,Fetch Delphi's forecast. +pub_dengue_nowcast,Fetch Delphi's dengue nowcast. +pub_ecdc_ili,Fetch ECDC ILI data. +pub_flusurv,Fetch FluSurv data. +pub_fluview, +pub_fluview_clinical,Fetch FluView clinical data. +pub_fluview_meta, +pub_gft,Fetch Google Flu Trends data. +pub_kcdc_ili,Fetch KCDC ILI data. +pub_meta,Fetch API metadata. +pub_nidss_dengue,Fetch NIDSS dengue data. +pub_nidss_flu,Fetch NIDSS flu data. +pub_nowcast,Fetch Delphi's wILI nowcast. +pub_paho_dengue,Fetch PAHO Dengue data. +pub_wiki,Fetch Wikipedia access data. +pvt_cdc,Fetch CDC page hits. +pvt_dengue_sensors,Fetch Delphi's digital surveillance sensors. +pvt_ght,Fetch Google Health Trends data. +pvt_meta_norostat,Fetch NoroSTAT metadata. +pvt_norostat,"Fetch NoroSTAT data (point data, no min/max)." +pvt_quidel,Fetch Quidel data. +pvt_sensors,Fetch Delphi's digital surveillance sensors. +pvt_twitter,Fetch HealthTweets data. diff --git a/docs/getting_started.rst b/docs/getting_started.rst deleted file mode 100644 index a993e2a..0000000 --- a/docs/getting_started.rst +++ /dev/null @@ -1,276 +0,0 @@ -Getting Started -=============== - -Overview --------------- - -This package provides access to data from various Epidata API endpoints including COVIDcast, -which provides numerous COVID-related data streams, updated daily. - -.. _epidata-endpoints: - -Epidata Data Sources --------------------- -The parameters available for each source data are documented in each linked source-specific API page. - -**COVID-19 Data** - -.. list-table:: - :widths: 20 20 40 - :header-rows: 1 - - * - Endpoint - - Name - - Description - * - `pub_covidcast `_ - - COVIDcast - - Delphi’s COVID-19 surveillance streams. - * - `pub_covidcast_meta `_ - - COVIDcast metadata - - Metadata for Delphi's COVID-19 surveillance streams. - * - `pub_covid_hosp_facility `_ - - COVID-19 Hospitalization by Facility - - COVID-19 Reported Patient Impact and Hospital Capacity - Facility Lookup - * - `pub_covid_hosp `_ - - COVID-19 Hospitalization - - COVID-19 Reported Patient Impact and Hospital Capacity. - -**Influenza Data** - -.. list-table:: - :widths: 20 20 40 - :header-rows: 1 - - * - Endpoint - - Name - - Description - * - `pvt_cdc `_ - - CDC Page Hits - - ... - * - `pub_delphi `_ - - Delphi’s Forecast - - ... - * - `pub_ecdc_ili `_ - - ECDC ILI - - ECDC ILI data from the ECDC website. - * - `pub_flusurv `_ - - FluSurv - - FluSurv-NET data (flu hospitaliation rates) from CDC. - * - `pub_fluview `_ - - FluView - - Influenza-like illness (ILI) from U.S. Outpatient Influenza-like Illness Surveillance Network (ILINet). - * - `pub_fluview_meta `_ - - FluView Metadata - - Summary data about ``fluview``. - * - `pub_fluview_clinical `_ - - FluView Clinical - - ... - * - `pub_gft `_ - - Google Flu Trends - - Estimate of influenza activity based on volume of certain search queries. This is now a static endpoint due to discontinuation. - * - `pub_kcdc_ili `_ - - KCDC ILI - - KCDC ILI data from KCDC website. - * - `pub_meta `_ - - API Metadata - - Metadata for ``fluview``, ``twitter``, ``wiki``, and ``delphi``. - * - `pub_nidss_flu `_ - - NIDSS Flu - - Outpatient ILI from Taiwan's National Infectious Disease Statistics System (NIDSS). - * - `pub_nowcast `_ - - ILI Nearby - - A nowcast of U.S. national, regional, and state-level (weighted) percent ILI, available seven days (regionally) or five days (state-level) before the first ILINet report for the corresponding week. - * - `pvt_quidel `_ - - Quidel - - Data provided by Quidel Corp., which contains flu lab test results. - * - `pvt_sensors `_ - - Delphi's Digital Surveillance Sensors - - ... - * - `pvt_twitter `_ - - Twitter Stream - - Estimate of influenza activity based on analysis of language used in tweets from HealthTweets. - * - `pub_wiki `_ - - Wikipedia Access Logs - - Number of page visits for selected English, Influenza-related wikipedia articles. - -**Dengue Data** - -.. list-table:: - :widths: 20 20 40 - :header-rows: 1 - - * - Endpoint - - Name - - Description - * - `pub_dengue_nowcast `_ - - Delphi's Dengue Nowcast - - ... - * - `pvt_dengue_sensors `_ - - Delphi’s Dengue Digital Surveillance Sensors - - ... - * - `pub_nidss_dengue `_ - - NIDSS Dengue - - Counts of confirmed dengue cases from Taiwan's NIDSS. - * - `pub_paho_dengue `_ - - PAHO Dengue - - ... - -**Norovirus Data** - -.. list-table:: - :widths: 20 20 40 - :header-rows: 1 - - * - Endpoint - - Name - - Description - * - `pvt_meta_norostat `_ - - NoroSTAT Metadata - - ... - * - `pvt_norostat `_ - - NoroSTAT - - Suspected and confirmed norovirus outbreaks reported by state health departments to the CDC. - -Epiweeks and Dates ------------------- -Epiweeks use the U.S. definition. That is, the first epiweek each year is the -week, starting on a Sunday, containing January 4. See `this page -`_ -for more information. - -Formatting for epiweeks is YYYYWW and for dates is YYYYMMDD. - -Use individual values, comma-separated lists or, a hyphenated range of values to specify single or several dates. -An ``EpiRange`` object can be also used to construct a range of epiweeks or dates. Examples include: - -- ``param = 201530`` (A single epiweek) -- ``param = '201401,201501,201601'`` (Several epiweeks) -- ``param = '200501-200552'`` (A range of epiweeks) -- ``param = '201440,201501-201510'`` (Several epiweeks, including a range) -- ``param = EpiRange(20070101, 20071231)`` (A range of dates) - -.. _getting-started: - -Basic examples --------------- - -**COVIDcast** - -To obtain smoothed estimates of COVID-like illness from our symptom survey, -distributed through Facebook, for every county in the United States between -2020-05-01 and 2020-05-07: - ->>> from epidatpy.request import Epidata, EpiRange ->>> apicall = Epidata.covidcast("fb-survey", "smoothed_cli", -... "day", "county", -... EpiRange(20200501, 20200507), "*") ->>> data = apicall.df() ->>> data.head() - source signal geo_type geo_value time_type time_value issue lag value stderr sample_size direction missing_value missing_stderr missing_sample_size -0 fb-survey smoothed_cli county 01000 day 2020-05-01 2020-09-03 125 0.825410 0.136003 1722 None 0 0 0 -1 fb-survey smoothed_cli county 01001 day 2020-05-01 2020-09-03 125 1.299425 0.967136 115 None 0 0 0 -2 fb-survey smoothed_cli county 01003 day 2020-05-01 2020-09-03 125 0.696597 0.324753 584 None 0 0 0 -3 fb-survey smoothed_cli county 01015 day 2020-05-01 2020-09-03 125 0.428271 0.548566 122 None 0 0 0 -4 fb-survey smoothed_cli county 01031 day 2020-05-01 2020-09-03 125 0.025579 0.360827 114 None 0 0 0 - -Each row represents one observation in one county per day. The county FIPS -code is given in the ``geo_value`` column, and the date is given in the ``time_value`` -column. The ``value`` is the requested signal - the smoothed -estimate of the percentage of people with COVID-like illness based on the -symptom surveys. The ``issue`` column indicates when this data was reported; in this case, the survey estimates for -May 1st were updated on September 3rd based on new data, giving a ``lag`` of 125 days. -See the :py:func:`epidatpy.request.Epidata.covidcast` documentation for further details on the returned -columns. - -In the above code, the ``.df()`` function on the ``apicall`` variable generated a Pandas DataFrame. We can use -other :ref:`output functions ` to parse the requested API call in different formats. To parse the data -into JSON format, we can use the following command: - ->>> data = apicall.json() ->>> data -[{'geo_value': '01000', - 'signal': 'smoothed_cli', - 'source': 'fb-survey', - 'geo_type': 'county', - 'time_type': 'day', - 'time_value': datetime.date(2020, 5, 1), - 'direction': None, - 'issue': datetime.date(2020, 9, 3), - 'lag': 125, - 'missing_value': 0, - 'missing_stderr': 0, - 'missing_sample_size': 0, - 'value': 0.8254101, - 'stderr': 0.1360033, - 'sample_size': 1722.4551}, - {'geo_value': '01001', - 'signal': 'smoothed_cli', - 'source': 'fb-survey', - 'geo_type': 'county', - 'time_type': 'day', - 'time_value': datetime.date(2020, 5, 1), - 'direction': None, - 'issue': datetime.date(2020, 9, 3), - 'lag': 125, - 'missing_value': 0, - 'missing_stderr': 0, - 'missing_sample_size': 0, - 'value': 1.2994255, - 'stderr': 0.9671356, - 'sample_size': 115.8025}, - . - . - . - }] - -Note that all of the :ref:`output functions ` have a ``field`` parameter which takes in any form of iterator objects -to enable fetching the data with customization (e.g. specifying which fields or columns to output). Similar to the previous example, -to parse the data in JSON format, but customize the field to show only ``geo_value`` and ``value``, we would use the following -command: - ->>> data = apicall.json(fields = ['geo_value', 'value']) ->>> data -[{'geo_value': '01000', 'value': 0.8254101}, - {'geo_value': '01001', 'value': 1.2994255}, - {'geo_value': '01003', 'value': 0.6965968}, - {'geo_value': '01015', 'value': 0.4282713}, - {'geo_value': '01031', 'value': 0.0255788}, - {'geo_value': '01045', 'value': 1.0495589}, - {'geo_value': '01051', 'value': 1.5783991}, - {'geo_value': '01069', 'value': 1.6789546}, - {'geo_value': '01071', 'value': 2.1313118}, - . - . - . - }] - -**Wikipedia Access article "influenza" on 2020w01** - ->>> apicall_wiki = Epidata.wiki(articles='influenza', epiweeks='202001') ->>> data = apicall_wiki.json() ->>> print(data) -[{'article': 'influenza', 'count': 6516, 'total': 663604044, 'hour': -1, 'epiweek': datetime.date(2019, 12, 29), 'value': 9.81910834}] - -**FluView on 2019w01 (national)** - ->>> apicall_fluview = Epidata.fluview(regions='nat', epiweeks='201901') ->>> data = apicall_fluview.classic() ->>> data -{'epidata': [{'release_date': '2020-10-02', - 'region': 'nat', - 'issue': datetime.date(2020, 3, 9), - 'epiweek': datetime.date(2018, 12, 30), - 'lag': 90, - 'num_ili': 42135, - 'num_patients': 1160440, - 'num_providers': 2630, - 'num_age_0': 11686, - 'num_age_1': 9572, - 'num_age_2': None, - 'num_age_3': 11413, - 'num_age_4': 5204, - 'num_age_5': 4260, - 'wili': 3.45972, - 'ili': 3.63095}], - 'result': 1, - 'message': 'success'} diff --git a/docs/getting_started_with_epidatpy.rst b/docs/getting_started_with_epidatpy.rst index 82e8167..0604688 100644 --- a/docs/getting_started_with_epidatpy.rst +++ b/docs/getting_started_with_epidatpy.rst @@ -112,7 +112,9 @@ it supports ``*``.) print(apicall) print(apicall.df().head()) -We can fetch a subset of states by listing out the desired locations: +Alternatively, we can fetch the full time series for a subset of states by +listing out the desired locations in the ``geo_value`` argument and using +``*`` in the ``time_values`` argument: .. exec:: :context: true @@ -128,22 +130,6 @@ We can fetch a subset of states by listing out the desired locations: print(apicall) print(apicall.df().head()) -We can also request data for a single location at a time, via the ``geo_values`` argument. - -.. exec:: - :context: true - - apicall = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - time_type = "day", - geo_values = "pa", - time_values = EpiRange(20210405, 20210410)) - - print(apicall) - print(apicall.df().head()) - Getting versioned data ---------------------- @@ -234,3 +220,21 @@ the data stream that you are most interested in. The Epidata documentation lists all the data sources and signals available through the API for `COVID-19 `_ and for `other diseases `_. + +Epiweeks and Dates +------------------ +Epiweeks use the U.S. definition. That is, the first epiweek each year is the +week, starting on a Sunday, containing January 4. See `this page +`_ +for more information. + +Formatting for epiweeks is YYYYWW and for dates is YYYYMMDD. + +Use individual values, comma-separated lists or, a hyphenated range of values to specify single or several dates. +An ``EpiRange`` object can be also used to construct a range of epiweeks or dates. Examples include: + +- ``param = 201530`` (A single epiweek) +- ``param = '201401,201501,201601'`` (Several epiweeks) +- ``param = '200501-200552'`` (A range of epiweeks) +- ``param = '201440,201501-201510'`` (Several epiweeks, including a range) +- ``param = EpiRange(20070101, 20071231)`` (A range of dates) diff --git a/docs/images/Getting_Started.png b/docs/images/Getting_Started.png index eaccb42d1daa749eeb1ea26d095c850677c3b661..0ab8834f36d9d6834288cf386745d424d786cb37 100644 GIT binary patch delta 48 zcmX@Kiv7?k_6cqZ=6a?&3K=CO1;tkS`nicE1v&X8Ihjd%`91y3K=CO1;tkS`nicE1v&X8Ihjd%`9%?g?%R=6a?&3K=CO1;tkS`nicE1v&X8Ihjd%`94&eA50Xw delta 51 zcmex=h5P>%?g?%RmU>1y3K=CO1;tkS`nicE1v&X8Ihjd%`9`_. The site also includes a search tool if you have a keyword (e.g. "Taiwan") in mind. +Epidata Data Sources +-------------------- +The parameters available for each source data are documented in each linked source-specific API page. + +.. csv-table:: + :file: data/endpoints.csv + :widths: 20 40 + :header-rows: 1 Signal metadata --------------- @@ -45,12 +53,13 @@ for descriptions of the available sources. This DataFrame contains the following columns: -- ``source`` - Data source name. -- ``signal`` - Signal name. +- ``source`` - API-internal source name. +- ``name`` - Human-readable source name. - ``description`` - Description of the signal. - ``reference_signal`` - Geographic level for which this signal is available, such as county, state, msa, hss, hrr, or nation. Most signals are available at multiple geographic levels and will hence be listed in multiple rows with their own metadata. -- ``license`` - The license +- ``license`` - The license. - ``dua`` - Link to the Data Use Agreement. +- ``signals`` - List of signals available from this data source. The ``signal_df`` DataFrame can also be used to obtain information about the signals that are available - for example, what time range they are available for, @@ -65,9 +74,9 @@ and when they have been updated. This DataFrame contains one row each available signal, with the following columns: -- ``data_source`` - Data source name. -- ``signal`` - Signal name. -- ``name`` - Name of signal. +- ``source`` - Data source name. +- ``signal`` - API-internal signal name. +- ``name`` - Human-readable signal name. - ``active`` - Whether the signal is currently not updated or not. Signals may be inactive because the sources have become unavailable, other sources have replaced them, or additional work is required for us to continue updating them. - ``short_description`` - Brief description of the signal. - ``description`` - Full description of the signal. @@ -83,3 +92,4 @@ This DataFrame contains one row each available signal, with the following column - ``is_cumulative`` - Whether the signal is cumulative. - ``has_stderr`` - Whether the signal has `stderr` statistic. - ``has_sample_size`` - Whether the signal has `sample_size` statistic. +- ``geo_types`` - Geographical levels for which this signal is available. From 13609b26887d79af2472be5e9c84fa91ee4396db Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Mon, 16 Sep 2024 18:40:56 +0300 Subject: [PATCH 6/8] Port to notebooks --- Makefile | 4 +- README.md | 15 ++ docs/conf.py | 7 +- docs/data/endpoints.csv | 29 --- docs/getting_started.ipynb | 306 +++++++++++++++++++++++++ docs/getting_started_with_epidatpy.rst | 240 ------------------- docs/images/Getting_Started.png | Bin 120130 -> 0 bytes docs/images/Versioned_Data.png | Bin 191103 -> 0 bytes docs/index.rst | 2 +- docs/preprocess.py | 87 ------- docs/signal_discovery.ipynb | 141 ++++++++++++ docs/signal_discovery.rst | 95 -------- docs/versioned_data.ipynb | 264 +++++++++++++++++++++ docs/versioned_data.rst | 203 ---------------- pyproject.toml | 3 +- 15 files changed, 737 insertions(+), 659 deletions(-) delete mode 100644 docs/data/endpoints.csv create mode 100644 docs/getting_started.ipynb delete mode 100644 docs/getting_started_with_epidatpy.rst delete mode 100644 docs/images/Getting_Started.png delete mode 100644 docs/images/Versioned_Data.png delete mode 100644 docs/preprocess.py create mode 100644 docs/signal_discovery.ipynb delete mode 100644 docs/signal_discovery.rst create mode 100644 docs/versioned_data.ipynb delete mode 100644 docs/versioned_data.rst diff --git a/Makefile b/Makefile index 7c2ff5b..64a7868 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ test: env/bin/pytest . doc: - env/bin/python docs/preprocess.py + @pandoc --version >/dev/null 2>&1 || (echo "ERROR: pandoc is required (install via your platform's package manager)"; exit 1) env/bin/sphinx-build -b html docs docs/_build env/bin/python -m webbrowser -t "docs/_build/index.html" @@ -42,7 +42,7 @@ clean_python: find . -name '*.pyo' -exec rm -f {} + find . -name '__pycache__' -exec rm -fr {} + -clean: clean_docs clean_build clean_python +clean: clean_doc clean_build clean_python release: clean lint test env/bin/python -m build --sdist --wheel diff --git a/README.md b/README.md index a366317..0d9e0f3 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,21 @@ make release # upload the current version to pypi make clean # clean build and docs artifacts ``` +Building the documentation additionally requires the Pandoc package. These commands can be used +to install the package on common platforms (see the +[official documentation](https://pandoc.org/installing.html) for more options): + +```sh +# Linux (Debian/Ubuntu) +sudo apt-get install pandoc + +# OS X / Linux (with Homebrew) +brew install pandoc + +# Windows (with Chocolatey) +choco install pandoc +``` + ### Release Process The release consists of multiple steps which can be all done via the GitHub website: diff --git a/docs/conf.py b/docs/conf.py index 44008ef..fda097a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -35,7 +35,7 @@ "sphinx.ext.autodoc", "sphinx_autodoc_typehints", # 'matplotlib.sphinxext.plot_directive' - "sphinx_exec_directive" + "nbsphinx" ] # Add any paths that contain templates here, relative to this directory. @@ -85,3 +85,8 @@ # https://pypi.org/project/sphinx-autodoc-typehints/ always_document_param_types = True + +# https://nbsphinx.readthedocs.io/ +nbsphinx_prompt_width = 0 +nbsphinx_input_prompt = "%.0s" +nbsphinx_output_prompt = "%.0s" \ No newline at end of file diff --git a/docs/data/endpoints.csv b/docs/data/endpoints.csv deleted file mode 100644 index caee036..0000000 --- a/docs/data/endpoints.csv +++ /dev/null @@ -1,29 +0,0 @@ -Endpoint,Description -pub_covid_hosp_facility,Fetch COVID hospitalization data for specific facilities. -pub_covid_hosp_facility_lookup,Lookup COVID hospitalization facility identifiers. -pub_covid_hosp_state_timeseries,Fetch COVID hospitalization data. -pub_covidcast,Fetch Delphi's COVID-19 Surveillance Streams -pub_covidcast_meta,Fetch COVIDcast surveillance stream metadata. -pub_delphi,Fetch Delphi's forecast. -pub_dengue_nowcast,Fetch Delphi's dengue nowcast. -pub_ecdc_ili,Fetch ECDC ILI data. -pub_flusurv,Fetch FluSurv data. -pub_fluview, -pub_fluview_clinical,Fetch FluView clinical data. -pub_fluview_meta, -pub_gft,Fetch Google Flu Trends data. -pub_kcdc_ili,Fetch KCDC ILI data. -pub_meta,Fetch API metadata. -pub_nidss_dengue,Fetch NIDSS dengue data. -pub_nidss_flu,Fetch NIDSS flu data. -pub_nowcast,Fetch Delphi's wILI nowcast. -pub_paho_dengue,Fetch PAHO Dengue data. -pub_wiki,Fetch Wikipedia access data. -pvt_cdc,Fetch CDC page hits. -pvt_dengue_sensors,Fetch Delphi's digital surveillance sensors. -pvt_ght,Fetch Google Health Trends data. -pvt_meta_norostat,Fetch NoroSTAT metadata. -pvt_norostat,"Fetch NoroSTAT data (point data, no min/max)." -pvt_quidel,Fetch Quidel data. -pvt_sensors,Fetch Delphi's digital surveillance sensors. -pvt_twitter,Fetch HealthTweets data. diff --git a/docs/getting_started.ipynb b/docs/getting_started.ipynb new file mode 100644 index 0000000..b209c21 --- /dev/null +++ b/docs/getting_started.ipynb @@ -0,0 +1,306 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Getting started with epidatpy\n", + "\n", + "The epidatpy package provides access to all the endpoints of the [Delphi Epidata\n", + "API](https://cmu-delphi.github.io/delphi-epidata/), and can be used to make\n", + "requests for specific signals on specific dates and in select geographic\n", + "regions.\n", + "\n", + "## Setup\n", + "\n", + "### Installation\n", + "\n", + "You can install the stable version of this package from PyPi:\n", + "\n", + "```\n", + "pip install epidatpy\n", + "```\n", + "\n", + "Or if you want the development version, install from GitHub:\n", + "\n", + "```\n", + "pip install -e \"git+https://github.com/cmu-delphi/epidatpy.git#egg=epidatpy\"\n", + "```\n", + "\n", + "\n", + "### API keys\n", + "\n", + "The Delphi API requires a (free) API key for full functionality. While most\n", + "endpoints are available without one, there are\n", + "[limits on API usage for anonymous users](https://cmu-delphi.github.io/delphi-epidata/api/api_keys.html),\n", + "including a rate limit.\n", + "\n", + "To generate your key,\n", + "[register for a pseudo-anonymous account](https://api.delphi.cmu.edu/epidata/admin/registration_form).\n", + "\n", + "*Note* that private endpoints (i.e. those prefixed with `pvt_`) require a\n", + "separate key that needs to be passed as an argument. These endpoints require\n", + "specific data use agreements to access.\n", + "\n", + "## Basic usage\n", + "\n", + "Fetching data from the Delphi Epidata API is simple. Suppose we are\n", + "interested in the [covidcast endpoint](https://cmu-delphi.github.io/delphi-epidata/api/covidcast.html),\n", + "which provides access to a [wide range of data](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html)\n", + "on COVID-19. Reviewing the endpoint documentation, we see that we\n", + "[need to specify](https://cmu-delphi.github.io/delphi-epidata/api/covidcast.html#constructing-api-queries)\n", + "a data source name, a signal name, a geographic level, a time resolution, and\n", + "the location and times of interest.\n", + "\n", + "The `pub_covidcast` function lets us access the `covidcast` endpoint:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from epidatpy import EpiDataContext, EpiRange\n", + "import pandas as pd\n", + "\n", + "# Set common options and context\n", + "pd.set_option('display.max_columns', None)\n", + "pd.set_option('display.max_rows', None)\n", + "pd.set_option('display.width', 1000)\n", + "\n", + "epidata = EpiDataContext(use_cache=False)\n", + "\n", + "# Obtain the most up-to-date version of the smoothed covid-like illness (CLI)\n", + "# signal from the COVID-19 Trends and Impact survey for the US\n", + "apicall = epidata.pub_covidcast(\n", + " data_source = \"fb-survey\",\n", + " signals = \"smoothed_cli\",\n", + " geo_type = \"nation\",\n", + " time_type = \"day\",\n", + " geo_values = \"us\",\n", + " time_values = EpiRange(20210405, 20210410))\n", + "\n", + "print(apicall)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`pub_covidcast` returns an `EpiDataCall`, which is a not-yet-executed query that can be inspected. The query can be executed and converted to a DataFrame by using the `.df()` method:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data = apicall.df()\n", + "print(data.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each row represents one observation in the US on one\n", + "day. The geographical abbreviation is given in the `geo_value` column, the date in\n", + "the `time_value` column. Here `value` is the requested signal -- in this\n", + "case, the smoothed estimate of the percentage of people with COVID-like\n", + "illness, based on the symptom surveys, and `stderr` is its standard error.\n", + "\n", + "The Epidata API makes signals available at different geographic levels,\n", + "depending on the endpoint. To request signals for all states instead of the\n", + "entire US, we use the `geo_type` argument paired with `*` for the\n", + "`geo_values` argument. (Only some endpoints allow for the use of `*` to\n", + "access data at all locations. Check the help for a given endpoint to see if\n", + "it supports `*`.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "apicall = epidata.pub_covidcast(\n", + " data_source = \"fb-survey\",\n", + " signals = \"smoothed_cli\",\n", + " geo_type = \"state\",\n", + " time_type = \"day\",\n", + " geo_values = \"*\",\n", + " time_values = EpiRange(20210405, 20210410))\n", + "\n", + "print(apicall)\n", + "print(apicall.df().head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we can fetch the full time series for a subset of states by \n", + "listing out the desired locations in the `geo_value` argument and using\n", + "`*` in the `time_values` argument:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "apicall = epidata.pub_covidcast(\n", + " data_source = \"fb-survey\",\n", + " signals = \"smoothed_cli\",\n", + " geo_type = \"state\",\n", + " time_type = \"day\",\n", + " geo_values = \"pa,ca,fl\",\n", + " time_values = EpiRange(20210405, 20210410))\n", + "\n", + "print(apicall)\n", + "print(apicall.df().head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting versioned data\n", + "\n", + "The Epidata API stores a historical record of all data, including corrections\n", + "and updates, which is particularly useful for accurately backtesting\n", + "forecasting models. To fetch versioned data, we can use the `as_of`\n", + "argument:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "apicall = epidata.pub_covidcast(\n", + " data_source = \"fb-survey\",\n", + " signals = \"smoothed_cli\",\n", + " geo_type = \"state\",\n", + " time_type = \"day\",\n", + " geo_values = \"pa\",\n", + " time_values = EpiRange(20210405, 20210410),\n", + " as_of = \"2021-06-01\")\n", + "\n", + "print(apicall)\n", + "print(apicall.df().head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting\n", + "\n", + "Because the output data is a standard Pandas DataFrame, we can easily plot\n", + "it using any of the available Python libraries:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.rcParams['figure.dpi'] = 300\n", + "\n", + "apicall = epidata.pub_covidcast(\n", + " data_source = \"fb-survey\",\n", + " signals = \"smoothed_cli\", \n", + " geo_type = \"state\",\n", + " geo_values = \"pa,ca,fl\",\n", + " time_type = \"day\",\n", + " time_values = EpiRange(20210405, 20210410))\n", + "\n", + "data = apicall.df()\n", + "\n", + "fig, ax = plt.subplots(figsize=(6, 5))\n", + "ax.spines[\"right\"].set_visible(False)\n", + "ax.spines[\"left\"].set_visible(False)\n", + "ax.spines[\"top\"].set_visible(False)\n", + "\n", + "data.pivot_table(values = \"value\", index = \"time_value\", columns = \"geo_value\").plot(\n", + " xlabel=\"Date\",\n", + " ylabel=\"CLI\",\n", + " ax = ax,\n", + " linewidth = 1.5\n", + ")\n", + "\n", + "plt.title(\"Smoothed CLI from Facebook Survey\", fontsize=16)\n", + "plt.subplots_adjust(bottom=.2)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finding locations of interest\n", + "\n", + "Most data is only available for the US. Select endpoints report other countries at the national and/or regional levels. Endpoint descriptions explicitly state when they cover non-US locations.\n", + "\n", + "For endpoints that report US data, see the\n", + "[geographic coding documentation](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_geography.html)\n", + "for available geographic levels.\n", + "\n", + "## International data\n", + "\n", + "International data is available via\n", + "\n", + "- `pub_dengue_nowcast` (North and South America)\n", + "- `pub_ecdc_ili` (Europe)\n", + "- `pub_kcdc_ili` (Korea)\n", + "- `pub_nidss_dengue` (Taiwan)\n", + "- `pub_nidss_flu` (Taiwan)\n", + "- `pub_paho_dengue` (North and South America)\n", + "- `pvt_dengue_sensors` (North and South America)\n", + "\n", + "## Finding data sources and signals of interest\n", + "\n", + "Above we used data from [Delphi’s symptom surveys](https://delphi.cmu.edu/covid19/ctis/),\n", + "but the Epidata API includes numerous data streams: medical claims data, cases\n", + "and deaths, mobility, and many others. This can make it a challenge to find\n", + "the data stream that you are most interested in.\n", + "\n", + "The Epidata documentation lists all the data sources and signals available\n", + "through the API for [COVID-19](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html)\n", + "and for [other diseases](https://cmu-delphi.github.io/delphi-epidata/api/README.html#source-specific-parameters).\n", + "\n", + "## Epiweeks and dates\n", + "\n", + "Epiweeks use the U.S. definition. That is, the first epiweek each year is the\n", + "week, starting on a Sunday, containing January 4. See [this page](https://www.cmmcp.org/mosquito-surveillance-data/pages/epi-week-calendars-2008-2021)\n", + "for more information.\n", + "\n", + "Formatting for epiweeks is YYYYWW and for dates is YYYYMMDD.\n", + "\n", + "Use individual values, comma-separated lists or, a hyphenated range of values to specify single or several dates.\n", + "An `EpiRange` object can be also used to construct a range of epiweeks or dates. Examples include:\n", + "\n", + "- `param = 201530` (A single epiweek)\n", + "- `param = '201401,201501,201601'` (Several epiweeks)\n", + "- `param = '200501-200552'` (A range of epiweeks)\n", + "- `param = '201440,201501-201510'` (Several epiweeks, including a range)\n", + "- `param = EpiRange(20070101, 20071231)` (A range of dates)" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/getting_started_with_epidatpy.rst b/docs/getting_started_with_epidatpy.rst deleted file mode 100644 index 0604688..0000000 --- a/docs/getting_started_with_epidatpy.rst +++ /dev/null @@ -1,240 +0,0 @@ -Getting started with epidatpy -============================= - -The epidatpy package provides access to all the endpoints of the `Delphi Epidata -API `_, and can be used to make -requests for specific signals on specific dates and in select geographic -regions. - -Setup ------ - -**Installation** - -You can install the stable version of this package from PyPi: - -.. code-block:: sh - - pip install epidatpy - -Or if you want the development version, install from GitHub: - -.. code-block:: sh - - pip install -e "git+https://github.com/cmu-delphi/epidatpy.git#egg=epidatpy" - -**API Keys** - -The Delphi API requires a (free) API key for full functionality. While most -endpoints are available without one, there are -`limits on API usage for anonymous users `_, -including a rate limit. - -To generate your key, -`register for a pseudo-anonymous account `_. - -*Note* that private endpoints (i.e. those prefixed with ``pvt_``) require a -separate key that needs to be passed as an argument. These endpoints require -specific data use agreements to access. - -Basic Usage ------------ - -Fetching data from the Delphi Epidata API is simple. Suppose we are -interested in the ``covidcast`` -`endpoint `_, -which provides access to a -`wide range of data `_ -on COVID-19. Reviewing the endpoint documentation, we see that we -`need to specify `_ -a data source name, a signal name, a geographic level, a time resolution, and -the location and times of interest. - -The ``pub_covidcast`` function lets us access the ``covidcast`` endpoint: - -.. exec:: - :context: true - - from epidatpy import EpiDataContext, EpiRange - import pandas as pd - - # Set common options and context - pd.set_option('display.max_columns', None) - pd.set_option('display.max_rows', None) - pd.set_option('display.width', 1000) - - epidata = EpiDataContext(use_cache=False) - - # Obtain the most up-to-date version of the smoothed covid-like illness (CLI) - # signal from the COVID-19 Trends and Impact survey for the US - apicall = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "nation", - time_type = "day", - geo_values = "us", - time_values = EpiRange(20210405, 20210410)) - - print(apicall) - -``pub_covidcast`` returns an ``EpiDataCall``, which is a not-yet-executed query that can be inspected. The query can be executed and converted to a DataFrame by using the ``.df()`` method: - -.. exec:: - :context: true - - data = apicall.df() - print(data.head()) - -Each row represents one observation in the US on one -day. The geographical abbreviation is given in the ``geo_value`` column, the date in -the ``time_value`` column. Here `value` is the requested signal -- in this -case, the smoothed estimate of the percentage of people with COVID-like -illness, based on the symptom surveys, and ``stderr`` is its standard error. - -The Epidata API makes signals available at different geographic levels, -depending on the endpoint. To request signals for all states instead of the -entire US, we use the ``geo_type`` argument paired with ``*`` for the -``geo_values`` argument. (Only some endpoints allow for the use of ``*`` to -access data at all locations. Check the help for a given endpoint to see if -it supports ``*``.) - -.. exec:: - :context: true - - apicall = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - time_type = "day", - geo_values = "*", - time_values = EpiRange(20210405, 20210410)) - - print(apicall) - print(apicall.df().head()) - -Alternatively, we can fetch the full time series for a subset of states by -listing out the desired locations in the ``geo_value`` argument and using -``*`` in the ``time_values`` argument: - -.. exec:: - :context: true - - apicall = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - time_type = "day", - geo_values = "pa,ca,fl", - time_values = EpiRange(20210405, 20210410)) - - print(apicall) - print(apicall.df().head()) - -Getting versioned data ----------------------- - -The Epidata API stores a historical record of all data, including corrections -and updates, which is particularly useful for accurately backtesting -forecasting models. To fetch versioned data, we can use the ``as_of`` -argument: - -.. exec:: - :context: true - - apicall = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - time_type = "day", - geo_values = "pa", - time_values = EpiRange(20210405, 20210410), - as_of = "2021-06-01") - - print(apicall) - print(apicall.df().head()) - -Plotting --------- - -Because the output data is a standard Pandas DataFrame, we can easily plot -it using any of the available Python libraries: - -.. code-block:: python - - import matplotlib.pyplot as plt - - fig, ax = plt.subplots(figsize=(6, 5)) - plt.rc("axes", titlesize=16) - plt.rc("axes", labelsize=16) - plt.rc("xtick", labelsize=14) - plt.rc("ytick", labelsize=14) - ax.spines["right"].set_visible(False) - ax.spines["left"].set_visible(False) - ax.spines["top"].set_visible(False) - - data.pivot_table(values = "value", index = "time_value", columns = "geo_value").plot( - title="Smoothed CLI from Facebook Survey", - xlabel="Date", - ylabel="CLI", - ax = ax, - linewidth = 1.5 - ) - - plt.subplots_adjust(bottom=.2) - plt.show() - -.. image:: images/Getting_Started.png - :width: 800 - :alt: Smoothed CLI from Facebook Survey - -Finding locations of interest ------------------------------ - -Most data is only available for the US. Select endpoints report other countries at the national and/or regional levels. Endpoint descriptions explicitly state when they cover non-US locations. - -For endpoints that report US data, see the -`geographic coding documentation `_ -for available geographic levels. - -International data ------------------- - -International data is available via - -- ``pub_dengue_nowcast`` (North and South America) -- ``pub_ecdc_ili`` (Europe) -- ``pub_kcdc_ili`` (Korea) -- ``pub_nidss_dengue`` (Taiwan) -- ``pub_nidss_flu`` (Taiwan) -- ``pub_paho_dengue`` (North and South America) -- ``pvt_dengue_sensors`` (North and South America) - -Finding data sources and signals of interest --------------------------------------------- - -Above we used data from `Delphi’s symptom surveys `_, -but the Epidata API includes numerous data streams: medical claims data, cases -and deaths, mobility, and many others. This can make it a challenge to find -the data stream that you are most interested in. - -The Epidata documentation lists all the data sources and signals available -through the API for `COVID-19 `_ -and for `other diseases `_. - -Epiweeks and Dates ------------------- -Epiweeks use the U.S. definition. That is, the first epiweek each year is the -week, starting on a Sunday, containing January 4. See `this page -`_ -for more information. - -Formatting for epiweeks is YYYYWW and for dates is YYYYMMDD. - -Use individual values, comma-separated lists or, a hyphenated range of values to specify single or several dates. -An ``EpiRange`` object can be also used to construct a range of epiweeks or dates. Examples include: - -- ``param = 201530`` (A single epiweek) -- ``param = '201401,201501,201601'`` (Several epiweeks) -- ``param = '200501-200552'`` (A range of epiweeks) -- ``param = '201440,201501-201510'`` (Several epiweeks, including a range) -- ``param = EpiRange(20070101, 20071231)`` (A range of dates) diff --git a/docs/images/Getting_Started.png b/docs/images/Getting_Started.png deleted file mode 100644 index 0ab8834f36d9d6834288cf386745d424d786cb37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120130 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 diff --git a/docs/images/Versioned_Data.png b/docs/images/Versioned_Data.png deleted file mode 100644 index 60256427ca60d17df4e27a788704c2c5058cd6f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191103 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

  • QUDF0TvL7nwdH;(-EkPuro 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 US5@w*On3~&PaPMfH)qZN2Zc7NF#rGn diff --git a/docs/index.rst b/docs/index.rst index 9e1ccc9..235a669 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -66,7 +66,7 @@ Contents .. toctree:: :maxdepth: 2 - getting_started_with_epidatpy + getting_started signal_discovery diff --git a/docs/preprocess.py b/docs/preprocess.py deleted file mode 100644 index f9f50a7..0000000 --- a/docs/preprocess.py +++ /dev/null @@ -1,87 +0,0 @@ -from epidatpy import EpiDataContext, EpiRange -from epidatpy._endpoints import AEpiDataEndpoints -import inspect -import matplotlib.pyplot as plt -import pandas as pd - -# Set common options and context - -pd.set_option('display.max_columns', None) -pd.set_option('display.max_rows', None) -pd.set_option('display.width', 1000) - -epidata = EpiDataContext(use_cache=True, cache_max_age_days=1) - -# Getting started with epidatpy - -apicall = epidata.pub_covidcast( - data_source = "fb-survey", - signals = "smoothed_cli", - geo_type = "state", - geo_values = "pa,ca,fl", - time_type = "day", - time_values = EpiRange(20210405, 20210410)) - -data = apicall.df() - -fig, ax = plt.subplots(figsize=(6, 5)) -ax.spines["right"].set_visible(False) -ax.spines["left"].set_visible(False) -ax.spines["top"].set_visible(False) - -data.pivot_table(values = "value", index = "time_value", columns = "geo_value").plot( - xlabel="Date", - ylabel="CLI", - ax = ax, - linewidth = 1.5 -) - -plt.title("Smoothed CLI from Facebook Survey", fontsize=16) -plt.subplots_adjust(bottom=.2) -plt.savefig("docs/images/Getting_Started.png", dpi=300) - -results = [] -for as_of_date in ["2020-05-07", "2020-05-14", "2020-05-21", "2020-05-28"]: - apicall = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_adj_cli", - time_type = "day", - time_values = EpiRange("2020-04-20", "2020-04-27"), - geo_type = "state", - geo_values = "pa", - as_of = as_of_date) - - results.append(apicall.df()) - -final_df = pd.concat(results) -final_df["issue"] = final_df["issue"].dt.date - -fig, ax = plt.subplots(figsize=(6, 5)) -ax.spines["right"].set_visible(False) -ax.spines["left"].set_visible(False) -ax.spines["top"].set_visible(False) - -def sub_cmap(cmap, vmin, vmax): - return lambda v: cmap(vmin + (vmax - vmin) * v) - -final_df.pivot_table(values = "value", index = "time_value", columns = "issue").plot( - xlabel="Date", - ylabel="CLI", - ax = ax, - linewidth = 1.5, - colormap=sub_cmap(plt.get_cmap('viridis').reversed(), 0.2, 1) -) - -plt.title("Smoothed CLI from Doctor Visits", fontsize=16) -plt.subplots_adjust(bottom=.2) -plt.savefig("docs/images/Versioned_Data.png", dpi=300) - -# Get AEpiDataEndpoints methods that start with pvt_ and pub_ -endpoints = [x for x in inspect.getmembers(AEpiDataEndpoints) if x[0].startswith("pvt_") or x[0].startswith("pub_")] - -# -data = {e[0]: e[1].__doc__.split("\n")[0] if e[1].__doc__ else "" for e in endpoints} - -table = pd.DataFrame(data.items(), columns = ["Endpoint", "Description"]) - -table.to_csv("docs/data/endpoints.csv", index = False) diff --git a/docs/signal_discovery.ipynb b/docs/signal_discovery.ipynb new file mode 100644 index 0000000..5116df4 --- /dev/null +++ b/docs/signal_discovery.ipynb @@ -0,0 +1,141 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Finding data sources and signals of interest\n", + "\n", + "The Epidata API includes numerous data streams -- medical claims data, cases and deaths,\n", + "mobility, and many others -- covering different geographic regions. This can make it a\n", + "challenge to find the data stream that you are most interested in.\n", + "\n", + "## Using the documentation\n", + "\n", + "The Epidata documentation lists all the data sources and signals available\n", + "through the API for\n", + "[COVID-19](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html) and\n", + "for [other diseases](https://cmu-delphi.github.io/delphi-epidata/api/README.html#source-specific-parameters).\n", + "The site also includes a search tool if you have a keyword (e.g. \"Taiwan\") in mind.\n", + "\n", + "## Epidata data sources\n", + "\n", + "The parameters available for each source data are documented in each linked source-specific API page. A dynamically\n", + "generated list of all available data sources can be found below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import inspect\n", + "import pandas as pd\n", + "from IPython.display import HTML\n", + "from epidatpy._endpoints import AEpiDataEndpoints\n", + "\n", + "endpoints = [x for x in inspect.getmembers(AEpiDataEndpoints) if x[0].startswith(\"pvt_\") or x[0].startswith(\"pub_\")]\n", + "\n", + "data = {e[0]: e[1].__doc__.split(\"\\n\")[0] if e[1].__doc__ else \"None\" for e in endpoints}\n", + "\n", + "table = pd.DataFrame(data.items(), columns = [\"Endpoint\", \"Description\"])\n", + "HTML(table.to_html(index=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Signal metadata\n", + "\n", + "The `source_df` property lets us obtain a Pandas DataFrame of metadata describing all\n", + "data streams which are publically accessible from the COVIDcast API. See the [data source\n", + "and signals documentation](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html)\n", + "for descriptions of the available sources." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from epidatpy import CovidcastEpidata\n", + "\n", + "pd.set_option('display.max_columns', None)\n", + "pd.set_option('display.max_rows', None)\n", + "pd.set_option('display.width', 1000)\n", + "\n", + "epidata = CovidcastEpidata()\n", + "sources = epidata.source_df\n", + "\n", + "print(sources.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This DataFrame contains the following columns:\n", + "\n", + "- `source` - API-internal source name.\n", + "- `name` - Human-readable source name.\n", + "- `description` - Description of the signal.\n", + "- `reference_signal` - Geographic level for which this signal is available, such as county, state, msa, hss, hrr, or nation. Most signals are available at multiple geographic levels and will hence be listed in multiple rows with their own metadata.\n", + "- `license` - The license.\n", + "- `dua` - Link to the Data Use Agreement.\n", + "- `signals` - List of signals available from this data source.\n", + "\n", + "The `signal_df` DataFrame can also be used to obtain information about the signals\n", + "that are available - for example, what time range they are available for,\n", + "and when they have been updated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "signals = epidata.signal_df\n", + "\n", + "print(signals.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This DataFrame contains one row each available signal, with the following columns:\n", + "\n", + "- `source` - Data source name.\n", + "- `signal` - API-internal signal name.\n", + "- `name` - Human-readable signal name.\n", + "- `active` - Whether the signal is currently not updated or not. Signals may be inactive because the sources have become unavailable, other sources have replaced them, or additional work is required for us to continue updating them.\n", + "- `short_description` - Brief description of the signal.\n", + "- `description` - Full description of the signal.\n", + "- `geo_types` - Spatial resolution of the signal (e.g., `county`, `hrr`, `msa`, `dma`, `state`). More detail about all `geo_types` is given in the [geographic coding documentation](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_geography.html).\n", + "- `time_type` - Temporal resolution of the signal (e.g., day, week; see [date coding details](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_times.html)).\n", + "- `time_label` - The time label (\"Date\", \"Week\").\n", + "- `value_label` - The value label (\"Value\", \"Percentage\", \"Visits\", \"Visits per 100,000 people\").\n", + "- `format` - The value format (\"per100k\", \"percent\", \"fraction\", \"count\", \"raw\").\n", + "- `category` - The signal category (\"early\", \"public\", \"late\", \"other\").\n", + "- `high_values_are`- What the higher value of signal indicates (\"good\", \"bad\", \"neutral\").\n", + "- `is_smoothed` - Whether the signal is smoothed.\n", + "- `is_weighted` - Whether the signal is weighted.\n", + "- `is_cumulative` - Whether the signal is cumulative.\n", + "- `has_stderr` - Whether the signal has `stderr` statistic.\n", + "- `has_sample_size` - Whether the signal has `sample_size` statistic.\n", + "- `geo_types` - Geographical levels for which this signal is available.\n" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/signal_discovery.rst b/docs/signal_discovery.rst deleted file mode 100644 index 70b0fc6..0000000 --- a/docs/signal_discovery.rst +++ /dev/null @@ -1,95 +0,0 @@ - -Finding data sources and signals of interest -============================================ - -The Epidata API includes numerous data streams -- medical claims data, cases and deaths, -mobility, and many others -- covering different geographic regions. This can make it a -challenge to find the data stream that you are most interested in. - -Example queries with all the endpoint functions available in this package are -given below. - - -Using the documentation ------------------------ - -The Epidata documentation lists all the data sources and signals available -through the API for -`COVID-19 `_ and -for `other diseases `_. -The site also includes a search tool if you have a keyword (e.g. "Taiwan") in mind. - -Epidata Data Sources --------------------- -The parameters available for each source data are documented in each linked source-specific API page. - -.. csv-table:: - :file: data/endpoints.csv - :widths: 20 40 - :header-rows: 1 - -Signal metadata ---------------- - -The ``source_df`` property lets us obtain a Pandas DataFrame of metadata describing all -data streams which are publically accessible from the COVIDcast API. See the `data source -and signals documentation `_ -for descriptions of the available sources. - -.. exec:: - :context: true - - from epidatpy import CovidcastEpidata - import pandas as pd - - pd.set_option('display.max_columns', None) - pd.set_option('display.max_rows', None) - pd.set_option('display.width', 1000) - - epidata = CovidcastEpidata() - sources = epidata.source_df - - print(sources.head()) - -This DataFrame contains the following columns: - -- ``source`` - API-internal source name. -- ``name`` - Human-readable source name. -- ``description`` - Description of the signal. -- ``reference_signal`` - Geographic level for which this signal is available, such as county, state, msa, hss, hrr, or nation. Most signals are available at multiple geographic levels and will hence be listed in multiple rows with their own metadata. -- ``license`` - The license. -- ``dua`` - Link to the Data Use Agreement. -- ``signals`` - List of signals available from this data source. - -The ``signal_df`` DataFrame can also be used to obtain information about the signals -that are available - for example, what time range they are available for, -and when they have been updated. - -.. exec:: - :context: true - - signals = epidata.signal_df - - print(signals.head()) - -This DataFrame contains one row each available signal, with the following columns: - -- ``source`` - Data source name. -- ``signal`` - API-internal signal name. -- ``name`` - Human-readable signal name. -- ``active`` - Whether the signal is currently not updated or not. Signals may be inactive because the sources have become unavailable, other sources have replaced them, or additional work is required for us to continue updating them. -- ``short_description`` - Brief description of the signal. -- ``description`` - Full description of the signal. -- ``geo_types`` - Spatial resolution of the signal (e.g., `county`, `hrr`, `msa`, `dma`, `state`). More detail about all `geo_types` is given in the `geographic coding documentation `_. -- ``time_type`` - Temporal resolution of the signal (e.g., day, week; see `date coding details `_). -- ``time_label`` - The time label ("Date", "Week"). -- ``value_label`` - The value label ("Value", "Percentage", "Visits", "Visits per 100,000 people"). -- ``format`` - The value format ("per100k", "percent", "fraction", "count", "raw"). -- ``category`` - The signal category ("early", "public", "late", "other"). -- ``high_values_are``- What the higher value of signal indicates ("good", "bad", "neutral"). -- ``is_smoothed`` - Whether the signal is smoothed. -- ``is_weighted`` - Whether the signal is weighted. -- ``is_cumulative`` - Whether the signal is cumulative. -- ``has_stderr`` - Whether the signal has `stderr` statistic. -- ``has_sample_size`` - Whether the signal has `sample_size` statistic. -- ``geo_types`` - Geographical levels for which this signal is available. diff --git a/docs/versioned_data.ipynb b/docs/versioned_data.ipynb new file mode 100644 index 0000000..e8893eb --- /dev/null +++ b/docs/versioned_data.ipynb @@ -0,0 +1,264 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding and accessing versioned data\n", + "\n", + "The Epidata API records not just each signal's estimate for a given location\n", + "on a given day, but also *when* that estimate was made, and all updates to that\n", + "estimate.\n", + "\n", + "For example, let's look at the [doctor visits\n", + "signal](https://cmu-delphi.github.io/delphi-epidata/api/covidcast-signals/doctor-visits.html)\n", + "from the [covidcast endpoint](https://cmu-delphi.github.io/delphi-epidata/api/covidcast.html),\n", + "which estimates the percentage of outpatient doctor visits that are\n", + "COVID-related.\n", + "\n", + "Consider a result row with `time_value = 2020-05-01` for\n", + "`geo_values = \"pa\"`. This is an estimate for Pennsylvania on\n", + "May 1, 2020. That estimate was *issued* on May 5, 2020, the delay being due to\n", + "the aggregation of data by our source and the time taken by the Epidata API to\n", + "ingest the data provided.\n", + "\n", + "Later, the estimate for May 1st could be updated,\n", + "perhaps because additional visit data from May 1st arrived at our source and was\n", + "reported to us. This constitutes a new *issue* of the data.\n", + "\n", + "## Data known \"as of\" a specific date\n", + "\n", + "By default, endpoint functions fetch the most recent issue available. This\n", + "is the best option for users who simply want to graph the latest data or\n", + "construct dashboards. But if we are interested in knowing *when* data was\n", + "reported, we can request specific data versions using the `as_of`, `issues`, or\n", + "`lag` arguments.\n", + "\n", + "**Note** that these are mutually exclusive; only one can be specified\n", + "at a time. Also, not all endpoints support all three parameters, so please\n", + "check the documentation for that specific endpoint.\n", + "\n", + "First, we can request the data that was available *as of* a specific date, using\n", + "the `as_of` argument:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from epidatpy import EpiDataContext, EpiRange\n", + "import pandas as pd\n", + "\n", + "# Set common options and context\n", + "pd.set_option('display.max_columns', None)\n", + "pd.set_option('display.max_rows', None)\n", + "pd.set_option('display.width', 1000)\n", + "\n", + "epidata = EpiDataContext(use_cache=False)\n", + "\n", + "# Obtain the most up-to-date version of the smoothed covid-like illness (CLI)\n", + "# signal from the COVID-19 Trends and Impact survey for the US\n", + "apicall = epidata.pub_covidcast(\n", + " data_source = \"doctor-visits\",\n", + " signals = \"smoothed_cli\",\n", + " time_type = \"day\",\n", + " time_values = EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", + " geo_type = \"state\",\n", + " geo_values = \"pa\",\n", + " as_of = \"2020-05-07\")\n", + "\n", + "print(apicall.df().head())\n", + "print(apicall.df().head()[\"value\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This shows that an estimate of about 2.3% was issued on May 7. If we don't\n", + "specify `as_of`, we get the most recent estimate available:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "apicall = epidata.pub_covidcast(\n", + " data_source = \"doctor-visits\",\n", + " signals = \"smoothed_cli\",\n", + " time_type = \"day\",\n", + " time_values = EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", + " geo_type = \"state\",\n", + " geo_values = \"pa\")\n", + "\n", + "print(apicall.df().head())\n", + "print(apicall.df().head()[\"value\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note the substantial change in the estimate, from less than 3% to over 5%,\n", + "reflecting new data that became available after May 7 about visits *occurring on*\n", + "May 1. This illustrates the importance of issue date tracking, particularly\n", + "for forecasting tasks. To backtest a forecasting model on past data, it is\n", + "important to use the data that would have been available *at the time* the model\n", + "was or would have been fit, not data that arrived much later.\n", + "\n", + "By plotting API results with different values of the `as_of` parameter, we can\n", + "see how the indicator value changes over time as new observations become available:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.rcParams['figure.dpi'] = 300\n", + "\n", + "results = []\n", + "for as_of_date in [\"2020-05-07\", \"2020-05-14\", \"2020-05-21\", \"2020-05-28\"]:\n", + " apicall = epidata.pub_covidcast(\n", + " data_source = \"doctor-visits\",\n", + " signals = \"smoothed_adj_cli\",\n", + " time_type = \"day\",\n", + " time_values = EpiRange(\"2020-04-20\", \"2020-04-27\"),\n", + " geo_type = \"state\",\n", + " geo_values = \"pa\",\n", + " as_of = as_of_date)\n", + "\n", + " results.append(apicall.df())\n", + "\n", + "final_df = pd.concat(results)\n", + "final_df[\"issue\"] = final_df[\"issue\"].dt.date\n", + "\n", + "fig, ax = plt.subplots(figsize=(6, 5))\n", + "ax.spines[\"right\"].set_visible(False)\n", + "ax.spines[\"left\"].set_visible(False)\n", + "ax.spines[\"top\"].set_visible(False)\n", + "\n", + "def sub_cmap(cmap, vmin, vmax):\n", + " return lambda v: cmap(vmin + (vmax - vmin) * v)\n", + "\n", + "final_df.pivot_table(values = \"value\", index = \"time_value\", columns = \"issue\").plot(\n", + " xlabel=\"Date\",\n", + " ylabel=\"CLI\",\n", + " ax = ax,\n", + " linewidth = 1.5,\n", + " colormap=sub_cmap(plt.get_cmap('viridis').reversed(), 0.2, 1)\n", + ")\n", + "\n", + "plt.title(\"Smoothed CLI from Doctor Visits\", fontsize=16)\n", + "plt.subplots_adjust(bottom=.2)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multiple issues of observations\n", + "\n", + "By using the `issues` argument, we can request all issues in a certain time\n", + "period:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "apicall = epidata.pub_covidcast(\n", + " data_source = \"doctor-visits\",\n", + " signals = \"smoothed_adj_cli\",\n", + " time_type = \"day\",\n", + " time_values = EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", + " geo_type = \"state\",\n", + " geo_values = \"pa\",\n", + " issues = EpiRange(\"2020-05-01\", \"2020-05-15\"))\n", + "\n", + "print(apicall.df().head(7))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This estimate was clearly updated many times as new data for May 1st arrived.\n", + "\n", + "**Note** that these results include only data issued or updated between\n", + "(inclusive) 2020-05-01 and 2020-05-15. If a value was first reported on\n", + "2020-04-15, and never updated, a query for issues between 2020-05-01 and\n", + "2020-05-15 will not include that value among its results.\n", + "\n", + "## Observations issued with a specific lag\n", + "\n", + "Finally, we can use the `lag` argument to request only data reported with a\n", + "certain lag. For example, requesting a lag of 7 days fetches only data issued\n", + "exactly 7 days after the corresponding `time_value`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "apicall = epidata.pub_covidcast(\n", + " data_source = \"doctor-visits\",\n", + " signals = \"smoothed_adj_cli\",\n", + " time_type = \"day\",\n", + " time_values = EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", + " geo_type = \"state\",\n", + " geo_values = \"pa\",\n", + " lag = 7)\n", + "\n", + "print(apicall.df().head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Note** that though this query requested all values between 2020-05-01 and\n", + "2020-05-07, May 3rd and May 4th were *not* included in the results set. This is\n", + "because the query will only include a result for May 3rd if a value were issued\n", + "on May 10th (a 7-day lag), but in fact the value was not updated on that day:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "apicall = epidata.pub_covidcast(\n", + " data_source = \"doctor-visits\",\n", + " signals = \"smoothed_adj_cli\",\n", + " time_type = \"day\",\n", + " time_values = EpiRange(\"2020-05-03\", \"2020-05-03\"),\n", + " geo_type = \"state\",\n", + " geo_values = \"pa\",\n", + " issues = EpiRange(\"2020-05-09\", \"2020-05-15\"))\n", + "\n", + "print(apicall.df().head())" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/versioned_data.rst b/docs/versioned_data.rst deleted file mode 100644 index cf1f617..0000000 --- a/docs/versioned_data.rst +++ /dev/null @@ -1,203 +0,0 @@ -Understanding and accessing versioned data -========================================== - - -The Epidata API records not just each signal's estimate for a given location -on a given day, but also *when* that estimate was made, and all updates to that -estimate. - -For example, let's look at the `doctor visits -signal `_ -from the ``covidcast`` `endpoint `_, -which estimates the percentage of outpatient doctor visits that are -COVID-related. - -Consider a result row with ``time_value = 2020-05-01`` for -``geo_values = "pa"``. This is an estimate for Pennsylvania on -May 1, 2020. That estimate was *issued* on May 5, 2020, the delay being due to -the aggregation of data by our source and the time taken by the Epidata API to -ingest the data provided. - -Later, the estimate for May 1st could be updated, -perhaps because additional visit data from May 1st arrived at our source and was -reported to us. This constitutes a new *issue* of the data. - - -Data known "as of" a specific date ----------------------------------- - -By default, endpoint functions fetch the most recent issue available. This -is the best option for users who simply want to graph the latest data or -construct dashboards. But if we are interested in knowing *when* data was -reported, we can request specific data versions using the ``as_of``, ``issues``, or -``lag`` arguments. - -**Note** that these are mutually exclusive; only one can be specified -at a time. Also, not all endpoints support all three parameters, so please -check the documentation for that specific endpoint. - -First, we can request the data that was available *as of* a specific date, using -the ``as_of`` argument: - -.. exec:: - :context: true - - from epidatpy import EpiDataContext, EpiRange - import pandas as pd - - # Set common options and context - pd.set_option('display.max_columns', None) - pd.set_option('display.max_rows', None) - pd.set_option('display.width', 1000) - - epidata = EpiDataContext(use_cache=False) - - # Obtain the most up-to-date version of the smoothed covid-like illness (CLI) - # signal from the COVID-19 Trends and Impact survey for the US - apicall = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_cli", - time_type = "day", - time_values = EpiRange("2020-05-01", "2020-05-01"), - geo_type = "state", - geo_values = "pa", - as_of = "2020-05-07") - - print(apicall.df().head()) - print(apicall.df().head()["value"]) - -This shows that an estimate of about 2.3% was issued on May 7. If we don't -specify `as_of`, we get the most recent estimate available: - -.. exec:: - :context: true - - apicall = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_cli", - time_type = "day", - time_values = EpiRange("2020-05-01", "2020-05-01"), - geo_type = "state", - geo_values = "pa") - - print(apicall.df().head()) - print(apicall.df().head()["value"]) - -Note the substantial change in the estimate, from less than 3% to over 5%, -reflecting new data that became available after May 7 about visits *occurring on* -May 1. This illustrates the importance of issue date tracking, particularly -for forecasting tasks. To backtest a forecasting model on past data, it is -important to use the data that would have been available *at the time* the model -was or would have been fit, not data that arrived much later. - -By plotting API results with different values of the ``as_of`` parameter, we can -see how the indicator value changes over time as new observations become available: - -.. code-block:: python - - results = [] - for as_of_date in ["2020-05-07", "2020-05-14", "2020-05-21", "2020-05-28"]: - apicall = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_adj_cli", - time_type = "day", - time_values = EpiRange("2020-04-20", "2020-04-27"), - geo_type = "state", - geo_values = "pa", - as_of = as_of_date) - - results.append(apicall.df()) - - final_df = pd.concat(results) - final_df["issue"] = final_df["issue"].dt.date - - fig, ax = plt.subplots(figsize=(6, 5)) - ax.spines["right"].set_visible(False) - ax.spines["left"].set_visible(False) - ax.spines["top"].set_visible(False) - - def sub_cmap(cmap, vmin, vmax): - return lambda v: cmap(vmin + (vmax - vmin) * v) - - final_df.pivot_table(values = "value", index = "time_value", columns = "issue").plot( - xlabel="Date", - ylabel="CLI", - ax = ax, - linewidth = 1.5, - colormap=sub_cmap(plt.get_cmap('viridis').reversed(), 0.2, 1) - ) - - plt.title("Smoothed CLI from Doctor Visits", fontsize=16) - plt.subplots_adjust(bottom=.2) - plt.show() - -.. image:: images/Versioned_Data.png - :width: 800 - :alt: Smoothed CLI from Facebook Survey - -Multiple issues of observations -------------------------------- - -By using the ``issues`` argument, we can request all issues in a certain time -period: - -.. exec:: - :context: true - - apicall = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_adj_cli", - time_type = "day", - time_values = EpiRange("2020-05-01", "2020-05-01"), - geo_type = "state", - geo_values = "pa", - issues = EpiRange("2020-05-01", "2020-05-15")) - - print(apicall.df().head(7)) - -This estimate was clearly updated many times as new data for May 1st arrived. - -**Note** that these results include only data issued or updated between -(inclusive) 2020-05-01 and 2020-05-15. If a value was first reported on -2020-04-15, and never updated, a query for issues between 2020-05-01 and -2020-05-15 will not include that value among its results. - -Observations issued with a specific lag ---------------------------------------- - -Finally, we can use the ``lag`` argument to request only data reported with a -certain lag. For example, requesting a lag of 7 days fetches only data issued -exactly 7 days after the corresponding ``time_value``: - -.. exec:: - :context: true - - apicall = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_adj_cli", - time_type = "day", - time_values = EpiRange("2020-05-01", "2020-05-01"), - geo_type = "state", - geo_values = "pa", - lag = 7) - - print(apicall.df().head()) - -**Note** that though this query requested all values between 2020-05-01 and -2020-05-07, May 3rd and May 4th were *not* included in the results set. This is -because the query will only include a result for May 3rd if a value were issued -on May 10th (a 7-day lag), but in fact the value was not updated on that day: - -.. exec:: - :context: true - - apicall = epidata.pub_covidcast( - data_source = "doctor-visits", - signals = "smoothed_adj_cli", - time_type = "day", - time_values = EpiRange("2020-05-03", "2020-05-03"), - geo_type = "state", - geo_values = "pa", - issues = EpiRange("2020-05-09", "2020-05-15")) - - print(apicall.df().head()) diff --git a/pyproject.toml b/pyproject.toml index f6ee24a..1ba68ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,15 +40,16 @@ dependencies = [ [project.optional-dependencies] dev = [ + "ipykernel", "matplotlib", "mypy", + "nbsphinx", "pylint", "pytest", "recommonmark", "ruff", "sphinx_rtd_theme", "sphinx-autodoc-typehints", - "sphinx-exec-directive", "sphinx", "twine", "types-requests", From f7195eac6ab94101c8866b3d7f992f91cf8a304f Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Mon, 16 Sep 2024 18:41:53 +0300 Subject: [PATCH 7/8] newline --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index fda097a..c35f385 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -89,4 +89,4 @@ # https://nbsphinx.readthedocs.io/ nbsphinx_prompt_width = 0 nbsphinx_input_prompt = "%.0s" -nbsphinx_output_prompt = "%.0s" \ No newline at end of file +nbsphinx_output_prompt = "%.0s" From b092dad9bcb57d93170e2efcc0bf0595ce84c454 Mon Sep 17 00:00:00 2001 From: Dmitry Shemetov Date: Wed, 2 Oct 2024 15:41:13 -0700 Subject: [PATCH 8/8] doc: iterate on all documentation pages, README * switch default venv from env to .venv for uv * update gitignore --- .gitignore | 3 +- Makefile | 24 ++-- README.md | 24 +++- docs/conf.py | 7 +- docs/epidatpy.rst | 19 +--- docs/getting_started.ipynb | 206 +++++++++++++++++------------------ docs/index.rst | 64 ++++------- docs/signal_discovery.ipynb | 100 ++++++++++------- docs/versioned_data.ipynb | 211 ++++++++++++++++++------------------ epidatpy/__init__.py | 4 +- epidatpy/_covidcast.py | 15 +-- epidatpy/_endpoints.py | 3 +- epidatpy/request.py | 8 ++ 13 files changed, 342 insertions(+), 346 deletions(-) diff --git a/.gitignore b/.gitignore index 72f6f9b..f01bf7a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,5 +8,4 @@ __pycache__ dist/ build/ docs/_build -env/ -venv/ +.venv/ \ No newline at end of file diff --git a/Makefile b/Makefile index 64a7868..78e55f3 100644 --- a/Makefile +++ b/Makefile @@ -1,33 +1,33 @@ .PHONY = venv, lint, test, clean, release venv: - python3.8 -m venv env + python3.8 -m venv .venv install: venv - env/bin/python -m pip install --upgrade pip - env/bin/pip install -e ".[dev]" + .venv/bin/python -m pip install --upgrade pip + .venv/bin/pip install -e ".[dev]" lint_ruff: - env/bin/ruff check epidatpy tests + .venv/bin/ruff check epidatpy tests lint_mypy: - env/bin/mypy epidatpy tests + .venv/bin/mypy epidatpy tests lint_pylint: - env/bin/pylint epidatpy tests + .venv/bin/pylint epidatpy tests lint: lint_ruff lint_mypy lint_pylint format: - env/bin/ruff format epidatpy tests + .venv/bin/ruff format epidatpy tests test: - env/bin/pytest . + .venv/bin/pytest . doc: @pandoc --version >/dev/null 2>&1 || (echo "ERROR: pandoc is required (install via your platform's package manager)"; exit 1) - env/bin/sphinx-build -b html docs docs/_build - env/bin/python -m webbrowser -t "docs/_build/index.html" + .venv/bin/sphinx-build -b html docs docs/_build + .venv/bin/python -m webbrowser -t "docs/_build/index.html" clean_doc: rm -rf docs/_build @@ -45,7 +45,7 @@ clean_python: clean: clean_doc clean_build clean_python release: clean lint test - env/bin/python -m build --sdist --wheel + .venv/bin/python -m build --sdist --wheel upload: release - env/bin/twine upload dist/* + .venv/bin/twine upload dist/* diff --git a/README.md b/README.md index 0d9e0f3..04a79b4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License: MIT][mit-image]][mit-url] [![Github Actions][github-actions-image]][github-actions-url] [![PyPi][pypi-image]][pypi-url] [![Read the Docs][docs-image]][docs-url] -A Python client for the [Delphi Epidata API](https://cmu-delphi.github.io/delphi-epidata/). Still in development. +The Python client for the [Delphi Epidata API](https://cmu-delphi.github.io/delphi-epidata/). ## Install @@ -18,7 +18,23 @@ pip install epidatpy ## Usage -TODO +```py +from epidatpy import CovidcastEpidata, EpiDataContext, EpiRange + +# All calls using the `epidata` object will now be cached for 7 days +epidata = EpiDataContext(use_cache=True, cache_max_age_days=7) + +# Obtain a DataFrame of the most up-to-date version of the smoothed covid-like illness (CLI) +# signal from the COVID-19 Trends and Impact survey for the US +epidata.pub_covidcast( + data_source="jhu-csse", + signals="confirmed_cumulative_num", + geo_type="nation", + time_type="day", + geo_values="us", + time_values=EpiRange(20210405, 20210410), +).df() +``` ## Development @@ -35,8 +51,8 @@ make release # upload the current version to pypi make clean # clean build and docs artifacts ``` -Building the documentation additionally requires the Pandoc package. These commands can be used -to install the package on common platforms (see the +Building the documentation additionally requires the Pandoc package. These +commands can be used to install the package on common platforms (see the [official documentation](https://pandoc.org/installing.html) for more options): ```sh diff --git a/docs/conf.py b/docs/conf.py index c35f385..268f542 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -31,12 +31,7 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = [ - "sphinx.ext.autodoc", - "sphinx_autodoc_typehints", - # 'matplotlib.sphinxext.plot_directive' - "nbsphinx" -] +extensions = ["sphinx.ext.autodoc", "sphinx_autodoc_typehints", "nbsphinx"] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] diff --git a/docs/epidatpy.rst b/docs/epidatpy.rst index f72e0d8..d3b7a1f 100644 --- a/docs/epidatpy.rst +++ b/docs/epidatpy.rst @@ -4,17 +4,6 @@ epidatpy Reference .. toctree:: :maxdepth: 4 -Submodules ----------- - -Module contents ---------------- - -.. automodule:: epidatpy - :members: - :undoc-members: - :show-inheritance: - epidatpy.request module ----------------------- @@ -23,11 +12,11 @@ epidatpy.request module :undoc-members: :show-inheritance: -epidatpy.async\_request module ------------------------------- +epidatpy._endpoints module +----------------------- -.. automodule:: epidatpy.async_request +.. automodule:: epidatpy._endpoints :members: :undoc-members: :show-inheritance: - + :exclude-members: get_wildcard_equivalent_dates diff --git a/docs/getting_started.ipynb b/docs/getting_started.ipynb index b209c21..ec34864 100644 --- a/docs/getting_started.ipynb +++ b/docs/getting_started.ipynb @@ -4,44 +4,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Getting started with epidatpy\n", + "# Getting started\n", "\n", "The epidatpy package provides access to all the endpoints of the [Delphi Epidata\n", "API](https://cmu-delphi.github.io/delphi-epidata/), and can be used to make\n", "requests for specific signals on specific dates and in select geographic\n", "regions.\n", "\n", - "## Setup\n", - "\n", - "### Installation\n", - "\n", - "You can install the stable version of this package from PyPi:\n", - "\n", - "```\n", - "pip install epidatpy\n", - "```\n", - "\n", - "Or if you want the development version, install from GitHub:\n", - "\n", - "```\n", - "pip install -e \"git+https://github.com/cmu-delphi/epidatpy.git#egg=epidatpy\"\n", - "```\n", - "\n", - "\n", - "### API keys\n", - "\n", - "The Delphi API requires a (free) API key for full functionality. While most\n", - "endpoints are available without one, there are\n", - "[limits on API usage for anonymous users](https://cmu-delphi.github.io/delphi-epidata/api/api_keys.html),\n", - "including a rate limit.\n", - "\n", - "To generate your key,\n", - "[register for a pseudo-anonymous account](https://api.delphi.cmu.edu/epidata/admin/registration_form).\n", - "\n", - "*Note* that private endpoints (i.e. those prefixed with `pvt_`) require a\n", - "separate key that needs to be passed as an argument. These endpoints require\n", - "specific data use agreements to access.\n", - "\n", "## Basic usage\n", "\n", "Fetching data from the Delphi Epidata API is simple. Suppose we are\n", @@ -52,43 +21,55 @@ "a data source name, a signal name, a geographic level, a time resolution, and\n", "the location and times of interest.\n", "\n", - "The `pub_covidcast` function lets us access the `covidcast` endpoint:" + "The `pub_covidcast` function lets us access the `covidcast` endpoint. Here we\n", + "demonstrate how to fetch the most up-to-date version of the confirmed cumulative COVID cases\n", + "from the JHU CSSE data source at the national level." ] }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "nbsphinx": "hidden" + }, "outputs": [], "source": [ - "from epidatpy import EpiDataContext, EpiRange\n", + "# Hidden cell (set in the metadata for this cell)\n", "import pandas as pd\n", "\n", "# Set common options and context\n", - "pd.set_option('display.max_columns', None)\n", - "pd.set_option('display.max_rows', None)\n", - "pd.set_option('display.width', 1000)\n", - "\n", - "epidata = EpiDataContext(use_cache=False)\n", - "\n", - "# Obtain the most up-to-date version of the smoothed covid-like illness (CLI)\n", - "# signal from the COVID-19 Trends and Impact survey for the US\n", - "apicall = epidata.pub_covidcast(\n", - " data_source = \"fb-survey\",\n", - " signals = \"smoothed_cli\",\n", - " geo_type = \"nation\",\n", - " time_type = \"day\",\n", - " geo_values = \"us\",\n", - " time_values = EpiRange(20210405, 20210410))\n", - "\n", - "print(apicall)" + "pd.set_option(\"display.max_columns\", None)\n", + "pd.set_option(\"display.max_rows\", 10)\n", + "pd.set_option(\"display.width\", 1000)" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ - "`pub_covidcast` returns an `EpiDataCall`, which is a not-yet-executed query that can be inspected. The query can be executed and converted to a DataFrame by using the `.df()` method:\n" + "from epidatpy import CovidcastEpidata, EpiDataContext, EpiRange\n", + "\n", + "# Create the client object. Note that due to the arguments below all results\n", + "# will be cached to your disk for 7 days, which helps avoid making repeated\n", + "# downloads.\n", + "epidata = EpiDataContext(use_cache=True, cache_max_age_days=7)\n", + "\n", + "# `pub_covidcast` returns an `EpiDataCall`, which is a not-yet-executed query\n", + "# that can be inspected.\n", + "apicall = epidata.pub_covidcast(\n", + " data_source=\"jhu-csse\",\n", + " signals=\"confirmed_cumulative_num\",\n", + " geo_type=\"nation\",\n", + " time_type=\"day\",\n", + " geo_values=\"us\",\n", + " time_values=EpiRange(20210405, 20210410),\n", + ")\n", + "print(apicall)\n", + "# The query can be executed and converted to a DataFrame by using the `.df()`\n", + "# method:\n", + "apicall.df()" ] }, { @@ -97,8 +78,19 @@ "metadata": {}, "outputs": [], "source": [ - "data = apicall.df()\n", - "print(data.head())" + "# Create the pub_covidcast-specific client object. This you to find what sources\n", + "# and signals are available without leaving your REPL.\n", + "covidcast = CovidcastEpidata(use_cache=True, cache_max_age_days=7)\n", + "# Get a list of all the sources available in the pub_covidcast endpoint.\n", + "print(covidcast.source_names())\n", + "print(covidcast.signal_names(\"jhu-csse\"))\n", + "# Obtain the same data as above with a different interface.\n", + "covidcast[\"jhu-csse\", \"confirmed_cumulative_num\"].call(\n", + " \"nation\",\n", + " \"us\",\n", + " EpiRange(20210405, 20210410),\n", + ").df()\n", + "# See the \"Finding data of interest\" notebook for more features of this interface." ] }, { @@ -125,16 +117,14 @@ "metadata": {}, "outputs": [], "source": [ - "apicall = epidata.pub_covidcast(\n", - " data_source = \"fb-survey\",\n", - " signals = \"smoothed_cli\",\n", - " geo_type = \"state\",\n", - " time_type = \"day\",\n", - " geo_values = \"*\",\n", - " time_values = EpiRange(20210405, 20210410))\n", - "\n", - "print(apicall)\n", - "print(apicall.df().head())" + "epidata.pub_covidcast(\n", + " data_source=\"fb-survey\",\n", + " signals=\"smoothed_cli\",\n", + " geo_type=\"state\",\n", + " time_type=\"day\",\n", + " geo_values=\"*\",\n", + " time_values=EpiRange(20210405, 20210410),\n", + ").df()" ] }, { @@ -152,16 +142,14 @@ "metadata": {}, "outputs": [], "source": [ - "apicall = epidata.pub_covidcast(\n", - " data_source = \"fb-survey\",\n", - " signals = \"smoothed_cli\",\n", - " geo_type = \"state\",\n", - " time_type = \"day\",\n", - " geo_values = \"pa,ca,fl\",\n", - " time_values = EpiRange(20210405, 20210410))\n", - "\n", - "print(apicall)\n", - "print(apicall.df().head())" + "epidata.pub_covidcast(\n", + " data_source=\"fb-survey\",\n", + " signals=\"smoothed_cli\",\n", + " geo_type=\"state\",\n", + " time_type=\"day\",\n", + " geo_values=\"pa,ca,fl\",\n", + " time_values=\"*\",\n", + ").df()" ] }, { @@ -182,17 +170,15 @@ "metadata": {}, "outputs": [], "source": [ - "apicall = epidata.pub_covidcast(\n", - " data_source = \"fb-survey\",\n", - " signals = \"smoothed_cli\",\n", - " geo_type = \"state\",\n", - " time_type = \"day\",\n", - " geo_values = \"pa\",\n", - " time_values = EpiRange(20210405, 20210410),\n", - " as_of = \"2021-06-01\")\n", - "\n", - "print(apicall)\n", - "print(apicall.df().head())" + "epidata.pub_covidcast(\n", + " data_source=\"fb-survey\",\n", + " signals=\"smoothed_cli\",\n", + " geo_type=\"state\",\n", + " time_type=\"day\",\n", + " geo_values=\"pa\",\n", + " time_values=EpiRange(20210405, 20210410),\n", + " as_of=\"2021-06-01\",\n", + ").df()" ] }, { @@ -213,32 +199,30 @@ "source": [ "import matplotlib.pyplot as plt\n", "\n", - "plt.rcParams['figure.dpi'] = 300\n", + "plt.rcParams[\"figure.dpi\"] = 300\n", "\n", "apicall = epidata.pub_covidcast(\n", - " data_source = \"fb-survey\",\n", - " signals = \"smoothed_cli\", \n", - " geo_type = \"state\",\n", - " geo_values = \"pa,ca,fl\",\n", - " time_type = \"day\",\n", - " time_values = EpiRange(20210405, 20210410))\n", - "\n", - "data = apicall.df()\n", + " data_source=\"fb-survey\",\n", + " signals=\"smoothed_cli\",\n", + " geo_type=\"state\",\n", + " geo_values=\"pa,ca,fl\",\n", + " time_type=\"day\",\n", + " time_values=EpiRange(20210405, 20210410),\n", + ")\n", "\n", "fig, ax = plt.subplots(figsize=(6, 5))\n", "ax.spines[\"right\"].set_visible(False)\n", "ax.spines[\"left\"].set_visible(False)\n", "ax.spines[\"top\"].set_visible(False)\n", "\n", - "data.pivot_table(values = \"value\", index = \"time_value\", columns = \"geo_value\").plot(\n", - " xlabel=\"Date\",\n", - " ylabel=\"CLI\",\n", - " ax = ax,\n", - " linewidth = 1.5\n", + "(\n", + " apicall.df()\n", + " .pivot_table(values=\"value\", index=\"time_value\", columns=\"geo_value\")\n", + " .plot(xlabel=\"Date\", ylabel=\"CLI\", ax=ax, linewidth=1.5)\n", ")\n", "\n", "plt.title(\"Smoothed CLI from Facebook Survey\", fontsize=16)\n", - "plt.subplots_adjust(bottom=.2)\n", + "plt.subplots_adjust(bottom=0.2)\n", "plt.show()" ] }, @@ -279,20 +263,24 @@ "\n", "## Epiweeks and dates\n", "\n", - "Epiweeks use the U.S. definition. That is, the first epiweek each year is the\n", - "week, starting on a Sunday, containing January 4. See [this page](https://www.cmmcp.org/mosquito-surveillance-data/pages/epi-week-calendars-2008-2021)\n", - "for more information.\n", - "\n", "Formatting for epiweeks is YYYYWW and for dates is YYYYMMDD.\n", "\n", - "Use individual values, comma-separated lists or, a hyphenated range of values to specify single or several dates.\n", - "An `EpiRange` object can be also used to construct a range of epiweeks or dates. Examples include:\n", + "Epiweeks use the U.S. CDC definition, which defines the first epiweek each year\n", + "to be the first week containing January 4th and the start of the week is on\n", + "Sunday. See [this\n", + "page](https://www.cmmcp.org/mosquito-surveillance-data/pages/epi-week-calendars-2008-2021)\n", + "for a less terse explanation. \n", + "\n", + "When specifying the time_values argument, you can use individual values,\n", + "comma-separated lists or, a hyphenated range of values to specify single or\n", + "several dates (or epiweeks). An `EpiRange` object can be also used to construct\n", + "a range of epiweeks or dates. Examples include:\n", "\n", "- `param = 201530` (A single epiweek)\n", "- `param = '201401,201501,201601'` (Several epiweeks)\n", "- `param = '200501-200552'` (A range of epiweeks)\n", "- `param = '201440,201501-201510'` (Several epiweeks, including a range)\n", - "- `param = EpiRange(20070101, 20071231)` (A range of dates)" + "- `param = EpiRange(20070101, 20071231)` (A range of dates)\n" ] } ], diff --git a/docs/index.rst b/docs/index.rst index 235a669..f7f86a6 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,32 +1,35 @@ +=============== epidatpy =============== This package provides Python access to the `Delphi Epidata API -`_ published by -the `Delphi research group `_ at `Carnegie Mellon University -`_. +`_ published by the `Delphi +research group `_ at `Carnegie Mellon University +`_. The package source code and bug tracker can be found +`on GitHub `_. -The package source code and bug tracker can be found `on GitHub -`_. +.. note :: **You should consider subscribing** to the `API mailing list + `_ to be + notified of package updates, new data sources, corrections, and other + updates. +See also the `CMU Delphi Terms of Use +`_, noting that the data +is a research product and not warranted for a particular purpose. Installation ------------- +=============== -This package will be available on PyPI as `epidatpy -`_ and will be installable with ``pip``. -Meanwhile, it can be installed from GitHub: +This package will soon be available on PyPI as `epidatpy +`_. Meanwhile, it can be installed from +GitHub: .. code-block:: sh pip install -e "git+https://github.com/cmu-delphi/epidatpy.git#egg=epidatpy" -The package requires `pandas `_ and `requests -`_; these should be installed -automatically. - API Keys --------- +=============== The Delphi Epidata API requires a (free) API key for full functionality. To generate your key, register for a pseudo-anonymous account `here @@ -34,37 +37,18 @@ generate your key, register for a pseudo-anonymous account `here discussion on the `general API website `_. The ``epidatpy`` client will automatically look for this key in the environment variable -``DELPHI_EPIDATA_KEY``. We recommend storing your key in a ``.env`` file and using +``DELPHI_EPIDATA_KEY``. We recommend storing your key in a ``.env`` file, using `python-dotenv `_ to load it into -your environment. - -Note that for the time being, the private endpoints (i.e. those prefixed with -``pvt``) will require a separate key that needs to be passed as an argument. +your environment, and adding ``.env`` to your ``.gitignore`` file. -See also the `COVIDcast Terms of Use -`_, noting that the data is a -research product and not warranted for a particular purpose. +Note that for the time being, the private endpoints (i.e. those prefixed with +``pvt``) will require additional permissions (contact us for more information). -For users of the covidcast Python package ------------------------------------------- - -The `covidcast `_ -package is deprecated and will no longer be updated. The ``epidatpy`` package is a -complete rewrite with a focus on speed, reliability, and ease of use. It also -supports more endpoints and data sources than ``covidcast``. When migrating from -that package, you will need to use the ``pub_covidcast`` function in -``epidatpy``. - -.. note :: **You should consider subscribing** to the `API mailing list - `_ to be - notified of package updates, new data sources, corrections, and other - updates. - -Contents --------- +Documentation Contents +=============== .. toctree:: - :maxdepth: 2 + :maxdepth: 1 getting_started diff --git a/docs/signal_discovery.ipynb b/docs/signal_discovery.ipynb index 5116df4..830b216 100644 --- a/docs/signal_discovery.ipynb +++ b/docs/signal_discovery.ipynb @@ -4,24 +4,52 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Finding data sources and signals of interest\n", + "# Finding data of interest\n", + "\n", + "The Epidata API includes numerous data streams -- medical claims data, cases and\n", + "deaths, mobility, and many others -- covering different geographic regions. This\n", + "can make it a challenge to find the data stream that you are most interested in.\n", + "This page will provide some advice on how to locate donate that may be useful to\n", + "you.\n", + "\n", + "## Using the Delphi Epidata API documentation\n", + "\n", + "The Delphi Epidata API documentation lists all the available data sources and\n", + "signals for\n", + "[COVID-19](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html)\n", + "and for [other\n", + "diseases](https://cmu-delphi.github.io/delphi-epidata/api/README.html#source-specific-parameters).\n", + "The site also includes a search tool if you have a keyword (e.g. \"Taiwan\") in\n", + "mind. Generally, any endpoint listed in the Delphi Epidata API has an associated\n", + "function in this client where its API endpoint name is prefixed with either\n", + "`pub_` or `pvt_`, e.g. `pub_covidcast` or `pvt_twitter`.\n", "\n", - "The Epidata API includes numerous data streams -- medical claims data, cases and deaths,\n", - "mobility, and many others -- covering different geographic regions. This can make it a\n", - "challenge to find the data stream that you are most interested in.\n", - "\n", - "## Using the documentation\n", + "## Epidata data sources\n", "\n", - "The Epidata documentation lists all the data sources and signals available\n", - "through the API for\n", - "[COVID-19](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html) and\n", - "for [other diseases](https://cmu-delphi.github.io/delphi-epidata/api/README.html#source-specific-parameters).\n", - "The site also includes a search tool if you have a keyword (e.g. \"Taiwan\") in mind.\n", + "The parameters available for each source data are documented in each linked\n", + "source-specific API page. The epidatpy client will also expect certain fields,\n", + "depending on the endpoint, though the Delphi Epidata API documentation will\n", + "contain more information about the accepted ranges of values for each field. \n", "\n", - "## Epidata data sources\n", + "A dynamically generated list of all available data sources can be obtained by\n", + "using the built-in `available_endpoints()`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "nbsphinx": "hidden" + }, + "outputs": [], + "source": [ + "# Hidden cell (set in the metadata for this cell)\n", + "import pandas as pd\n", "\n", - "The parameters available for each source data are documented in each linked source-specific API page. A dynamically\n", - "generated list of all available data sources can be found below:" + "# Set common options and context\n", + "pd.set_option(\"display.max_columns\", None)\n", + "pd.set_option(\"display.max_rows\", 10)\n", + "pd.set_option(\"display.width\", 1000)" ] }, { @@ -30,16 +58,11 @@ "metadata": {}, "outputs": [], "source": [ - "import inspect\n", - "import pandas as pd\n", "from IPython.display import HTML\n", - "from epidatpy._endpoints import AEpiDataEndpoints\n", "\n", - "endpoints = [x for x in inspect.getmembers(AEpiDataEndpoints) if x[0].startswith(\"pvt_\") or x[0].startswith(\"pub_\")]\n", + "from epidatpy import available_endpoints\n", "\n", - "data = {e[0]: e[1].__doc__.split(\"\\n\")[0] if e[1].__doc__ else \"None\" for e in endpoints}\n", - "\n", - "table = pd.DataFrame(data.items(), columns = [\"Endpoint\", \"Description\"])\n", + "table = available_endpoints()\n", "HTML(table.to_html(index=False))" ] }, @@ -47,12 +70,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Signal metadata\n", - "\n", - "The `source_df` property lets us obtain a Pandas DataFrame of metadata describing all\n", - "data streams which are publically accessible from the COVIDcast API. See the [data source\n", - "and signals documentation](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html)\n", - "for descriptions of the available sources." + "## Covidcast source and signal metadata\n", + "\n", + "The `CovidcastEpidata` class provides a way to access information about the data\n", + "in the `pub_covidcast` endpoint directly from within the client. The cell below\n", + "demonstrates how to access this metadata by using `source_df` property, which\n", + "returns a Pandas DataFrame of metadata describing all data streams publically\n", + "accessible from the COVIDcast endpoint of the Delphi Epidata API. This mirrors\n", + "the information found in the [COVIDcast signals\n", + "endpoint](https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html)." ] }, { @@ -63,14 +89,8 @@ "source": [ "from epidatpy import CovidcastEpidata\n", "\n", - "pd.set_option('display.max_columns', None)\n", - "pd.set_option('display.max_rows', None)\n", - "pd.set_option('display.width', 1000)\n", - "\n", "epidata = CovidcastEpidata()\n", - "sources = epidata.source_df\n", - "\n", - "print(sources.head())" + "epidata.source_df" ] }, { @@ -98,9 +118,7 @@ "metadata": {}, "outputs": [], "source": [ - "signals = epidata.signal_df\n", - "\n", - "print(signals.head())" + "epidata.signal_df" ] }, { @@ -132,8 +150,14 @@ } ], "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "name": "python", + "version": "3.8.10" } }, "nbformat": 4, diff --git a/docs/versioned_data.ipynb b/docs/versioned_data.ipynb index e8893eb..02b3504 100644 --- a/docs/versioned_data.ipynb +++ b/docs/versioned_data.ipynb @@ -4,73 +4,82 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Understanding and accessing versioned data\n", + "# Accessing versioned data\n", "\n", - "The Epidata API records not just each signal's estimate for a given location\n", - "on a given day, but also *when* that estimate was made, and all updates to that\n", - "estimate.\n", + "The Delphi Epidata API stores not just each signal's estimate for a given\n", + "location on a given day, but also *when* that estimate was made, and all updates\n", + "to that estimate.\n", "\n", "For example, let's look at the [doctor visits\n", "signal](https://cmu-delphi.github.io/delphi-epidata/api/covidcast-signals/doctor-visits.html)\n", - "from the [covidcast endpoint](https://cmu-delphi.github.io/delphi-epidata/api/covidcast.html),\n", - "which estimates the percentage of outpatient doctor visits that are\n", - "COVID-related.\n", + "from the [covidcast\n", + "endpoint](https://cmu-delphi.github.io/delphi-epidata/api/covidcast.html), which\n", + "estimates the percentage of outpatient doctor visits that are COVID-related.\n", "\n", - "Consider a result row with `time_value = 2020-05-01` for\n", - "`geo_values = \"pa\"`. This is an estimate for Pennsylvania on\n", - "May 1, 2020. That estimate was *issued* on May 5, 2020, the delay being due to\n", - "the aggregation of data by our source and the time taken by the Epidata API to\n", - "ingest the data provided.\n", + "Consider a result row with `time_value = 2020-05-01` for `geo_values = \"pa\"`.\n", + "This is an estimate for Pennsylvania on May 1, 2020. That estimate was *issued*\n", + "on May 5, 2020 (which is recorded in the `issue` column), the delay coming from\n", + "a combination of:\n", "\n", - "Later, the estimate for May 1st could be updated,\n", - "perhaps because additional visit data from May 1st arrived at our source and was\n", - "reported to us. This constitutes a new *issue* of the data.\n", + "- time taken by our data partner to collect the data\n", + "- time taken by the Dekohu Epidata API to ingest the data provided.\n", "\n", - "## Data known \"as of\" a specific date\n", + "Later, the estimate for May 1st could be updated, perhaps because additional\n", + "visit data from May 1st arrived at our source and was reported to us. This\n", + "constitutes a new *issue* of the data.\n", "\n", - "By default, endpoint functions fetch the most recent issue available. This\n", - "is the best option for users who simply want to graph the latest data or\n", - "construct dashboards. But if we are interested in knowing *when* data was\n", - "reported, we can request specific data versions using the `as_of`, `issues`, or\n", - "`lag` arguments.\n", + "## Data known \"as of\" a specific date\n", "\n", - "**Note** that these are mutually exclusive; only one can be specified\n", - "at a time. Also, not all endpoints support all three parameters, so please\n", - "check the documentation for that specific endpoint.\n", + "By default, endpoint functions fetch the most recent issue available. This is\n", + "the best option for users who simply want to graph the latest data or construct\n", + "dashboards. But if we are interested in knowing *when* data was reported, we can\n", + "request specific data versions using the `as_of`, `issues`, or `lag` arguments\n", + "(note that these are mutually exclusive and that not all endpoints aside from\n", + "`pub_covidcast` support all three parameters, so please check the documentation\n", + "for that specific endpoint).\n", "\n", - "First, we can request the data that was available *as of* a specific date, using\n", - "the `as_of` argument:" + "First, we can request the data that was available *as it was available* on a\n", + "specific date, using the `as_of` argument:" ] }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "nbsphinx": "hidden" + }, "outputs": [], "source": [ - "from epidatpy import EpiDataContext, EpiRange\n", + "# Hidden cell (set in the metadata for this cell)\n", "import pandas as pd\n", "\n", "# Set common options and context\n", - "pd.set_option('display.max_columns', None)\n", - "pd.set_option('display.max_rows', None)\n", - "pd.set_option('display.width', 1000)\n", + "pd.set_option(\"display.max_columns\", None)\n", + "pd.set_option(\"display.max_rows\", 10)\n", + "pd.set_option(\"display.width\", 1000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from epidatpy import EpiDataContext, EpiRange\n", "\n", "epidata = EpiDataContext(use_cache=False)\n", "\n", "# Obtain the most up-to-date version of the smoothed covid-like illness (CLI)\n", "# signal from the COVID-19 Trends and Impact survey for the US\n", - "apicall = epidata.pub_covidcast(\n", - " data_source = \"doctor-visits\",\n", - " signals = \"smoothed_cli\",\n", - " time_type = \"day\",\n", - " time_values = EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", - " geo_type = \"state\",\n", - " geo_values = \"pa\",\n", - " as_of = \"2020-05-07\")\n", - "\n", - "print(apicall.df().head())\n", - "print(apicall.df().head()[\"value\"])" + "epidata.pub_covidcast(\n", + " data_source=\"doctor-visits\",\n", + " signals=\"smoothed_cli\",\n", + " time_type=\"day\",\n", + " time_values=\"2020-05-01\",\n", + " geo_type=\"state\",\n", + " geo_values=\"pa\",\n", + " as_of=\"2020-05-07\",\n", + ").df()" ] }, { @@ -87,16 +96,14 @@ "metadata": {}, "outputs": [], "source": [ - "apicall = epidata.pub_covidcast(\n", - " data_source = \"doctor-visits\",\n", - " signals = \"smoothed_cli\",\n", - " time_type = \"day\",\n", - " time_values = EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", - " geo_type = \"state\",\n", - " geo_values = \"pa\")\n", - "\n", - "print(apicall.df().head())\n", - "print(apicall.df().head()[\"value\"])" + "epidata.pub_covidcast(\n", + " data_source=\"doctor-visits\",\n", + " signals=\"smoothed_cli\",\n", + " time_type=\"day\",\n", + " time_values=\"2020-05-01\",\n", + " geo_type=\"state\",\n", + " geo_values=\"pa\",\n", + ").df()" ] }, { @@ -122,18 +129,19 @@ "source": [ "import matplotlib.pyplot as plt\n", "\n", - "plt.rcParams['figure.dpi'] = 300\n", + "plt.rcParams[\"figure.dpi\"] = 300\n", "\n", "results = []\n", "for as_of_date in [\"2020-05-07\", \"2020-05-14\", \"2020-05-21\", \"2020-05-28\"]:\n", " apicall = epidata.pub_covidcast(\n", - " data_source = \"doctor-visits\",\n", - " signals = \"smoothed_adj_cli\",\n", - " time_type = \"day\",\n", - " time_values = EpiRange(\"2020-04-20\", \"2020-04-27\"),\n", - " geo_type = \"state\",\n", - " geo_values = \"pa\",\n", - " as_of = as_of_date)\n", + " data_source=\"doctor-visits\",\n", + " signals=\"smoothed_adj_cli\",\n", + " time_type=\"day\",\n", + " time_values=EpiRange(\"2020-04-20\", \"2020-04-27\"),\n", + " geo_type=\"state\",\n", + " geo_values=\"pa\",\n", + " as_of=as_of_date,\n", + " )\n", "\n", " results.append(apicall.df())\n", "\n", @@ -145,19 +153,12 @@ "ax.spines[\"left\"].set_visible(False)\n", "ax.spines[\"top\"].set_visible(False)\n", "\n", - "def sub_cmap(cmap, vmin, vmax):\n", - " return lambda v: cmap(vmin + (vmax - vmin) * v)\n", - "\n", - "final_df.pivot_table(values = \"value\", index = \"time_value\", columns = \"issue\").plot(\n", - " xlabel=\"Date\",\n", - " ylabel=\"CLI\",\n", - " ax = ax,\n", - " linewidth = 1.5,\n", - " colormap=sub_cmap(plt.get_cmap('viridis').reversed(), 0.2, 1)\n", + "final_df.pivot_table(values=\"value\", index=\"time_value\", columns=\"issue\").plot(\n", + " xlabel=\"Date\", ylabel=\"CLI\", ax=ax, linewidth=1.5\n", ")\n", "\n", "plt.title(\"Smoothed CLI from Doctor Visits\", fontsize=16)\n", - "plt.subplots_adjust(bottom=.2)\n", + "plt.subplots_adjust(bottom=0.2)\n", "plt.show()" ] }, @@ -177,16 +178,15 @@ "metadata": {}, "outputs": [], "source": [ - "apicall = epidata.pub_covidcast(\n", - " data_source = \"doctor-visits\",\n", - " signals = \"smoothed_adj_cli\",\n", - " time_type = \"day\",\n", - " time_values = EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", - " geo_type = \"state\",\n", - " geo_values = \"pa\",\n", - " issues = EpiRange(\"2020-05-01\", \"2020-05-15\"))\n", - "\n", - "print(apicall.df().head(7))" + "epidata.pub_covidcast(\n", + " data_source=\"doctor-visits\",\n", + " signals=\"smoothed_adj_cli\",\n", + " time_type=\"day\",\n", + " time_values=\"2020-05-01\",\n", + " geo_type=\"state\",\n", + " geo_values=\"pa\",\n", + " issues=EpiRange(\"2020-05-01\", \"2020-05-15\"),\n", + ").df()" ] }, { @@ -194,11 +194,12 @@ "metadata": {}, "source": [ "This estimate was clearly updated many times as new data for May 1st arrived.\n", - "\n", - "**Note** that these results include only data issued or updated between\n", - "(inclusive) 2020-05-01 and 2020-05-15. If a value was first reported on\n", - "2020-04-15, and never updated, a query for issues between 2020-05-01 and\n", - "2020-05-15 will not include that value among its results.\n", + "Note that these results include only data issued or updated between (inclusive)\n", + "2020-05-01 and 2020-05-15. If a value was first reported on 2020-04-15, and\n", + "never updated, a query for issues between 2020-05-01 and 2020-05-15 will not\n", + "include that value among its results. This view of the data is useful for\n", + "understanding the revision patterns in a signal and can be useful for nowcasting\n", + "(i.e. the practice of auto-correcting real-time estimates).\n", "\n", "## Observations issued with a specific lag\n", "\n", @@ -213,23 +214,22 @@ "metadata": {}, "outputs": [], "source": [ - "apicall = epidata.pub_covidcast(\n", - " data_source = \"doctor-visits\",\n", - " signals = \"smoothed_adj_cli\",\n", - " time_type = \"day\",\n", - " time_values = EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", - " geo_type = \"state\",\n", - " geo_values = \"pa\",\n", - " lag = 7)\n", - "\n", - "print(apicall.df().head())" + "epidata.pub_covidcast(\n", + " data_source=\"doctor-visits\",\n", + " signals=\"smoothed_adj_cli\",\n", + " time_type=\"day\",\n", + " time_values=EpiRange(\"2020-05-01\", \"2020-05-01\"),\n", + " geo_type=\"state\",\n", + " geo_values=\"pa\",\n", + " lag=7,\n", + ").df()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "**Note** that though this query requested all values between 2020-05-01 and\n", + "Note that though this query requested all values between 2020-05-01 and\n", "2020-05-07, May 3rd and May 4th were *not* included in the results set. This is\n", "because the query will only include a result for May 3rd if a value were issued\n", "on May 10th (a 7-day lag), but in fact the value was not updated on that day:" @@ -241,16 +241,15 @@ "metadata": {}, "outputs": [], "source": [ - "apicall = epidata.pub_covidcast(\n", - " data_source = \"doctor-visits\",\n", - " signals = \"smoothed_adj_cli\",\n", - " time_type = \"day\",\n", - " time_values = EpiRange(\"2020-05-03\", \"2020-05-03\"),\n", - " geo_type = \"state\",\n", - " geo_values = \"pa\",\n", - " issues = EpiRange(\"2020-05-09\", \"2020-05-15\"))\n", - "\n", - "print(apicall.df().head())" + "epidata.pub_covidcast(\n", + " data_source=\"doctor-visits\",\n", + " signals=\"smoothed_adj_cli\",\n", + " time_type=\"day\",\n", + " time_values=\"2020-05-03\",\n", + " geo_type=\"state\",\n", + " geo_values=\"pa\",\n", + " issues=EpiRange(\"2020-05-09\", \"2020-05-15\"),\n", + ").df()" ] } ], diff --git a/epidatpy/__init__.py b/epidatpy/__init__.py index aa88fa0..5cc7c39 100644 --- a/epidatpy/__init__.py +++ b/epidatpy/__init__.py @@ -1,10 +1,10 @@ """Fetch data from Delphi's API.""" # Make the linter happy about the unused variables -__all__ = ["__version__", "EpiDataContext", "CovidcastEpidata", "EpiRange"] +__all__ = ["__version__", "available_endpoints", "EpiDataContext", "CovidcastEpidata", "EpiRange"] __author__ = "Delphi Research Group" from ._constants import __version__ from ._model import EpiRange -from .request import CovidcastEpidata, EpiDataContext +from .request import CovidcastEpidata, EpiDataContext, available_endpoints diff --git a/epidatpy/_covidcast.py b/epidatpy/_covidcast.py index 8a2fb32..d341450 100644 --- a/epidatpy/_covidcast.py +++ b/epidatpy/_covidcast.py @@ -33,8 +33,7 @@ @dataclass class WebLink: - """represents a web link - """ + """represents a web link""" alt: str href: str @@ -42,8 +41,7 @@ class WebLink: @dataclass class DataSignalGeoStatistics: - """COVIDcast signal statistics - """ + """COVIDcast signal statistics""" min: float max: float @@ -82,8 +80,7 @@ def define_covidcast_fields() -> List[EpidataFieldInfo]: @dataclass class DataSignal(Generic[CALL_TYPE]): - """represents a COVIDcast data signal - """ + """represents a COVIDcast data signal""" _create_call: Callable[[Mapping[str, Optional[EpiRangeParam]]], CALL_TYPE] @@ -195,8 +192,7 @@ def __call__( @dataclass class DataSource(Generic[CALL_TYPE]): - """represents a COVIDcast data source - """ + """represents a COVIDcast data source""" _create_call: InitVar[Callable[[Mapping[str, Optional[EpiRangeParam]]], CALL_TYPE]] @@ -247,8 +243,7 @@ def signal_df(self) -> DataFrame: @dataclass class CovidcastDataSources(Generic[CALL_TYPE]): - """COVIDcast data source helper. - """ + """COVIDcast data source helper.""" sources: Sequence[DataSource[CALL_TYPE]] _source_by_name: Dict[str, DataSource[CALL_TYPE]] = field(init=False, default_factory=dict) diff --git a/epidatpy/_endpoints.py b/epidatpy/_endpoints.py index 3646c1a..bd42bd8 100644 --- a/epidatpy/_endpoints.py +++ b/epidatpy/_endpoints.py @@ -36,8 +36,7 @@ def get_wildcard_equivalent_dates(time_value: EpiRangeParam, time_type: Literal[ class AEpiDataEndpoints(ABC, Generic[CALL_TYPE]): - """epidata endpoint list and fetcher - """ + """epidata endpoint list and fetcher""" @abstractmethod def _create_call( diff --git a/epidatpy/request.py b/epidatpy/request.py index 26684bc..a8c9f05 100644 --- a/epidatpy/request.py +++ b/epidatpy/request.py @@ -1,3 +1,4 @@ +import inspect from os import environ from typing import ( Any, @@ -291,3 +292,10 @@ def create_call( ) return CovidcastDataSources.create(meta_data, create_call) + + +def available_endpoints() -> DataFrame: + """Get a DataFrame of available endpoints and their descriptions.""" + endpoints = [x for x in inspect.getmembers(AEpiDataEndpoints) if x[0].startswith("pvt_") or x[0].startswith("pub_")] + data = {e[0]: e[1].__doc__.split("\n")[0] if e[1].__doc__ else "None" for e in endpoints} + return DataFrame(data.items(), columns=["Endpoint", "Description"])