Source code for generate_star_grid.make_yrec_grid

#!/usr/bin/env python3
import argparse
import pandas as pd

[docs] def get_prefix(name): """ Extract prefix such as '0.725_solar' from strings like '0.725_solar_0001'. Modify this if your filename pattern is different. """ return "_".join(name.split("_")[:2]) # keeps '0.725_solar'
[docs] def main(): parser = argparse.ArgumentParser(description="Add a Track column and overwrite the HDF5 file.") parser.add_argument("file", help="Path to the HDF5 file to update") parser.add_argument("--column", default="filename", help="Column containing filenames (default: 'filename')") args = parser.parse_args() # ---- READ FILE ---- df = pd.read_hdf(args.file) if args.column not in df.columns: raise ValueError(f"Column '{args.column}' not found. Columns = {list(df.columns)}") print(f"Loaded {len(df)} rows from {args.file}") print(f"Assigning Track IDs based on column '{args.column}'...") # ---- EXTRACT PREFIXES ---- prefixes = df[args.column].apply(get_prefix) # ---- ASSIGN TRACK NUMBERS ---- unique_prefixes = {p: i+1 for i, p in enumerate(prefixes.unique())} df["Track"] = prefixes.map(unique_prefixes) n_tracks = len(unique_prefixes) print(f"Found {n_tracks} unique tracks.") print("\nPreview of updated DataFrame:") print(df.head()) # ---- OVERWRITE ORIGINAL FILE ---- df.to_hdf(args.file, key="data", mode="w") print(f"\nUpdated file written in-place → {args.file}") print(f"\nDone. Total unique Track values: {n_tracks}")
if __name__ == "__main__": main()