from typing import Dict, List, NewType, Sequence, Tuple, Union import numpy as np import tfs # from jpype import JException, java from omc3.tune_analysis import constants as const from omc3.utils import logging_tools from omc3.utils.mock import cern_network_import from omc3.utils.time_tools import CERNDatetime TIME_COL = const.get_time_col() START_TIME = const.get_tstart_head() END_TIME = const.get_tend_head() LOG = logging_tools.get_logger(__name__) pytimber = cern_network_import("pytimber") jpype = cern_network_import("jpype") MAX_RETRIES = 10 # number of retries on retryable exception AcceptableTimeStamp = NewType("AcceptableTimeStamp", Union[CERNDatetime, int, float]) def lhc_fill_to_tfs(fill_number: int, keys: Sequence[str] = None, names: Dict[str, str] = None) -> tfs.TfsDataFrame: """ Extracts data for keys of fill from ``Timber``. Args:
HEADER = "@" NAMES = "*" TYPES = "$" SEGMENTS = "#segment" SEGMENT_MARKER = ('start', 'end') COLX = "X" COLY = "Y" COLTURN = "TURN" COLPARTICLE = "NUMBER" DATE = "DATE" TIME = "TIME" TIME_FORMAT = "%d/%m/%y %H.%M.%S" Segment = namedtuple("Segment", ["number", "turns", "particles", "element", "name"]) LOGGER = get_logger(__name__) def read_tbt(file_path): """ Reads TbtData object from PTC trackone output. """ LOGGER.debug(f"Reading path: {file_path}") with open(file_path, "r") as tfs_data: lines = tfs_data.readlines() # header date, header_length = _read_header(lines) lines = lines[header_length:]
from omc3.definitions.constants import PLANES from omc3.tune_analysis import timber_extract, fitting_tools, kick_file_modifiers from omc3.tune_analysis.constants import (get_kick_out_name, get_bbq_out_name, get_mav_col, get_timber_bbq_key, get_bbq_col) from omc3.tune_analysis.kick_file_modifiers import (read_timed_dataframe, write_timed_dataframe, read_two_kick_files_from_folder ) from omc3.utils.logging_tools import get_logger, list2str, DebugMode # Globals ---------------------------------------------------------------------- DTIME = 60 # extra seconds to add to kick times when extracting from timber LOG = get_logger(__name__) # Get Parameters --------------------------------------------------------------- def _get_params(): return EntryPointParameters( beam=dict( help="Which beam to use.", required=True, type=int, ), kick=dict( help="Location of the kick files (parent folder).", type=str,
from copy import deepcopy import numpy as np import pandas as pd import tfs from omc3 import __version__ as VERSION from omc3.definitions.constants import PLANES from omc3.optics_measurements import (beta_from_amplitude, beta_from_phase, chromatic, dispersion, dpp, iforest, interaction_point, kick, phase, rdt, tune, crdt) from omc3.optics_measurements.constants import (CHROM_BETA_NAME, ERR, EXT) from omc3.utils import iotools, logging_tools LOGGER = logging_tools.get_logger(__name__, level_console=logging_tools.INFO) LOG_FILE = "measure_optics.log" def measure_optics(input_files, measure_input): """ Main function to compute various lattice optics parameters from frequency spectra. Args: input_files: `InputFiles` object containing frequency spectra files (linx/y). measure_input: `OpticsInput` object containing analysis settings. Returns: """ LOGGER.info(f"Calculating optics parameters - code version {VERSION}") iotools.create_dirs(measure_input.outputdir)