danforthcenter / plantcv

Plant phenotyping with image analysis
Mozilla Public License 2.0
667 stars 265 forks source link

Hyperspectral submodule #203

Closed nfahlgren closed 1 year ago

nfahlgren commented 6 years ago

Description

@maliagehan has been working on some hyperspectral data-related functions for PlantCV. We discussed the possibility of making these tools optional since there may end up being dependencies that users not working with hyperspectral data may not want/need to install. Based on a discussion in the TERRA-REF project, we are proposing to develop the hyperspectral submodule (and possibly other submodules) as a separate GitHub repository (https://github.com/danforthcenter/plantcv-hyperspectral). We would design it and the main repository in such a way that you could install PlantCV by itself as is done now and optionally install the hyperspectral module into the PlantCV package namespace so that it would function like it's part of the package if it's installed. This way it's optional but we can still do continuous integration testing and everything in the linked repository. We could use this framework for other submodules that could/should be optional.

Details

We will need to do some testing to figure out the best way to structure the submodule. We may need to refactor the main PlantCV repository somewhat to achieve the right structure.

Completion Criteria

This is a discussion/proposal, specific issues should be opened for implementing the various components of this plan.

nfahlgren commented 5 years ago

I want to briefly summarize a team meeting with @maliagehan, @HaleySchuhl and @josectovar.

Based on some testing we did, it looks like the simplest approach will be to read hyperspectral images directly with NumPy. This has the advantage of keeping the images in a format that is more easily compatible with existing PlantCV methods and does not increase dependency burden.

Given that, I propose that we actually put the hyperspectral submodule directly in the PlantCV main repository instead of the planned add-on package plan. It's going to be easier to work with the two packages if they are together and we can avoid duplicating CI and documentation infrastructure. We can always split them later if we decide we need to.

Thoughts?

HaleySchuhl commented 5 years ago

Summary of today's team meeting:

HaleySchuhl commented 5 years ago

Hyperspectral function wish list:

I've been adding unit testing as I go but will add documentation while preparing the branch to actually get merged into master.