Working on case cards.
This commit is contained in:
parent
4e83fd3dbd
commit
bbaef02acb
8
components.d.ts
vendored
8
components.d.ts
vendored
@ -4,7 +4,9 @@
|
||||
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
Cache: typeof import('./src/components/charts/state/testing/cache.js')['default']
|
||||
Card: typeof import('./src/components/Card.vue')['default']
|
||||
ChipsCases: typeof import('./src/components/charts/state/cases/ChipsCases.vue')['default']
|
||||
ChipsTesting: typeof import('./src/components/charts/state/testing/ChipsTesting.vue')['default']
|
||||
IconHealthiconsClinicalFOutline: typeof import('~icons/healthicons/clinical-f-outline')['default']
|
||||
IconMdiGenderMaleFemale: typeof import('~icons/mdi/gender-male-female')['default']
|
||||
@ -19,11 +21,17 @@ declare module 'vue' {
|
||||
JSCharting: typeof import('./src/components/jscharting/JSCharting.vue')['default']
|
||||
JSGrid: typeof import('./src/components/jscharting/JSGrid.vue')['default']
|
||||
JSLabel: typeof import('./src/components/jscharting/JSLabel.vue')['default']
|
||||
MapCases: typeof import('./src/components/charts/state/cases/MapCases.vue')['default']
|
||||
ParametersCases: typeof import('./src/components/charts/state/cases/ParametersCases.vue')['default']
|
||||
ParametersTesting: typeof import('./src/components/charts/state/testing/ParametersTesting.vue')['default']
|
||||
SliceSelector: typeof import('./src/components/SliceSelector.vue')['default']
|
||||
StatCard: typeof import('./src/components/cards/StatCard.vue')['default']
|
||||
Store: typeof import('./src/components/charts/state/cases/store.js')['default']
|
||||
TestingDataSetup: typeof import('./src/components/pages/state/TestingDataSetup.vue')['default']
|
||||
TestingParameters: typeof import('./src/components/charts/state/testing/TestingParameters.vue')['default']
|
||||
TrendAntigenPositive: typeof import('./src/components/charts/state/testing/TrendAntigenPositive.vue')['default']
|
||||
TrendAntigenTests: typeof import('./src/components/charts/state/testing/TrendAntigenTests.vue')['default']
|
||||
TrendCases: typeof import('./src/components/charts/state/cases/TrendCases.vue')['default']
|
||||
TrendPCRPositive: typeof import('./src/components/charts/state/testing/TrendPCRPositive.vue')['default']
|
||||
TrendPCRTests: typeof import('./src/components/charts/state/testing/TrendPCRTests.vue')['default']
|
||||
Util: typeof import('./src/components/charts/util.js')['default']
|
||||
|
@ -1,8 +1,10 @@
|
||||
import fs from 'fs/promises'
|
||||
import fg from 'fast-glob'
|
||||
import StreamZip from 'node-stream-zip'
|
||||
import TestingTrend from './parser/testing-trend.js'
|
||||
import path from 'path'
|
||||
import StreamZip from 'node-stream-zip'
|
||||
import Counties from './parser/counties.js'
|
||||
import StateTesting from './parser/state/testing.js'
|
||||
import StateCases from './parser/state/cases.js'
|
||||
|
||||
async function main() {
|
||||
const sources = await fg(['./data/raw/*.zip'])
|
||||
@ -13,7 +15,10 @@ async function main() {
|
||||
zip: new StreamZip.async({ file: source })
|
||||
}))
|
||||
|
||||
await TestingTrend(zips)
|
||||
const counties = await Counties(zips)
|
||||
|
||||
await StateTesting(zips)
|
||||
await StateCases(zips, counties)
|
||||
}
|
||||
|
||||
main()
|
||||
|
38
data/parser/counties.js
Normal file
38
data/parser/counties.js
Normal file
@ -0,0 +1,38 @@
|
||||
|
||||
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 csv = await zip.entryData('county_cases.csv').then(res => res.toString())
|
||||
|
||||
const rows = Papa.parse(csv, {
|
||||
header: true
|
||||
}).data
|
||||
|
||||
let totalPopulation = 0
|
||||
|
||||
const counties = rows.reduce((counties, row) => {
|
||||
const county = getCounty(row.county_name)
|
||||
if (!county) return counties
|
||||
totalPopulation += +row.population
|
||||
counties[county] = {
|
||||
population: +row.population
|
||||
}
|
||||
return counties
|
||||
}, {})
|
||||
|
||||
return {
|
||||
...counties,
|
||||
'-- All --': { population: totalPopulation },
|
||||
'-- Unknown --': { population: 0 }
|
||||
}
|
||||
}
|
||||
|
||||
function process (zips) {
|
||||
return processSingleZip(zips.at(-1))
|
||||
}
|
||||
|
||||
export default process
|
58
data/parser/state/cases.js
Normal file
58
data/parser/state/cases.js
Normal file
@ -0,0 +1,58 @@
|
||||
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 }, countyInfo) {
|
||||
const output = {
|
||||
directory: `./public/data/state/cases`,
|
||||
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, {
|
||||
header: true
|
||||
}).data
|
||||
|
||||
const counties = rows.reduce((counties, row) => {
|
||||
const county = getCounty(row.county)
|
||||
const info = countyInfo[county]
|
||||
if (!county) return counties
|
||||
if (!counties[county]) counties[county] = []
|
||||
counties[county].push({
|
||||
report_date: row['report_date'],
|
||||
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,
|
||||
total_cases: parseInt(row.total_cases_cum),
|
||||
total_cases_per_capita: parseInt(row.total_cases_cum) / info.population
|
||||
})
|
||||
return counties
|
||||
}, {})
|
||||
|
||||
for (const county in counties) {
|
||||
const data = {
|
||||
segment: { county },
|
||||
headers: Object.keys(counties[county][0]),
|
||||
rows: counties[county].map(row => Object.values(row))
|
||||
}
|
||||
|
||||
await mkdirp(output.directory)
|
||||
await fsp.writeFile(path.join(output.directory, output.file(county)), JSON.stringify(data))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function process (zips, countyInfo) {
|
||||
return processSingleZip(zips.at(-1), countyInfo)
|
||||
}
|
||||
|
||||
export default process
|
@ -1,12 +1,12 @@
|
||||
import mkdirp from 'mkdirp'
|
||||
import path from 'path'
|
||||
import fs from 'fs'
|
||||
import fsp from 'fs/promises'
|
||||
import Papa from 'papaparse'
|
||||
import { getCounty } from '../../util.js'
|
||||
|
||||
async function processSingleZip({ date, zip }) {
|
||||
async function processSingleZip ({ date, zip }) {
|
||||
const output = {
|
||||
directory: `./public/data/testing-trend`,
|
||||
directory: `./public/data/state/testing`,
|
||||
file: county => `${county}.json`
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@ async function processSingleZip({ date, zip }) {
|
||||
}).data
|
||||
|
||||
const counties = rows.reduce((counties, row) => {
|
||||
const county = row.county === 'Georgia' ? 'All' : row.county
|
||||
const county = getCounty(row.county)
|
||||
if (!county) return counties
|
||||
if (!counties[county]) counties[county] = []
|
||||
counties[county].push({
|
||||
@ -46,8 +46,7 @@ async function processSingleZip({ date, zip }) {
|
||||
}
|
||||
|
||||
await mkdirp(output.directory)
|
||||
|
||||
await fsp.writeFile(path.join(output.directory, output.file(county)), JSON.stringify(data, null, '\t'))
|
||||
await fsp.writeFile(path.join(output.directory, output.file(county)), JSON.stringify(data))
|
||||
}
|
||||
|
||||
}
|
5
data/util.js
Normal file
5
data/util.js
Normal file
@ -0,0 +1,5 @@
|
||||
export function getCounty (county) {
|
||||
if (county === 'Georgia') return '-- All --'
|
||||
if (county === 'Non-GA Resident/Unknown State') return '-- Unknown --'
|
||||
return county
|
||||
}
|
@ -7,6 +7,7 @@
|
||||
"process:data": "node ./data/parser.js",
|
||||
"build": "iles build",
|
||||
"preview": "iles preview --port 5050",
|
||||
"deploy": "npm run build && rsync -avhz ./dist/ thederf@thederf.com:ga-covid/",
|
||||
"typecheck": "vue-tsc --noEmit"
|
||||
},
|
||||
"engines": {
|
||||
|
1
public/data/state/cases/-- All --.json
Normal file
1
public/data/state/cases/-- All --.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/-- Unknown --.json
Normal file
1
public/data/state/cases/-- Unknown --.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Appling.json
Normal file
1
public/data/state/cases/Appling.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Atkinson.json
Normal file
1
public/data/state/cases/Atkinson.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Bacon.json
Normal file
1
public/data/state/cases/Bacon.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Baker.json
Normal file
1
public/data/state/cases/Baker.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Baldwin.json
Normal file
1
public/data/state/cases/Baldwin.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Banks.json
Normal file
1
public/data/state/cases/Banks.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Barrow.json
Normal file
1
public/data/state/cases/Barrow.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Bartow.json
Normal file
1
public/data/state/cases/Bartow.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Ben Hill.json
Normal file
1
public/data/state/cases/Ben Hill.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Berrien.json
Normal file
1
public/data/state/cases/Berrien.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Bibb.json
Normal file
1
public/data/state/cases/Bibb.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Bleckley.json
Normal file
1
public/data/state/cases/Bleckley.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Brantley.json
Normal file
1
public/data/state/cases/Brantley.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Brooks.json
Normal file
1
public/data/state/cases/Brooks.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Bryan.json
Normal file
1
public/data/state/cases/Bryan.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Bulloch.json
Normal file
1
public/data/state/cases/Bulloch.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Burke.json
Normal file
1
public/data/state/cases/Burke.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Butts.json
Normal file
1
public/data/state/cases/Butts.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Calhoun.json
Normal file
1
public/data/state/cases/Calhoun.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Camden.json
Normal file
1
public/data/state/cases/Camden.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Candler.json
Normal file
1
public/data/state/cases/Candler.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Carroll.json
Normal file
1
public/data/state/cases/Carroll.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Catoosa.json
Normal file
1
public/data/state/cases/Catoosa.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Charlton.json
Normal file
1
public/data/state/cases/Charlton.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Chatham.json
Normal file
1
public/data/state/cases/Chatham.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Chattahoochee.json
Normal file
1
public/data/state/cases/Chattahoochee.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Chattooga.json
Normal file
1
public/data/state/cases/Chattooga.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Cherokee.json
Normal file
1
public/data/state/cases/Cherokee.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Clarke.json
Normal file
1
public/data/state/cases/Clarke.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Clay.json
Normal file
1
public/data/state/cases/Clay.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Clayton.json
Normal file
1
public/data/state/cases/Clayton.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Clinch.json
Normal file
1
public/data/state/cases/Clinch.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Cobb.json
Normal file
1
public/data/state/cases/Cobb.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Coffee.json
Normal file
1
public/data/state/cases/Coffee.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Colquitt.json
Normal file
1
public/data/state/cases/Colquitt.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Columbia.json
Normal file
1
public/data/state/cases/Columbia.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Cook.json
Normal file
1
public/data/state/cases/Cook.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Coweta.json
Normal file
1
public/data/state/cases/Coweta.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Crawford.json
Normal file
1
public/data/state/cases/Crawford.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Crisp.json
Normal file
1
public/data/state/cases/Crisp.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Dade.json
Normal file
1
public/data/state/cases/Dade.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Dawson.json
Normal file
1
public/data/state/cases/Dawson.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/DeKalb.json
Normal file
1
public/data/state/cases/DeKalb.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Decatur.json
Normal file
1
public/data/state/cases/Decatur.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Dodge.json
Normal file
1
public/data/state/cases/Dodge.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Dooly.json
Normal file
1
public/data/state/cases/Dooly.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Dougherty.json
Normal file
1
public/data/state/cases/Dougherty.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Douglas.json
Normal file
1
public/data/state/cases/Douglas.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Early.json
Normal file
1
public/data/state/cases/Early.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Echols.json
Normal file
1
public/data/state/cases/Echols.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Effingham.json
Normal file
1
public/data/state/cases/Effingham.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Elbert.json
Normal file
1
public/data/state/cases/Elbert.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Emanuel.json
Normal file
1
public/data/state/cases/Emanuel.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Evans.json
Normal file
1
public/data/state/cases/Evans.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Fannin.json
Normal file
1
public/data/state/cases/Fannin.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Fayette.json
Normal file
1
public/data/state/cases/Fayette.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Floyd.json
Normal file
1
public/data/state/cases/Floyd.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Forsyth.json
Normal file
1
public/data/state/cases/Forsyth.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Franklin.json
Normal file
1
public/data/state/cases/Franklin.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Fulton.json
Normal file
1
public/data/state/cases/Fulton.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Gilmer.json
Normal file
1
public/data/state/cases/Gilmer.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Glascock.json
Normal file
1
public/data/state/cases/Glascock.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Glynn.json
Normal file
1
public/data/state/cases/Glynn.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Gordon.json
Normal file
1
public/data/state/cases/Gordon.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Grady.json
Normal file
1
public/data/state/cases/Grady.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Greene.json
Normal file
1
public/data/state/cases/Greene.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Gwinnett.json
Normal file
1
public/data/state/cases/Gwinnett.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Habersham.json
Normal file
1
public/data/state/cases/Habersham.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Hall.json
Normal file
1
public/data/state/cases/Hall.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Hancock.json
Normal file
1
public/data/state/cases/Hancock.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Haralson.json
Normal file
1
public/data/state/cases/Haralson.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Harris.json
Normal file
1
public/data/state/cases/Harris.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Hart.json
Normal file
1
public/data/state/cases/Hart.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Heard.json
Normal file
1
public/data/state/cases/Heard.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Henry.json
Normal file
1
public/data/state/cases/Henry.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Houston.json
Normal file
1
public/data/state/cases/Houston.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Irwin.json
Normal file
1
public/data/state/cases/Irwin.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Jackson.json
Normal file
1
public/data/state/cases/Jackson.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Jasper.json
Normal file
1
public/data/state/cases/Jasper.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Jeff Davis.json
Normal file
1
public/data/state/cases/Jeff Davis.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Jefferson.json
Normal file
1
public/data/state/cases/Jefferson.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Jenkins.json
Normal file
1
public/data/state/cases/Jenkins.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Johnson.json
Normal file
1
public/data/state/cases/Johnson.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Jones.json
Normal file
1
public/data/state/cases/Jones.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Lamar.json
Normal file
1
public/data/state/cases/Lamar.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Lanier.json
Normal file
1
public/data/state/cases/Lanier.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Laurens.json
Normal file
1
public/data/state/cases/Laurens.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Lee.json
Normal file
1
public/data/state/cases/Lee.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Liberty.json
Normal file
1
public/data/state/cases/Liberty.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Lincoln.json
Normal file
1
public/data/state/cases/Lincoln.json
Normal file
File diff suppressed because one or more lines are too long
1
public/data/state/cases/Long.json
Normal file
1
public/data/state/cases/Long.json
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user