OxIonics / ionics_fits

Small python fitting library with an emphasis on Atomic Molecular and Optical Physics
Apache License 2.0
0 stars 0 forks source link

fft offset finding fails with index error #65

Closed hartytp closed 1 year ago

hartytp commented 1 year ago
root:Terminating with exception (IndexError: index 0 is out of bounds for axis 0 with size 0)
Traceback (most recent call last):
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\artiq\master\worker_impl.py", line 588, in main
    exp_inst.analyze()
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\ndscan\experiment\entry_point.py", line 139, in analyze
    self.tlr.analyze()
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\ndscan\experiment\entry_point.py", line 362, in analyze
    annotations += a.execute(coordinates, values, self._annotation_context)
  File "C:\Users\StevenKing\Documents\scratch\ion-experiments\ionics_fragments\ndscan_extensions\analysis.py", line 374, in execute
    check_exception(e)
  File "C:\Users\StevenKing\Documents\scratch\ion-experiments\ionics_fragments\ndscan_extensions\analysis.py", line 236, in check_exception
    raise exception
  File "C:\Users\StevenKing\Documents\scratch\ion-experiments\ionics_fragments\ndscan_extensions\analysis.py", line 370, in execute
    fit = self.fitter_class(
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\ionics_fits\common.py", line 469, in __init__
    model.estimate_parameters(x, y, parameters)
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\ionics_fits\models\utils.py", line 198, in estimate_parameters
    super().estimate_parameters(x * self.__x_scale, y, model_parameters)
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\ionics_fits\models\rabi.py", line 241, in estimate_parameters
    fit = NormalFitter(x, y, model)
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\ionics_fits\common.py", line 469, in __init__
    model.estimate_parameters(x, y, parameters)
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\ionics_fits\models\sinc.py", line 156, in estimate_parameters
    model_parameters["x0"].heuristic = self.find_x_offset_fft(
  File "C:\Users\StevenKing\AppData\Local\pypoetry\Cache\virtualenvs\ion-experiments-qzYaBKtd-py3.8\lib\site-packages\ionics_fits\common.py", line 333, in find_x_offset_fft
    phi -= phi[0]
IndexError: index 0 is out of bounds for axis 0 with size 0

I think this is probably related to np.unwrap

hartytp commented 1 year ago

https://github.com/OxIonics/ionics_fits/blob/d7334cd2c8fe37aa8e0dfe2f4622f3aafee03971/ionics_fits/common.py#L331

This should be sum(keep) not len(keep)