Currently our implementation of OIData and the Models in drpangloss assume a single wavelength, which is true for AMI or other scenarios in which fringes are recorded at a single wavelength with a filter. We would like to also enable support for multiwavelength fringes, as is common in optical long baseline interferometry e.g with CHARA and VLTI, ideally without breaking compatibility with AMI data.
I've added some tests to check if we are dealing with a single wavelength or multiple wavelengths at init time and vmap accordingly--because this is done at init time everything remains jit and grad-able. All of the other functions such as in grid_fit.py and plotting.py still work as shown in the pionier.ipynb file.
I think there's still some additional work to be done, like comparing the results to CANDID and making sure it works with different instruments on VLTI/CHARA, but I think both these things can and should be done with the AMI data as well and hence aren't specific to this change. Would like to get this implemented before we make any other major refactors to the code like in https://github.com/benjaminpope/drpangloss/issues/20
Currently our implementation of OIData and the Models in drpangloss assume a single wavelength, which is true for AMI or other scenarios in which fringes are recorded at a single wavelength with a filter. We would like to also enable support for multiwavelength fringes, as is common in optical long baseline interferometry e.g with CHARA and VLTI, ideally without breaking compatibility with AMI data.
I've added some tests to check if we are dealing with a single wavelength or multiple wavelengths at init time and vmap accordingly--because this is done at init time everything remains jit and grad-able. All of the other functions such as in grid_fit.py and plotting.py still work as shown in the pionier.ipynb file.
I think there's still some additional work to be done, like comparing the results to CANDID and making sure it works with different instruments on VLTI/CHARA, but I think both these things can and should be done with the AMI data as well and hence aren't specific to this change. Would like to get this implemented before we make any other major refactors to the code like in https://github.com/benjaminpope/drpangloss/issues/20