taxonomy = {
const taxonomy = d3.group(
taxonomyData.filter(d => d.Class),
d => d.Class,
d => d.Subclass,
d => d.SubSubClass
);
for (let [classKey, lev1] of taxonomy) {
const incidents = data.filter(d => d.class.split(',').includes(classKey))
for (let [subclassKey, lev2] of lev1) {
if (subclassKey !== ""){
const incidentsSubClass = data.filter(d=> {
const subclassArray = (d.subclass || '').split(',');
return subclassArray.includes(subclassKey);
});
for (let[subsubclassKey,lev3] of lev2){
if (subsubclassKey !== ""){
const incidentsSubSubClass = incidentsSubClass.filter(d=> (d.subsubclass || '').split(',').includes(subsubclassKey))
lev2.set(subsubclassKey,incidentsSubSubClass)
}
else{
lev1.set(subclassKey,incidentsSubClass)
}
}
}
else{
taxonomy.set(classKey,incidents)
}
}
}
return taxonomy;
}