tardis.transport.montecarlo.packets.trackers.tracker_full_util module
- class tardis.transport.montecarlo.packets.trackers.tracker_full_util.TrackerEventArrays(packet_id: ndarray[tuple[Any, ...], dtype[int64]], event_offsets: ndarray[tuple[Any, ...], dtype[int64]], interaction_type: ndarray[tuple[Any, ...], dtype[int64]], radius: ndarray[tuple[Any, ...], dtype[float64]], before_shell_id: ndarray[tuple[Any, ...], dtype[int64]], after_shell_id: ndarray[tuple[Any, ...], dtype[int64]], before_nu: ndarray[tuple[Any, ...], dtype[float64]], after_nu: ndarray[tuple[Any, ...], dtype[float64]], after_mu: ndarray[tuple[Any, ...], dtype[float64]], after_energy: ndarray[tuple[Any, ...], dtype[float64]], line_absorb_id: ndarray[tuple[Any, ...], dtype[int64]], line_emit_id: ndarray[tuple[Any, ...], dtype[int64]], next_line_id: ndarray[tuple[Any, ...], dtype[int64]])[source]
Bases:
NamedTupleReal-packet event histories as flat arrays for virtual-packet replay.
Events of packet
packet_id[i]occupyevent_offsets[i]:event_offsets[i + 1]in every per-event array, in event order.Create new instance of TrackerEventArrays(packet_id, event_offsets, interaction_type, radius, before_shell_id, after_shell_id, before_nu, after_nu, after_mu, after_energy, line_absorb_id, line_emit_id, next_line_id)
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.event_arrays_to_df(event_arrays: tuple) DataFrame[source]
Build the full-tracker DataFrame from concatenated event arrays.
- Parameters:
- event_arraystuple
Event arrays as returned by
trackers_full_list_to_selected_arrays.
- Returns:
- pd.DataFrame
Event DataFrame indexed by packet_id and event_id.
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.generate_tracker_full_list(no_of_packets: int, length: int, extend_factor: int = 2) List[source]
Generate list of RPacketTracker instances.
- Parameters:
- no_of_packetsint
The count of RPackets that are sent in the ejecta.
- lengthint
Initial length of the tracking array.
- Returns:
- TypedList
A numba.typed.list containing RPacketTracker for each RPacket.
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.interaction_type_to_categorical(interaction_type: ArrayLike) Categorical[source]
Convert
InteractionTypecodes to a categorical of their names.- Parameters:
- interaction_typearray-like
InteractionTypeinteger codes.
- Returns:
- pandas.Categorical
Interaction type names, with every
InteractionTypeas a category.
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.interaction_type_to_codes(interaction_type: ArrayLike) ndarray[source]
Convert interaction type names to
InteractionTypecodes.- Parameters:
- interaction_typearray-like
Interaction type names, as strings or a categorical with any category order, e.g. a
tracker_full_dfcolumn.
- Returns:
- numpy.ndarray
InteractionTypeinteger codes.
- Raises:
- ValueError
If a name is missing or not an
InteractionTypemember.
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.tracker_full_df2tracker_last_interaction_df(full_df: DataFrame) DataFrame[source]
Convert a full tracking dataframe to show only the last interaction for each packet.
Takes a full event tracking dataframe (from trackers_full_to_dataframe) and filters it to show only the last physics interaction each packet experienced.
- Parameters:
- full_dfpd.DataFrame
Full event tracking dataframe with multi-index (packet_id, event_id) and columns [‘radius’, ‘before_shell_id’, ‘after_shell_id’, ‘interaction_type’].
- Returns:
- pd.DataFrame
DataFrame containing last interaction data for each packet, indexed by packet_id with columns [‘radius’, ‘shell_id’, ‘last_interaction_type’, ‘line_absorb_id’, ‘line_emit_id’, ‘before_nu’, ‘before_mu’, ‘before_energy’, ‘after_nu’, ‘after_mu’, ‘after_energy’]. Note: shell_id comes from before_shell_id.
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.tracker_full_df_to_event_arrays(tracker_full_df: DataFrame) TrackerEventArrays[source]
Extract the event arrays needed to replay real-packet histories.
- Parameters:
- tracker_full_dfpandas.DataFrame
Full real-packet tracking DataFrame indexed by
packet_idandevent_id, e.g.transport_state.tracker_full_dfor one loaded from disk.
- Returns:
- TrackerEventArrays
Flat event arrays grouped by packet.
- Raises:
- ValueError
If the
packet_idindex level or a column needed to replay the histories is missing.
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.trackers_full_list_to_arrays(trackers: List, release_trackers: bool = False) tuple[source]
Convert a list of TrackerFull instances to concatenated arrays efficiently.
- Parameters:
- trackersnumba.typed.typedlist.List
List of TrackerFull instances.
- release_trackersbool, optional
Empty each tracker’s arrays once copied, to lower peak memory. The trackers cannot be used afterwards. Default False.
- Returns:
- tuple
Event arrays as returned by
trackers_full_list_to_selected_arrays.
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.trackers_full_list_to_selected_arrays(trackers: List, event_starts: ndarray, event_counts: ndarray, release_trackers: bool = False) tuple[source]
Concatenate a contiguous range of events from each TrackerFull.
- Parameters:
- trackersnumba.typed.typedlist.List
List of TrackerFull instances.
- event_startsnumpy.ndarray
First event index taken from each tracker.
- event_countsnumpy.ndarray
Number of events taken from each tracker.
- release_trackersbool, optional
Empty each tracker’s arrays once copied, to lower peak memory. The trackers cannot be used afterwards. Default False.
- Returns:
- tuple
Tuple containing: - packet_id (np.int64[:]) : Packet ID for each event - event_id (np.int64[:]) : Event ID within each packet - r (np.float64[:]) : Radius at each event - before_shell_id (np.int64[:]) : Shell ID before each event - after_shell_id (np.int64[:]) : Shell ID after each event - interaction_type (np.int64[:]) : Interaction type at each event - status (np.int64[:]) : Status at each event - before_nu (np.float64[:]) : Frequency before interaction - before_mu (np.float64[:]) : Mu before interaction - before_energy (np.float64[:]) : Energy before interaction - after_nu (np.float64[:]) : Frequency after interaction - after_mu (np.float64[:]) : Mu after interaction - after_energy (np.float64[:]) : Energy after interaction - line_absorb_id (np.int64[:]) : Line absorb ID - line_emit_id (np.int64[:]) : Line emit ID - next_line_id (np.int64[:]) : Next line ID after the event
- tardis.transport.montecarlo.packets.trackers.tracker_full_util.trackers_full_to_df(trackers_full_list: List, release_trackers: bool = False) DataFrame[source]
Convert a list of RPacketTracker instances to a comprehensive DataFrame.
- Parameters:
- rpacket_trackersnumba.typed.typedlist.List
List of RPacketTracker instances.
- release_trackersbool, optional
Empty each tracker’s arrays once copied, to lower peak memory. The trackers cannot be used afterwards. Default False.
- Returns:
- pd.DataFrame
DataFrame containing all event data including line interaction details, indexed by packet_id and event_id. Line interaction columns have default values (-1 for IDs, NaN for physical quantities) for non-interaction events.