Skip to content

Instantly share code, notes, and snippets.

@zonca
Created March 13, 2020 02:54
Show Gist options
  • Save zonca/10763c9380e567c118c0036d286b54d5 to your computer and use it in GitHub Desktop.
Save zonca/10763c9380e567c118c0036d286b54d5 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import iris_pipeline\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Load a raw science frame"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"im = iris_pipeline.datamodels.IRISImageModel(\"/home/azonca/p/software/iris_pipeline/iris_pipeline/tests/data/raw_science_frame_sci.fits\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7fe71676c6d8>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,8))\n",
"plt.imshow(im.data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This frame has a few saturated pixels (Flag=2), those pixels are still used in the analysis, except for specific algorithms, for example if we want to create a flat frame, the `normalize` step discards pixels with a nonzero flag. See the JWST flag values: http://jwst-reffiles.stsci.edu/source/data_quality.html"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7fe71007fa58>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(im.dq)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 2], dtype=uint32)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.unique(im.dq)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We save the metadata about the subarrays in the IRISImageModel, this is an array property which supports a variable number of elements, it is **not saved** in the standard FITS headers, but **it is saved in the ASDF extension**, so it is available in the FITS file.\n",
"\n",
"Now I am not sure how we are getting this information."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"im.meta.subarray_mask.append({\"xstart\":2000, \"ystart\":3000, \"xsize\":100, \"ysize\":100}) \n",
"im.meta.subarray_mask.append({\"xstart\":500, \"ystart\":500, \"xsize\":200, \"ysize\":200}) "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'xstart': 2000, 'ystart': 3000, 'xsize': 100, 'ysize': 100}, {'xstart': 500, 'ystart': 500, 'xsize': 200, 'ysize': 200}]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"im.meta.subarray_mask"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then we have a function which creates the `subarray_mask` array, not sure when we want to run this."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def set_subarray_mask(mask_array, subarray_index, xstart, ystart, xsize, ysize):\n",
" xstart = xstart - 1\n",
" ystart = ystart - 1\n",
" mask_array[ystart:ystart+ysize, xstart:xstart+xsize] = subarray_index "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"im[\"subarray_mask\"] = np.zeros(im.data.shape, dtype=np.int16)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"for i, shape in enumerate(im.meta.subarray_mask):\n",
" set_subarray_mask(im[\"subarray_mask\"], subarray_index=i+1, **shape.instance)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7fe708db8b38>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(im.subarray_mask)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally we also want to raise a flag in the standard data quality, so that algorithms do not use\n",
"the pixels marked as subarrays.\n",
"Here we do not distinguish between the different subarrays so that we only use 1 bit.\n",
"We can use one of the un-used bits in the flag."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"im.dq[im[\"subarray_mask\"] != 0] += 16"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7fe708da44a8>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,8))\n",
"plt.imshow(im.dq)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "jwst",
"language": "python",
"name": "jwst"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment