Completed overall testing and cases dashboard.

This commit is contained in:
Joshua Bemenderfer
2021-12-31 12:57:47 -05:00
parent bbaef02acb
commit e37988dd2f
518 changed files with 17463 additions and 285 deletions

View File

@@ -19,7 +19,9 @@ async function processSingleZip ({ date, zip }) {
if (!county) return counties
totalPopulation += +row.population
counties[county] = {
population: +row.population
population: +row.population,
cases_14_days: +row['14 day case rate'],
case_rate_14_days: +row['14 day case rate']
}
return counties
}, {})

View File

@@ -4,16 +4,12 @@ import fsp from 'fs/promises'
import Papa from 'papaparse'
import { getCounty } from '../../util.js'
async function processSingleZip ({ date, zip }, countyInfo) {
const output = {
directory: `./public/data/state/cases`,
async function processByCounty({ date, zip }, countyInfo, output) {
output = {
directory: path.join(output.directory, 'by-county'),
file: county => `${county}.json`
}
try {
await fsp.rm(output.directory, { recursive: true })
} catch (e) {}
const csv = await zip.entryData('epicurve_rpt_date.csv').then(res => res.toString())
const rows = Papa.parse(csv, {
@@ -30,8 +26,8 @@ async function processSingleZip ({ date, zip }, countyInfo) {
population: info.population,
cases: parseInt(row.cases),
cases_per_capita: parseInt(row.cases) / info.population,
moving_avg_cases: parseInt(row.moving_avg_cases),
moving_avg_cases_per_capita: parseInt(row.moving_avg_cases) / info.population,
cases_14_days: info.cases_14_days,
case_rate_14_days: info.case_rate_14_days,
total_cases: parseInt(row.total_cases_cum),
total_cases_per_capita: parseInt(row.total_cases_cum) / info.population
})
@@ -48,7 +44,64 @@ async function processSingleZip ({ date, zip }, countyInfo) {
await mkdirp(output.directory)
await fsp.writeFile(path.join(output.directory, output.file(county)), JSON.stringify(data))
}
}
async function processCombined({ date, zip }, countyInfo, output) {
output = {
directory: output.directory,
file: `combined.json`
}
const csv = await zip.entryData('epicurve_rpt_date.csv').then(res => res.toString())
const rows = Papa.parse(csv, {
header: true
}).data
const report_dates = new Set()
const results = rows.map(row => {
const county = getCounty(row.county)
if (!county) return null
if (['-- All --', '-- Unknown --'].includes(county)) return null
const info = countyInfo[county]
report_dates.add(row['report_date'])
return {
county,
report_date: row['report_date'],
population: info.population,
cases: parseInt(row.cases),
cases_per_capita: parseInt(row.cases) / info.population,
cases_14_days: info.cases_14_days,
case_rate_14_days: info.case_rate_14_days,
total_cases: parseInt(row.total_cases_cum),
total_cases_per_capita: parseInt(row.total_cases_cum) / info.population
}
}).filter(row => !!row)
const data = {
segment: { report_date: Array.from(report_dates) },
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))
}
async function processSingleZip (zip, countyInfo) {
const output = {
directory: `./public/data/state/cases/`,
}
try {
await fsp.rm(output.directory, { recursive: true })
} catch (e) {}
await processByCounty(zip, countyInfo, output)
await processCombined(zip, countyInfo, output)
}
function process (zips, countyInfo) {

View File

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