Pipeline Context and Domain Objects

Overview

The Pipeline Context maintains the current state of a data processing session. It also serves as a container for metadata describing the observing project and individual datasets. Additionally, it encapsulates logical representations of abstract or tangible concepts from the instrument, operations, and generic astronomy/physics domains, using Pipeline Python Domain Objects. The Pipeline Context and Domain Object classes form the backbone of the pipeline infrastructure. Combined with PipelineTask concepts, interfaces, and weblog generation, they provide the foundation for the Pipeline Package.

Use Cases

Life Cycle

From a technical perspective, the Context of a pipeline data processing session (PPS) is a Python class object with various attributes link to pipeline domain class objects.

During the initialization of a processing session, the context instance is created. The project-level and Execution Block (EB)-level metadata is extracted from on-disk datasets during the pipeline h*_importdata task stage. Pipeline domain objects are constructed as Pythonic representations of real-world concepts for the observations (e.g. scan, spectral windows, antennas). It also initializes various attributes/properties and starts to bookkeep the session processing state, including:

  • The pipeline calibration state

  • A tree of Results class objects summarizing data processing and quality assurance results for each pipeline stage

  • Various internal pipeline variables and objects for configurations, etc.

The pipeline stage/context interaction overview (created by V. Geers at the 2022 Pipeline F2F meeting) illustrates the stage-by-stage context update process:

context and stages

  • A new context object is created with the Pipeline Task h_init()

  • During the execution of hifa_importdata(), measurements are attached to the context

  • After accepting the results, the pipeline moves to the next stage, hifa_flagdata()

The Pipeline context can be saved (serializing) to disk using h_save() and restored deserializingg) using h_resume(), although in the majority case the task directly interacts with the in-memory instance. However, in a standard workflow, the end-state context will always be present in the working directory and updated each time when a stage is completed.

stage: an execution of a pipeline task under a specific user input, including data processing control parameters and the current Pipeline context.

Contents

In general, pipeline Context and Domain objects serve the following major purposes (note that we use ctx to denote an example Context object, see the code snippet at the end of this documentation):

  • as the container for multi-level hierarchical metadata of observing projects, observing sessions, and execution blocks from online systems, e.g.

    • ctx.observing_run: Metadata about observing run that is processed

    • ctx.observing_run.measurements_sets: (a list of pipeline MeasurementSet domain objects).

    • ctx.observing_run.virtual_sceicne_spw_ids|names|shortnames: Info on virtual spectral windows across observing run

    • ctx.observing_run.start|end_time|datatime: Start/end time (and date) for run (based on first/last MS)

    • ctx.observing_run.projectids|schedblocks_ids|execblockids|observers: Return set of unique project/scheduling block / execution block IDs or observers for given run

    • ctx.project_summary, ctx.project_structure, ctx.project_peroformance_parameters: Information about the observing project and imaging performance goals. they are either ingested from the pipeline processing request (PPR, official interface for the pipeline executation) or harvested from the on-disk datasets in the format of ASDM or MeasurementsSets. They are commonly read-only/updated upon the indigestion of new data/metadata (e.g. h*_importdata), but could be updated when the on-disk dataset is updated: for example, if a new CASA ms data column is corrected to store self-calibration visibility data for field A and spw B, pipeline will update the python domain objects to reflect the latest state of the datatype information at the domain object level to keep the bookkeeping up-to-date without writing the data back to CASA data itself. Essentially, the python-layer domain object serves as add-into on the complementary data processing metadata outside of CASA table forms.

  • provide Pythonic methods (sometimes with in-memory caching) to fast access metadata on individual CASA Measurement Sets (under the pipeline domain objects scope) to avoid repeatedly revisiting casatoo.s. msmd tables frequently, e.g. ctx.observing_run.measurement_sets.get_scans(), the design could be dated prior the introductio of casatools.msmetadata.

  • processing session configuration and state tracking, transfer state from stage to stage.

    • ctx.calimlist, ctx.sciimlist, ctx.rmsimlist, ctx.subimlist: Lists of images that have been compute in (calibrator, science, RMS, cutout) imaging stages.

    • calibration state ctx.callibrary: Pipeline Calibration State

    • ctx.products_dir, ctx.report_dir, ctx.output_dir: Directories to store Pipeline output

    • ctx.clean_targets: list of images to be produced b imaging targets ()

    • selfcal targets and outcome (ctx.selfcal_targets)

    • which stage we are in, recipes, process job names

    • config and state of pipeline processing job, workflow instruction: e.g., what has been done, which stage in

    • current stage / last stage ctx.stage

    • information let as a cross-stage communication:

  • Aggregating results from individual pipeline processing stages, each as an execution of a pipeline task

    • results ctx.results: List of references to task results (stored on disk) here include the outcome and necessary information of actual heuristics-driving data processing (e.g. stats) and quality assurance (QA) scoring for weblog reporting.

    • Results as Python class objects, they are a mixture of “metadata” we traditionally called, meshed with various live objects (class/functions/arrays)…

  • Other caching certain data properties from computational intensive tasks to avoid duplication transit of the data, ctx.per_spw_cont_sensitivities_all_chan, synthesized_beams. spectral window maps over the observing campaign

  • As the use case of inter-stage communication grows (i.e. stage B wants to know certain information from stage A): private attributes are also added in “on-demand” ways as a backdoor channel inside the context… In some instances, a large array (e.g. stats / even “images”) is attached into context, which also causes troubles (e.g. ~GiB np.arrays get under the Python object and serialized onto disk, see PIPE-1698). We do have a ticket to document the current state of various use / or misuse of context (PIPE-2160); maybe we will see some movement before this year’s PL f2f meeting, ctx.selfcal_targets; cross-stage for late decision making ctx.vla_skip_mfs_and_cube_imaging.

  • provide pythonic methods/property to access and manipulate context directory, logic decision treat from the current processing statee.g.

The full description of Context/observing_run/measurementset key properties/methods can be found below:

Limitations

  • Lack of official API status and backward compatibility

    The context class and domain object classes are not officially designated or maintained as public APIs. Consequently, their interfaces and definitions are subject to frequent changes across releases or even within a single development cycle, with no assurance of backward compatibility.

    These changes to the underlying implementation can cause issues with serialization and deserialization. However, as the context primarily serves as a transient runtime or session object and data pool, such disruptions generally result in only minor inconveniences during the development process.

    • Serialization/Deserialization Challenges

      The pipeline context can be serialized and deserialized with pickle for specific use cases, such as saving and resuming sessions, debugging, and MPI prcoess communications. In the last case, shared storage is used as a workaround for certain limitations of our use of OpenMPI messaging protocol via casampi Deserialization of an on-disk serialized context is inherently unreliable due to potential changes in the context or domain classes. Currently, serialization is implemented using Python’s pickle, which has well-known limitations:

      * Objects that are not compatible with pickle cannot be serialized.
      * Deserialization may fail over time as the structure of the context or domain classes evolves.
      * The context object itself is not network-friendly and cross-node communication relies on a shared filesystem, which lacks support for concurrent writes and introduces additional dependencies.
      
  • Scalability Concerns

    As mentioned above, the current Context and domain object implementation is designed for internal use only and is neither a stable interface nor an official API, but is the foundation bottleneck for the Pipeline parallelization and work-load orchestration. The current implementation is not designed for long-term persistence or scalability.

  • Documentation Gaps

    The use cases for pipeline context and domain objects have grown significantly over time, but the documentation has not evolved accordingly. This has led to inconsistencies and a lack of systematic clarity, particularly for software developers and contributors involved in heuristics development.

    More critically, the inadequate documentation has discouraged external developers/heuristics contributors from leveraging the existing pipeline context and domain objects for metadata access. Instead, heuristics development has often relied on typical CASA environments, leading to inefficiencies. Substantial duplicate effort has been required to translate these heuristics into the pipeline infrastructure, which could have been avoided with earlier integration.

    This underscores the need for future systems to include well-designed, multi-level public APIs tailored to diverse user groups, including operational scientists, data analysts, developers, domain experts, and general users. Such an approach would ensure clearer guidance, reduce redundancy, and streamline development efforts.

  • Duplication and Compatibility Issues from Legacy Classes and Tools

    Over the years, technical debates and the coexistence of dated standards have led to significant maintenance costs and duplication within the pipeline codebase. This duplication stems from the use of overlapping or redundant “in-house” solutions for managing similar concepts which might may directly offered by off-shelf software tools or libraries.

    For instance, in handling physical quantities, the pipeline uses an internal set of domain objects, but also uses CASA Measures (via casatools.quanta), and astropy.units.Quantity. This often requires translation between these systems, resulting in complex, error-prone code patterns. Similarly, for World Coordinate Systems (WCS), the pipeline mixes the use of CASA coordinate systems [casatools.measures][casatools.measure] with Astropy’s astropy.wcs.

    The maintenance burden of managing these conversions, along with the inconsistencies arising from multiple systems, increases development overhead and the risk of errors. Development heuristics often rely on accessing metadata in a typical CASA environment, bypassing the pipeline’s context and domain object infrastructure, further compounding the redundancy.

    Domain

    Redundant Systems

    Issues

    Physical Quantities

    - pipeline.domain.measures
    - casatools.measures
    - astropy.units.Quantity

    Redundant definitions require translation between systems, increasing maintenance complexity.

    World Coordinates

    - CASA Coordinate Systems via (casatools.coordsys)
    - astropy.wcs

    Mixed usage leads to inconsistencies and additional effort for conversions and compatibility. Mutiples sets of IERS data to maintain

Future

  • Standardizing Context’s metadata tracking as a Database with documented API (potentially supporting multiple languages)

    With the increasing complexity of asynchronous workflows and longer processing intervals, it is time to redesign the context system. Key steps include:

    • Formalizing the schema and separating methods, class methods, attributes, and properties from the actual data used for reporting and statistical aggregation.

    • Introducing a version-controlled database and RestAPI to manage metadata and persist data efficiently.

    • This transition would also enable asynchronous access from multiple instances, improving scalability and flexibility.

  • Transitioning the Context calculating Functionality into a local libraries/modules with the seperation of metadata and “methods”

    Moving to a database system could address current limitations by eliminating loosely defined class instances and methods, and focusing on recording structured data.

  • Cloud-Friendly Context Format

    A cloud-optimized version of the context format could enhance compatibility with cloud storage and distributed systems, facilitating more efficient processing and data access across environments.

    • Additionally, a future state-tracking system would need to separate methods and abstractions to improve serialization compatibility, ensuring long-term storage and processing reliability.

  • Compatibility with Legacy Pipeline

    The transition to a database-driven context system would likely require a partial or full rewrite of the Pipeline tasks, as they heavily rely on “context” objects. However, one-to-one translation of legacy pipeline heuristics to a database-based context codebase will be a lengthy and costly process. A possible transitional approach could involve adopting a database backend without fully replacing the existing context system initially:

    • Develop a lightweight translation layer that mimics the behavior of the context object and allows legacy pipeline tasks to interact with the new database system.

    • Gradually implement changes to streamline the transition in the context access inside the Pipeline task itself.

A live example of the pipeline Context object

As below, we use Rich, a Python library to inspect a live example of the pipeline Context instance. We first read a Context object from a on-disk pickle file, then examine over the object structure and varioys attributes

import os
import pickle
import pipeline
from pipeline.infrastructure import launcher


def read_context(context_name='pipeline-procedure_vlassCCIP', stage=None, reaccept=False, result_from_context=True):
    loglevel = 'info'  # 'debug'
    plotlevel = 'default'
    if stage is None:
        context = launcher.Pipeline(context=context_name, loglevel=loglevel, plotlevel=plotlevel).context
    else:
        if not reaccept:
            context = launcher.Pipeline(
                context=context_name + '/saved_state/context-stage' + str(stage) + '.pickle',
                loglevel=loglevel,
                plotlevel=plotlevel,
            ).context
        else:
            # QA is performend when result is accept into context
            # then the weblog render will step in.
            if result_from_context:
                context = launcher.Pipeline(
                    context=context_name + '/saved_state/context-stage' + str(stage) + '.pickle',
                    loglevel=loglevel,
                    plotlevel=plotlevel,
                ).context
                result = context.results[-1].read()
            else:
                with open(context_name + '/saved_state/result-stage' + str(stage) + '.pickle', 'rb') as fd:
                    result = pickle.load(fd)
            context = launcher.Pipeline(
                context=context_name + '/saved_state/context-stage' + str(stage - 1) + '.pickle',
                loglevel=loglevel,
                plotlevel=plotlevel,
            ).context

            result.accept(context)

    return context


