• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

winter-telescope / winterdrp / 3597755182

pending completion
3597755182

push

github

Robert Stein
Recycle docs

4571 of 6109 relevant lines covered (74.82%)

0.75 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.87
/winterdrp/data/image_data.py
1
"""
2

3
Module to specify the input data classes for :class:`winterdrp.processors.base_processor.ImageHandler`
4

5
"""
6
import logging
1✔
7

8
import numpy as np
1✔
9
from astropy.io.fits import Header
1✔
10

11
from winterdrp.data.base_data import DataBatch, DataBlock
1✔
12
from winterdrp.errors import ProcessorError
1✔
13

14
logger = logging.getLogger(__name__)
1✔
15

16

17
class MissingReferenceError(ProcessorError, KeyError):
1✔
18
    pass
1✔
19

20

21
class Image(DataBlock):
1✔
22
    def __init__(self, data: np.ndarray, header: Header):
1✔
23
        self.data = data
1✔
24
        self.header = header
1✔
25
        super().__init__()
1✔
26

27
    def __str__(self):
1✔
28
        return (
×
29
            f"<An {self.__class__.__name__} object, " f"built from {self.get_name()}>"
30
        )
31

32
    def get_data(self) -> np.ndarray:
1✔
33
        return self.data
1✔
34

35
    def set_data(self, data: np.ndarray):
1✔
36
        self.data = data
1✔
37

38
    def get_header(self) -> Header:
1✔
39
        return self.header
1✔
40

41
    def set_header(self, header: Header):
1✔
42
        self.header = header
1✔
43

44
    def __getitem__(self, item):
1✔
45
        return self.header.__getitem__(item)
1✔
46

47
    def __setitem__(self, key, value):
1✔
48
        self.header.__setitem__(key, value)
1✔
49

50
    def keys(self):
1✔
51
        return self.header.keys()
1✔
52

53

54
# class DifferenceImage(Image):
55
#
56
#     def __init__(self, *args, **kwargs):
57
#         super().__init__(*args, **kwargs)
58
#
59
#         if ref_img_key not in self.keys():
60
#             err = f"No reference image data found in header. " \
61
#                   f"Please add '{ref_img_key} = /path/to/ref' to image {self.get_name()}"
62
#             logger.error(err)
63
#             raise MissingReferenceError(err)
64
#
65
#         self.ref_img_path = Path(self[ref_img_key])
66
#         self.ref_img_name = self.ref_img_path.name
67
#
68
#     def get_ref_name(self) -> str:
69
#         return self.ref_img_name
70
#
71
#     def __str__(self):
72
#         return f"<An {self.__class__.__name__} object, " \
73
#                f"generated by subtracting {self.get_name()} from {self.get_ref_name()}>"
74

75

76
class ImageBatch(DataBatch):
1✔
77

78
    data_type = Image
1✔
79

80
    def __init__(self, batch: list[Image] | Image = None):
1✔
81
        super().__init__(batch=batch)
1✔
82

83
    def append(self, item: Image):
1✔
84
        self._append(item)
1✔
85

86
    def __str__(self):
1✔
87
        return f"<An {self.__class__.__name__} object, containing {[x.get_name() for x in self.get_batch()]}>"
×
88

89
    def get_batch(self) -> list[Image]:
1✔
90
        return self.get_data_list()
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc