The government of California release COVID19-related data on “Tracking COVID-19 in California” webpage. It has many interesting data, from patients, and cases to hospital beds. I showed how one can transform their data into computable datasets in the Wolfram Language. I also provided some relevant visualizations for the data, at the county and state levels.
California COVID19 data
California COVID19 data
The following functions returns computable COVID19 data of California in the proper formats (e.g, dataset, time series and etc). As an input, one can put “Testing”,”Hospitals”,”Cases”,”Sex”,”Age”, and ”Ethnicity”. For more info, please refer the data dictionary section of CA COVID19 data webpage.
In[]:=
CaliforniaCovidData[x_/;MemberQ[{"Testing","Hospitals","Cases","Sex","Age","Ethnicity"},x]]:=Module{tsGenerator},tsGenerator[keys_][td_]:=Module[{dates,vectors},dates=td["DateList"];vectors=Transpose[First[td["ValueList"]]];AssociationThread[keys,TimeSeries[#,dates]&/@vectors]];IfStringMatchQ[x,"Testing"],TimeSeriesImport2;;,IfStringMatchQ[x,"Hospitals"],Import,{"CSV","Dataset"},HeaderLines1[All,KeyMap[StringJoin[Capitalize[StringSplit[#,"_"]]]&]][GroupBy["County"],TemporalData,{#〚2〛,Values[#〚3;;〛]/.""Missing["NotAvailable"]}&][KeyMap[Interpreter["USCounty"][#<>" County, California"]&],tsGenerator[{"HospitalizedCovidConfirmedPatients","HospitalizedSuspectedCovidPatients","HospitalizedCovidPatients","AllHospitalBeds","IcuCovidConfirmedPatients","IcuSuspectedCovidPatients","IcuAvailableBeds"}]]//KeyMap[#/._FailureMissing["Unassigned"]&],IfStringMatchQ[x,"Cases"],Import,{"CSV","Dataset"},HeaderLines1[GroupBy["county"],TemporalData,{#〚-1〛,Values[#〚2;;-2〛]/.""Missing["NotAvailable"]}&][KeyMap[Interpreter["USCounty"][#<>" County, California"]&],tsGenerator[{"TotalCountConfirmed","TotalCountDeaths","NewCountConfirmed","NewCountDeaths"}]]//KeyMap[#/._FailureMissing["Unassigned"]&],IfStringMatchQ[x,"Age"],Import,{"CSV","Dataset"},HeaderLines1[All,KeyMap[StringJoin[Capitalize[StringSplit[#,"_"]]]&]][GroupBy["AgeGroup"],TemporalData,{#Date,{#Totalpositive,#CasePercent,#Deaths,#DeathsPercent,#CaPercent}/.""Missing["NotAvailable"]}&][All,tsGenerator[{"Totalpositive","CasePercent","Deaths","DeathsPercent","CaPercent"}]]//KeyMap[#/._FailureMissing["Unassigned"]&],IfStringMatchQ[x,"Sex"],Import,{"CSV","Dataset"},HeaderLines1[All,KeyMap[StringJoin[Capitalize[StringSplit[#,"_"]]]&]][GroupBy["Sex"],TemporalData,{#Date,{#Totalpositive2,#CasePercent,#Deaths,#DeathsPercent,#CaPercent}/.""Missing["NotAvailable"]}&][All,tsGenerator[{"Totalpositive2","CasePercent","Deaths","DeathsPercent","CaPercent"}]]//KeyMap[#/._FailureMissing["Unassigned"]&],IfStringMatchQ[x,"Ethnicity"],Import,{"CSV","Dataset"},HeaderLines1[All,KeyMap[StringJoin[Capitalize[StringSplit[#,"_"]]]&]][GroupBy["RaceEthnicity"],TemporalData,{#Date,{#Cases,#CasePercentage,#Deaths,#DeathPercentage,#PercentCaPopulation}/.""Missing["NotAvailable"]}&][All,tsGenerator[{"Cases","CasePercentage","Deaths","DeathPercentage","PercentCaPopulation"}]]//KeyMap[#/._FailureMissing["Unassigned"]&]
Some Visualizations at the State Level
Some Visualizations at the State Level
Get all CA COVID19 data
In[]:=
dataASC=AssociationMap[CaliforniaCovidData[#]&,{"Testing","Hospitals","Cases","Sex","Age","Ethnicity"}];
Viz testing:
In[]:=
DateListPlot[Differences[dataASC["Testing"]],PlotTheme"Business",AspectRatio1/4,ImageSizeLarge,PlotLabel"Daily COVID19 Tests Reported, California",FillingBottom]
Out[]=
Viz daily cases:
In[]:=
DateListPlot[Differences[dataASC["Cases"][Total,"TotalCountConfirmed"]],PlotTheme"Business",AspectRatio1/4,ImageSizeLarge,PlotLabel"Daily COVID19 Confirmed Cases, California",FillingBottom]
Out[]=
Viz the fraction of test positivity:
In[]:=
DateListPlot[Differences[dataASC["Cases"][Total,"TotalCountConfirmed"]]/Differences[dataASC["Testing"]],PlotTheme"Business",AspectRatio1/4,ImageSizeLarge,PlotLabel"Fraction of Daily COVID19 Tests Came Positive (Test Positivity), California",FillingBottom]
Out[]=
Viz the hospitalization due to covid:
In[]:=
DateListPlot[dataASC["Hospitals"][Total,"HospitalizedCovidConfirmedPatients"],PlotTheme"Business",AspectRatio1/4,ImageSizeLarge,PlotLabel"Hospitalized COVID19-Confirmed Patients, California",FillingBottom]
Out[]=
Viz the ICU covid patients and ICU available beds:
In[]:=
DateListPlot[{dataASC["Hospitals"][Total,"IcuCovidConfirmedPatients"],dataASC["Hospitals"][Total,"IcuAvailableBeds"]},PlotTheme"Business",AspectRatio1/4,ImageSizeLarge,PlotLabel"ICU Available Beds and ICU COVID19-Patients, California",PlotLegends{"ICU COVID19-Patients","Availabe ICU Beds"},FillingBottom]
Out[]=
In[]:=
DateListPlot,PlotTheme"Business",AspectRatio14,ImageSizeLarge,PlotLabel"Fraction of Hospitalized COVID19 Patients Admitted to ICU, California",FillingBottom
dataASC["Hospitals"][Total,"IcuCovidConfirmedPatients"]
dataASC["Hospitals"][Total,"HospitalizedCovidConfirmedPatients"]
Out[]=
Some Visualizations at the County Level
Some Visualizations at the County Level
14-days moving-average of daily COVID19 confirmed cases:
14-days moving-average of daily COVID19 confirmed cases:
14-days moving-average of Hospitalized COVID19 Confirmed Patients
14-days moving-average of Hospitalized COVID19 Confirmed Patients
14-days moving-average of ICU COVID19 Confirmed Patients
14-days moving-average of ICU COVID19 Confirmed Patients
ICU COVID19 Patients
ICU COVID19 Patients
Geo-viz the most recent value of ICU patients: