Exemplo n.º 1
0
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:
Exemplo n.º 2
0
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:]
Exemplo n.º 3
0
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,
Exemplo n.º 4
0
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)