diff --git a/datasets/raise/fft/analyze_fft_ellipses.py b/datasets/raise/fft/analyze_fft_ellipses.py index 49dd3fc..a83e444 100644 --- a/datasets/raise/fft/analyze_fft_ellipses.py +++ b/datasets/raise/fft/analyze_fft_ellipses.py @@ -11,30 +11,47 @@ class Axis(Enum): # TODO: with right color # TODO: precising somehow low or high -# TODO: limit axis based on these values INTERESTING_VALUES_OF_AXES = { - Axis.ABSCISSA: [0, 30, 60, 84], - Axis.ORDINATE: [0, 25, 40, 55], + Axis.ABSCISSA: [0, 30, 60, 84, 108, 132, 160, 179], + Axis.ORDINATE: [0, 25, 40, 55, 70, 85, 100, 117], } -for axisName, axisProfile in zip(Axis, [secondImage[height // 2, width // 2:], secondImage[height // 2:, width // 2]]): +halfHeight = height // 2 +halfWidth = width // 2 +PROFILES_OF_AXES = { + Axis.ABSCISSA: secondImage[halfHeight , halfWidth:], + Axis.ORDINATE: secondImage[halfHeight:, halfWidth ], +} + +colorsOfAxes = {} + +for axis in Axis: plt.title('Axis Fourier transform profile') plt.xlabel('Fourier transform axis') plt.ylabel('Fourier transform logarithmic intensity') height, width = secondImage.shape - plt.plot(axisProfile, label = axisName) + axisProfile = PROFILES_OF_AXES[axis] + colorsOfAxes[axis] = plt.plot(axisProfile, label = axis)[0].get_color() -''' for axis in Axis: - for interestingValueOfAxis in INTERESTING_VALUES_OF_AXES[axis]: - match axis: - case Axis.ABSCISSA: - plt.vlines(interestingValueOfAxis) - #case Axis.ORDINATE: -''' + for interestingValueOfAxisIndex, interestingValueOfAxis in enumerate(INTERESTING_VALUES_OF_AXES[axis]): + plt.axvline(interestingValueOfAxis, color = colorsOfAxes[axis], alpha = 0.3, linestyle = ':' if interestingValueOfAxisIndex % 2 == 0 else '--', label = 'Test') -#allInterestingValuesOfAxes = list(set(itertools.chain(*INTERESTING_VALUES_OF_AXES.values()))) +def flattenDictValues(dict_): + return itertools.chain(*dict_.values()) + +allInterestingValuesOfAxes = list(set(flattenDictValues(INTERESTING_VALUES_OF_AXES))) plt.xticks(list(plt.xticks()[0]) + allInterestingValuesOfAxes) +allInterestingValuesOfAxesMin = min(allInterestingValuesOfAxes) +allInterestingValuesOfAxesMax = max(allInterestingValuesOfAxes) +plt.xlim(allInterestingValuesOfAxesMin, allInterestingValuesOfAxesMax) + +INTERESTING_PROFILES_OF_AXES = {axis: PROFILES_OF_AXES[axis][allInterestingValuesOfAxesMin:allInterestingValuesOfAxesMax + 1] for axis in Axis} +allInterestingIntensitiesOfAxes = list(flattenDictValues(INTERESTING_PROFILES_OF_AXES)) +allInterestingIntensitiesOfAxesMin = min(allInterestingIntensitiesOfAxes) +allInterestingIntensitiesOfAxesMax = max(allInterestingIntensitiesOfAxes) +plt.ylim(allInterestingIntensitiesOfAxesMin, allInterestingIntensitiesOfAxesMax) + plt.legend() plt.show() \ No newline at end of file