You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.0 KiB
JavaScript

// SARS-CoV-2-Viz
// Animated COVID case count visualization
// Copyright 2022 Edward L. Platt <ed@elplatt.com>
const metadataUrl = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/UID_ISO_FIPS_LookUp_Table.csv";
async function getMetadata(onProgress) {
const content = await fetchWithProgress(metadataUrl, onProgress);
return content;
}
function parseMetadataTSV(tsv, onProgress) {
return tsvToJSON(tsv, onProgress);
}
async function parseMetadata(content, onProgress) {
// Convert to TSV then to object
onProgress("initializing...");
let tsv = await csvToTSV(
content,
(progress) => onProgress(`parsing CSV: ${progress}`));
let metadata = parseMetadataTSV(
tsv,
(progress) => onProgress(`buidling data structure: ${progress}`));
onProgress("done");
return metadata;
}
function populationMap(metadata) {
let result = {};
for (const row of metadata) {
if (row["FIPS"]) {
result[row["FIPS"]] = parseInt(row["Population"]);
}
}
return result;
}