{ "cells": [ { "cell_type": "markdown", "id": "b8840db7", "metadata": {}, "source": [ "

A Demonstration Script for Creating Representative Colour Images

\n", "

George J. Bendo
\n", "02 January 2022

\n", "\n", "

This script takes three FITS images covering the same part of the sky, colourizes each one using a different colour (red, green, or blue), and then combines the three images together to produce a colour image that is exported as a png file. This type of image is called a representative colour image because each colour represents a specific wavelength of light. However, the colours may not be the same as the observed colours, especially when the colours correspond to wavelengths of light outside the visible part of the electromagnetic spectrum (as is the case for the images used in this demonstration scripts, which are all infrared images).

\n", "\n", "

The example used in this script is based on the following files:

\n", "\n", "

These files should be downloaded to the directory containing the Juptier Notebook before attempting to execute the script.

\n", "\n", "

This script could be adapted to work with other FITS files, although most of the lines would need to be modified. Modifications would therefore only be suggested for people who are familiar with Python programming or who have studied this script carefully.

\n", "\n", "

The following packages need to be installed to use this script: astropy, matplotlib, numpy, and PIL. The matplotlib and numpy packages are standard python utilities. The astropy package contains the tools needed to import FITS files. FITS_tools is used to shift all of the images to the same coordinate system. PIL is used to export images as png files.

\n" ] }, { "cell_type": "markdown", "id": "4f60d5ee", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "id": "b1393d31", "metadata": {}, "source": [ "Perform a series of prepratory steps first." ] }, { "cell_type": "code", "execution_count": 1, "id": "6aec7ed9", "metadata": {}, "outputs": [], "source": [ "# Import packages.\n", "import numpy\n", "import matplotlib.pyplot as pp\n", "from astropy.io import fits\n", "from FITS_tools import hcongrid\n", "from PIL import Image" ] }, { "cell_type": "markdown", "id": "4e7aa4df", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "id": "20bc1f21", "metadata": {}, "source": [ "Read in and prepare the images." ] }, { "cell_type": "code", "execution_count": 2, "id": "48438234", "metadata": {}, "outputs": [], "source": [ "# Read the image files. Each fits image is assigned to a different colour \n", "# (imgr, imgg, and imgb).\n", "file=fits.open('ngc3031_spitzer3.6micron.fits')\n", "imgb=file[0].data\n", "headb=file[0].header\n", "file.close()\n", "\n", "file=fits.open('NGC_3031_I_MIPS24_bgm2012.fits')\n", "imgg=file[0].data\n", "headg=file[0].header\n", "file.close()\n", "\n", "file=fits.open('ngc3031_herschel250micron.fits')\n", "imgr=file[0].data\n", "headr=file[0].header\n", "file.close()" ] }, { "cell_type": "code", "execution_count": 3, "id": "f0c33bba", "metadata": {}, "outputs": [], "source": [ "# Use congrid to match the coordinate systems of all three images to \n", "# the coordinate system of the blue image (which has the smallest \n", "# pixels in this case).\n", "imggshift=hcongrid.hastrom(imgg,headg,headb,preserve_bad_pixels=True)\n", "imgrshift=hcongrid.hastrom(imgr,headr,headb,preserve_bad_pixels=True)" ] }, { "cell_type": "code", "execution_count": 4, "id": "803c0fba", "metadata": {}, "outputs": [], "source": [ "# Crop the images.\n", "ix1=747\n", "ix2=2187\n", "iy1=837\n", "iy2=2997\n", "imgbcrop=imgb[iy1:iy2,ix1:ix2]\n", "imggcrop=imggshift[iy1:iy2,ix1:ix2]\n", "imgrcrop=imgrshift[iy1:iy2,ix1:ix2]" ] }, { "cell_type": "markdown", "id": "c009d013", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "id": "874e8d4d", "metadata": {}, "source": [ "Rescale the images." ] }, { "cell_type": "code", "execution_count": 5, "id": "54df8e0b", "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\georg\\AppData\\Local\\Temp/ipykernel_15108/846428621.py:13: RuntimeWarning: invalid value encountered in log10\n", " imgglog=numpy.log10(imggcrop+0.13)\n", "C:\\Users\\georg\\AppData\\Local\\Temp/ipykernel_15108/846428621.py:14: RuntimeWarning: invalid value encountered in log10\n", " imgrlog=numpy.log10(imgrcrop+3.0)\n" ] } ], "source": [ "# Convert the image to log values, which will reveal more detail when the \n", "# images are converted to png. \n", "\n", "# These specific image are either background-subtracted or otherwise have \n", "# pixel values equal to or less than 0. To make the colour scaling look \n", "# more natural, it is appropriate to add an offset to the data, which is \n", "# based on 3 or 5 times the background noise for these examples (or, in\n", "# statistical terms, 3 or 5 times the standard deviation of the background\n", "# pixel values.)\n", "#\n", "# [NOTE: Ignore the RuntimeWarning.]\n", "imgblog=numpy.log10(imgbcrop+0.90)\n", "imgglog=numpy.log10(imggcrop+0.13)\n", "imgrlog=numpy.log10(imgrcrop+3.0)" ] }, { "cell_type": "code", "execution_count": 6, "id": "875a0c81", "metadata": {}, "outputs": [], "source": [ "# Rescale the images so that the pixel values run from 0 to 255. The numbers\n", "# in this step could be adjusted to either brighten or dim the red, green, or\n", "# blue parts of the image.\n", "imgbscl=(imgblog+0.0)*2.0*255\n", "imggscl=(imgglog+0.5)*1.0*255\n", "imgrscl=(imgrlog-0.55)*1.1*255" ] }, { "cell_type": "code", "execution_count": 7, "id": "590317f9", "metadata": {}, "outputs": [], "source": [ "# Set out-of-range values in the rescaled images to fall between 0 \n", "# and 255.\n", "imgbscl[numpy.isnan(imgbscl)]=0\n", "imggscl[numpy.isnan(imggscl)]=0\n", "imgrscl[numpy.isnan(imgrscl)]=0\n", "imgbscl[imgbscl<0]=0\n", "imggscl[imggscl<0]=0\n", "imgrscl[imgrscl<0]=0\n", "imgbscl[imgbscl>255]=255\n", "imggscl[imggscl>255]=255\n", "imgrscl[imgrscl>255]=255" ] }, { "cell_type": "code", "execution_count": 8, "id": "6b72b94f", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# For display purposes, plot each of the functions showing the conversion \n", "# between the scientific units and the output image units.\n", "x=numpy.arange(-0.2,3.5,0.1)\n", "y=x*2.0*255\n", "y[y<0]=0\n", "y[y>255]=255\n", "pp.figure(figsize=[6,10])\n", "pp.plot(10**(x-0.90),y,color='#0000FF')\n", "pp.xlabel('Input FITS Pixel Value (MJy/sr)')\n", "pp.ylabel('Output PNG Pixel Value')\n", "pp.xscale('log')\n", "\n", "x=numpy.arange(-2.5,4.8,0.1)\n", "y=(x+0.5)*1.0*255\n", "y[y<0]=0\n", "y[y>255]=255\n", "pp.figure(figsize=[6,10])\n", "pp.plot(10**(x-0.13),y,color='#00FF00')\n", "pp.xlabel('Input FITS Pixel Value (MJy/sr)')\n", "pp.ylabel('Output PNG Pixel Value')\n", "pp.xscale('log')\n", "\n", "x=numpy.arange(-3.8,1.9,0.1)\n", "y=(x+0.5)*1.0*255\n", "y[y<0]=0\n", "y[y>255]=255\n", "pp.figure(figsize=[6,10])\n", "pp.plot(10**(x-3.0),y,color='#FF0000')\n", "pp.xlabel('Input FITS Pixel Value (MJy/sr)')\n", "pp.ylabel('Output PNG Pixel Value')\n", "pp.xscale('log')" ] }, { "cell_type": "markdown", "id": "33a05ea0", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "id": "5807d956", "metadata": {}, "source": [ "Export the images." ] }, { "cell_type": "code", "execution_count": 9, "id": "70465b8e", "metadata": {}, "outputs": [], "source": [ "# Create an RGB cube.\n", "imgrgb=numpy.zeros((2160,1440,3))\n", "imgrgb[:,:,0]=numpy.flip(imgrscl,0)\n", "imgrgb[:,:,1]=numpy.flip(imggscl,0)\n", "imgrgb[:,:,2]=numpy.flip(imgbscl,0)" ] }, { "cell_type": "code", "execution_count": 10, "id": "ff6a366e", "metadata": {}, "outputs": [], "source": [ "# Write the image to disk.\n", "imgsav=Image.fromarray(imgrgb.astype('uint8'),mode='RGB')\n", "imgsav.save('ngc3031_repcolour.png','PNG')" ] }, { "cell_type": "code", "execution_count": 11, "id": "10072fa8", "metadata": {}, "outputs": [], "source": [ "# Export the blue channel image (in colour and greyscale).\n", "imgrgb=numpy.zeros((2160,1440,3))\n", "imgrgb[:,:,2]=numpy.flip(imgbscl,0)\n", "imgsav=Image.fromarray(imgrgb.astype('uint8'),mode='RGB')\n", "imgsav.save('ngc3031_repcolour_b.png','PNG')\n", "imgsav=Image.fromarray(numpy.flip(imgbscl.astype('uint8'),0),mode='L')\n", "imgsav.save('ngc3031_repcolour_b_bw.png','PNG')" ] }, { "cell_type": "code", "execution_count": 12, "id": "24b0b7bb", "metadata": {}, "outputs": [], "source": [ "# Export the green channel image (in colour and greyscale).\n", "imgrgb=numpy.zeros((2160,1440,3))\n", "imgrgb[:,:,1]=numpy.flip(imggscl,0)\n", "imgsav=Image.fromarray(imgrgb.astype('uint8'),mode='RGB')\n", "imgsav.save('ngc3031_repcolour_g.png','PNG')\n", "imgsav=Image.fromarray(numpy.flip(imggscl.astype('uint8'),0),mode='L')\n", "imgsav.save('ngc3031_repcolour_g_bw.png','PNG')" ] }, { "cell_type": "code", "execution_count": 13, "id": "409f3cde", "metadata": {}, "outputs": [], "source": [ "# Export the red channel image (in colour and greyscale).\n", "imgrgb=numpy.zeros((2160,1440,3))\n", "imgrgb[:,:,0]=numpy.flip(imgrscl,0)\n", "imgsav=Image.fromarray(imgrgb.astype('uint8'),mode='RGB')\n", "imgsav.save('ngc3031_repcolour_r.png','PNG')\n", "imgsav=Image.fromarray(numpy.flip(imgrscl.astype('uint8'),0),mode='L')\n", "imgsav.save('ngc3031_repcolour_r_bw.png','PNG')" ] }, { "cell_type": "code", "execution_count": null, "id": "e1c2c45f", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "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.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }