Source code for ska_sdp_spectral_line_imaging.diagnosis.utils

import dask
import matplotlib as mpl
import numpy as np
import pandas as pd

mpl.use("Agg")
from matplotlib import pyplot as plt  # noqa: E402


@dask.delayed
def create_plot(*data, title, xlabel, ylabel, label, path):
    plt.rcParams["figure.figsize"] = [7.00, 3.50]
    plt.rcParams["figure.autolayout"] = True
    fig, ax = plt.subplots()
    ax.plot(*data, ".", label=label)
    ax.set_title(title)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    ax.legend(bbox_to_anchor=(1.04, 1), loc="upper left")
    fig.savefig(path, bbox_inches="tight")
    plt.close(fig)


[docs] def amp_vs_channel_plot(visibilities, title, path, label=""): vis_avg = visibilities.mean(dim=["time", "baseline_id"]) return create_plot( np.abs(vis_avg), title=title, xlabel="channel", ylabel="amp", label=label, path=path, )
@dask.delayed def store_spectral_csv(frequency, vis, path): pd.DataFrame( { "channel": frequency, "visibility": vis, "absolute visibility": np.abs(vis), } ).to_csv(path)