50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
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.death_cum
|
|
}
|
|
}).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
|