cwd = '/home/rxue/Workspace/zfs/nrao/tests/projs/csv-3899-small/pipe1669/working'
os.chdir(cwd)

ctx = read_context('pipeline-procedure_hifa_calimage.context')
usage: python -m pipeline | paris [-h] [--vlappr VLAPPR] [--ppr PPR]
                                  [--config SESSION] [--logfile LOGFILE]
                                  [--dryrun] [--local]
python -m pipeline | paris: error: unrecognized arguments: --f=/home/rxue/.local/share/jupyter/runtime/kernel-v3be2f44a2e049c1e027adaa730b99a389176adfc7.json
CLI option(s) is not recognizable by the Pipeline package; try "--help"
measurespath = /home/rxue/Workspace/nvme/nrao/casa_dist/casarundata
2024-12-18 22:35:35 INFO: Environment is not MPI enabled. Pipeline operating in single host mode
2024-12-18 22:35:36 INFO: Environment variable FLUX_SERVICE_URL not defined.  Switching to backup url.
2024-12-18 22:35:36 INFO: Environment variable FLUX_SERVICE_URL_BACKUP not defined.
2024-12-18 22:35:36 INFO: Pipeline version 2024.2.0.4+182-g50192f15f2-dirty-PIPE-1669-run-dev-pipeline-with-modular-casa6 running on xenon
2024-12-18 22:35:36 INFO: Host environment:
	CPU: Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz (physical cores: 18, logical cores: 36)
	Memory: 251.4 GiB RAM, 16.0 GiB swap
	OS: Ubuntu 22.04.5 LTS (Jammy Jellyfish)
	cgroup limits: 100% of 36 CPU cores, memory limits=N/A
	ulimit limits: CPU time=N/A, memory=N/A, files=1048576
2024-12-18 22:35:36 INFO: Environment as detected by CASA:
	CPUs reported by CASA: 36 cores, max 36 OpenMP threads
	Available memory: 125.7 GiB
2024-12-18 22:35:37 INFO: Reading context: pipeline-procedure_hifa_calimage.context
2024-12-18 22:35:37 INFO: Tracking execution duration for context: pipeline-procedure_hifa_calimage
2024-12-18 22:35:37 ERROR: Error creating hard link to CASA log
2024-12-18 22:35:37 WARNING: Reverting to symbolic link to CASA log. This is unsupported!
2024-12-18 22:35:37 INFO: Setting plot level to 'default'
2024-12-18 22:35:37	SEVERE	pipeline::pipeline.infrastructure.launcher::casa	Error creating hard link to CASA log
2024-12-18 22:35:37	WARN	pipeline::pipeline.infrastructure.launcher::casa	Reverting to symbolic link to CASA log. This is unsupported!

Context/domain Object Query – Task Results per Stage

import pprint
ctx.get_recipe_name()
ctx.get_oussid()

# Get stage nr and name for all results
for rp in ctx.results:
    result = rp.read()
    print(f'{result.stage_number}, {result.taskname}')

# Show specific result, and corresponding task inputs
task_results = ctx.results[14].read()
print(task_results[0])

pprint.pprint(task_results)
1, hifa_importdata
2, hifa_flagdata
3, hifa_fluxcalflag
4, hif_rawflagchans
5, hif_refant
6, h_tsyscal
7, hifa_tsysflag
8, hifa_tsysflagcontamination
9, hifa_antpos
10, hifa_wvrgcalflag
11, hif_lowgainflag
12, hif_setmodels
13, hifa_bandpassflag
14, hifa_bandpass
15, hifa_spwphaseup
16, hifa_gfluxscaleflag
17, hifa_gfluxscale
18, hifa_timegaincal
19, hifa_renorm
20, hifa_targetflag
21, hif_applycal
22, hif_makeimlist
23, hif_makeimages
24, hif_makeimlist
25, hif_makeimages
26, hifa_imageprecheck
27, hif_checkproductsize
28, hifa_exportdata
29, hif_mstransform
30, hifa_flagtargets
31, hif_makeimlist
32, hif_findcont
33, hif_uvcontsub
34, hif_makeimages
35, hif_makeimlist
36, hif_makeimages
37, hif_makeimlist
38, hif_makeimages
39, hif_selfcal
40, hif_makeimlist
41, hif_makeimages
42, hif_makeimlist
43, hif_makeimages
44, hif_makeimlist
45, hif_makeimages
46, hif_makeimlist
47, hif_makeimages
48, hifa_exportdata
SpwPhaseupResults:
vis=uid___A002_X1181695_X1c6a4_8ant.ms
	CHECK, J1857-0048:
		Combine = True
		Spwmap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 16, 23, 16]
		Low combined phase SNR spws = [16, 22, 24]	PHASE, J1851+0035:
		Combine = False
		Spwmap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 16]

ResultsList([SpwPhaseupResults:
vis=uid___A002_X1181695_X1c6a4_8ant.ms
	CHECK, J1857-0048:
		Combine = True
		Spwmap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 16, 23, 16]
		Low combined phase SNR spws = [16, 22, 24]	PHASE, J1851+0035:
		Combine = False
		Spwmap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 16]
])

Context queries – observing run info

import pprint

attributes = [
    'project_ids',
    'schedblock_ids',
    'execblock_ids',
    'observers',
    'start_time',
    'start_datetime',
    'end_time',
    'end_datetime',
]

for attr in attributes:
    print(f'{attr:15} : {getattr(ctx.observing_run, attr)}')
project_ids     : {'uid://A001/X3645/X2c8'}
schedblock_ids  : {'uid://A001/X3734/X1'}
execblock_ids   : {'uid://A002/X1181695/X1c6a4'}
observers       : {'dmuders'}
start_time      : {'m0': {'unit': 'd', 'value': 60462.404386666654}, 'refer': 'UTC', 'type': 'epoch'}
start_datetime  : 2024-06-01 09:42:19.007999
end_time        : {'m0': {'unit': 'd', 'value': 60462.41706111111}, 'refer': 'UTC', 'type': 'epoch'}
end_datetime    : 2024-06-01 10:00:34.080000

Context/domain Object Query – measurement sets

# Get names of MeasurementSets in current run

from pipeline.domain.datatype import DataType

msnames = [ms.name for ms in ctx.observing_run.get_measurement_sets()]
print(msnames)

# Get MeasurementSet by name:

ms = ctx.observing_run.get_ms(name=msnames[0])
print(ms)

# Get MeasurementSets filtered by given names & intents:

mslist = ctx.observing_run.get_measurement_sets(intents='BANDPASS,PHASE')
print(mslist)

# Get MeasurementSets matching given DataType

mslist = ctx.observing_run.get_measurement_sets_of_type(
    dtypes=[DataType.REGCAL_CONTLINE_ALL, DataType.REGCAL_CONTLINE_SCIENCE]
)
print(mslist)
for ms in mslist:
    print(ms,' - basename - ',ms.basename)
['uid___A002_X1181695_X1c6a4_8ant.ms', 'uid___A002_X1181695_X1c6a4_8ant_targets.ms', 'uid___A002_X1181695_X1c6a4_8ant_targets_line.ms']
MeasurementSet(uid___A002_X1181695_X1c6a4_8ant.ms)
[<pipeline.domain.measurementset.MeasurementSet object at 0x7a8455f86ec0>]
[<pipeline.domain.measurementset.MeasurementSet object at 0x7a8455f86ec0>]
MeasurementSet(uid___A002_X1181695_X1c6a4_8ant.ms)  - basename -  uid___A002_X1181695_X1c6a4_8ant.ms

Context/domain Object Query – virtual spws

# Full/short names for all virtual SpWs in the observing run:

print(ctx.observing_run.virtual_science_spw_names)
print(ctx.observing_run.virtual_science_spw_shortnames)

# Convert virtual SpW ID to real one for given MS
ms = ctx.observing_run.get_measurement_sets()[0]
virt_spwid = 16
real_spwid = ctx.observing_run.virtual2real_spw_id(virt_spwid, ms)

# Convert real SpW ID for given MS to virtual SpW ID
virtual_spwid = ctx.observing_run.real2virtual_spw_id(24, ms)
print(virtual_spwid)
{'X803018835#ALMA_RB_03#BB_1#SW-01#FULL_RES': 16, 'X803018835#ALMA_RB_03#BB_3#SW-01#FULL_RES': 22, 'X803018835#ALMA_RB_03#BB_4#SW-01#FULL_RES': 24}
{'X803018835#ALMA_RB_03#BB_1#SW-01#FULL_RES': 'X803018835#ALMA_RB_03#BB_1#SW-01', 'X803018835#ALMA_RB_03#BB_3#SW-01#FULL_RES': 'X803018835#ALMA_RB_03#BB_3#SW-01', 'X803018835#ALMA_RB_03#BB_4#SW-01#FULL_RES': 'X803018835#ALMA_RB_03#BB_4#SW-01'}
24

Context/domain Object Query – spectral windows

msname='uid___A002_X1181695_X1c6a4_8ant_targets.ms'
ms = ctx.observing_run.get_ms(name=msname)

# Get all Spectral Windows
all_spws = ms.get_spectral_windows(science_windows_only=False)

# Get frame for specific SpW
frame = ms.get_spectral_window(0).frame

# Get all “Differential Gain Reference” spectral windows, filtered by requested IDs
dgref_spws = ms.get_spectral_windows('0')

# Get SpW IDs for science SpWs (default), filtered by band and number of channels
scispw_ids_sel = [spw.id for spw in ms.get_spectral_windows()
                  if spw.band == 'ALMA Band 3' and spw.num_channels > 4]
print(scispw_ids_sel)
[16, 22, 24]

Context/domain Object Query – fields

maname='uid___A002_X1181695_X1c6a4_8ant.ms'
ms = ctx.observing_run.get_ms(name=msname)

# Get names for all fields in the MS
field_names = [field.name for field in ms.get_fields()]

# Get all intents covered by fields for given field argument
field_intents = {intent for field in ms.get_fields('*')
                 for intent in field.intents}

# Get field ID for all fields matching science target intent
fieldlist = [field.id for field in ms.get_fields(intent='TARGET')]
print(fieldlist)
[2, 4, 5]

Context/domain Object Query – scans

# Get IDs of all scans
maname='uid___A002_X1181695_X1c6a4_8ant_targets.ms'
ms = ctx.observing_run.get_ms(name=msname)
scan_ids = [scan.id for scan in ms.get_scans()]

# Get time on source for scans with PHASE intent for selected fields

times = [scan.time_on_source
         for scan in ms.get_scans(field='*', scan_intent='PHASE')]
print(times)
[]

Context/domain Object Query – data descriptions

# Get polarization ID for given MS, SpW ID, and correlation type.
maname='uid___A002_X1181695_X1c6a4_8ant_targets.ms'
ms = ctx.observing_run.get_ms(name=msname)
datadesc = ms.get_data_description(id=0)
pol_id = datadesc.get_polarization_id('XY')
print(pol_id)
2

Context/domain Object Query – spectral windows

maname = "uid___A002_X1181695_X1c6a4_8ant_targets.ms"
ms = ctx.observing_run.get_ms(name=msname)
sciencespws = [spw.id for spw in ms.get_spectral_windows(science_windows_only=True)]
print(sciencespws)
for spwid in sciencespws:
    spw = ms.get_spectral_window(spwid)
    print(
        spw.id,
        spw.band,
        spw.baseband,
        spw.centre_frequency,
        spw.correlation_bits,
        spw.frame,
        spw.min_frequency,
        spw.max_frequency,
    )
[16, 22, 24]
16 ALMA Band 3 1 100.810 GHz BITS_2x2 TOPO 99.810 GHz 101.810 GHz
22 ALMA Band 3 3 112.337 GHz BITS_2x2 TOPO 112.102 GHz 112.571 GHz
24 ALMA Band 3 4 115.248 GHz BITS_2x2 TOPO 115.014 GHz 115.482 GHz

A live example of the pipeline context object

from rich import inspect as inspect
from rich.console import Console
import io

def crop_output(text: str, height: int) -> str:
    lines = text.split("\n")
    lines = [line for line in lines]
    out = "\n".join(lines[:height])
    if len(lines) >= (height - 1):
        out += "\n" + "." * 8
        out += "\n" + "." * 8
    return out


def rinspect(obj):
    console = Console(
        color_system='standard',
        soft_wrap=True,
        width=160,
        height=100,
        tab_size=2,
        force_jupyter=False,
        force_terminal=False,
        force_interactive=False,
        markup=True,
        record=False,
        file=io.StringIO(),
        quiet=False,
    )
    with console.capture() as capture:
        inspect(obj, console=console)
    str_output = crop_output(capture.get(), height=500)
    print(str_output)
    return
rinspect(ctx)
╭────────────────────────────────── <class 'pipeline.infrastructure.launcher.Context'> ──────────────────────────────────╮
 Context holds all pipeline state, consisting of metadata describing the                                                
 data set, objects describing the pipeline calibration state, the tree of                                               
 Results objects summarising the results of each pipeline task, and a                                                   
 small number of internal pipeline variables and objects.                                                               
                                                                                                                        
 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ 
  <Context(name='pipeline-procedure_hifa_calimage')>                                                                  
 ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 
                                                                                                                        
                           calimlist = <pipeline.infrastructure.imagelibrary.ImageLibrary object at 0x7a8455aba560>     
                          callibrary = <pipeline.infrastructure.callibrary.IntervalCalLibrary object at 0x7a8455a19210> 
                     clean_list_info = {}                                                                               
                  clean_list_pending = []                                                                               
                            contfile = 'cont.dat'                                                                       
                        imaging_mode = None                                                                             
                  imaging_parameters = {'robust': 0.0}                                                                  
                           linesfile = 'lines.dat'                                                                      
                                logs = {                                                                                
                                           'casa_commands': 'casa_commands.log',                                        
                                           'pipeline_script': 'casa_pipescript.py',                                     
                                           'pipeline_restore_script': 'casa_piperestorescript.py',                      
                                           'aqua_report': 'pipeline_aquareport.xml',                                    
                                           'casalogs': ['casa-20241216-180400.log', 'casa-20241218-223535.log']         
                                       }                                                                                
                             logtype = 'MOUS'                                                                           
                                name = 'pipeline-procedure_hifa_calimage'                                               
                       observing_run = <pipeline.domain.observingrun.ObservingRun object at 0x7a8455f86f80>             
                          output_dir = ''                                                                               
 per_spw_cont_sensitivities_all_chan = {                                                                                
                                           'robust': 0.0,                                                               
                                           'uvtaper': [],                                                               
                                           'uid___A002_X1181695_X1c6a4_8ant_targets.ms': {                              
                                               'W43-MM1': {                                                             
                                                   'TARGET': {                                                          
                                                       16: {                                                            
                                                           'sensitivityAllChans': '0.000278 Jy/beam',                   
                                                           'nchanUnflagged': 120,                                       
                                                           'effChanBW': '41671875.0 Hz',                                
                                                           'sensBW': '2000000000.0 Hz',                                 
                                                           'sensfreq': np.float64(100800007554.40234)                   
                                                       },                                                               
                                                       22: {                                                            
                                                           'sensitivityAllChans': '0.00113 Jy/beam',                    
                                                           'nchanUnflagged': 240,                                       
                                                           'effChanBW': '2403808.59375 Hz',                             
                                                           'sensBW': '468750000.0 Hz',                                  
                                                           'sensfreq': np.float64(112325134383.65594)                   
                                                       },                                                               
                                                       24: {                                                            
                                                           'sensitivityAllChans': '0.00185 Jy/beam',                    
                                                           'nchanUnflagged': 240,                                       
                                                           'effChanBW': '2403808.59375 Hz',                             
                                                           'sensBW': '468750000.0 Hz',                                  
                                                           'sensfreq': np.float64(115236123061.04382)                   
                                                       }                                                                
                                                   }                                                                    
                                               }                                                                        
                                           },                                                                           
                                           'uid___A002_X1181695_X1c6a4_8ant_targets_line.ms': {                         
                                               'W43-MM1': {                                                             
                                                   'TARGET': {                                                          
                                                       24: {                                                            
                                                           'sensitivityAllChans': '0.00203 Jy/beam',                    
                                                           'nchanUnflagged': 240,                                       
                                                           'effChanBW': '2403808.59375 Hz',                             
                                                           'sensBW': '468750000.0 Hz',                                  
                                                           'sensfreq': np.float64(115236123061.04382)                   
                                                       },                                                               
                                                       16: {                                                            
                                                           'sensitivityAllChans': '0.000278 Jy/beam',                   
                                                           'nchanUnflagged': 120,                                       
                                                           'effChanBW': '41671875.0 Hz',                                
                                                           'sensBW': '2000000000.0 Hz',                                 
                                                           'sensfreq': np.float64(100800007554.40234)                   
                                                       },                                                               
                                                       22: {                                                            
                                                           'sensitivityAllChans': '0.00113 Jy/beam',                    
                                                           'nchanUnflagged': 240,                                       
                                                           'effChanBW': '2403808.59375 Hz',                             
                                                           'sensBW': '468750000.0 Hz',                                  
                                                           'sensfreq': np.float64(112325134383.65594)                   
                                                       }                                                                
                                                   }                                                                    
                                               }                                                                        
                                           }                                                                            
                                       }                                                                                
                        products_dir = '../products'                                                                    
      project_performance_parameters = <pipeline.infrastructure.project.PerformanceParameters object at 0x7a8455aba770> 
                   project_structure = <pipeline.infrastructure.project.ProjectStructure object at 0x7a8455aba740>      
                     project_summary = <pipeline.infrastructure.project.ProjectSummary object at 0x7a8455aba6e0>        
                          report_dir = 'pipeline-procedure_hifa_calimage/html'                                          
                             results = [                                                                                
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455aba7a0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455aba860>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455aba8f0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455aba980>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abaa10>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abaaa0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abab30>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455ababc0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abac50>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abace0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abad70>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abae00>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abae90>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abaf20>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abafb0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb040>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb0d0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb160>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb1f0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb280>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb310>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb3a0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb430>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb4c0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb550>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb5e0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb670>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb700>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb790>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb820>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb8b0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb940>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abb9d0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abba60>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbaf0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbb80>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbc10>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbca0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbd30>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbdc0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbe50>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbee0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a8455abbf70>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a845530c040>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a845530c0d0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a845530c160>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a845530c1f0>,    
                                           <pipeline.infrastructure.basetask.ResultsProxy object at 0x7a845530c280>     
                                       ]                                                                                
                           rmsimlist = <pipeline.infrastructure.imagelibrary.ImageLibrary object at 0x7a8455aba620>     
                           sciimlist = <pipeline.infrastructure.imagelibrary.ImageLibrary object at 0x7a8455aba5c0>     
                   selfcal_resources = ['pipeline-procedure_hifa_calimage.selfcal.json']                                
                     selfcal_targets = []                                                                               
                       sensitivities = []                                                                               
          size_mitigation_parameters = {'status': 'OK'}                                                                 
                               stage = '48_0'                                                                           
                           subimlist = <pipeline.infrastructure.imagelibrary.ImageLibrary object at 0x7a8455aba680>     
                     subtask_counter = 0                                                                                
                   synthesized_beams = {                                                                                
                                           'robust': 0.0,                                                               
                                           'uvtaper': [],                                                               
                                           'W43-MM1': {                                                                 
                                               'TARGET': {                                                              
                                                   '24': {                                                              
                                                       'beam': {                                                        
                                                           'major': {'value': 6.55, 'unit': 'arcsec'},                  
                                                           'minor': {'value': 4.22, 'unit': 'arcsec'},                  
                                                           'positionangle': {                                           
                                                               'unit': 'deg',                                           
                                                               'value': -72.2894058227539                               
                                                           }                                                            
                                                       }                                                                
                                                   }                                                                    
                                               }                                                                        
                                           }                                                                            
                                       }                                                                                
                        task_counter = 48                                                                               
       vla_skip_mfs_and_cube_imaging = False                                                                            
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

A live example of the pipeline context.callibrary object

rinspect(ctx.callibrary)
rinspect(ctx.callibrary.active)
╭──────────── <class 'pipeline.infrastructure.callibrary.IntervalCalLibrary'> ─────────────╮
 CalLibrary is the root object for the pipeline calibration state.                        
                                                                                          
 ╭──────────────────────────────────────────────────────────────────────────────────────╮ 
  <pipeline.infrastructure.callibrary.IntervalCalLibrary object at 0x7a8455a19210>      
 ╰──────────────────────────────────────────────────────────────────────────────────────╯ 
                                                                                          
  active = <pipeline.infrastructure.callibrary.IntervalCalState object at 0x7a8455a19240> 
 applied = <pipeline.infrastructure.callibrary.IntervalCalState object at 0x7a8455ab8130> 
╰──────────────────────────────────────────────────────────────────────────────────────────╯

╭─────────────────────────────────────────────── <class 'pipeline.infrastructure.callibrary.IntervalCalState'> ────────────────────────────────────────────────╮
 CalState is a data structure used to map calibrations for all data                                                                                           
 registered with the pipeline.                                                                                                                                
                                                                                                                                                              
 ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ 
  <pipeline.infrastructure.callibrary.IntervalCalState object at 0x7a8455a19240>                                                                            
 ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 
                                                                                                                                                              
         data = {                                                                                                                                             
                    'uid___A002_X1181695_X1c6a4_8ant.ms': IntervalTree([Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(13, 16,         
                TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16      
                12:07:01.372537, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0,  
                1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8,        
                TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest',                
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True)]))])))]))), Interval(16, 17, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.248675,         
                IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.372537, [])), Interval(7, 8, TSD(2024-12-16 12:07:01.418127,                             
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),                                      
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(17, 18, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.372537,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16           
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',                            
                calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(22, 23, TSD(2024-12-16 12:07:01.248675,     
                IntervalTree([Interval(2, 3, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.395185,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),                                      
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)])), Interval(6, 7, TSD(2024-12-16 12:07:01.349484, []))])))]))),           
                Interval(23, 24, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2,    
                TSD(2024-12-16 12:07:01.395185, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest',                
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True)])), Interval(6, 7, TSD(2024-12-16 12:07:01.349484, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',      
                gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20),     
                caltype='tsys', calwt=True)]))])))]))), Interval(24, 25, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(2, 3, TSD(2024-12-16          
                12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.395185,                                                                 
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),                                      
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)])), Interval(6, 7, TSD(2024-12-16 12:07:01.349484, []))])))]))),           
                Interval(25, 26, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2,    
                TSD(2024-12-16 12:07:01.395185, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest',                
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True)])), Interval(6, 7, TSD(2024-12-16 12:07:01.349484, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',      
                gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20),     
                caltype='tsys', calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 4, TSD(2024-12-16        
                12:07:01.248675, IntervalTree([Interval(0, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(5, 6, TSD(2024-12-16 12:07:01.248675,    
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16     
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))]))),    
                Interval(5, 13, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(5, 6,     
                TSD(2024-12-16 12:07:01.248675, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest',                
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True)])), Interval(7, 8, TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',      
                gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18,    
                20), caltype='tsys', calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(22, 23, TSD(2024-12-16 
                12:07:01.248675, IntervalTree([Interval(4, 6, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(6, 7, TSD(2024-12-16 12:07:01.349484,    
                []))])))]))), Interval(23, 24, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 6, TSD(2024-12-16 12:07:01.248675,                   
                IntervalTree([Interval(6, 7, TSD(2024-12-16 12:07:01.349484, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',        
                gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20),     
                caltype='tsys', calwt=True)]))])))]))), Interval(24, 25, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 6, TSD(2024-12-16          
                12:07:01.248675, IntervalTree([Interval(6, 7, TSD(2024-12-16 12:07:01.349484, []))])))]))), Interval(25, 26, TSD(2024-12-16 12:07:01.248675,  
                IntervalTree([Interval(4, 6, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(6, 7, TSD(2024-12-16 12:07:01.349484,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))])))]))), Interval(0, 8,              
                TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(22, 23, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16    
                12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.372537, [])), Interval(7, 8, TSD(2024-12-16 12:07:01.418127,            
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),                                      
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(23, 24, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.372537,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16           
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))]))),    
                Interval(24, 25, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4,    
                TSD(2024-12-16 12:07:01.372537, [])), Interval(7, 8, TSD(2024-12-16 12:07:01.418127,                                                          
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),                                      
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(25, 26, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.372537,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16           
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',                            
                calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.248675,       
                IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.326789,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(5, 6, TSD(2024-12-16           
                12:07:01.248675, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])),            
                Interval(7, 8, TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', 
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(22, 23, TSD(2024-12-16 12:07:01.248675,     
                IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.326789, [])), Interval(7,   
                8, TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest',             
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest',         
                spwmap=(), caltype='wvr', calwt=False),                                                                                                       
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl', gainfield='',                        
                interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                                 
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(23, 24, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.326789,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16           
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))]))),    
                Interval(24, 25, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5,    
                TSD(2024-12-16 12:07:01.326789, [])), Interval(7, 8, TSD(2024-12-16 12:07:01.418127,                                                          
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),                                      
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(25, 26, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.326789,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16           
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',                            
                calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.248675,       
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.304590,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='J1924-2914', interp='linear,linear', spwmap=(0, 1, 2, 3, 
                4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(1, 2, TSD(2024-12-16  
                12:07:01.395185, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])),            
                Interval(2, 3, TSD(2024-12-16 12:07:01.282604, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',                      
                gainfield='J1924-2914', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 
                20), caltype='tsys', calwt=True)])), Interval(5, 6, TSD(2024-12-16 12:07:01.248675,                                                           
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16     
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',                            
                calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.248675,       
                IntervalTree([Interval(4, 6, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(6, 7, TSD(2024-12-16 12:07:01.349484,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))])))]))), Interval(0, 8,              
                TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(13, 16, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16    
                12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.304590,                                                                 
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='J1924-2914', interp='linear,linear', spwmap=(0, 1, 2, 3, 
                4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(1, 2, TSD(2024-12-16  
                12:07:01.395185, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])),            
                Interval(2, 3, TSD(2024-12-16 12:07:01.282604, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',                      
                gainfield='J1924-2914', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 
                20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16 12:07:01.418127,                                                           
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))]))), Interval(16, 17,          
                TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16      
                12:07:01.304590, [])), Interval(1, 2, TSD(2024-12-16 12:07:01.395185,                                                                         
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),                                      
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)])), Interval(2, 3, TSD(2024-12-16 12:07:01.282604, [])), Interval(7, 8,    
                TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest',                
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest',         
                spwmap=(), caltype='wvr', calwt=False),                                                                                                       
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl', gainfield='',                        
                interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                                 
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(17, 18, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.304590,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='J1924-2914', interp='linear,linear', spwmap=(0, 1, 2, 3, 
                4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(1, 2, TSD(2024-12-16  
                12:07:01.395185, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])),            
                Interval(2, 3, TSD(2024-12-16 12:07:01.282604, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',                      
                gainfield='J1924-2914', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 
                20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16 12:07:01.418127,                                                           
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))])))]))), Interval(0, 8,        
                TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(13, 16, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16    
                12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.326789,                                                                 
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16           
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))]))),    
                Interval(16, 17, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5,    
                TSD(2024-12-16 12:07:01.326789, [])), Interval(7, 8, TSD(2024-12-16 12:07:01.418127,                                                          
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),                                      
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(17, 18, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.326789,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16           
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',                            
                calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(13, 16, TSD(2024-12-16 12:07:01.248675,     
                IntervalTree([Interval(4, 6, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(6, 7, TSD(2024-12-16 12:07:01.349484,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))]))), Interval(16, 17, TSD(2024-12-16 
                12:07:01.248675, IntervalTree([Interval(4, 6, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(6, 7, TSD(2024-12-16 12:07:01.349484,    
                []))])))]))), Interval(17, 18, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 6, TSD(2024-12-16 12:07:01.248675,                   
                IntervalTree([Interval(6, 7, TSD(2024-12-16 12:07:01.349484, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',        
                gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20),     
                caltype='tsys', calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(13, 16, TSD(2024-12-16      
                12:07:01.248675, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.395185,    
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(6, 7, TSD(2024-12-16     
                12:07:01.349484, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0,  
                1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))]))), Interval(16,  
                17, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16  
                12:07:01.395185, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True),               
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest', spwmap=(),           
                caltype='wvr', calwt=False), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl',         
                gainfield='', interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                   
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)])), Interval(6, 7, TSD(2024-12-16 12:07:01.349484, []))])))]))),           
                Interval(17, 18, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2,    
                TSD(2024-12-16 12:07:01.395185, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest',                
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True)])), Interval(6, 7, TSD(2024-12-16 12:07:01.349484, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl',      
                gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20),     
                caltype='tsys', calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(18, 22, TSD(2024-12-16      
                12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.395185,    
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))]))), Interval(2, 3, TSD(2024-12-16 
                12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.395185,                                                                 
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))])))]))), Interval(0, 8,        
                TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(22, 23, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16    
                12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.304590, [])), Interval(2, 3, TSD(2024-12-16 12:07:01.282604, [])),      
                Interval(7, 8, TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', 
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest',         
                spwmap=(), caltype='wvr', calwt=False),                                                                                                       
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl', gainfield='',                        
                interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                                 
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(23, 24, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.304590,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='J1924-2914', interp='linear,linear', spwmap=(0, 1, 2, 3, 
                4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(2, 3, TSD(2024-12-16  
                12:07:01.282604, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='J1924-2914', interp='linear,linear',    
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])),            
                Interval(7, 8, TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', 
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True)]))])))]))), Interval(24, 25, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.248675,         
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.304590, [])), Interval(2, 3, TSD(2024-12-16 12:07:01.282604, [])), Interval(7, 8,        
                TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest',                
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True), CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_wvrgcalflag.s10_4.sm6_048s.wvrcal.tbl', gainfield='', interp='nearest',         
                spwmap=(), caltype='wvr', calwt=False),                                                                                                       
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.channel.solintinf.bcal.tbl', gainfield='',                        
                interp='linearperobs,linearflag', spwmap=(), caltype='bandpass', calwt=True),                                                                 
                CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_spwphaseup.s15_4.spw16_22_24.solintinf.gpcal.tbl', gainfield='nearest',                      
                interp='linear,linear', spwmap=(), caltype='gaincal', calwt=False)]))])))]))), Interval(25, 26, TSD(2024-12-16 12:07:01.248675,               
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:07:01.304590,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='J1924-2914', interp='linear,linear', spwmap=(0, 1, 2, 3, 
                4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(2, 3, TSD(2024-12-16  
                12:07:01.282604, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='J1924-2914', interp='linear,linear',    
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])),            
                Interval(7, 8, TSD(2024-12-16 12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', 
                interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',    
                calwt=True)]))])))])))]))), Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.248675,       
                IntervalTree([Interval(2, 3, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(1, 2, TSD(2024-12-16 12:07:01.395185,                     
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 
                5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(6, 7, TSD(2024-12-16     
                12:07:01.349484, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0,  
                1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)]))])))])))]))),           
                Interval(0, 8, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(4, 5, TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4,      
                TSD(2024-12-16 12:07:01.248675, IntervalTree([Interval(3, 4, TSD(2024-12-16 12:07:01.372537,                                                  
                [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='2', interp='linear,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 
                7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys', calwt=True)])), Interval(7, 8, TSD(2024-12-16           
                12:07:01.418127, [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.h_tsyscal.s6_1.tsyscal.tbl', gainfield='nearest', interp='linear,linear',       
                spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 11, 12, 16, 18, 20, 16, 16, 18, 18, 20, 20, 18, 18, 20), caltype='tsys',                            
                calwt=True)]))])))])))])))]),                                                                                                                 
                    'uid___A002_X1181695_X1c6a4_8ant_targets.ms': IntervalTree([Interval(0, 8, TSD(2024-12-16 12:16:30.488840, IntervalTree([Interval(16, 17, 
                TSD(2024-12-16 12:16:30.488840, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:16:30.488840, IntervalTree([Interval(0, 1, TSD(2024-12-16      
                12:16:30.488840, []))]))), Interval(4, 6, TSD(2024-12-16 12:16:30.488840, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:16:30.488840,        
                []))])))]))), Interval(22, 23, TSD(2024-12-16 12:16:30.488840, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:16:30.488840,                   
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:16:30.488840, []))]))), Interval(4, 6, TSD(2024-12-16 12:16:30.488840,                         
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:16:30.488840, []))])))]))), Interval(24, 25, TSD(2024-12-16 12:16:30.488840,                   
                IntervalTree([Interval(2, 3, TSD(2024-12-16 12:16:30.488840, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:16:30.488840, []))]))),           
                Interval(4, 6, TSD(2024-12-16 12:16:30.488840, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:16:30.488840, []))])))])))])))]),               
                    'uid___A002_X1181695_X1c6a4_8ant_targets_line.ms': IntervalTree([Interval(0, 8, TSD(2024-12-16 12:18:02.148673,                           
                IntervalTree([Interval(16, 17, TSD(2024-12-16 12:18:02.148673, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:18:02.148673,                   
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:18:02.148673, []))]))), Interval(4, 6, TSD(2024-12-16 12:18:02.148673,                         
                IntervalTree([Interval(0, 1, TSD(2024-12-16 12:18:02.148673, []))])))]))), Interval(22, 23, TSD(2024-12-16 12:18:02.148673,                   
                IntervalTree([Interval(2, 3, TSD(2024-12-16 12:18:02.148673, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:18:02.148673, []))]))),           
                Interval(4, 6, TSD(2024-12-16 12:18:02.148673, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:18:02.148673, []))])))]))), Interval(24, 25,    
                TSD(2024-12-16 12:18:02.148673, IntervalTree([Interval(2, 3, TSD(2024-12-16 12:18:02.148673, IntervalTree([Interval(0, 1, TSD(2024-12-16      
                12:18:02.148673, []))]))), Interval(4, 6, TSD(2024-12-16 12:18:02.148673, IntervalTree([Interval(0, 1, TSD(2024-12-16 12:18:02.148673,        
                []))])))])))])))])                                                                                                                            
                }                                                                                                                                             
  id_to_field = {                                                                                                                                             
                    'uid___A002_X1181695_X1c6a4_8ant.ms': {0: 'J1924-2914', 1: 'J1851+0035', 2: 'W43-MM1', 3: 'J1857-0048', 4: 'W43-MM1', 5: 'W43-MM1'},      
                    'uid___A002_X1181695_X1c6a4_8ant_targets.ms': {2: 'W43-MM1', 4: 'W43-MM1', 5: 'W43-MM1'},                                                 
                    'uid___A002_X1181695_X1c6a4_8ant_targets_line.ms': {2: 'W43-MM1', 4: 'W43-MM1', 5: 'W43-MM1'}                                             
                }                                                                                                                                             
 id_to_intent = {                                                                                                                                             
                    'uid___A002_X1181695_X1c6a4_8ant.ms': {                                                                                                   
                        0: 'AMPLITUDE',                                                                                                                       
                        1: 'ATMOSPHERE',                                                                                                                      
                        2: 'BANDPASS',                                                                                                                        
                        3: 'CHECK',                                                                                                                           
                        4: 'PHASE',                                                                                                                           
                        5: 'POINTING',                                                                                                                        
                        6: 'TARGET',                                                                                                                          
                        7: 'WVR'                                                                                                                              
                    },                                                                                                                                        
                    'uid___A002_X1181695_X1c6a4_8ant_targets.ms': {0: 'TARGET'},                                                                              
                    'uid___A002_X1181695_X1c6a4_8ant_targets_line.ms': {0: 'TARGET'}                                                                          
                }                                                                                                                                             
        shape = {                                                                                                                                             
                    'uid___A002_X1181695_X1c6a4_8ant.ms': (                                                                                                   
                        (                                                                                                                                     
                            (                                                                                                                                 
                                ((np.int64(0), np.int64(8)),),                                                                                                
                                (                                                                                                                             
                                    (((0, 4), (5, 13)), ((((0, 2),), ((5, 6), (7, 8))),)),                                                                    
                                    (                                                                                                                         
                                        ((4, 5),),                                                                                                            
                                        (                                                                                                                     
                                            (((0, 1),), ((0, 3), (5, 6), (7, 8), (7, 8))),                                                                    
                                            (((1, 2),), ((4, 5), (4, 6), (7, 8), (7, 8), (7, 8))),                                                            
                                            (((2, 3),), ((1, 2), (6, 7))),                                                                                    
                                            (((3, 4),), ((3, 4), (7, 8))),                                                                                    
                                            (((4, 6),), ((6, 7),))                                                                                            
                                        )                                                                                                                     
                                    ),                                                                                                                        
                                    (                                                                                                                         
                                        ((13, 18),),                                                                                                          
                                        (                                                                                                                     
                                            (((0, 1),), ((0, 3), (7, 8))),                                                                                    
                                            (((1, 2),), ((4, 5), (4, 5), (7, 8), (7, 8))),                                                                    
                                            (((2, 3),), ((1, 2), (6, 7))),                                                                                    
                                            (((3, 4),), ((3, 4), (7, 8))),                                                                                    
                                            (((4, 6),), ((6, 7),))                                                                                            
                                        )                                                                                                                     
                                    ),                                                                                                                        
                                    (((18, 22),), ((((0, 1), (2, 3)), ((1, 2),)),)),                                                                          
                                    (                                                                                                                         
                                        ((22, 26),),                                                                                                          
                                        (                                                                                                                     
                                            (((0, 1),), ((0, 1), (2, 3), (7, 8))),                                                                            
                                            (((1, 2),), ((4, 5), (4, 5), (7, 8), (7, 8))),                                                                    
                                            (((2, 3),), ((1, 2), (6, 7))),                                                                                    
                                            (((3, 4),), ((3, 4), (7, 8))),                                                                                    
                                            (((4, 6),), ((6, 7),))                                                                                            
                                        )                                                                                                                     
                                    )                                                                                                                         
                                )                                                                                                                             
                            ),                                                                                                                                
                        ),                                                                                                                                    
                    ),                                                                                                                                        
                    'uid___A002_X1181695_X1c6a4_8ant_targets.ms': (                                                                                           
                        (                                                                                                                                     
                            (                                                                                                                                 
                                ((np.int64(0), np.int64(8)),),                                                                                                
                                ((((0, 16), (17, 22), (23, 24), (25, 26)), ()), (((16, 17), (22, 23), (24, 25)), ((((2, 3), (4, 6)), ((0, 1),)),)))           
                            ),                                                                                                                                
                        ),                                                                                                                                    
                    ),                                                                                                                                        
                    'uid___A002_X1181695_X1c6a4_8ant_targets_line.ms': (                                                                                      
                        (                                                                                                                                     
                            (                                                                                                                                 
                                ((np.int64(0), np.int64(8)),),                                                                                                
                                ((((0, 16), (17, 22), (23, 24), (25, 26)), ()), (((16, 17), (22, 23), (24, 25)), ((((2, 3), (4, 6)), ((0, 1),)),)))           
                            ),                                                                                                                                
                        ),                                                                                                                                    
                    )                                                                                                                                         
                }                                                                                                                                             
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

