# Kislovodsk Mountain Astronomical Station Data Formats All formats are plain text. The following functions in `io.py` read these files: | Format | Contents | Reader | | --- | --- | --- | | `.dat` | Coronal intensity as a function of position angle | `open_corona` | | `.abp` | Object masks in pixel coordinates | `open_abp` | | `.bp` | Tables of object parameters | `open_bp` | | `.cnt` | Object contours in heliographic coordinates | `open_cnt` | Fields are separated by variable amounts of whitespace, except for BP column names, which are separated by `|`. In the layouts below, ellipses indicate repeated data and square brackets indicate optional fields. Line boundaries must be preserved in ABP and CNT files: each object occupies exactly two lines. ## DAT — Coronal Intensity Annual files for the red line at **6374 Å** and the green line at **5303 Å** use naming patterns `r%Y*.dat` and `g*%Y.dat`. The year also occurs after a letter prefix (`r*%Y.dat`). `%Y` denotes a four-digit year. ```text Corona wavelength Kislovodsk YYYY Jan T.U. 0 5 10 ... 350 355 DD HH MM I_0 I_5 I_10 ... I_350 I_355 ... Feb DD HH MM I_0 I_5 I_10 ... I_350 I_355 ... ``` | Element | Contents | | --- | --- | | First line | Wavelength in angstroms | | Second line | Observation year | | Line containing `T.U.` | Universal Time label and angular grid | | Measurement line | Day of month, UT hours and minutes, followed by intensities | | Month separator | `Feb`, `Mar`, `Apr`, `May`, `Jun`, `Jul`, `Aug`, `Sep`, `Oct`, `Nov`, `Dec` | The standard grid contains **72 angles from 0° to 355° in 5° steps**, measured clockwise from the solar north pole. Each measurement line contains 75 fields. The header supplies the year and the current block supplies the month; January data begin immediately after the angular grid. Intensities are integers. Missing values are marked with `-`, `x`, `X`, or `?` and are represented as `-1` when read. Dates without observations have no entries. ## ABP — Pixel Masks ```text xc yc R P B0 L0 [auxiliary fields] n_skip [auxiliary fields] N x1 y1 c1 x2 y2 c2 ... xM yM cM ... ``` ### Header | Field | Contents | | --- | --- | | `xc`, `yc` | Integer disk-center coordinates, in pixels | | `R` | Integer disk radius, in pixels | | `P` | Disk orientation angle, in degrees | | `B0`, `L0` | Heliographic latitude and longitude of the disk center, in degrees | | `n_skip` | Number of additional lines preceding the object-count line | | `N` | Number of objects | When `n_skip = 0`, the `N` line immediately follows the second header line. ### Object Block The first line contains integer parameters: | Position | Contents | | --- | --- | | 1 | Object number within the file | | 2 | Mask area in pixels (`area_px`) | | 3 | Group number | | 4–5 | Auxiliary fields | | 6 | Object identifier component | | 7 | Additional identifier component; for sunspots, also an umbra flag: `0` means absent, a nonzero value means present | The second line lists **triplets `x y c`**: pixel coordinates followed by an additional integer code. The mask lists the object's pixels rather than tracing its boundary. The number of triplets equals `area_px`. A file containing `N` objects has `3 + n_skip + 2N` lines. ## BP — Object Parameters ```text column_1 | column_2 | ... | ... Total ... ``` The descriptive header includes the original path, date and time, processing parameters (`parameters:`), and observer (`Observer:`). Geometric parameters use the following labels: | Label | Contents | | --- | --- | | `R`, `xc`, `yc` | Disk radius and center coordinates, in pixels | | `P` | Disk orientation angle, in degrees | | `D` | Disk-center latitude (`B0`), in degrees | | `L0` | Disk-center longitude, in degrees | | `kol` | Number of objects | The table columns depend on the object type. Filament tables use the following columns: | Columns | Contents | | --- | --- | | `qmx`, `fimx` | Latitude and longitude of the first characteristic point, in degrees | | `qmn`, `fimn` | Latitude and longitude of the second characteristic point, in degrees | | `Int` | Intensity indicator | | `S` | Object area | The `um` label denotes a sunspot umbra. The footer begins with `Total` and contains summary quantities. Text fields and totals allow a comma as the decimal separator. ## CNT — Heliographic Contours ```text P B0 L0 [auxiliary fields] B1 L1 B2 L2 ... BK LK ... ``` Fields 4–6 of the first line contain `P`, `B0`, and `L0`, in degrees. After the first two lines, each contour occupies two lines: its description and its coordinates. **Coordinates are stored as latitude `B` followed by longitude `L`**, in degrees. Fractional values use a decimal point. The number of coordinate values is even, and their order defines the traversal of the contour. A file containing `N` contours has `2 + 2N` lines.