Commits
23 23 | from .datadescription import DataDescription |
24 24 | from .field import Field |
25 25 | from .scan import Scan |
26 26 | from .state import State |
27 27 | |
28 28 | from pipeline.infrastructure import logging |
29 29 | |
30 30 | from . import measures, spectralwindow |
31 31 | from .antennaarray import AntennaArray |
32 32 | from .datatype import DataType |
33 + | from .polarization import Polarization |
33 34 | |
34 35 | LOG = infrastructure.get_logger(__name__) |
35 36 | |
36 37 | |
37 38 | class MeasurementSet(object): |
38 39 | """ |
39 40 | A class to store logical representation of a MeasurementSet (MS). |
40 41 | |
41 42 | The MeasurementSet class represents the metadata and relationships held in a |
42 43 | measurement set on disk, acting as an in-memory representation so that |
66 67 | data column (value). |
67 68 | data_descriptions: A list of DataDescription objects associated with MS. |
68 69 | data_types_per_source_and_spw: A dictionary to store a list of |
69 70 | available data types (values) in this MS per (source,spw) tuples |
70 71 | (keys). |
71 72 | execblock_id: Execution Block ID for this MS (only for ALMA, VLA). |
72 73 | fields: A list of Field objects associated with MS. |
73 74 | observer: The name of the observer, as listed in the OBSERVATIONS table. |
74 75 | observing_modes: The name(s) of the Observing Mode(s) used for this MS, |
75 76 | populated from the ASDM_SBSUMMARY table (empty list if not ALMA). |
77 + | polarizations: A list of Polarization objects associated with the MS. |
76 78 | project_id: Project ID associated with this MS, as listed in the |
77 79 | OBSERVATIONS table. |
78 80 | representative_target: A tuple of the name of representative source, |
79 81 | frequency and bandwidth. |
80 82 | representative_window: A representative spectral window name. |
81 83 | scans: A list of Scan objects associated with MS. |
82 84 | schedblock_id: Scheduling Block ID for this MS (only for ALMA, VLA). |
83 85 | science_goals: A science goal information consists of min/max acceptable |
84 86 | angular resolution, max allowed beam ratio, sensitivity, dynamic |
85 87 | range, spectral dynamic range bandwidth (Cycle 10+), and SB name. |
144 146 | self.antenna_array: AntennaArray | None = None |
145 147 | self.array_name: str = '' |
146 148 | self.correlator_name: str | None = None |
147 149 | self.data_column: dict = {} # PIPE-1062 |
148 150 | self.data_descriptions: RetrieveByIndexContainer | list = [] |
149 151 | self.data_types_per_source_and_spw: dict = {} # PIPE-1246 |
150 152 | self.execblock_id: str = '' |
151 153 | self.fields: RetrieveByIndexContainer | list = [] |
152 154 | self.observer: str = '' |
153 155 | self.observing_modes: list[str] = [] # PIPE-2084 |
156 + | self.polarizations: list[Polarization] = [] |
154 157 | self.project_id: str = '' |
155 158 | self.representative_target: tuple[str | None, dict | None, dict | None] = (None, None, None) |
156 159 | self.representative_window: str | None = None |
157 160 | self.scans: list = [] |
158 161 | self.schedblock_id: str = '' |
159 162 | self.science_goals: dict = {} |
160 163 | self.sources: RetrieveByIndexContainer | list = [] |
161 164 | self.spectral_windows: RetrieveByIndexContainer | list = [] |
162 165 | self.spectralspec_spwmap: dict = {} # PIPE-1132 |
163 166 | self.states: RetrieveByIndexContainer | list = [] |