Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

a few feature requests #13

Open
gottacatchenall opened this issue Apr 2, 2021 · 5 comments
Open

a few feature requests #13

gottacatchenall opened this issue Apr 2, 2021 · 5 comments

Comments

@gottacatchenall
Copy link
Member

gottacatchenall commented Apr 2, 2021

hi everyone,

as discussed a bit in the zulip I'm working on building a set of tools within EcoJulia that will use Simulation.jl as a base. as i've started to familiarize myself with the code i've noticed a few things i'd like to add

  1. abstract measurement type for trajectories (abundance / occupancy)
  2. abstract landscape geometries, integration with SpatialGraphs.jl (as far as i can tell you can only use a grid at the moment?)
  3. integration with EcologicalNetworks.jl, define a set of consumer-resource relationships from an EN.jl metaweb
  4. integration with the new RasterDataSources.jl
  5. abstract environmental variables: at the moment, in Biodiversity/Habitats.jl, HabitatsUpdate.jl, and AbioticEnv.jl, etc. have lots of duplicate/nearly-duplicate code,
    e.g.
function TempChange(eco::AbstractEcosystem, hab::ContinuousHab, timestep::Unitful.Time)
  val = hab.change.rate
  v = uconvert(K/unit(timestep), val)
  hab.matrix .+= v * timestep
end
function RainfallChange(eco::AbstractEcosystem, hab::ContinuousHab, timestep::Unitful.Time)
  val = hab.change.rate
  v = uconvert(mm/unit(timestep), val)
  hab.matrix .+= v * timestep
end

which could be condensed if each environmental variable was a type that holds its unit.

happy to help with implementation of any/all

@claireh93
Copy link
Member

Hi @gottacatchenall, all sound like good ideas! I'd be really happy if we could integrate with the other packages you mentioned in EcoJulia. As you say, there is lots of duplicate code that could be condensed in habitats, which I can take care of, but I'm not so familiar with the inner workings of packages like EcologicalNetworks.jl etc, so perhaps we could work together on those?

@richardreeve
Copy link
Member

These all look good. I'm not completely sure what they all mean though - for instance, what would an "abstract measurement type for trajectories" look like? @claireh93 and I have also been talking about ways of dealing with 5 without any disruption (hopefully!). In any event, we probably need a project board and need to add in (at least) 5 individual issues rather than this mega-issue?

@gottacatchenall
Copy link
Member Author

sounds good --- i can better define each of these items in individual issues/PRs, perhaps we should rename and move the repo to ecojulia fist to take advantage of their testing boilerplate before though?

claireh93 pushed a commit that referenced this issue Apr 16, 2021
* Add save and load capabilities to EpiSystem

* Strong typing on path::String

I'm a fan of strong typing even though it's not necessary in Julia. Opted to make save strong typed like load, rather than both untyped like save.

SCRC-14

Amending to make travis run again

Co-authored-by: Eric Perim <eric.perim@invenialabs.co.uk>
@claireh93
Copy link
Member

Hi @gottacatchenall, now we have a project board, would you mind defining these as individual issues? Then we can get cracking on them all!

@gottacatchenall
Copy link
Member Author

sounds good!

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

No branches or pull requests

3 participants