inscar

Calculate an incoherent scatter spectrum with some isotropic electron velocity distribution and radar pointing at oblique angles to the magnetic field

https://github.com/engeir/inscar

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: wiley.com, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.3%) to scientific vocabulary

Keywords

incoherent-scatter-radar isr-spectrum
Last synced: 10 months ago · JSON representation ·

Repository

Calculate an incoherent scatter spectrum with some isotropic electron velocity distribution and radar pointing at oblique angles to the magnetic field

Basic Info
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 1
  • Open Issues: 8
  • Releases: 13
Topics
incoherent-scatter-radar isr-spectrum
Created over 6 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.rst

inscar
======

    INcoherent SCAtter Radar spectrum

|PyPI| |PyPI Downloads| |Status| |Python Version| |License| |Read the Docs| |Tests|
|Codecov| |DOI| |pre-commit| |Black|

.. |PyPI| image:: https://img.shields.io/pypi/v/inscar.svg
   :target: https://pypi.org/project/inscar/
   :alt: PyPI
.. |PyPI Downloads| image:: https://img.shields.io/pypi/dm/inscar.svg
   :target: https://pypi.org/project/inscar/
   :alt: PyPI Downloads
.. |Status| image:: https://img.shields.io/pypi/status/inscar.svg
   :target: https://pypi.org/project/inscar/
   :alt: Status
.. |Python Version| image:: https://img.shields.io/pypi/pyversions/inscar
   :target: https://pypi.org/project/inscar
   :alt: Python Version
.. |License| image:: https://img.shields.io/badge/License-MIT-yellow.svg
   :target: https://opensource.org/licenses/MIT
   :alt: License
.. |Read the Docs| image:: https://img.shields.io/readthedocs/inscar/latest.svg?label=Read%20the%20Docs
   :target: https://inscar.readthedocs.io/
   :alt: Read the documentation at https://ncdump-rich.readthedocs.io/
.. |Tests| image:: https://github.com/engeir/inscar/workflows/Tests/badge.svg
   :target: https://github.com/engeir/inscar/actions?workflow=Tests
   :alt: Tests
.. |Codecov| image:: https://codecov.io/gh/engeir/inscar/branch/master/graph/badge.svg?token=P8S18UILSB
   :target: https://codecov.io/gh/engeir/inscar
   :alt: Codecov
.. |DOI| image:: https://zenodo.org/badge/233043566.svg
   :target: https://zenodo.org/badge/latestdoi/233043566
   :alt: pre-commit
.. |pre-commit| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white
   :target: https://github.com/pre-commit/pre-commit
   :alt: pre-commit
.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/psf/black
   :alt: Black
.. |CodeQL| image:: https://github.com/engeir/inscar/workflows/CodeQL/badge.svg
   :alt: CodeQL

.. image:: ./img/normal_is_spectra.png

Info
----

Calculates an incoherent scatter radar spectrum based on the theory presented in
`Hagfors (1961)`_ and `Mace (2003)`_.

Installing
----------

You can install *inscar* via pip_ from PyPI_:

.. code:: console

   $ pip install inscar

Usage
-----

Please see the `Modules Reference `_ for details.

Physical environment
^^^^^^^^^^^^^^^^^^^^

The plasma parameters that are supported natively by the program are

* Radar frequency ``[Hz]``

  * This will also set the radar wave number ``(= -4pi(radar frequency)/(speed of light))``

* Magnetic field strength ``[T]``
* Aspect angle ``[1]``
* Electron temperature ``[K]``
* Ion temperature ``[K]``
* Electron collision frequency ``[Hz]``
* Ion collision frequency ``[Hz]``
* Electron mass in atomic mass units ``[u]``
* Ion mass in atomic mass units ``[u]``
* Electron number density ``[m^(-3)]``
* Ion number density ``[m^(-3)]``
* Kappa value for the kappa velocity distribution function ``[1]``

Custom simulation set-ups can be made by inheriting from the different classes. Say you
want a ``Particle`` class that also carries information about the temperature of a
collection of super thermal electrons as well as some height information. You then
inherit from ``Particle`` and decorate it with the ``@attr.s`` object:

.. code:: python

    @attr.s
    class RealDataParticle(isr.Particle):
        """Create a particle object with extra attributes."""

        superthermal_temperature: float = attr.ib(
            default=90000,
            validator=is_positive,
            on_setattr=attr.setters.validate,
        )
        z: int = attr.ib(default=300)

