Skip to main content

Python API for Fortran MSISE-00 neutral atmosphere model.

Project description

Zenodo DOI Travis-CI Coverage Build status Maintainability Python versions (PyPI) PyPi Download stats

MSISE-00 in Python and Matlab

NRL MSISE-00 atmospheric model for Python ≥ 3.6, also accessible via Matlab. Valid from altitude z = 0..1000 km.

The plot immediately below shows a slice at 200km on a world-wide grid. The yellow ball represents the sun footprint on Earth.

MSIS global time animation

This plot is from Matlab calling MSISE00:

MSISE00 Matlab

Install

This process is used for the Python and Matlab access to MSIS.

  1. Any Fortran compiler should work. Fortran compiler may be installed by

    • Mac: brew install gcc
    • Linux: apt install gfortran
    • Windows
  2. get MSISE00 and install Python package

    git clone https://github.com/scivision/msise00
    
    cd msise00
    
    python3 -m pip install -e .
    
  3. one-time compilation step requires either CMake or Meson (details below).

    python3 -c "import msise00; msise00.build()"
    

CMake install

Meson install

python3 -m pip install meson

extract Ninja and put it on your system path.

Examples

MSISE00 can be used from the command line, as an imported module, and even from Matlab.

import module

import msise00
from datetime import datetime

atmos = msise00.run(time=datetime(2013, 3, 31, 12), altkm=150., glat=65., glon=-148.)

atmos is an xarray.Dataset containing all the simulation output values. atmos is 4-D: (time, altitude, lat, lon), and indexed like atmos['N2']

Command Line

Write NetCDF4 output (HDF5 compatible) with command line argument -w filename.nc.

Simple examples include:

  • AltitudeProfile.py

  • TimeProfile.py

  • Worldgrid.py

  • Altitude Profile at a single time:

    MSISE00.py -t 2017-08-21T20:48 -c 40 -90
    
  • Alt. profile time-range with hourly time step:

    MSISE00.py -t 2017-08-21 2017-08-22 -c 40 -90
    
  • Grid: time,lat,lon: generates the plots in the README:

    MSISE00.py -t 2016-09-20 2016-09-21
    
  • single time lat/lon can be plotted:

    MSISE00.py -t 2017-01-02T12
    

Matlab

Matlab and GNU Octave users can seamlessly access Python modules, as demonstrated in AltitudeProfile.m and msise00.m.

  1. Install MSISe00 by running setup_msise00.m
  2. From Matlab, verify everything is working by from the msise00/ directory:
    runtests('tests')
    

Time Utiliies

Time utilities of general interest include:

  • msise00.todatetime
  • msise00.todt64

Fortran source

The MSISE00 Fortran source code may also be used directly. We have provided for easy code reuse in CMake and Meson projects.

Reference

  • Original fortran code
  • 1200+ citations 2002 paper

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

msise00-1.3.1.tar.gz (4.1 MB view hashes)

Uploaded Source

Supported by

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