lincc-frameworks / tdastro

MIT License
4 stars 0 forks source link

Create single "Passband" class #61

Closed OliviaLynn closed 2 months ago

OliviaLynn commented 3 months ago
          I would vote for implementing a class for a single band, `Passband`, instead. Collection of passbands could also be useful, but I don see how we are going to use it practically.

1) For each observation we need a single passband only, not all of them. It sounds reasonable to me to pass passband object per observation. We also could pass band name, but I see some potential issues with that in the future, 2) we will need a more flexible interface for passbands which will be able to change transmission with airmass for each individual observation (I think it is what Andy C asked us during LINCC UP). That means that passband name ID will not be enough, because transmission will be parameterized by both filter and airmass value. 3) It would be harder co combine surveys if we have a single entry point for all passbands

_Originally posted by @hombit in https://github.com/lincc-frameworks/tdastro/pull/52#discussion_r1698380338_

OliviaLynn commented 3 months ago

While dealing with above interface changes, address the following as well:

A consideration for a future PR. I think you might be able to simplify the user's workflow a bit if you always normalize the table as soon as it is loaded (instead of having the user manually call calculate_normalized_system_response_tables().

and

Another thought about interface for future - I think we would like to have something like

passbands = Passbands()
sourcemodel.bandflux(passbands,times)

instead of calling the method from passbands.

OliviaLynn commented 2 months ago

Screenshot 2024-08-23 at 1 27 36 PM