Public
Edited
Mar 22, 2024
1 star
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
bufferSizes = [... new Set(stats_summary.map(d => d.buffer_size))]
Insert cell
speciesNames = [... new Set(stats_summary.map(d => d.species))]
Insert cell
Insert cell
statsSummaryFiltered = stats_summary.filter(item => item.lease_area === leaseAreaPick && item.buffer_size === buff)
Insert cell
Insert cell
speciesGroups = statsSummaryFiltered.reduce((acc, d) => {
if (!acc[d.species]) {
acc[d.species] = [];
}
acc[d.species].push(d);
return acc;
}, {});
Insert cell
Insert cell
maxDensityBySpecies = {
// Calculate the maximum density for each species
const maxDensityBySpecies = {};
for (const species in speciesGroups) {
maxDensityBySpecies[species] = Math.max(...speciesGroups[species].map(d => d.density));
}
return maxDensityBySpecies;
}
Insert cell
Insert cell
monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
Insert cell
scaledStatsSummary = {
//Scale the density for each entry
const scaledStatsSummary = statsSummaryFiltered.map(d => ({
...d,
scaledDensity: d.density / maxDensityBySpecies[d.species]
}));

const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
scaledStatsSummary.forEach(
item => {item.month_name = monthNames[item.month - 1];
})

scaledStatsSummary.forEach(
item => {item.species_name = item.species.replace(/_/g, ' ')}
)
return scaledStatsSummary;
}
Insert cell
// Plot 2 filter
statsSummaryFiltered2 = stats_summary.filter(item => item.lease_area === leaseAreaPick2 && item.species === speciesPick)
Insert cell
statsSummary = {
const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
const newSummary = statsSummaryFiltered2
newSummary.forEach(
item => {item.month_name = monthNames[item.month - 1];
});
newSummary.forEach(
item => {item.species_name = item.species.replace(/_/g, ' ')}
)
return newSummary;
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more