From 95beac634b7606849095b0dc5cb3cc0d7f514506 Mon Sep 17 00:00:00 2001 From: Frits Sweijen Date: Mon, 4 Mar 2024 22:32:52 +0100 Subject: [PATCH] Make solset argument work --- examples/h5info.rs | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/examples/h5info.rs b/examples/h5info.rs index 98b6723..3593b08 100644 --- a/examples/h5info.rs +++ b/examples/h5info.rs @@ -22,7 +22,7 @@ struct Args { solset: String, } -fn summarise_h5parm(h5parm: &String) { +fn summarise_h5parm(h5parm: &String, solset: String) { let h5name = h5parm.split("/").last().unwrap(); println!("Summarising {}\n", h5name); let h5 = lofar_h5parm_rs::H5parm::open(h5parm, false).expect("Failed to read H5parm."); @@ -30,9 +30,43 @@ fn summarise_h5parm(h5parm: &String) { "{:<26} {:<19} {:<15} {:<11} {:<19}", "Solutions", "Type", "Polarisations", "% flagged", "Antennas" ); - for ss in h5.solsets { + if solset.len() == 0 { + for ss in h5.solsets { + println!("|-{}", ss.name); + for st in ss.soltabs { + if st.is_fulljones { + println!( + "|---{:<15} Full-Jones: {} {}", + st.name, + st.is_fulljones, + st.get_polarisations() + ); + } else { + println!( + "|---{:<22} {:<19} {:<15} {:<11} {:<19}", + st.name, + st.get_type(), + st.get_polarisations().to_vec().join(","), + st.get_flagged_fraction() + .iter() + .map(|m| format!("{:.3}%", m * 100.0)) + .collect::>() + .join(","), + st.get_antennas().len() + ); + } + let h = st.get_history(); + if h.len() > 0 { + println!("|\t{}", h); + } + println!("|"); + } + println!(); + } + } else { + let ss = h5.getSolSet(solset); println!("|-{}", ss.name); - for st in ss.soltabs { + for st in &ss.soltabs { if st.is_fulljones { println!( "|---{:<15} Full-Jones: {} {}", @@ -60,12 +94,11 @@ fn summarise_h5parm(h5parm: &String) { } println!("|"); } - println!(); } } fn main() { let args = Args::parse(); println!("H5parm: {}\n", args.h5parm); - summarise_h5parm(&args.h5parm); + summarise_h5parm(&args.h5parm, args.solset); }