For more examples, see the assets_ directory.

Calculation method
^^^^^^^^^^^^^^^^^^

The program support different methods of calculating the spectrum, based on how you
assume the particles to be distributed. This includes a Maxwellian distribution
(``IntMaxwell`` class) and a kappa distribution (``IntKappa`` class), in addition to any
arbitrary isotropic distribution (``IntLong`` class) which can take any ``Vdf`` as
particle velocity distribution (default is ``VdfMaxwell``). An example showing how a new
``Vdf`` class can be made is given in assets_ (``VdfRealData``).

Aside
-----

This program was developed during my master thesis. For a more detailed explanation of
the mathematical derivations and an analysis of the numerical precision of the program,
please refer to the thesis found at `munin.uit.no`_.

Contributing
------------

To contribute to the project, clone and install the full development version (uses
rye_ for dependencies). Optionally, you may also install the pre-commit_ hooks to
automatically format the code and run the tests before committing.

.. code:: console

    $ git clone https://github.com/engeir/inscar.git
    $ cd inscar
    $ rye install
    $ pre-commit install

Before committing new changes to a branch you may run command

.. code:: console

    $ nox

to run the full test suite. You will need Rye_ and nox_ installed for this.

.. _Hagfors (1961): https://agupubs.onlinelibrary.wiley.com/doi/epdf/10.1029/JZ066i006p01699
.. _Mace (2003): https://aip.scitation.org/doi/pdf/10.1063/1.1570828
.. _PyPI: https://pypi.org/
.. _assets: https://github.com/engeir/inscar/tree/main/assets
.. _munin.uit.no: https://hdl.handle.net/10037/19542
.. _nox: https://nox.thea.codes/en/stable/
.. _pip: https://pip.pypa.io/
.. _rye: https://rye.astral.sh/
.. _pre-commit: https://pre-commit.com/
.. github-only
.. _Contributor Guide: CONTRIBUTING.rst
.. _Modules: https://inscar.readthedocs.io/en/latest/modules.html

Owner

  • Name: Eirik Rolland Enger
  • Login: engeir
  • Kind: user
  • Location: Tromsø
  • Company: @NorskHelsenett

System engineer @NorskHelsenett. Previously, PhD candidate in the complex systems modelling group at UiT \\ eirikre.83 on @signalapp

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Enger"
  given-names: "Eirik R."
  orcid: "https://orcid.org/0000-0001-6709-8688"
title: "inscar"
version: v3.0.3
doi: 10.5281/zenodo.6587001
date-released: 2022-05-27
url: "https://doi.org/10.5281/zenodo.6587001"
preferred-citation:
  type: software
  authors:
  - family-names: "Enger"
    given-names: "Eirik R."
    orcid: "https://orcid.org/0000-0001-6709-8688"
  doi: "10.5281/zenodo.6587001"
  journal: "Zenodo"
  month: 5
  # start: 1 # First page number
  # end: 10 # Last page number
  title: "inscar"
  # issue: 1
  # volume: 1
  year: 2022

GitHub Events

Total
  • Watch event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Fork event: 1

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 48 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 11
  • Total maintainers: 1
pypi.org: inscar

Calculate an incoherent scatter spectrum with arbitrary isotropic electron velocity distributions and radar pointing at oblique angles to the magnetic field

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 48 Last month
Rankings
Dependent packages count: 10.1%
Average: 17.8%
Dependent repos count: 21.6%
Downloads: 21.8%
Maintainers (1)
Last synced: 10 months ago

Dependencies

docs/requirements.txt pypi
  • sphinx ==5.0.1
  • sphinx-autodoc-typehints ==1.18.2
  • sphinx-rtd-theme ==1.0.0