A live example of the context.calimlist attribute.

rinspect(ctx.calimlist)
╭────────── <class 'pipeline.infrastructure.imagelibrary.ImageLibrary'> ───────────╮
 ╭──────────────────────────────────────────────────────────────────────────────╮ 
  <pipeline.infrastructure.imagelibrary.ImageLibrary object at 0x7a8455aba560>  
 ╰──────────────────────────────────────────────────────────────────────────────╯ 
                                                                                  
 27 attribute(s) not shown. Run inspect(inspect) for options.                     
╰──────────────────────────────────────────────────────────────────────────────────╯

A live example of the context.project_summary and context.project_performance_parameters attributes

An pipeline ObservingRun object) and attached the pipeline MeasurementSet instances

rinspect(ctx.project_summary)
rinspect(ctx.project_performance_parameters)
╭────────── <class 'pipeline.infrastructure.project.ProjectSummary'> ───────────╮
 ╭───────────────────────────────────────────────────────────────────────────╮ 
  <pipeline.infrastructure.project.ProjectSummary object at 0x7a8455aba6e0>  
 ╰───────────────────────────────────────────────────────────────────────────╯ 
                                                                               
    observatory = 'ALMA Joint Observatory'                                     
         piname = 'undefined'                                                  
  proposal_code = ''                                                           
 proposal_title = 'undefined'                                                  
      telescope = 'ALMA'                                                       
╰───────────────────────────────────────────────────────────────────────────────╯

╭────────── <class 'pipeline.infrastructure.project.PerformanceParameters'> ───────────╮
 ╭──────────────────────────────────────────────────────────────────────────────────╮ 
  <pipeline.infrastructure.project.PerformanceParameters object at 0x7a8455aba770>  
 ╰──────────────────────────────────────────────────────────────────────────────────╯ 
                                                                                      
 desired_angular_resolution = '0.0arcsec'                                             
      desired_dynamic_range = 1.0                                                     
        desired_sensitivity = '0.0mJy'                                                
     max_angular_resolution = '0.0arcsec'                                             
              max_cube_size = -1.0                                                    
           max_product_size = -1.0                                                    
     min_angular_resolution = '0.0arcsec'                                             
   representative_bandwidth = '0.0MHz'                                                
   representative_frequency = '0.0GHz'                                                
      representative_source = ''                                                      
       representative_spwid = ''                                                      
╰──────────────────────────────────────────────────────────────────────────────────────╯

A live example of the Context.observing_run attribute

An pipeline ObservingRun object) and attached the pipeline MeasurementSet instances

rinspect(ctx.observing_run)
╭───────────────────────────────── <class 'pipeline.domain.observingrun.ObservingRun'> ─────────────────────────────────╮
 ObservingRun is a logical representation of an observing run.                                                         
                                                                                                                       
 ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ 
  <pipeline.domain.observingrun.ObservingRun object at 0x7a8455f86f80>                                               
 ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 
                                                                                                                       
                   end_datetime = datetime.datetime(2024, 6, 1, 10, 0, 34, 80000)                                      
                       end_time = {'m0': {'unit': 'd', 'value': 60462.41706111111}, 'refer': 'UTC', 'type': 'epoch'}   
                  execblock_ids = {'uid://A002/X1181695/X1c6a4'}                                                       
               measurement_sets = [                                                                                    
                                      <pipeline.domain.measurementset.MeasurementSet object at 0x7a8455f86ec0>,        
                                      <pipeline.domain.measurementset.MeasurementSet object at 0x7a8455b56f80>,        
                                      <pipeline.domain.measurementset.MeasurementSet object at 0x7a8455baa0b0>         
                                  ]                                                                                    
                      observers = {'dmuders'}                                                                          
                 org_directions = {}                                                                                   
                    project_ids = {'uid://A001/X3645/X2c8'}                                                            
                 schedblock_ids = {'uid://A001/X3734/X1'}                                                              
                 start_datetime = datetime.datetime(2024, 6, 1, 9, 42, 19, 7999)                                       
                     start_time = {'m0': {'unit': 'd', 'value': 60462.404386666654}, 'refer': 'UTC', 'type': 'epoch'}  
        virtual_science_spw_ids = {                                                                                    
                                      16: 'X803018835#ALMA_RB_03#BB_1#SW-01#FULL_RES',                                 
                                      22: 'X803018835#ALMA_RB_03#BB_3#SW-01#FULL_RES',                                 
                                      24: 'X803018835#ALMA_RB_03#BB_4#SW-01#FULL_RES'                                  
                                  }                                                                                    
      virtual_science_spw_names = {                                                                                    
                                      'X803018835#ALMA_RB_03#BB_1#SW-01#FULL_RES': 16,                                 
                                      'X803018835#ALMA_RB_03#BB_3#SW-01#FULL_RES': 22,                                 
                                      'X803018835#ALMA_RB_03#BB_4#SW-01#FULL_RES': 24                                  
                                  }                                                                                    
 virtual_science_spw_shortnames = {                                                                                    
                                      'X803018835#ALMA_RB_03#BB_1#SW-01#FULL_RES': 'X803018835#ALMA_RB_03#BB_1#SW-01', 
                                      'X803018835#ALMA_RB_03#BB_3#SW-01#FULL_RES': 'X803018835#ALMA_RB_03#BB_3#SW-01', 
                                      'X803018835#ALMA_RB_03#BB_4#SW-01#FULL_RES': 'X803018835#ALMA_RB_03#BB_4#SW-01'  
                                  }                                                                                    
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

A live example of the Context.observing_run.measurement_sets attribute

rinspect(ctx.observing_run.measurement_sets[0])
╭────────────────────────────────────────────────── <class 'pipeline.domain.measurementset.MeasurementSet'> ───────────────────────────────────────────────────╮
 A class to store logical representation of a MeasurementSet (MS).                                                                                            
                                                                                                                                                              
 ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ 
  <pipeline.domain.measurementset.MeasurementSet object at 0x7a8455f86ec0>                                                                                  
 ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 
                                                                                                                                                              
      acs_software_build_version = np.str_('ONLINE-CYCLE10-B-34-2024-04-17-05-00-00')                                                                         
            acs_software_version = np.str_('28ab550e9d')                                                                                                      
                   antenna_array = AntennaArray('ALMA', {'m0': {'unit': 'rad', 'value': -1.1825465955049892}, 'm1': {'unit': 'rad', 'value':                  
                                   -0.4018251640113072}, 'm2': {'unit': 'm', 'value': 5056.8}, 'refer': 'WGS84', 'type': 'position'}, [Antenna(0, 'DA44',     
                                   'A016', {'m0': {'unit': 'rad', 'value': -1.1825402214702907},                                                              
                                    'm1': {'unit': 'rad', 'value': -0.3995113137730897},                                                                      
                                    'm2': {'unit': 'm', 'value': 6379967.801757582},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.788493152707815},                                     
                                    'latitude offset': {'unit': 'm', 'value': -614.5600823132759},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 37.465121768181035}}, 12.0), Antenna(1, 'DA47', 'A022', {'m0': {'unit': 'rad', 
                                   'value': -1.1825441388871247},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.39951426249656624},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.955823233},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.942558803595603},                                     
                                    'latitude offset': {'unit': 'm', 'value': -633.372778901768},                                                             
                                    'longitude offset': {'unit': 'm', 'value': 14.43943934785861}}, 12.0), Antenna(2, 'DA49', 'A066', {'m0': {'unit': 'rad',  
                                   'value': -1.1825460178787135},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.3995086132371053},                                                                      
                                    'm2': {'unit': 'm', 'value': 6379967.839273395},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.82600896526128},                                      
                                    'latitude offset': {'unit': 'm', 'value': -597.3308085259889},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 3.395155467334773}}, 12.0), Antenna(3, 'DA51', 'A035', {'m0': {'unit': 'rad',  
                                   'value': -1.1825411449336403},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.39952577228957076},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.779121529},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.765857099555433},                                     
                                    'latitude offset': {'unit': 'm', 'value': -706.804636894429},                                                             
                                    'longitude offset': {'unit': 'm', 'value': 32.03721488086314}}, 12.0), Antenna(4, 'DA52', 'A015', {'m0': {'unit': 'rad',  
                                   'value': -1.1825348860449134},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.39951532981522786},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.54096216},                                                                           
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.527697729878128},                                     
                                    'latitude offset': {'unit': 'm', 'value': -640.1822143418427},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 68.82553489742125}}, 12.0), Antenna(5, 'DA60', 'A023', {'m0': {'unit': 'rad',  
                                   'value': -1.1825468192995532},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.39951658913060933},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379968.114368323},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 22.101103893481195},                                     
                                    'latitude offset': {'unit': 'm', 'value': -648.2165784893228},                                                            
                                    'longitude offset': {'unit': 'm', 'value': -1.3154133900428462}}, 12.0), Antenna(6, 'DV02', 'A024', {'m0': {'unit':       
                                   'rad', 'value': -1.1825493850724735},                                                                                      
                                    'm1': {'unit': 'rad', 'value': -0.39951926818627337},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.569641804},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.55637737456709},                                      
                                    'latitude offset': {'unit': 'm', 'value': -665.3088089923924},                                                            
                                    'longitude offset': {'unit': 'm', 'value': -16.396441253450455}}, 12.0), Antenna(7, 'DV17', 'A008', {'m0': {'unit':       
                                   'rad', 'value': -1.1825351016515624},                                                                                      
                                    'm1': {'unit': 'rad', 'value': -0.39951964088858827},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379966.97372402},                                                                           
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 20.96045958995819},                                      
                                    'latitude offset': {'unit': 'm', 'value': -667.6866296404678},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 67.5582482038097}}, 12.0)])                                                    
                        antennas = [                                                                                                                          
                                       Antenna(0, 'DA44', 'A016', {'m0': {'unit': 'rad', 'value': -1.1825402214702907},                                       
                                    'm1': {'unit': 'rad', 'value': -0.3995113137730897},                                                                      
                                    'm2': {'unit': 'm', 'value': 6379967.801757582},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.788493152707815},                                     
                                    'latitude offset': {'unit': 'm', 'value': -614.5600823132759},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 37.465121768181035}}, 12.0),                                                   
                                       Antenna(1, 'DA47', 'A022', {'m0': {'unit': 'rad', 'value': -1.1825441388871247},                                       
                                    'm1': {'unit': 'rad', 'value': -0.39951426249656624},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.955823233},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.942558803595603},                                     
                                    'latitude offset': {'unit': 'm', 'value': -633.372778901768},                                                             
                                    'longitude offset': {'unit': 'm', 'value': 14.43943934785861}}, 12.0),                                                    
                                       Antenna(2, 'DA49', 'A066', {'m0': {'unit': 'rad', 'value': -1.1825460178787135},                                       
                                    'm1': {'unit': 'rad', 'value': -0.3995086132371053},                                                                      
                                    'm2': {'unit': 'm', 'value': 6379967.839273395},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.82600896526128},                                      
                                    'latitude offset': {'unit': 'm', 'value': -597.3308085259889},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 3.395155467334773}}, 12.0),                                                    
                                       Antenna(3, 'DA51', 'A035', {'m0': {'unit': 'rad', 'value': -1.1825411449336403},                                       
                                    'm1': {'unit': 'rad', 'value': -0.39952577228957076},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.779121529},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.765857099555433},                                     
                                    'latitude offset': {'unit': 'm', 'value': -706.804636894429},                                                             
                                    'longitude offset': {'unit': 'm', 'value': 32.03721488086314}}, 12.0),                                                    
                                       Antenna(4, 'DA52', 'A015', {'m0': {'unit': 'rad', 'value': -1.1825348860449134},                                       
                                    'm1': {'unit': 'rad', 'value': -0.39951532981522786},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.54096216},                                                                           
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.527697729878128},                                     
                                    'latitude offset': {'unit': 'm', 'value': -640.1822143418427},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 68.82553489742125}}, 12.0),                                                    
                                       Antenna(5, 'DA60', 'A023', {'m0': {'unit': 'rad', 'value': -1.1825468192995532},                                       
                                    'm1': {'unit': 'rad', 'value': -0.39951658913060933},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379968.114368323},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 22.101103893481195},                                     
                                    'latitude offset': {'unit': 'm', 'value': -648.2165784893228},                                                            
                                    'longitude offset': {'unit': 'm', 'value': -1.3154133900428462}}, 12.0),                                                  
                                       Antenna(6, 'DV02', 'A024', {'m0': {'unit': 'rad', 'value': -1.1825493850724735},                                       
                                    'm1': {'unit': 'rad', 'value': -0.39951926818627337},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.569641804},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.55637737456709},                                      
                                    'latitude offset': {'unit': 'm', 'value': -665.3088089923924},                                                            
                                    'longitude offset': {'unit': 'm', 'value': -16.396441253450455}}, 12.0),                                                  
                                       Antenna(7, 'DV17', 'A008', {'m0': {'unit': 'rad', 'value': -1.1825351016515624},                                       
                                    'm1': {'unit': 'rad', 'value': -0.39951964088858827},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379966.97372402},                                                                           
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 20.96045958995819},                                      
                                    'latitude offset': {'unit': 'm', 'value': -667.6866296404678},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 67.5582482038097}}, 12.0)                                                      
                                   ]                                                                                                                          
                      array_name = np.str_('C43-2')                                                                                                           
                        basename = 'uid___A002_X1181695_X1c6a4_8ant.ms'                                                                                       
                 correlator_name = 'ALMA_BASELINE'                                                                                                            
                     data_column = {<DataType.RAW: 1>: 'DATA', <DataType.REGCAL_CONTLINE_ALL: 2>: 'CORRECTED_DATA'}                                           
               data_descriptions = <pipeline.infrastructure.tablereader.RetrieveByIndexContainer object at 0x7a8455fab250>                                    
   data_types_per_source_and_spw = {                                                                                                                          
                                       ('J1924-2914', 0): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 1): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 2): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 3): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 4): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 5): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 6): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 7): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 8): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 9): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1924-2914', 10): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 11): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 12): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 13): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 14): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 15): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 16): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 17): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 18): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 19): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 20): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 21): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 22): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 23): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 24): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1924-2914', 25): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 0): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 1): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 2): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 3): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 4): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 5): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 6): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 7): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 8): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 9): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1851+0035', 10): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 11): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 12): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 13): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 14): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 15): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 16): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 17): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 18): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 19): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 20): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 21): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 22): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 23): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 24): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1851+0035', 25): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('W43-MM1', 0): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 1): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 2): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 3): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 4): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 5): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 6): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 7): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 8): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 9): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                                
                                       ('W43-MM1', 10): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 11): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 12): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 13): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 14): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 15): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 16): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 17): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 18): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 19): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 20): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 21): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 22): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 23): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 24): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('W43-MM1', 25): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                               
                                       ('J1857-0048', 0): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 1): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 2): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 3): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 4): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 5): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 6): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 7): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 8): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 9): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                             
                                       ('J1857-0048', 10): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 11): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 12): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 13): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 14): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 15): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 16): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 17): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 18): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 19): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 20): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 21): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 22): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 23): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 24): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>],                                            
                                       ('J1857-0048', 25): [<DataType.RAW: 1>, <DataType.REGCAL_CONTLINE_ALL: 2>]                                             
                                   }                                                                                                                          
                  derived_fluxes = defaultdict(<class 'list'>, {                                                                                              
                                       '3': [                                                                                                                 
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b55b70>,                                        
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b55cf0>,                                        
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b55db0>                                         
                                       ],                                                                                                                     
                                       '1': [                                                                                                                 
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b55e70>,                                        
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b55f30>,                                        
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b55ff0>                                         
                                       ]                                                                                                                      
                                   })                                                                                                                         
                        end_time = {'m0': {'unit': 'd', 'value': 60462.41706111111}, 'refer': 'UTC', 'type': 'epoch'}                                         
               exclude_num_chans = (1, 4)                                                                                                                     
                    execblock_id = 'uid://A002/X1181695/X1c6a4'                                                                                               
                          fields = <pipeline.infrastructure.tablereader.RetrieveByIndexContainer object at 0x7a8455b197b0>                                    
                        filesize = FileSize(220143514, FileSizeUnits.BYTES)                                                                                   
                        flagcmds = []                                                                                                                         
                fluxscale_fluxes = defaultdict(<class 'list'>, {                                                                                              
                                       '1': [                                                                                                                 
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b560e0>,                                        
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b562c0>,                                        
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b564a0>                                         
                                       ],                                                                                                                     
                                       '3': [                                                                                                                 
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b56680>,                                        
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b56860>,                                        
                                           <pipeline.domain.fluxmeasurement.FluxMeasurement object at 0x7a8455b56a40>                                         
                                       ]                                                                                                                      
                                   })                                                                                                                         
                         intents = {'ATMOSPHERE', 'BANDPASS', 'AMPLITUDE', 'CHECK', 'POINTING', 'WVR', 'PHASE', 'TARGET'}                                     
                 is_band_to_band = False                                                                                                                      
                            name = 'uid___A002_X1181695_X1c6a4_8ant.ms'                                                                                       
                        observer = 'dmuders'                                                                                                                  
                 observing_modes = [np.str_('Standard Interferometry')]                                                                                       
                       origin_ms = 'uid___A002_X1181695_X1c6a4_8ant.ms'                                                                                       
 phase_calapps_for_check_sources = [                                                                                                                          
                                       CalApplication(CalTo(vis='uid___A002_X1181695_X1c6a4_8ant.ms', field='J1857-0048', spw='16,22,24',                     
                                   antenna='',intent='CHECK'),                                                                                                
                                   [CalFrom('uid___A002_X1181695_X1c6a4_8ant.ms.hifa_gfluxscale.s17_4.spw16_22_24.solint15_120s.gpcal.tbl',                   
                                   gainfield='nearest', interp='linearPD,linear', spwmap=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,   
                                   19, 20, 21, 16, 23, 16), caltype='gaincal', calwt=False)])                                                                 
                                   ]                                                                                                                          
                phasecal_mapping = {'J1851+0035': {'W43-MM1', 'J1857-0048'}}                                                                                  
  phaseup_caltable_for_phase_rms = ['uid___A002_X1181695_X1c6a4_8ant.ms.hifa_bandpass.s14_3.spw16_22_24.solintint.gpcal.tbl']                                 
                   polarizations = [                                                                                                                          
                                       Polarization(0, 2, array([ 9, 12]), array([[0, 1],                                                                     
                                          [0, 1]])),                                                                                                          
                                       Polarization(1, 1, array([9]), array([[0],                                                                             
                                          [0]]))                                                                                                              
                                   ]                                                                                                                          
                      project_id = 'uid://A001/X3645/X2c8'                                                                                                    
               reference_antenna = 'DA47,DA60,DA44,DV02,DA52,DV17,DA49,DA51'                                                                                  
        reference_antenna_locked = False                                                                                                                      
                reference_spwmap = [-1]                                                                                                                       
           representative_target = ('W43-MM1', {'unit': 'GHz', 'value': 115.2425426446109}, {'unit': 'MHz', 'value': 15.625})                                 
           representative_window = 'X803018835#ALMA_RB_03#BB_4#SW-01#FULL_RES'                                                                                
                           scans = [                                                                                                                          
                                       Scan(id=1, antennas=[Antenna(0, 'DA44', 'A016', {'m0': {'unit': 'rad', 'value': -1.1825402214702907},                  
                                    'm1': {'unit': 'rad', 'value': -0.3995113137730897},                                                                      
                                    'm2': {'unit': 'm', 'value': 6379967.801757582},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.788493152707815},                                     
                                    'latitude offset': {'unit': 'm', 'value': -614.5600823132759},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 37.465121768181035}}, 12.0), Antenna(1, 'DA47', 'A022', {'m0': {'unit': 'rad', 
                                   'value': -1.1825441388871247},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.39951426249656624},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.955823233},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.942558803595603},                                     
                                    'latitude offset': {'unit': 'm', 'value': -633.372778901768},                                                             
                                    'longitude offset': {'unit': 'm', 'value': 14.43943934785861}}, 12.0), Antenna(2, 'DA49', 'A066', {'m0': {'unit': 'rad',  
                                   'value': -1.1825460178787135},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.3995086132371053},                                                                      
                                    'm2': {'unit': 'm', 'value': 6379967.839273395},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.82600896526128},                                      
                                    'latitude offset': {'unit': 'm', 'value': -597.3308085259889},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 3.395155467334773}}, 12.0), Antenna(3, 'DA51', 'A035', {'m0': {'unit': 'rad',  
                                   'value': -1.1825411449336403},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.39952577228957076},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.779121529},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.765857099555433},                                     
                                    'latitude offset': {'unit': 'm', 'value': -706.804636894429},                                                             
                                    'longitude offset': {'unit': 'm', 'value': 32.03721488086314}}, 12.0), Antenna(4, 'DA52', 'A015', {'m0': {'unit': 'rad',  
                                   'value': -1.1825348860449134},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.39951532981522786},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.54096216},                                                                           
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.527697729878128},                                     
                                    'latitude offset': {'unit': 'm', 'value': -640.1822143418427},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 68.82553489742125}}, 12.0), Antenna(5, 'DA60', 'A023', {'m0': {'unit': 'rad',  
                                   'value': -1.1825468192995532},                                                                                             
                                    'm1': {'unit': 'rad', 'value': -0.39951658913060933},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379968.114368323},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 22.101103893481195},                                     
                                    'latitude offset': {'unit': 'm', 'value': -648.2165784893228},                                                            
                                    'longitude offset': {'unit': 'm', 'value': -1.3154133900428462}}, 12.0), Antenna(6, 'DV02', 'A024', {'m0': {'unit':       
                                   'rad', 'value': -1.1825493850724735},                                                                                      
                                    'm1': {'unit': 'rad', 'value': -0.39951926818627337},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379967.569641804},                                                                          
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 21.55637737456709},                                      
                                    'latitude offset': {'unit': 'm', 'value': -665.3088089923924},                                                            
                                    'longitude offset': {'unit': 'm', 'value': -16.396441253450455}}, 12.0), Antenna(7, 'DV17', 'A008', {'m0': {'unit':       
                                   'rad', 'value': -1.1825351016515624},                                                                                      
                                    'm1': {'unit': 'rad', 'value': -0.39951964088858827},                                                                     
                                    'm2': {'unit': 'm', 'value': 6379966.97372402},                                                                           
                                    'refer': 'ITRF',                                                                                                          
                                    'type': 'position'}, {'elevation offset': {'unit': 'm', 'value': 20.96045958995819},                                      
                                    'latitude offset': {'unit': 'm', 'value': -667.6866296404678},                                                            
                                    'longitude offset': {'unit': 'm', 'value': 67.5582482038097}}, 12.0)], intents=['POINTING', 'WVR'], fields=[Field(0,      
                                   'J1924-2914', 0, numpy.array([5223951739.584, 5223951740.064, 5223951740.08, 5223951740.096, 5223951740.1119995,           
                                   5223951740.128, 5223951740.144, 5223951740.16, 5223951740.176001, 5223951740.191999, 5223951740.208, 5223951740.224,       
                                   5223951740.24, 5223951740.256, 5223951740.272, 5223951740.288, 5223951740.304, 5223951740.320001, 5223951740.3359995,      
                                   5223951740.352, 5223951740.368, 5223951740.384, 5223951740.4, 5223951740.416, 5223951740.432, 5223951740.448,              
                                   5223951740.464001, 5223951740.48, 5223951740.496, 5223951740.512, 5223951740.528, 5223951740.544, 5223951740.56,           
                                   5223951740.568001, 5223951740.576, 5223951740.592, 5223951740.608001, 5223951740.624, 5223951740.64, 5223951740.656,       
                                   5223951740.672, 5223951740.688, 5223951740.7039995, 5223951740.72, 5223951740.736, 5223951740.752, 5223951740.768,         
                                   5223951740.784, 5223951740.8, 5223951740.816, 5223951740.832, 5223951740.848, 5223951740.864, 5223951740.88,               
                                   5223951740.896, 5223951740.912, 5223951740.928, 5223951740.944, 5223951740.96, 5223951740.976, 5223951740.992,             
                                   5223951741.008, 5223951741.024, 5223951741.04, 5223951741.056, 5223951741.0720005, 5223951741.088, 5223951741.104,         
                                   5223951741.12, 5223951741.136, 5223951741.152, 5223951741.168, 5223951741.184, 5223951741.2, 5223951741.216001,            
                                   5223951741.232, 5223951741.248, 5223951741.264, 5223951741.28, 5223951741.2960005, 5223951741.311999, 5223951741.328,      
                                   5223951741.344, 5223951741.36, 5223951741.376, 5223951741.392, 5223951741.408, 5223951741.424, 5223951741.440001,          
                                   5223951741.455999, 5223951741.472, 5223951741.488, 5223951741.504, 5223951741.52, 5223951741.536, 5223951741.552,          
                                   5223951741.568, 5223951741.575999, 5223951741.584001, 5223951741.599999, 5223951741.616, 5223951741.632, 5223951741.648,   
                                   5223951741.6640005, 5223951741.68, 5223951741.696, 5223951741.712, 5223951741.728001, 5223951741.7439995, 5223951741.76,   
                                   5223951741.776, 5223951741.792, 5223951741.808001, 5223951741.824, 5223951741.84, 5223951741.856, 5223951741.872,          
                                   5223951741.888, 5223951741.904, 5223951741.92, 5223951741.936, 5223951741.952, 5223951741.967999, 5223951741.984,          
                                   5223951742.0, 5223951742.016, 5223951742.032, 5223951742.048, 5223951742.064, 5223951742.08, 5223951742.096,               
                                   5223951742.1119995, 5223951742.128, 5223951742.144, 5223951742.16, 5223951742.176, 5223951742.192, 5223951742.208,         
                                   5223951742.224, 5223951742.24, 5223951742.256, 5223951742.272, 5223951742.288, 5223951742.304, 5223951742.32,              
                                   5223951742.336, 5223951742.352, 5223951742.368, 5223951742.384, 5223951742.4, 5223951742.416, 5223951742.432,              
                                   5223951742.448, 5223951742.464, 5223951742.48, 5223951742.496, 5223951742.512, 5223951742.528, 5223951742.544,             
                                   5223951742.56, 5223951742.575999, 5223951742.584001, 5223951742.592, 5223951742.608, 5223951742.624, 5223951742.64,        
                                   5223951742.656, 5223951742.672, 5223951742.688, 5223951742.704, 5223951742.719999, 5223951742.736, 5223951742.752,         
                                   5223951742.768, 5223951742.784, 5223951742.8, 5223951742.816, 5223951742.832, 5223951742.848001, 5223951742.863999,        
                                   5223951742.88, 5223951742.896, 5223951742.912, 5223951742.928, 5223951742.944, 5223951742.96, 5223951742.976,              
                                   5223951742.992001, 5223951743.007999, 5223951743.024, 5223951743.04, 5223951743.056, 5223951743.0720005, 5223951743.088,   
                                   5223951743.104, 5223951743.12, 5223951743.136, 5223951743.151999, 5223951743.168, 5223951743.184, 5223951743.2,            
                                   5223951743.216001, 5223951743.231999, 5223951743.248, 5223951743.264, 5223951743.28, 5223951743.296, 5223951743.312,       
                                   5223951743.328, 5223951743.344, 5223951743.360001, 5223951743.375999, 5223951743.392, 5223951743.408, 5223951743.424,      
                                   5223951743.44, 5223951743.456, 5223951743.472, 5223951743.488, 5223951743.504001, 5223951743.5199995, 5223951743.536,      
                                   5223951743.552, 5223951743.568, 5223951743.584, 5223951743.592, 5223951743.6, 5223951743.616, 5223951743.632,              
                                   5223951743.648001, 5223951743.664, 5223951743.68, 5223951743.696, 5223951743.712, 5223951743.728, 5223951743.7439995,      
                                   5223951743.76, 5223951743.776, 5223951743.792, 5223951743.808, 5223951743.824, 5223951743.84, 5223951743.856,              
                                   5223951743.872, 5223951743.888, 5223951743.904, 5223951743.92, 5223951743.936, 5223951743.952, 5223951743.968,             
                                   5223951743.984, 5223951744.0, 5223951744.016, 5223951744.032, 5223951744.048, 5223951744.064, 5223951744.08,               
                                   5223951746.496, 5223951747.024, 5223951747.04, 5223951747.056, 5223951747.072, 5223951747.088, 5223951747.104,             
                                   5223951747.12, 5223951747.136, 5223951747.152, 5223951747.168, 5223951747.184, 5223951747.2, 5223951747.216,               
                                   5223951747.232, 5223951747.248, 5223951747.264, 5223951747.28, 5223951747.2960005, 5223951747.312, 5223951747.328,         
                                   5223951747.344, 5223951747.36, 5223951747.376, 5223951747.392, 5223951747.408, 5223951747.424, 5223951747.44,              
                                   5223951747.456, 5223951747.472, 5223951747.488, 5223951747.504, 5223951747.52, 5223951747.528, 5223951747.535999,          
                                   5223951747.552, 5223951747.568, 5223951747.584, 5223951747.6, 5223951747.616, 5223951747.632, 5223951747.648,              
                                   5223951747.6640005, 5223951747.679999, 5223951747.696, 5223951747.712, 5223951747.728, 5223951747.744, 5223951747.76,      
                                   5223951747.776, 5223951747.792, 5223951747.808001, 5223951747.823999, 5223951747.84, 5223951747.856, 5223951747.872,       
                                   5223951747.8880005, 5223951747.904, 5223951747.92, 5223951747.936, 5223951747.952001, 5223951747.967999, 5223951747.984,   
                                   5223951748.0, 5223951748.016, 5223951748.032001, 5223951748.047999, 5223951748.064, 5223951748.08, 5223951748.096,         
                                   5223951748.1119995, 5223951748.128, 5223951748.144, 5223951748.16, 5223951748.176001, 5223951748.191999, 5223951748.208,   
                                   5223951748.224, 5223951748.24, 5223951748.256, 5223951748.272, 5223951748.288, 5223951748.304, 5223951748.320001,          
                                   5223951748.3359995, 5223951748.352, 5223951748.368, 5223951748.384, 5223951748.4, 5223951748.416, 5223951748.432,          
                                   5223951748.448, 5223951748.464001, 5223951748.48, 5223951748.496, 5223951748.512, 5223951748.528, 5223951748.536,          
                                   5223951748.544, 5223951748.56, 5223951748.576, 5223951748.592, 5223951748.608001, 5223951748.624, 5223951748.64,           
                                   5223951748.656, 5223951748.672, 5223951748.688, 5223951748.7039995, 5223951748.72, 5223951748.736, 5223951748.752,         
                                   5223951748.768, 5223951748.784, 5223951748.8, 5223951748.816, 5223951748.832, 5223951748.848, 5223951748.864,              
                                   5223951748.88, 5223951748.896, 5223951748.912, 5223951748.928, 5223951748.944, 5223951748.96, 5223951748.976,              
                                   5223951748.992, 5223951749.008, 5223951749.024, 5223951749.04, 5223951749.056, 5223951749.0720005, 5223951749.088,         
                                   5223951749.104, 5223951749.12, 5223951749.136, 5223951749.152, 5223951749.168, 5223951749.184, 5223951749.2,               
                                   5223951749.216001, 5223951749.232, 5223951749.248, 5223951749.264, 5223951749.28, 5223951749.2960005, 5223951749.311999,   
                                   5223951749.328, 5223951749.344, 5223951749.36, 5223951749.376, 5223951749.392, 5223951749.408, 5223951749.424,             
                                   5223951749.440001, 5223951749.455999, 5223951749.472, 5223951749.488, 5223951749.504, 5223951749.5199995, 5223951749.536,  
                                   5223951749.544, 5223951749.552, 5223951749.568, 5223951749.584001, 5223951749.599999, 5223951749.616, 5223951749.632,      
                                   5223951749.648, 5223951749.664, 5223951749.68, 5223951749.696, 5223951749.712, 5223951749.728001, 5223951749.7439995,      
                                   5223951749.76, 5223951749.776, 5223951749.792, 5223951749.808, 5223951749.824, 5223951749.84, 5223951749.856,              
                                   5223951749.872001, 5223951749.888, 5223951749.904, 5223951749.92, 5223951749.936, 5223951749.952, 5223951749.967999,       
                                   5223951749.984, 5223951750.0, 5223951750.016, 5223951750.032, 5223951750.048, 5223951750.064, 5223951750.08,               
                                   5223951750.096, 5223951750.1119995, 5223951750.128, 5223951750.144, 5223951750.16, 5223951750.176, 5223951750.192,         
                                   5223951750.208, 5223951750.224, 5223951750.24, 5223951750.256, 5223951750.272, 5223951750.288, 5223951750.304,             
                                   5223951750.32, 5223951750.336, 5223951750.352, 5223951750.368, 5223951750.384, 5223951750.4, 5223951750.416,               
                                   5223951750.432, 5223951750.448, 5223951750.464, 5223951750.4800005, 5223951750.496, 5223951750.512, 5223951750.528,        
                                   5223951750.544, 5223951750.552001, 5223951750.56, 5223951750.575999, 5223951750.592, 5223951750.608, 5223951750.624,       
                                   5223951750.64, 5223951750.656, 5223951750.672, 5223951750.688, 5223951750.704, 5223951750.719999, 5223951750.736,          
                                   5223951750.752, 5223951750.768, 5223951750.784, 5223951750.8, 5223951750.816, 5223951750.832, 5223951750.848001,           
                                   5223951750.863999, 5223951750.88, 5223951750.896, 5223951750.912, 5223951750.928, 5223951750.944, 5223951750.96,           
                                   5223951750.976, 5223951750.992001, 5223951751.007999, 5223951751.024, 5223951751.04, 5223951754.559999, 5223951754.656,    
                                   5223951754.672, 5223951754.688001, 5223951754.7039995, 5223951754.72, 5223951754.736, 5223951754.752, 5223951754.768,      
                                   5223951754.784, 5223951754.8, 5223951754.816, 5223951754.832001, 5223951754.848, 5223951754.864, 5223951754.88,            
                                   5223951754.896, 5223951754.912, 5223951754.9279995, 5223951754.944, 5223951754.96, 5223951754.976, 5223951754.992,         
                                   5223951755.008, 5223951755.024, 5223951755.04, 5223951755.056, 5223951755.072, 5223951755.088, 5223951755.104,             
                                   5223951755.12, 5223951755.136, 5223951755.152, 5223951755.16, 5223951755.168, 5223951755.184, 5223951755.2,                
                                   5223951755.216, 5223951755.232, 5223951755.248, 5223951755.264, 5223951755.28, 5223951755.2960005, 5223951755.312,         
                                   5223951755.328, 5223951755.344, 5223951755.36, 5223951755.376, 5223951755.392, 5223951755.408, 5223951755.424,             
                                   5223951755.440001, 5223951755.456, 5223951755.472, 5223951755.488, 5223951755.504, 5223951755.52, 5223951755.535999,       
                                   5223951755.552, 5223951755.568, 5223951755.584, 5223951755.6, 5223951755.616, 5223951755.632, 5223951755.648,              
                                   5223951755.6640005, 5223951755.679999, 5223951755.696, 5223951755.712, 5223951755.728, 5223951755.744, 5223951755.76,      
                                   5223951755.776, 5223951755.792, 5223951755.808001, 5223951755.823999, 5223951755.84, 5223951755.856, 5223951755.872,       
                                   5223951755.8880005, 5223951755.904, 5223951755.92, 5223951755.936, 5223951755.952001, 5223951755.967999, 5223951755.984,   
                                   5223951756.0, 5223951756.016, 5223951756.032001, 5223951756.048, 5223951756.064, 5223951756.08, 5223951756.096,            
                                   5223951756.1119995, 5223951756.128, 5223951756.144, 5223951756.16, 5223951756.167999, 5223951756.176001,                   
                                   5223951756.191999, 5223951756.208, 5223951756.224, 5223951756.24, 5223951756.256, 5223951756.272, 5223951756.288,          
                                   5223951756.304, 5223951756.320001, 5223951756.3359995, 5223951756.352, 5223951756.368, 5223951756.384, 5223951756.4,       
                                   5223951756.416, 5223951756.432, 5223951756.448, 5223951756.464001, 5223951756.48, 5223951756.496, 5223951756.512,          
                                   5223951756.528, 5223951756.544, 5223951756.56, 5223951756.576, 5223951756.592, 5223951756.608001, 5223951756.624,          
                                   5223951756.64, 5223951756.656, 5223951756.672, 5223951756.688, 5223951756.704, 5223951756.72, 5223951756.736,              
                                   5223951756.752, 5223951756.768, 5223951756.784, 5223951756.8, 5223951756.816, 5223951756.832, 5223951756.848,              
                                   5223951756.864, 5223951756.88, 5223951756.896, 5223951756.912, 5223951756.928, 5223951756.943999, 5223951756.96,           
                                   5223951756.976, 5223951756.992, 5223951757.008, 5223951757.024, 5223951757.04, 5223951757.056, 5223951757.0720005,         
                                   5223951757.087999, 5223951757.104, 5223951757.12, 5223951757.136, 5223951757.152, 5223951757.168, 5223951757.176001,       
                                   5223951757.184, 5223951757.2, 5223951757.216001, 5223951757.231999, 5223951757.248, 5223951757.264, 5223951757.28,         
                                   5223951757.2960005, 5223951757.312, 5223951757.328, 5223951757.344, 5223951757.36, 5223951757.375999, 5223951757.392,      
                                   5223951757.408, 5223951757.424, 5223951757.440001, 5223951757.455999, 5223951757.472, 5223951757.488, 5223951757.504,      
                                   5223951757.5199995, 5223951757.536, 5223951757.552, 5223951757.568, 5223951757.584001, 5223951757.599999, 5223951757.616,  
                                   5223951757.632, 5223951757.648, 5223951757.664, 5223951757.68, 5223951757.696, 5223951757.712, 5223951757.728001,          
                                   5223951757.7439995, 5223951757.76, 5223951757.776, 5223951757.792, 5223951757.808, 5223951757.824, 5223951757.84,          
                                   5223951757.856, 5223951757.872001, 5223951757.888, 5223951757.904, 5223951757.92, 5223951757.936, 5223951757.952,          
                                   5223951757.967999, 5223951757.984, 5223951758.0, 5223951758.016, 5223951758.032, 5223951758.048, 5223951758.064,           
                                   5223951758.08, 5223951758.096, 5223951758.1119995, 5223951758.128, 5223951758.144, 5223951758.16, 5223951758.176,          
                                   5223951758.183999, 5223951758.192, 5223951758.208, 5223951758.224, 5223951758.24, 5223951758.256, 5223951758.272,          
                                   5223951758.288, 5223951758.304, 5223951758.32, 5223951758.336, 5223951758.352, 5223951758.368, 5223951758.384,             
                                   5223951758.4, 5223951758.416, 5223951758.432, 5223951758.448, 5223951758.464, 5223951758.4800005, 5223951758.496,          
                                   5223951758.512, 5223951758.528, 5223951758.544, 5223951758.56, 5223951758.575999, 5223951758.592, 5223951758.608,          
                                   5223951758.624, 5223951758.64, 5223951758.656, 5223951758.672, 5223951762.288, 5223951762.304, 5223951762.32,              
                                   5223951762.3359995, 5223951762.352, 5223951762.368, 5223951762.384, 5223951762.400001, 5223951762.415999, 5223951762.432,  
                                   5223951762.448, 5223951762.464, 5223951762.48, 5223951762.496, 5223951762.512, 5223951762.528, 5223951762.544001,          
                                   5223951762.559999, 5223951762.576, 5223951762.592, 5223951762.608, 5223951762.624, 5223951762.64, 5223951762.656,          
                                   5223951762.672, 5223951762.688001, 5223951762.7039995, 5223951762.72, 5223951762.736, 5223951762.752, 5223951762.768,      
                                   5223951762.784, 5223951762.792, 5223951762.8, 5223951762.816, 5223951762.832001, 5223951762.848, 5223951762.864,           
                                   5223951762.88, 5223951762.896, 5223951762.912, 5223951762.9279995, 5223951762.944, 5223951762.96, 5223951762.976,          
                                   5223951762.992, 5223951763.008, 5223951763.024, 5223951763.04, 5223951763.056, 5223951763.072, 5223951763.088,             
                                   5223951763.104, 5223951763.12, 5223951763.136, 5223951763.152, 5223951763.168, 5223951763.184, 5223951763.2,               
                                   5223951763.216, 5223951763.232, 5223951763.248, 5223951763.264, 5223951763.28, 5223951763.2960005, 5223951763.312,         
                                   5223951763.328, 5223951763.344, 5223951763.36, 5223951763.376, 5223951763.392, 5223951763.408, 5223951763.424,             
                                   5223951763.440001, 5223951763.456, 5223951763.472, 5223951763.488, 5223951763.504, 5223951763.52, 5223951763.535999,       
                                   5223951763.552, 5223951763.568, 5223951763.584, 5223951763.6, 5223951763.616, 5223951763.632, 5223951763.648,              
                                   5223951763.6640005, 5223951763.679999, 5223951763.696, 5223951763.712, 5223951763.728, 5223951763.744, 5223951763.76,      
                                   5223951763.776, 5223951763.792, 5223951763.800001, 5223951763.808001, 5223951763.823999, 5223951763.84, 5223951763.856,    
                                   5223951763.872, 5223951763.8880005, 5223951763.904, 5223951763.92, 5223951763.936, 5223951763.952001, 5223951763.967999,   
                                   5223951763.984, 5223951764.0, 5223951764.016, 5223951764.032001, 5223951764.048, 5223951764.064, 5223951764.08,            
                                   5223951764.096001, 5223951764.1119995, 5223951764.128, 5223951764.144, 5223951764.16, 5223951764.176001,                   
                                   5223951764.191999, 5223951764.208, 5223951764.224, 5223951764.24, 5223951764.256, 5223951764.272, 5223951764.288,          
                                   5223951764.304, 5223951764.32, 5223951764.3359995, 5223951764.352, 5223951764.368, 5223951764.384, 5223951764.4,           
                                   5223951764.416, 5223951764.432, 5223951764.448, 5223951764.464, 5223951764.48, 5223951764.496, 5223951764.512,             
                                   5223951764.528, 5223951764.544, 5223951764.56, 5223951764.576, 5223951764.592, 5223951764.608, 5223951764.624,             
                                   5223951764.64, 5223951764.656, 5223951764.672, 5223951764.688, 5223951764.704, 5223951764.72, 5223951764.736,              
                                   5223951764.752, 5223951764.768, 5223951764.784, 5223951764.799999, 5223951764.808, 5223951764.816, 5223951764.832,         
                                   5223951764.848, 5223951764.864, 5223951764.88, 5223951764.896, 5223951764.912, 5223951764.928, 5223951764.943999,          
                                   5223951764.96, 5223951764.976, 5223951764.992, 5223951765.008, 5223951765.024, 5223951765.04, 5223951765.056,              
                                   5223951765.0720005, 5223951765.087999, 5223951765.104, 5223951765.12, 5223951765.136, 5223951765.152, 5223951765.168,      
                                   5223951765.184, 5223951765.2, 5223951765.216001, 5223951765.231999, 5223951765.248, 5223951765.264, 5223951765.28,         
                                   5223951765.2960005, 5223951765.312, 5223951765.328, 5223951765.344, 5223951765.360001, 5223951765.375999, 5223951765.392,  
                                   5223951765.408, 5223951765.424, 5223951765.440001, 5223951765.455999, 5223951765.472, 5223951765.488, 5223951765.504,      
                                   5223951765.5199995, 5223951765.536, 5223951765.552, 5223951765.568, 5223951765.584001, 5223951765.599999, 5223951765.616,  
                                   5223951765.632, 5223951765.648, 5223951765.664, 5223951765.68, 5223951765.696, 5223951765.712, 5223951765.728001,          
                                   5223951765.7439995, 5223951765.76, 5223951765.776, 5223951765.792, 5223951765.808, 5223951765.816001, 5223951765.824,      
                                   5223951765.84, 5223951765.856, 5223951765.872001, 5223951765.888, 5223951765.904, 5223951765.92, 5223951765.936,           
                                   5223951765.952, 5223951765.968, 5223951765.984, 5223951766.0, 5223951766.016, 5223951766.032, 5223951766.048,              
                                   5223951766.064, 5223951766.08, 5223951766.096, 5223951766.1119995, 5223951766.128, 5223951766.144, 5223951766.16,          
                                   5223951766.176, 5223951766.192, 5223951766.208, 5223951766.224, 5223951766.24, 5223951766.256, 5223951766.272,             
                                   5223951766.288, 5223951766.304, 5223951769.536, 5223951769.92, 5223951769.936, 5223951769.952, 5223951769.968,             
                                   5223951769.984, 5223951770.0, 5223951770.016, 5223951770.032001, 5223951770.047999, 5223951770.064, 5223951770.08,         
                                   5223951770.096, 5223951770.112, 5223951770.128, 5223951770.144, 5223951770.16, 5223951770.176001, 5223951770.191999,       
........
........