use std::fs::File;
use fits_well::{ColumnData, FitsReader, FitsWriter, WriteColumn};
fn main() -> fits_well::Result<()> {
let path = std::env::temp_dir().join("fits_well_table.fits");
let columns = [
WriteColumn::fixed("ID", ColumnData::I32(vec![1, 2, 3]), 1),
WriteColumn::fixed(
"NAME",
ColumnData::Text(vec!["Vega".into(), "Sirius".into(), "Rigel".into()]),
8,
),
WriteColumn::fixed("MAG", ColumnData::F64(vec![0.03, -1.46, 0.13]), 1).with_unit("mag"),
];
let mut writer = FitsWriter::new(File::create(&path)?);
writer.write_table(3, &columns)?; writer.into_inner().sync_all()?;
println!("wrote {}", path.display());
let mut reader = FitsReader::open(File::open(&path)?)?;
let table = reader.read_table(1)?;
println!("{} rows, {} columns", table.nrows, table.columns.len());
println!("ID = {:?}", table.column_by_idx(0)?.raw()?);
println!("NAME = {:?}", table.column_by_name("NAME")?.raw()?);
println!("MAG = {:?}", table.column_by_name("MAG")?.raw()?);
println!(
"MAG (physical) = {:?}",
table.column_by_name("MAG")?.physical()?
);
Ok(())
}