inbo / camtraptor

Camtraptor is an R package to read, explore and visualize Camera Trap Data Packages (Camtrap DP)
https://inbo.github.io/camtraptor/
MIT License
10 stars 2 forks source link

How to deal with media-based observations in exploratory functions #332

Open damianooldoni opened 1 month ago

damianooldoni commented 1 month ago

All exploratory functions we wrote have been written when camtrapDP was dealing with event-based observations only.

Now that we can have both media-based and event-based observations (camtrap DP v1.0), the question arises about how to deal with them while applying observations related exploratory functions (get_n_obs(), get_n_individuals(), get_rai(), ...).

Let's check each of three possible situations: event-based obs only, media-based only and mixed event and media based obs.

Event-based obs only

Everything as usual. No messages returned.

Media-based obs only

Need to throw a warning in this case? Probably yes. Because we can calculate a RAI based on number of media-based observations, but does it make any sense?

Both media-based and event-based obs

My idea is to throw an error in this situation as I do not see any use case where those observations need to be considered together.

(super)users @jimcasaer, @MartijnUH, codevelopers @peterdesmet, @sannegovaert and @PietrH: any thought?

peterdesmet commented 1 week ago

I don't know how to handle media-based observations as I don't know the use cases. What I do know is that media-based observations should be retained when reading data, so they are available in functions that need them (e.g. density estimation).

I would filter out media-based observations in most (all?) camtraptor functions to replicate old behaviour. If use cases come up for users with media-based observations, we can either 1) add it as a non-default option or 2) provide a function to create event-based observations out of media-based observations.

jimcasaer commented 1 week ago

I would suggest to provide a function to create event-based observations out of media-based observations and allow the standard functions to work always default on event-based observation (after conversion of media-based observations whenever necessary)