Пример #1
0
def test_only_one_file(instrument, mode, files, extension):
    files = [files["bias"][0]]
    bias, bhead = combine_bias(files, instrument, mode, extension=extension, window=50)

    assert isinstance(bias, np.ma.masked_array)
    assert isinstance(bhead, fits.Header)

    assert bias.ndim == bhead["NAXIS"]
    assert bias.shape[0] == bhead["NAXIS1"] - 100  # remove window from both sides
    assert bias.shape[1] == bhead["NAXIS2"]
Пример #2
0
def test_only_one_file(instrument, mode, files, mask):
    if len(files["bias"]) == 0:
        pytest.skip(f"No bias files for instrument {instrument}")

    files = [files["bias"][0]]
    bias, bhead = combine_bias(files, instrument, mode, window=50, mask=mask)

    assert isinstance(bias, np.ma.masked_array)
    assert isinstance(bhead, fits.Header)

    assert bias.ndim == 2
    assert bias.shape[0] == mask.shape[0]
    assert bias.shape[1] == mask.shape[1]
Пример #3
0
def test_simple_input(tempfiles):
    n = 2
    files = tempfiles[:n]

    for i in range(n):
        data = np.full((100, 100), i, dtype=float)
        fits.writeto(files[i], data)

    bias, bhead = combine_bias(files, "common", "", extension=0)

    assert isinstance(bias, np.ndarray)
    assert bias.shape[0] == 100
    assert bias.shape[1] == 100
    assert np.all(bias == sum(range(n)) / n)
Пример #4
0
def bias(instrument, mode, files, extension, mask, output_dir):
    """Load or if necessary create the bias calibration

    Parameters
    ----------
    instrument : str
        instrument name
    mode : str
        observing mode
    files : dict(str:str)
        calibration files
    extension : int
        fits extension
    mask : array(bool)
        Bad pixel mask
    output_dir : str
        directory conatining the bias data

    Returns
    -------
    bias : array(float)
        bias calibration data
    bhead : fits.header
        bias information
    """

    biasfile = os.path.join(output_dir, "test_bias.fits")
    try:
        bias = fits.open(biasfile)
        bhead, bias = bias[0].header, bias[0].data
        bias = np.ma.masked_array(bias, mask=mask)
    except FileNotFoundError:
        bias, bhead = combine_bias(files["bias"],
                                   instrument,
                                   mode,
                                   extension=extension,
                                   window=50,
                                   mask=mask)
        fits.writeto(biasfile, data=bias.data, header=bhead, overwrite=True)

    return bias, bhead
Пример #5
0
def test_wrong_data_type():
    with pytest.raises(TypeError):
        combine_bias(None, None, "")

    with pytest.raises(ValueError):
        combine_bias([None], None, "")
Пример #6
0
def test_no_data_files():
    with pytest.raises(FileNotFoundError):
        combine_bias([], "", "")