poetry.lock pypi
  • alabaster 0.7.12 develop
  • asteval 0.9.27 develop
  • atomicwrites 1.4.0 develop
  • babel 2.10.1 develop
  • black 22.3.0 develop
  • certifi 2022.5.18.1 develop
  • cfgv 3.3.1 develop
  • charset-normalizer 2.0.12 develop
  • click 8.1.3 develop
  • colorama 0.4.4 develop
  • coverage 6.4.1 develop
  • darglint 1.8.1 develop
  • distlib 0.3.4 develop
  • docutils 0.17.1 develop
  • filelock 3.7.1 develop
  • flake8 3.9.2 develop
  • future 0.18.2 develop
  • identify 2.5.1 develop
  • idna 3.3 develop
  • imagesize 1.3.0 develop
  • iniconfig 1.1.1 develop
  • isort 5.10.1 develop
  • jinja2 3.1.2 develop
  • livereload 2.6.3 develop
  • lmfit 1.0.3 develop
  • markupsafe 2.1.1 develop
  • mccabe 0.6.1 develop
  • mypy 0.960 develop
  • mypy-extensions 0.4.3 develop
  • nodeenv 1.6.0 develop
  • packaging 21.3 develop
  • pathspec 0.9.0 develop
  • platformdirs 2.5.2 develop
  • pluggy 1.0.0 develop
  • pre-commit 2.19.0 develop
  • pre-commit-hooks 4.2.0 develop
  • py 1.11.0 develop
  • pycodestyle 2.7.0 develop
  • pyflakes 2.3.1 develop
  • pygments 2.12.0 develop
  • pyparsing 3.0.9 develop
  • pytest 7.1.2 develop
  • pytest-cov 3.0.0 develop
  • pytz 2022.1 develop
  • pyupgrade 2.32.1 develop
  • pyyaml 6.0 develop
  • requests 2.27.1 develop
  • ruamel.yaml 0.17.21 develop
  • ruamel.yaml.clib 0.2.6 develop
  • si-prefix 1.2.2 develop
  • six 1.16.0 develop
  • snowballstemmer 2.2.0 develop
  • sphinx 5.0.1 develop
  • sphinx-autobuild 2021.3.14 develop
  • sphinx-autodoc-typehints 1.18.2 develop
  • sphinx-rtd-theme 1.0.0 develop
  • sphinxcontrib-applehelp 1.0.2 develop
  • sphinxcontrib-devhelp 1.0.2 develop
  • sphinxcontrib-htmlhelp 2.0.0 develop
  • sphinxcontrib-jsmath 1.0.1 develop
  • sphinxcontrib-qthelp 1.0.3 develop
  • sphinxcontrib-serializinghtml 1.1.5 develop
  • tokenize-rt 4.2.1 develop
  • toml 0.10.2 develop
  • tomli 2.0.1 develop
  • tornado 6.1 develop
  • tqdm 4.64.0 develop
  • types-attrs 19.1.0 develop
  • typing-extensions 4.2.0 develop
  • uncertainties 3.1.6 develop
  • urllib3 1.26.9 develop
  • virtualenv 20.14.1 develop
  • xdoctest 1.0.0 develop
  • attrs 21.4.0
  • importlib-metadata 4.11.4
  • llvmlite 0.38.1
  • numba 0.55.2
  • numpy 1.22.4
  • scipy 1.8.1
  • zipp 3.8.0
pyproject.toml pypi
  • Sphinx ^5.0.0 develop
  • black ^22.3.0 develop
  • darglint ^1.8.1 develop
  • flake8 ^3.9.0 develop
  • isort ^5.8.0 develop
  • lmfit ^1.0.3 develop
  • mypy ^0.960 develop
  • pre-commit ^2.19.0 develop
  • pre-commit-hooks ^4.2.0 develop
  • pytest ^7.1.2 develop
  • pytest-cov ^3.0.0 develop
  • pyupgrade ^2.32.0 develop
  • si-prefix ^1.2.2 develop
  • sphinx-autobuild ^2021.3.14 develop
  • sphinx-autodoc-typehints ^1.18.1 develop
  • sphinx-rtd-theme ^1.0.0 develop
  • tqdm ^4.59.0 develop
  • types-attrs ^19.1.0 develop
  • xdoctest ^1.0.0 develop
  • attrs ^21.4.0
  • importlib-metadata ^4.11.4
  • numba ^0.55.1
  • numpy ^1.20.2
  • python >=3.8,<3.11
  • scipy ^1.6.2
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/labeler.yml actions
  • actions/checkout v3 composite
  • crazy-max/ghaction-github-labeler v4.1.0 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish v1.6.4 composite
  • release-drafter/release-drafter v5.22.0 composite
  • salsify/action-detect-and-tag-new-version v2.0.3 composite
.github/workflows/tests.yml actions
  • actions/cache v3.2.4 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite