Add basic risk by age dashboard.

This commit is contained in:
Joshua Bemenderfer
2021-12-31 17:27:35 -05:00
parent 000a28ebdc
commit be2a75a579
671 changed files with 227 additions and 22 deletions

View File

@@ -8,6 +8,8 @@ import OverallCases from './parser/overall/cases.js'
import OverallHospitalizations from './parser/overall/hospitalizations.js'
import OverallDeaths from './parser/overall/deaths.js'
import RiskAge from './parser/risk/age.js'
async function main() {
const sources = await fg(['./data/raw/*.zip'])
sources.sort()
@@ -23,6 +25,8 @@ async function main() {
await OverallCases(zips, counties)
await OverallHospitalizations(zips, counties)
await OverallDeaths(zips, counties)
await RiskAge(zips)
}
main()

View File

@@ -93,7 +93,7 @@ async function processCombined({ date, zip }, countyInfo, output) {
async function processSingleZip (zip, countyInfo) {
const output = {
directory: `./public/data/state/cases/`,
directory: `./public/data/overall/cases/`,
}
try {

View File

@@ -116,7 +116,7 @@ async function processCombined({ date, zip }, countyInfo, output) {
async function processSingleZip (zip, countyInfo) {
const output = {
directory: `./public/data/state/deaths/`,
directory: `./public/data/overall/deaths/`,
}
try {

View File

@@ -112,7 +112,7 @@ async function processCombined({ date, zip }, countyInfo, output) {
async function processSingleZip (zip, countyInfo) {
const output = {
directory: `./public/data/state/hospitalizations/`,
directory: `./public/data/overall/hospitalizations/`,
}
try {

View File

@@ -6,7 +6,7 @@ import { getCounty } from '../../util.js'
async function processSingleZip ({ date, zip }) {
const output = {
directory: `./public/data/state/testing/by-county/`,
directory: `./public/data/overall/testing/by-county/`,
file: county => `${county}.json`
}

49
data/parser/risk/age.js Normal file
View File

@@ -0,0 +1,49 @@
import mkdirp from 'mkdirp'
import path from 'path'
import fsp from 'fs/promises'
import Papa from 'papaparse'
import { getCounty } from '../../util.js'
async function processSingleZip ({ date, zip }) {
const output = {
directory: `./public/data/risk/age/`,
file: `age.json`
}
try {
await fsp.rm(output.directory, { recursive: true })
} catch (e) {}
const csv = await zip.entryData('epicurve_age_group_rpt_date.csv').then(res => res.toString())
const rows = Papa.parse(csv, {
header: true
}).data
const results = rows.map(row => {
return {
age_group: row.age_group,
report_date: row.report_date,
cases: +row.cases,
hospitalizations: +row.confirmed_case_hospitalization,
deaths: +row.deaths,
total_cases: +row.cases_cum,
total_deaths: +row.total_deaths
}
}).filter(row => !!row.report_date)
const data = {
segment: { },
headers: Object.keys(results[0]),
rows: results.map(row => Object.values(row))
}
await mkdirp(output.directory)
await fsp.writeFile(path.join(output.directory, output.file), JSON.stringify(data))
}
function process (zips) {
return processSingleZip(zips.at(-1))
}
export default process