Skip to content

Commit

Permalink
Merge pull request #43 from mwcraig/uncertainy-unit-fix
Browse files Browse the repository at this point in the history
Ensure that create_variance makes an uncertainty without units.
  • Loading branch information
mwcraig committed Apr 27, 2014
2 parents 1d62388 + 36d9b3a commit 032f938
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
7 changes: 4 additions & 3 deletions ccdproc/ccdproc.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,14 @@ def create_variance(ccd_data, gain=None, readnoise=None):

# Need to convert Quantity to plain number because NDData data is not
# a Quantity. All unit checking should happen prior to this point.
gain_value = gain / gain.unit
readnoise_value = readnoise / readnoise.unit
gain_value = float(gain / gain.unit)
readnoise_value = float(readnoise / readnoise.unit)

var = (gain_value * ccd_data.data + readnoise_value ** 2) ** 0.5
ccd = ccd_data.copy()
# ensure variance and image data have same unit
ccd.uncertainty = StdDevUncertainty(var / gain_value)
var /= gain_value
ccd.uncertainty = StdDevUncertainty(var)
return ccd


Expand Down
3 changes: 3 additions & 0 deletions ccdproc/tests/test_ccdproc.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ def test_create_variance(ccd_data, u_image, u_gain, u_readnoise,
np.testing.assert_array_equal(ccd_var.uncertainty.array,
expected_var)
assert ccd_var.unit == ccd_data.unit
# uncertainty should *not* have any units -- does it?
with pytest.raises(AttributeError):
ccd_var.uncertainty.array.unit
else:
with pytest.raises(u.UnitsError):
ccd_var = create_variance(ccd_data, gain=gain, readnoise=readnoise)
Expand Down

0 comments on commit 032f938

Please sign in to comment.