fetchCensusGroup = async function (
year,
base_var,
place_fips = "14000",
state = "17",
expand_var = false
) {
const response = await fetch(
`https://census-api.bunkum.us/data/${year}/acs/acs1?get=NAME,group(${base_var})&for=place:${place_fips}&in=state:${state}`
);
const data = await response.json();
const zipped = d3.zip(...data);
const geography = zipped.find((d) => d[0] === "NAME")[1];
const vars = zipped
.filter((d) => d[0] !== "NAME")
.map(([variable, value]) => ({
year,
geography,
variable,
value: Number(value)
}));
if (expand_var) {
const var_response = await fetch(
`https://census-api.bunkum.us/data/${year}/acs/acs1/groups/${base_var}.json`
);
const var_data = await var_response.json();
const enriched_vars = vars.map((d) => ({
...d,
variable_definition: var_data.variables[d.variable]
}));
return enriched_vars;
}
return vars;
}