Click here to download this notebook.

Spectral Analysis - Nadir

[2]:
from casys.readers import CLSTableReader

from casys import CasysPlot, DateHandler, Field, NadirData, PlotParams

NadirData.enable_loginfo()

Reader and container definition

[3]:
start = DateHandler.from_orf(orf="C_TP", cycle_nb=11, pass_nb=1, pos="first")
end = DateHandler.from_orf(orf="C_TP", cycle_nb=13, pass_nb=25, pos="last")

reader = CLSTableReader(
    name="TABLE_L2P_DT_OCEAN_TP",
    date_start=start,
    date_end=end,
    orf="C_TP",
)
[4]:
ad = NadirData(source=reader)

Definition of the spectral analysis diagnostic

Using the add_spectral_analysis method:

[5]:
ad.add_spectral_analysis(
    name="SLA Spectral",
    field=Field(name="SLA", source="IIF(FLAG_VAL.ALTI==0,SEA_LEVEL_ANOMALY,DV)"),
    segment_length=1024,
    holes_max_length=64,
    res_segments=True,
    res_individual_psd=True,
    spectral_conf={
        "Periodogram, Tukey (alpha=0.2)": {
            "spectral_type": "periodogram",
            "detrend": "linear",
            # using default window Tukey with alpha=0.2
        },
        "Periodogram, Blackmanharris": {
            "spectral_type": "periodogram",
            "detrend": "linear",
            "window": "blackmanharris",
        },
        "Welch, Tukey (alpha=0.2)": {
            "spectral_type": "welch",
            "detrend": "linear",
            # using default window Tukey with alpha=0.2
        },
    },
)

Computation

[6]:
ad.compute()
2025-05-14 10:56:53 INFO    Reading ['time', 'LONGITUDE', 'LATITUDE', 'SLA']
2025-05-14 10:56:56 INFO    Computing diagnostics ['SLA Spectral']
2025-05-14 10:57:03 INFO    Computing done.

Plotting

PSD

[7]:
plot_psd_1 = CasysPlot(
    data=ad,
    data_name="SLA Spectral",
    plot="PSD",
    plot_params=PlotParams(grid=True),
    spectral_name="Periodogram, Tukey (alpha=0.2)",
    second_axis=True,
)
plot_psd_1.add_stat_bar()

plot_psd_2 = CasysPlot(
    data=ad,
    data_name="SLA Spectral",
    plot="PSD",
    spectral_name="Periodogram, Blackmanharris",
)
plot_psd_2.add_stat_bar()

plot_psd_3 = CasysPlot(
    data=ad,
    data_name="SLA Spectral",
    plot="PSD",
    spectral_name="Welch, Tukey (alpha=0.2)",
)
plot_psd_3.add_stat_bar()

plot_psd_1.add_plot(plot_psd_2)
plot_psd_1.add_plot(plot_psd_3)
plot_psd_1.show()
[7]:
../_images/examples_example_basic_Spectral_Analysis_Nadir_13_0.png
[8]:
plot_psd_1 = CasysPlot(
    data=ad,
    data_name="SLA Spectral",
    plot="PSD",
    spectral_name="Periodogram, Tukey (alpha=0.2)",
    plot_params=PlotParams(
        grid=True,
        marker_style="o",
        marker_size=3,
        color="red",
    ),
    second_axis=True,
)
plot_psd_1.add_stat_bar()

plot_psd_2 = CasysPlot(
    data=ad,
    data_name="SLA Spectral",
    plot="PSD",
    spectral_name="Periodogram, Tukey (alpha=0.2)",
    individual=True,
    n_bins_psd=75,
)

plot_psd_1.add_plot(plot_psd_2)
plot_psd_1.show()
[8]:
../_images/examples_example_basic_Spectral_Analysis_Nadir_14_0.png

SEGMENTS

[9]:
plot_segments = CasysPlot(
    data=ad,
    data_name="SLA Spectral",
    plot="SEGMENTS",
    plot_params=PlotParams(grid=True),
)
plot_segments.show()
[9]:
../_images/examples_example_basic_Spectral_Analysis_Nadir_16_0.png

To learn more about spectral analysis diagnostic definition, please visit this documentation page.