Skip to content

Conversation

@DanTanAtAims
Copy link
Contributor

@DanTanAtAims DanTanAtAims commented Jun 24, 2025

Adds different seeding strategies interventions that can be changed the same way decision methods can be changed.

# Default strategy
ADRIA.fix_factor(dom, seeding_strategy="CAP_DENSITY")

# Allow for multiple deployment strategies
ADRIA.set_factor_bounds(dom, :seeding_strategy, ("CAP_DENSITY", "VARY_LOCATIONS"))

Possible Strategies

  • (Default) "CAP_DENSITY" - Deploy at the given number of corals across the given number of locations, however if the deployment would exceed a given density it will reduce the number of corals deployed so as not to exceed the given density.
  • "VARY_LOCATIONS" - Deploy at the number of locations that gives the closest deployment density for the given number of corals to deploy.
  • "VARY_N_SEEDED" - Change the number of corals deployed to meet the deployment density at all locations. For examples deploy 5 corals per m^2 at all considered deployment locations . If there is 100 m^2 available summed across all locations it will deploy 5000 corals.
  • "VARY_SEED_DENSITY" - Change the seeding density to deploy the given number of corals at the given number of deployment locations.

The script below runs scenarios using different strategies and the plots show what the total deployments were,.

for strat in strats
  ADRIA.fix_factor!(dom, min_iv_locations = 50.0 )
  ADRIA.fix_factor!(dom, seeding_strategy=strat)
  
  Random.seed!(1)
  local scens = ADRIA.sample_guided(dom, 2^1)
  local rs = ADRIA.run_scenarios(dom, scens, ["45"])
  
  rs.density_log
  
  local agg_density = dropdims(sum(rs.density_log[scenarios=1], dims=(:coral_id, )), dims=(:coral_id, ))
  local agg_count = dropdims(sum(rs.seed_log[scenarios=1], dims=(:coral_id, )), dims=(:coral_id, ))
  local location_counts = dropdims(sum(agg_density .> 0, dims=:locations), dims=:locations)
  local agg_density = dropdims(sum(agg_density, dims=:locations), dims=:locations) ./ location_counts
  local agg_count = dropdims(sum(agg_count, dims=:locations), dims=:locations)
  
  # ... plotting ...

end

CAP_DENSITY_results_combined
VARY_LOCATIONS_results_combined
VARY_N_SEEDED_results_combined
VARY_SEED_DENSITY_results_combined

@DanTanAtAims DanTanAtAims marked this pull request as draft June 24, 2025 23:47
Rosejoycrocker and others added 28 commits June 30, 2025 11:49
…sity

If Density cannot be accommodated for the coral volume, update the target density to the max possible for the available space
Add use of function to update number of sites/ density to accommodate coral volume
@DanTanAtAims DanTanAtAims force-pushed the add-variable-density branch from 9d521c4 to a2e37a2 Compare June 30, 2025 04:02
@DanTanAtAims DanTanAtAims marked this pull request as ready for review June 30, 2025 06:26
@ConnectedSystems
Copy link
Collaborator

Packages seem to have reverted to Julia v1.11.0

Could you update to latest in the v1.11.x series please?

The other quick comment before I start a full review is to use symbols, not strings, for the seeding strategies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants