Skip to main content

Creates ISR Spectrums

Project description

ISRSpectrum

GitHub version Coverage Status Conda image Documentation Status

by John Swoboda

alt text

Overview

This is a Python module to calculate an incoherent scatter spectrum based off of Kudeki and Milla's 2011 IEEE Geophysics paper.

Kudeki, E.; Milla, M.A., "Incoherent Scatter Spectral Theories—Part I: A General Framework and Results for Small Magnetic Aspect Angles," Geoscience and Remote Sensing, IEEE Transactions on , vol.49, no.1, pp.315,328, Jan. 2011

Like the model covered in the paper the software can calculate a spectra given, any magnetic aspect angle not perpendicular to B, any number of ion species, and the collision frequencies associated with those ion species. As the magnetic aspect angles get closer to perpendicular to B, usually < 1 degree perp to B, more and more calculations are needed for the Gordeyev to converge.

Installation

The package can be installed through anaconda through the following command

conda install -c swoboj isrspectrum

The package is also avalible through pypi and using using pip

pip install isrspectrum

The user can also download the software and install it through pip or set up tools if they prefer.

git clone https://github.com/jswoboda/ISRSpectrum.git

cd ISRSpectrum

pip install -e .

Code Examples

In order to create the spectrums, assuming the user installed the code, first import the ISRSpectrum class and create an instance of the class.

import numpy as np
from ISRSpectrum import Specinit
import scipy.constants as spconsts

spfreq = 50e3
nspec = 512
ISS2 = Specinit(centerFrequency = 440.2*1e6, bMag = 0.4e-4, nspec=nspec, sampfreq=spfreq,dFlag=True)


ti = 1e3
te = 1e3
Ne = 1e11
Ni = 1e11
mi = 16
Ce = np.sqrt(spconst.Boltzmann*te/spconst.m_e)
Ci = np.sqrt(spconst.Boltzmann*ti/(spconst.m_p*mi))

datablock90 = np.array([[Ni,ti,0,1,mi,0],[Ne,te,0,1,1,0]])
(omega,specorig,rcs) = ISS2.getspec(datablock90, rcsflag = True)

Where each colum of the data block is represented as a the information for a ion/electron species. The list is in this order:

  1. density(m^-3)
  2. temperature(K)
  3. Doppler velocity (m/s)
  4. charge in elementary charges
  5. mass of the species in AMU
  6. collision frequency in s^-1.

The info for the electron species must be the last row also !

Alternatively, if you are only using the following species: O+,NO+,N2+,O2+,N+, H+, e-, a simpler interface is available. Using this interface quasi-neutrality is assumed so the number of positive ions and electrons are the same. The user can get spectrum in the following way.

from ISRSpectrum import Specinit
import numpy as np

spfreq = 50e3
nspec = 512
ISS2 = Specinit(centerFrequency = 440.2*1e6, bMag = 0.4e-4, nspec=nspec, sampfreq=spfreq,dFlag=True)

ti = 1e3
te = 1e3
Ne = 1e11
Ni = 1e11
vi = 0
species = ['O+','e-']
datablock = np.array([[Ni,ti],[Ne,te]])
(omega,specorig,rcs) = ISS2.getspecsep(datablock,species,vi,90,rcsflag = True)

Further examples can be found in Examples/examplespectrums.py

Note

I switch the default branch to main. If you have a local copy of the software you can run the following commands to deal with the renaming

git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

isrspectrum-4.2.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

isrspectrum-4.2.0-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file isrspectrum-4.2.0.tar.gz.

File metadata

  • Download URL: isrspectrum-4.2.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for isrspectrum-4.2.0.tar.gz
Algorithm Hash digest
SHA256 c6c422bcaa688c6854ff31f72467e8efb048f315581e7b24f8df8a17a8486e5e
MD5 49e3b080f96a2b25ea66209913b1bfec
BLAKE2b-256 c5eb1a358fa192e8911438d95616c5d69fec46633e1d9956bf93b2ada3919f10

See more details on using hashes here.

Provenance

The following attestation bundles were made for isrspectrum-4.2.0.tar.gz:

Publisher: pypi-publish.yml on jswoboda/ISRSpectrum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file isrspectrum-4.2.0-py3-none-any.whl.

File metadata

  • Download URL: isrspectrum-4.2.0-py3-none-any.whl
  • Upload date:
  • Size: 24.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for isrspectrum-4.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04c5a7b86852ac779b720a4cd225583ae63089f0fe09db24d29f99fee6982d05
MD5 53e0a358424045cdfcb6c8d0f58777ec
BLAKE2b-256 fcda300e9889269fe2c1b1be909c1024bf6b192a800f7c0b7ab419eaae376ab2

See more details on using hashes here.

Provenance

The following attestation bundles were made for isrspectrum-4.2.0-py3-none-any.whl:

Publisher: pypi-publish.yml on jswoboda/ISRSpectrum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page