r-daytonoxland / unisallsky_oh_temp_map

Creates mesopause temperature maps (not fully calibrated) from the UNIS Allsky Airglow Camera

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UNISALLSKY_OH_TEMP_MAP

This software reads in images from UNIS' Allsky Airglow camera and produces a map of mesosphere 87km temperature above Svalbard.

Author

Rowan Dayton-Oxland University of Southampton Github

Installation

Download or pull from Github

Requirements

  • Python >= 3.10
  • .ipynb capabilites e.g. Jupyter Notebook, Visual Studio code
  • OS independent
  • numpy, pandas, matplotlib, pathlib, struct, glob, datetime

Contributing

Pull requests are welcome, for major changes please open an issue first to discuss what you would like to change.

Algorithm

  • Read in images (.img format) from UNIS Allsky airglow camera
  • Calibrate images by using the corner (dark) values
  • Calculate the rotational temperature from the P1(2) P1(4) line ratios (Channels 5 and 6 of the camera)
  • Create temperature keograms

Temperatures are calculated according to the equation

$$ T_{rot} = \frac{\frac{hc}{k} (F_b - F_a)}{ln(\frac{I_{a} A_{b} (2J_{b} + 1)}{I_{b} A_{a} (2J_{a} + 1)})} $$

Where $F,A,J_{a, b}$ are known quantum coefficients, and $I_{a,b}$ are the intensities of the lines in each pixel.

Data for the two emission lines

Symbol F(J') (cm) Wavelength (A) J' Einstein A Channel
P1(2) -45.170339 8399 1.5 0.434 5
P1(4) 113.752553 8465 3.5 0.579 6

Examples

Run the script including all the functions. Current iteration in .ipynb format sonopen the file and run in Jupyter Notebook or another appropriate editor.

Notebook contains examples of generating a single temperature map and a keogram.

import glob

# Get the files from the CH5 and CH6 folders (typical format for UNIS Allsky Airglow Camera data)
Channel5files = glob('filepath/CH5/*.img')
Channel6files = glob('filepath/CH6/*.img')

# Use get_image_pairs to match up the images in time
image_pairs = get_image_pairs(Channel5files, Channel6files)

# To get the time from a specific image file as datetime obj
fname = Channel5files[0]  # For example
time = time_fname[fname]

# To read an image file
header, image = read_img_file(fname)

# To get the dark value from the corner of the image
darkvalue = corner_dark(image)

# To get the calibrated image file (using the corner dark)
calibrated_img = calibrated(image)

# To get a temperature map from a ch5 image and a ch6 image (calibrate first)
  # Example for first pair of images
temp_map = temperature_map(image_pairs[0][0], image_pairs[0][1]) 

# To get the cleaned up version an image or map
cleaned = cleanup_map(image)

# To retrieve a list of all the temperature maps for a folder or some of a folder
tempmaps = get_tempmaps(Channel5files, Channel6files, len(Channel5files))
# or
tempmaps = get_tempmaps(Channel5files, Channel6files, 10)
# To get the first 10 temperature maps

# To produce a keogram from a folder or some of a folder (as above)
timestamps, keogram = get_keogram(Channel5files, Channel6files, len(Channel5files))

Limitations

The calibration of the Airglow camera (true darks, flat fields) is not done so temperature estimates are not accurate - when compared with the 'true' value from the SilverBullet, NIPR and Aura cameras, this code gave 100K higher temperatures. However, it gives a picture of temperature variations which can be useful to detect e.g. pressure waves which will be visible in the keograms.

References and links

UNIS Allsky Airglow Camera

https://pypi.org/project/oh-einstein-temp-convert/

Holmen, S., Trends and variability of polar mesopause region temperatures attributed to atmospheric dynamics and solar activity, PhD Thesis, UiT The Arctic University of Norway, 2016.

Mark P. J. van der Loo, Gerrit C. Groenenboom (2008) Theoretical transition probabilities for the OH Meinel system. J. Chem. Phys. 21 March 2007; 126 (11): 114314.

Data

This code is for image data for UNIS Allsky Airglow Camera, for access to the camera data, the contacts are listed here.

Acknowledgements

Noora Partamies, Mikko Syrjasuo, James Plank

License

GNU GPLv3.0

About

Creates mesopause temperature maps (not fully calibrated) from the UNIS Allsky Airglow Camera

License:GNU General Public License v3.0


Languages

Language:Jupyter Notebook 100.0%