From 690a720e6e45656c04f4782fcaaa824af36a7da2 Mon Sep 17 00:00:00 2001 From: jtgasparik Date: Wed, 22 Jul 2026 15:11:28 -0400 Subject: [PATCH 1/4] added test for plotting scattering cross section function --- pysp2/util/normalized_derivative_method.py | 211 ++++++++++++++++++++- tests/test_vis.py | 66 +++++++ 2 files changed, 276 insertions(+), 1 deletion(-) diff --git a/pysp2/util/normalized_derivative_method.py b/pysp2/util/normalized_derivative_method.py index b2b4b66..e913335 100644 --- a/pysp2/util/normalized_derivative_method.py +++ b/pysp2/util/normalized_derivative_method.py @@ -1233,4 +1233,213 @@ def plot_incident_irradiance( pad=20, ) - return ax \ No newline at end of file + return ax + +def plot_scattering_cross_section( + S: Union[xr.DataArray, xr.Dataset], + sigma_ds: xr.Dataset, + record_no: int, + *, + chn: int = 0, + ch: Optional[str] = None, + event_dim: str = "event_index", + S_sample_dim: Optional[str] = None, + calibration_constant: float = 1.0, + h: float = 0.4, + time_units: str = "us", + show_fit_window: bool = True, +) -> plt.Figure: + """ + Plot the differential scattering cross section (scaled by calibration_constant) + computed from the Moteki & Kondo tau/sigma result for one event. + + The cross section is computed as: + + ΔC_sca(t) = calibration_constant * S(t) / (I(t)/I0) + + where I(t)/I0 is obtained from compute_normalized_incident_irradiance_moteki_kondo(...). + + Parameters + ---------- + S : xr.DataArray or xr.Dataset + Scattering signal. + sigma_ds : xr.Dataset + Output from the Moteki & Kondo sigma/tau workflow. Must contain: + - sigma_hat + - tau_best + and ideally fit_start / fit_stop. + record_no : int + Event index to plot. + chn : int, default 0 + Channel number (0 or 4). + ch : str, optional + Variable name to select when S is a Dataset. + event_dim : str, default "event_index" + Event dimension name. + S_sample_dim : str, optional + Sample dimension in S. + calibration_constant : float, default 1.0 + Scale factor applied to S / (I/I0). + h : float, default 0.4e-6 + Sampling interval in seconds. + time_units : {"us", "s"}, default "us" + Units for the x-axis. + show_fit_window : bool, default True + Shade the fitted window if fit_start / fit_stop are present. + + Returns + ------- + matplotlib.figure.Figure + The figure object. + """ + if chn not in [0, 4]: + raise ValueError("Channel number must be 0 or 4.") + + ch_name = f"Data_ch{chn}" + + # Convert S to DataArray if needed. + if isinstance(S, xr.Dataset): + if ch is not None: + if ch not in S.data_vars: + raise ValueError(f"{ch!r} not found in S.data_vars={list(S.data_vars)}") + S_da = S[ch] + else: + if ch_name in S.data_vars: + S_da = S[ch_name] + elif len(S.data_vars) == 1: + S_da = S[next(iter(S.data_vars))] + else: + raise ValueError( + f"S is a Dataset with multiple variables. Provide ch. " + f"Available: {list(S.data_vars)}" + ) + elif isinstance(S, xr.DataArray): + S_da = S + else: + raise TypeError("S must be an xarray DataArray or Dataset.") + + if event_dim not in S_da.dims: + raise ValueError(f"{event_dim!r} not found in S.dims={S_da.dims}") + + # Infer sample dimension if needed. + if S_sample_dim is None: + non_event_dims = [d for d in S_da.dims if d != event_dim] + if len(non_event_dims) != 1: + raise ValueError( + f"Could not infer S sample dim. Non-event dims in S: {non_event_dims}" + ) + S_sample_dim = non_event_dims[0] + + # Validate event index. + if record_no < 0 or record_no >= S_da.sizes[event_dim]: + raise ValueError( + f"record_no must be in [0, {S_da.sizes[event_dim] - 1}], got {record_no}" + ) + + # Select the requested event. + s_event = np.asarray( + S_da.rename({S_sample_dim: "sample"}) + .sel({event_dim: record_no}) + .values, + dtype=float, + ) + + n_samples = s_event.size + if n_samples == 0: + raise ValueError("Selected event has no samples.") + + # Use the same bins convention as plot_incident_irradiance. + t = np.arange(n_samples, dtype=float) * h + if time_units == "us": + t_plot = t + x_label = r"Time ($\rm \mu$s)" + elif time_units == "s": + t_plot = t * 1e-6 + x_label = r"Time (s)" + else: + raise ValueError("time_units must be 'us' or 's'.") + + if time_units == "us": + t_vals_for_irradiance = t_plot * 1e-6 + else: + t_vals_for_irradiance = t_plot + + # Required sigma/tau outputs. + if "tau_best" not in sigma_ds: + raise ValueError("sigma_ds must contain 'tau_best'.") + if "sigma_hat" not in sigma_ds: + raise ValueError("sigma_ds must contain 'sigma_hat'.") + + tau_best = float(np.asarray(sigma_ds["tau_best"].values)) + sigma_hat = float(np.asarray(sigma_ds["sigma_hat"].values)) + + if not np.isfinite(tau_best) or not np.isfinite(sigma_hat) or sigma_hat <= 0: + raise ValueError( + f"Invalid tau_best/sigma_hat: tau_best={tau_best}, sigma_hat={sigma_hat}" + ) + + # Compute normalized incident irradiance using the existing function. + i_norm_da = compute_normalized_incident_irradiance_moteki_kondo( + sigma_out=sigma_ds, + t_vals=t_vals_for_irradiance, + sample_dim="sample", + ) + + i_norm = np.asarray(i_norm_da.values, dtype=float) + + if i_norm.shape != s_event.shape: + raise ValueError( + f"Incident irradiance length {i_norm.shape} does not match " + f"signal length {s_event.shape}." + ) + + # Differential scattering cross section, scaled. + with np.errstate(divide="ignore", invalid="ignore"): + delta_csca = calibration_constant * (s_event / i_norm) + delta_csca[~np.isfinite(delta_csca)] = np.nan + + plt.rcParams["font.family"] = "Times New Roman" + plt.rcParams["mathtext.fontset"] = "stix" + + fig, ax = plt.subplots(figsize=(10, 5)) + + ax.plot( + t_plot, + delta_csca, + color="black", + linewidth=1.8, + label=r"$\Delta C_{\mathrm{sca}}(t)$", + ) + + ax.axvline( + x=(tau_best) if time_units == "us" else tau_best*1e6, + color="red", + linestyle="--", + linewidth=1.5, + label=r"$\tau_{\mathrm{best}}$", + ) + + if show_fit_window and "fit_start" in sigma_ds and "fit_stop" in sigma_ds: + fit_start = int(np.asarray(sigma_ds["fit_start"].values)) + fit_stop = int(np.asarray(sigma_ds["fit_stop"].values)) + fit_start = max(0, min(fit_start, n_samples - 1)) + fit_stop = max(fit_start + 1, min(fit_stop, n_samples)) + + ax.axvspan( + t_plot[fit_start], + t_plot[fit_stop - 1], + color="gray", + alpha=0.15, + label="Fit window", + ) + + ax.set_xlabel(x_label) + ax.set_ylabel(r"Scaled $\Delta C_{\mathrm{sca}}$ (a.u.)") + ax.grid(True, alpha=0.3) + ax.legend(loc="best", fontsize=10) + ax.set_title( + f"Differential Scattering Cross Section - Channel {chn} Record {record_no}", + pad=14, + ) + + return fig \ No newline at end of file diff --git a/tests/test_vis.py b/tests/test_vis.py index 4b7e98c..5dda6af 100644 --- a/tests/test_vis.py +++ b/tests/test_vis.py @@ -9,6 +9,7 @@ from pysp2.util.normalized_derivative_method import MLEConfig, mle_tau_moteki_kondo, compute_d2_moteki_kondo from pysp2.util.normalized_derivative_method import compute_sigma_moteki_kondo from pysp2.util.normalized_derivative_method import plot_incident_irradiance +from pysp2.util.normalized_derivative_method import plot_scattering_cross_section from pysp2.vis.plot_wave import plot_wave matplotlib.use("Agg") @@ -103,4 +104,69 @@ def test_plot_incident_irradiance(): fig = ax.figure + return fig + +@pytest.mark.mpl_image_compare(tolerance=10) +def test_plot_scattering_cross_section(): + + my_binary = pysp2.util.gaussian_fit(my_sp2b, my_ini, parallel=False, baseline_to_zero=True) + dSdt = pysp2.util.central_difference(my_binary, normalize=True, baseline_to_zero=True) + print("dSdt dimensions:", dSdt.dims) + + cfg = MLEConfig( + h=0.4, # example: 0.4 microseconds + sigma_bar= 18.5*0.4, # example; use your measured average width + delta_sigma=1.2*0.4, # example; use your measured width std dev + A1=0.37*2.44, + A2=(1.6e-2)*2.44**(1/2), + A3=6.2e-4, +) + + tau = mle_tau_moteki_kondo( + S=my_binary, + norm_deriv=dSdt, + p=13, + ch="Data_ch0", + event_index=event, + min_start=15, + width_metric="fwtm", + config=cfg, + ) + + d2 = compute_d2_moteki_kondo( + S=my_binary, + norm_deriv=dSdt, + tau_hat=tau, + p=13, + ch="Data_ch0", + event_index=event, + min_start=15, + width_metric="fwtm", + config=cfg, + ) + + sigma_ds = compute_sigma_moteki_kondo( + S=my_binary, + norm_deriv=dSdt, + tau_hat=tau, + d2=d2, + p=13, + ch="Data_ch0", + event_index=event, + min_start=15, + width_metric="fwtm", + config=cfg, + ) + + # Test the plotting function for channel 0 + fig = plot_scattering_cross_section( + S=my_binary, + sigma_ds=sigma_ds, + record_no=event, + chn=0, + ch="Data_ch0", + h=0.4, + time_units="us" + ) + return fig \ No newline at end of file From 25b38cc09a186942157d8bf08e821803a4efcb7b Mon Sep 17 00:00:00 2001 From: jtgasparik Date: Thu, 23 Jul 2026 12:00:16 -0400 Subject: [PATCH 2/4] modifications to test --- pysp2/util/normalized_derivative_method.py | 14 ++++++++------ .../test_plot_scattering_cross_section.png | Bin 0 -> 48062 bytes 2 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 tests/baseline/test_plot_scattering_cross_section.png diff --git a/pysp2/util/normalized_derivative_method.py b/pysp2/util/normalized_derivative_method.py index e913335..56abc85 100644 --- a/pysp2/util/normalized_derivative_method.py +++ b/pysp2/util/normalized_derivative_method.py @@ -1244,7 +1244,7 @@ def plot_scattering_cross_section( ch: Optional[str] = None, event_dim: str = "event_index", S_sample_dim: Optional[str] = None, - calibration_constant: float = 1.0, + calibration_constant: float = (1.22e-17/2.44), # (m²/2.44 mV) h: float = 0.4, time_units: str = "us", show_fit_window: bool = True, @@ -1255,7 +1255,7 @@ def plot_scattering_cross_section( The cross section is computed as: - ΔC_sca(t) = calibration_constant * S(t) / (I(t)/I0) + ΔC_sca(t) = calibration_constant * S(t) / I(t) where I(t)/I0 is obtained from compute_normalized_incident_irradiance_moteki_kondo(...). @@ -1278,8 +1278,9 @@ def plot_scattering_cross_section( Event dimension name. S_sample_dim : str, optional Sample dimension in S. - calibration_constant : float, default 1.0 + calibration_constant : float, default 1.22e-17 # (m²/2.44 mV) Scale factor applied to S / (I/I0). + Default value from Moteki & Kondo (2008). h : float, default 0.4e-6 Sampling interval in seconds. time_units : {"us", "s"}, default "us" @@ -1354,7 +1355,7 @@ def plot_scattering_cross_section( t_plot = t x_label = r"Time ($\rm \mu$s)" elif time_units == "s": - t_plot = t * 1e-6 + t_plot = t * 1e6 x_label = r"Time (s)" else: raise ValueError("time_units must be 'us' or 's'.") @@ -1362,7 +1363,7 @@ def plot_scattering_cross_section( if time_units == "us": t_vals_for_irradiance = t_plot * 1e-6 else: - t_vals_for_irradiance = t_plot + t_vals_for_irradiance = t_plot # Required sigma/tau outputs. if "tau_best" not in sigma_ds: @@ -1377,7 +1378,7 @@ def plot_scattering_cross_section( raise ValueError( f"Invalid tau_best/sigma_hat: tau_best={tau_best}, sigma_hat={sigma_hat}" ) - + # Compute normalized incident irradiance using the existing function. i_norm_da = compute_normalized_incident_irradiance_moteki_kondo( sigma_out=sigma_ds, @@ -1436,6 +1437,7 @@ def plot_scattering_cross_section( ax.set_xlabel(x_label) ax.set_ylabel(r"Scaled $\Delta C_{\mathrm{sca}}$ (a.u.)") ax.grid(True, alpha=0.3) + ax.set_xlim(t_plot[10], t_plot[-30]) ax.legend(loc="best", fontsize=10) ax.set_title( f"Differential Scattering Cross Section - Channel {chn} Record {record_no}", diff --git a/tests/baseline/test_plot_scattering_cross_section.png b/tests/baseline/test_plot_scattering_cross_section.png new file mode 100644 index 0000000000000000000000000000000000000000..40f80f49f5c4925b9c74c1b1c35b8303d674c4f5 GIT binary patch literal 48062 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

?q3vF zYMpQ-Z%&i*TrINO6EoJ3K$~Hc^8iSD!@a!B z6r27Zn=nu`2_NA+frni(y+vsMAyBQQ5d$iyDXjr5W76VZ%g6kDfVnvohXrwJHdIg^ zgkGY%R`56M>w2+!cGRFj%H+wDCEhTB-?h1&p0m6%iN3OmFyI`CU6E~} zS%ipVWKekcC|+q(v?e*@^>VG{%wcLev+tVPfa;vNMeW+PljSLIm-oZ_40e7X^7ZYT z+f_t%eYn?s;HFy<`G_{=KqFFk>jb6@4GEdq=eKLs=dS1gREAMZ+3mJrLgA8|SSRe} z_wx8kSqUGr3Q_!k4E2v-3{*G0GG2A($F0c7cV1F$KEY{#*2mT3EyUKp&Nv0$>AUOR z4G=a{mPgrsd2wd`ILznpWUfsbqK?&G|MNgkzb`}`I2Jd2_?zCi=+S{D{R zd;Lps!qio5AgB}Pw}9vMplVQ-7iA8I^|bW6cUf8alH>7#d;<5RuSOd2fkAmIDi1vWeLjXER2wRVgLWh9_NiCg^rix>N_JK`?id*yQV-;X}J&3#1zetqVt z?VI&O0upi@*uTamu^K*35gwNLyGQPGJo5xTh%B^ae$QXBJ^a@K6V&gvKRe$E z1j*p@hJmB}Gdq4%kFZ+t;IhT?kbES3-l73{Gj2~a(V5Zl_0}0;;cPo|rk)6ba~6*Q>_Ez3#i(^O zF-6OlsoM44FT4^4{wQf6yT+;X7y--jE+Wv5&F%FnMy=pTf7lr}I5CU=yd8|9; zm0LI~ic|tc7hjU{BHMaQ(cG{oZM$6`+R!uXFD3G>4j;Dp=!6=2Gr3tv4gr?t4Lpj-_uKulK8S#`m`Qr}Shv zL}V!0Ug*E4|B7v3U46RT>&_{e?pZ*Ek*H&KP(A6w+)W?I*7Mo=aXJ&Hj^5X@Q^gUK3IT zHr1ED_c}hI11D-p>vey{c`O}J`E4nLjI4;EcYBQW)tkuY`;6*%H=IvpF~Ax3{wCut z%|n-#S4Z`s7MWM+SYT}DuaAl?x)eY&G>)Um>9vSF$&Pg@!Yfy2o(keV0QT1V{75Dyny^d4P*7l*gI<+`w@P=kxocrvckO^oX;l2iOQe)U9_vT>mw}H4J zu{>jV)z7-{vtRx`N)T?~!`So`6sP=GOMq%Wj3ij|I66_^E7|0`JpM_{S-f4-P%mQ? zB~8|=J0twJH)+$Rcw2__>ztEr%7sjqdT=G8m_#~zEG$`2^rv}n{QhoFzB1MgXT#e}1e7N3s$KO4`etM;>a*#w>RVVw+9P1|2#o@YmQ_`|o~yayeA=~TDA z)qUHuhYNcC5plz@cs$Gq1{sM9FJ!690tL92`u+Q7Ek2$3PZ#vt2|F+Yt^9~T)?_d4 zBO@^+X=;0kUhFR%f38dCx*VYsThEVt-a$`q4G+~Nf45r=Spg-Fi2=!7_1F#7eVJCU z*OuM8??GVUaDuM~NkAXgotZB!OyUJNGchJ=SN;6Z%Tmba=xG-HIe z^%QuG#DGM=m3-ZGP?d|Yth&LsmC0{Vk4mx1Vf^fqHwVDQ)}Pe#B=!(o8@ASqrp* z*xj%42{$Bc9nvb0P{F^{rw3&V7P)g0AEXqV-pvWHchtc+XAQd#X zHq3n{h>qR*jT<$nMBbX2ounxNN!Z9U(dJ+4FEE)D*T<=w>#!4k7es)?aKj0JchLQ{ z3mN}(O&RdDV?jZ|x^(}~hX32;PAgAA@VAck?hI52#rg8b2|vCUdoRtH=Jv|XtVE@^ zt*>6i=vk+6BizWb{P1X^J&Y>#t0W%_5U=piJxzax@Z9B;Rs_$6jT*U33mk~VQ^FT@ zf|9wS_%g)Ioj_GhEVyRIRA0TC=Ce-QeR^{s@HA}{Q~$bRC2^7VL|kv`uRm~g`ow>p zNsAUGYKZ>gUo-u@@qxH8N~ICMug#qehI;>9O(WC>G6m$q$vXzkBHcoO#E zRjTH>sJ=jqL-`BOZ6t`bZq&GO0b(I~$*VbwVJ+W=PwW0_>%{lv8ByabEaIlp^ZymI zv^}MK&20Jt+R1g^-wW+&`VtB(;=%^Z-teK}xB0+{mTR7G8+yx8FS`Zr+#^tCMQ<_sr|qG@v@PRrG`2ZuY$_{agOP z%6;gr6!v0liY>mf%W2QbZB&w34@-~!1n!vON6`GRRq5HQuLPh}#QHRUDuaMiC&#&W zTNGEa?tbsE8cUXG-tJYm&g!87E=}*P^-kv@o%?g#q59MuuMUPy7s=21gllr3Fq`H4 z$L8#K{@YJ9slcU0Zk^5CA*U@sAazBUNqZU&eNtF z+K1J6NqP zE!W*i`3akAMV|u%YQ3^-EG7Osv$aLrraA)(tYZL_Z~vK_YEX&CLI_FTYW(`PN7U1u)i&@=_qaHS>0`G zW}cfO;(nNhIiWTKuFW}8J znZHalu=)90wxD8)@ci3YVD(V+L3aa|4Lt*fxw`~w4PxzrDpt$6IE@x8ORvs`o};aJK6qym(X zI3fP2$YOAw?%dSsHh|fu z%3j3Nab;;E(GP|~&>2e;Qn=~|v+7rFj=_cCkT!d}O&%3nwN*=-;r{U9!`Xr$A$q;7c>^LOsD8l!48e6f^9AYCib_u!#JvY`kk@6h?%3MIZX z@=ixdmH#TudCUE|jnl{b_BQI%{71QWW#z&c;})SwX9pfN4@eqJKP)m?n#NoPS)w^L zFfed9H)S$qDa^ftoCdRsyifw*RgXHogRkFB*%xZ+H3GbjDt8XFoJ^1W-BB-_&p0>5 zl+|?LWDJ_pm#huH{0f-C>-)zHpt?R?Le)(}lQAz?j3jyEbk-}CO}^5=KZk-horls>(ly6pz6 zx(;03F5qKE2LL~_u zJY@}rbssnpuRKTb1`_=G%U9rN4e;I);i;N(Ak{Y08B~ic0g0{}#)J4tTuDwc_QY%G zJ}1kie-x9$`%!VUZq6yqn>9PMdf3M5(Qn77S5BH=zJ5)Q9Nrijmux=i!&X0V8Aoby zDQF37q2Q?*_TKmSXA@~r%oX?thY8spZ3~IP>z1C&0f~H%4v%HHc+1IT*QU>(-KE{4 zhq(@JGR@F4_87)*|z9dZL}=uQ0RL;T{XiGSa2iP!QE2nhivfzG!A)*Gl> zN9LUTN-?f)>-73_zv8%1JwMiLhoR>^?^mwja#-H393NRe{;?m6|w0;f_jgVLAgkJ zxmbMVE9!;L1ftiQ`xWiwvpp@)udqC@Gi*})s{UR*m5{bY=u~`xMDLBU5dlJ-}CB94;r`={GYCXrW?C-5hzvd35AaY3ur5#Eg zTLAxA0s3^Lq(im8nqHi3QKKv^)fHSt@(7ll2exU{XfPScEptgNKHYMYA^;TwrgiU% zt?KsPG;ey_0Rtj%;|u2iz(!6Wy*Gyo1;eMePA3~&$fcoTCz5f%l^c zh~7{A?3V-hr?D~KY20*Zw7n1Bw@2z1NpOvt<=21-8+3(^Q64ijo6_6VYVGdBKZ*}L zUkIv2nF&`GJ~N>Zd*|iFN2Zi^t{TzXcJ9254}&<1LR`+LsExT&8EcvO z;>8|rE7u*$eUX74%!ZE_&C4v45)-@9s-$;ITz^D8sqyclnx@wsqN!f1RzJ5Bl7M@sbe@SqWsHlLXUh68AgRY;^DcQT z2)|0DKy-EsFXX?h=k*jw6Ooj9`m2SU#VGwIzw$PoJ=@cE+_;#wbBSruUd}-rdMDH$!`UyFU9WFepEGvBVj4If1_Uz!TTZbZpjj)fN z?sRTSsU4MrCBmB0IC}F20ZA^?Mly|n4+KYjdiq2%AN6TzKIs7wZOS>j%dN9N3~g}Y z+s=$jcTRXMGTGHB<=OJsERTMe%uZBY#ZIS%dz-g;l_OqStXNJ%(Fbzy7=40@GIY@lv{jyIFKU zh!8{J0wmgZ#=Ix~NO^|}8%h4G!O%)8XXgOjT9YI`!)_ za`&Tv%YWA)UR_-sbLzazkt<)FW=kro&3DbeoHP?0+~LfV6Z2!@%1zNrrbJJSzH|Tn zjX7st^&OG@;a!KYqm>&xj(4{CyyVsNuXpUDGYh>xzGLzO&S(uIg&CaN}b z6I$=3*q@RcdU3LYLt6me1KjM4vd?edE`ar#pLX_8WTb$g{EzYrcV67HGMFQ0p4UMw zsPO$307P57#_a+zNUG%^t=X~3=^k%By&7_-W3f?u3o*mD`KGwWj!lezC}g6 zoI?>!_2U~KU-_cww<{llDv!P>e^uP2vSrLOFkx9BMYwVOI)8<)^kul+J#y73nZe}W zWS3@a)_u^+VDJ3FKVI}vzq(mx?>JZI+rSQtaC+zr@!CGGt2YwrKIISW>(Lx@Jz;yJ zv|M|}s$uEFz0F)C0(I^Bz~gYgyq-BID#+Ld882ycl#MB^06%6Oi0)E@W#UsQ_ii3h zUzE18e1~=RFFg$d=Kg738WIx1;>VbR<~2T>I+rz{Uea7D2S_&t?B@2N(MV$(Bc*q_ zUB+R|QdkyvOjl2DaAN@-IkhLt%3S3VG*6`=_hwS-cR5M8WH0w^q(s=6yxQRuu@B0) zuwbGNRQ-@&axYuoqINLpZZonmns%vYPEHO+FwZ?!#mGg0jt2;2S@oy&px8-rD*0pP zLnm>Rundy>Ca&jX-X`vCNWrAsgN*Z-&u4lT9*-#!umd1uHY9T-TA{=f)jCPdzWt_C z!wjQ<&SB@i!AHmp9}|}aNC;)P7QdaRECqHH}Vm1)M*PSfMI^Ak%zpu#>ryqZ+n?D;I+@YYA z>ynn76q>9P@qQbo-lKJAis(=a*r-R8an!9d;=g81C0 zXN~vrDC2mP3+q+$@3a9Oxy|iNO?S}ZG}h6%SF4SeL*H$m#fM2Yx`Zv`dnPzvkcqF+ z*3UZu1xk6>mVSOeL$DFr!~!s%6A9TvKRko`CD-G3Y+o{4bKcY{UgJfaJexzks}nfj z%kL3q+&5fI*t&jc4aSoSo$}~Jtu~_Klxq>trQaKMQ>)8)W()!t(=orZJM?bf#c|Vn zx$ijthaRB9UMV5CJLLLWq&m?p#vY4BZQ3-TT}Fg~mYYD2*d3%TA6s|Sh!J%uuwKIZ zS#~1*)0j--=oWE1&;OBINDbYMaw?KkFZGT%SJAY&Om<^@&Fpn!e7s4(%+2QmY{&2# zNqew^he$hi|Krov8)Cmr)_gq_SZ(&x4;#9HFG)W~_%dgIg@BZu8@Elmc{BEI_YS$v z^a#A2U?X$-ZgAg6QPUlVr?9Ae$Vy!48CRMC zTJ6*uo7t9&@)kF2+47E#Tjn+4X&@Ixt81b&I_@vN)pjOLLKmjxlVKJhw(_2uREjY^ znx%_NcQ69C=j}uG{5V!02Z#H-hL*qoZbZ$W$2mF#w;}4~hA@xf%jM14_j%$YQ8tf( z6m^BXeSa6vTTFuj@@8ia;!ypk)&tZ3M#BI8f5-R=-oT$+6`2QA{c%_R6*T|<{;Rgx zfFWSKdU~w|4)OC-0X$;NlTNqP+UvbJmBc8(j|Kxiw?&?I5Ud5$m=-?#cOhF!{qiXs zRSmJgc+&C5yF4RkMK&*r|8BC!mYm?;zUrf|LsuL^cR<%Rnx~9UfCkX=9B@P;r!Avu zg<+gHdomMun}3BDL$Es_lsdI*Up$gOk0w@1X!@X(LxSKx&wp(>l?hplZm)R{_tHgs zdwNqO5T9!8r7*>^E7o{&edaOvQn32#+KYkSKO!n0j?OrRb`E85#(f&hKIT#r!3~fHgun{9> zQhtLfiB~oxSwVxSTbw9NsXt|vhZHk7FqwLNK3VDkTf_tSLmT4~)-o7y)*e25IB;ba z(J_dI;>B#Pk9z6HrP8m|4qCv=q~P#EMt-svKxkbEw_n1@clFo|PEiVcaRy4)uCMF) zcqN1TCRTmE+4SJMcfVV39=uJq0#HCY(eQU9u`!h1bK$vXJqRk`Y}ZJV@`;P%O6ybl zsZ~v6!RtkU78w~Sg6gE1GpK-KruQJY!sx)lWO3GH*2?AF^`vxIN(mcw6A$~HGPwXk z;B8*2Ux^A`Z~Dlp(^N|$Jb7@*DsN^I_`}>HddU1vu`w%AlXD^`3uwN#BEv)$W-Hk| z_m1{g!buSQ_T(GJWEGzC#HY zDurex{ITcmFEz=zI|`Rje7+*oWqi!!i(MI%FDJ%5hKR`1=~G4Wp%zbJ2K3;mUp4axmIEfs& zDjc!lHa01x19sipR!AqL(6PMg;6raTK-yX1O)UF+JQqlSi&Q|=CCl6{{U|R54b8MU ztK%0?2T0HcGU|q>lfnX+I~>qK&>#4mOzT;CFbHw=#qXbV&PC~$Dhh>%GRB-{;od5)s@%6qHD z>RN>{lLOyW@KNr*%KIlyds3;w1fl}Y83KeuWx6tA2kBQ(I%svt%l5$W1{)-giL_)4 z*q;b8nEI<;<$&E3Dj;(@K`|*QI}h}J^FSA@(LFEN%K6hC^f-xypXtEX7c}H4=T2tA zGL-Pai0{x+c`czL=Jm2M2@8{n1e0^S469}wvv&+1w1Uk5(Zj4-dnCrx8ZeN=LuK^!3Wa5vhUnVAio1$5}HS#<|P zWR~*Wv#=8zf`ajfUET`v%@e~rbW!;`gsqLAJE$U-<)x_79UmqB&vQJ2r=Mz Uy=L)g3V((VwYE4h*kR5811DQ>3;+NC literal 0 HcmV?d00001 From 31fdd11aa759d9c9555eeecbdaabaf81a0fca3ec Mon Sep 17 00:00:00 2001 From: jtgasparik Date: Fri, 24 Jul 2026 10:11:35 -0400 Subject: [PATCH 3/4] fix to units --- pysp2/util/normalized_derivative_method.py | 16 +++++----------- .../test_plot_scattering_cross_section.png | Bin 48062 -> 36020 bytes 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/pysp2/util/normalized_derivative_method.py b/pysp2/util/normalized_derivative_method.py index 56abc85..a188581 100644 --- a/pysp2/util/normalized_derivative_method.py +++ b/pysp2/util/normalized_derivative_method.py @@ -1361,9 +1361,9 @@ def plot_scattering_cross_section( raise ValueError("time_units must be 'us' or 's'.") if time_units == "us": - t_vals_for_irradiance = t_plot * 1e-6 - else: t_vals_for_irradiance = t_plot + else: + t_vals_for_irradiance = t_plot * 1e6 # Required sigma/tau outputs. if "tau_best" not in sigma_ds: @@ -1412,14 +1412,6 @@ def plot_scattering_cross_section( label=r"$\Delta C_{\mathrm{sca}}(t)$", ) - ax.axvline( - x=(tau_best) if time_units == "us" else tau_best*1e6, - color="red", - linestyle="--", - linewidth=1.5, - label=r"$\tau_{\mathrm{best}}$", - ) - if show_fit_window and "fit_start" in sigma_ds and "fit_stop" in sigma_ds: fit_start = int(np.asarray(sigma_ds["fit_start"].values)) fit_stop = int(np.asarray(sigma_ds["fit_stop"].values)) @@ -1435,8 +1427,10 @@ def plot_scattering_cross_section( ) ax.set_xlabel(x_label) - ax.set_ylabel(r"Scaled $\Delta C_{\mathrm{sca}}$ (a.u.)") + ax.set_ylabel(r"$\Delta C_{\mathrm{sca}}$ (m²)") ax.grid(True, alpha=0.3) + ax.set_ylim(1e-14,1e-11) + ax.set_yscale("log") ax.set_xlim(t_plot[10], t_plot[-30]) ax.legend(loc="best", fontsize=10) ax.set_title( diff --git a/tests/baseline/test_plot_scattering_cross_section.png b/tests/baseline/test_plot_scattering_cross_section.png index 40f80f49f5c4925b9c74c1b1c35b8303d674c4f5..428a3929ed3aad85e1578977b4ca6a9c50ac812e 100644 GIT binary patch literal 36020 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

?q3vF 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 Uy=L)g3V((VwYE4h*kR5811DQ>3;+NC From 648bb09f7a1ef7027d1aab7f2044c17dd05d29e2 Mon Sep 17 00:00:00 2001 From: Bobby Jackson Date: Fri, 24 Jul 2026 09:53:48 -0500 Subject: [PATCH 4/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- tests/test_vis.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_vis.py b/tests/test_vis.py index 5dda6af..6942397 100644 --- a/tests/test_vis.py +++ b/tests/test_vis.py @@ -111,8 +111,7 @@ def test_plot_scattering_cross_section(): my_binary = pysp2.util.gaussian_fit(my_sp2b, my_ini, parallel=False, baseline_to_zero=True) dSdt = pysp2.util.central_difference(my_binary, normalize=True, baseline_to_zero=True) - print("dSdt dimensions:", dSdt.dims) - + # print("dSdt dimensions:", dSdt.dims) cfg = MLEConfig( h=0.4, # example: 0.4 microseconds sigma_bar= 18.5*0.4, # example; use your measured average width