{ "info": { "author": "Michael Hirsch, Ph.D.", "author_email": "scivision@users.noreply.github.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Science/Research", "Operating System :: OS Independent", "Programming Language :: Fortran", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Scientific/Engineering :: Atmospheric Science" ], "description": "[![Zenodo DOI](https://zenodo.org/badge/32971905.svg)](https://zenodo.org/badge/latestdoi/32971905)\n\n[![Build Status](https://dev.azure.com/mhirsch0512/MSISE00/_apis/build/status/space-physics.msise00?branchName=master)](https://dev.azure.com/mhirsch0512/MSISE00/_build/latest?definitionId=5&branchName=master)\n[![Python versions (PyPI)](https://img.shields.io/pypi/pyversions/msise00.svg)](https://pypi.python.org/pypi/msise00)\n[![PyPi Download stats](http://pepy.tech/badge/msise00)](http://pepy.tech/project/msise00)\n\n# MSISE-00 in Python and Matlab\n\nNRL MSISE-00 atmospheric model for Python ≥ 3.6, also accessible via Matlab or GNU Octave.\nValid from altitude z = 0..1000 km.\n\nThe plot immediately below shows a slice at 200km on a world-wide grid.\nThe yellow ball represents the sun footprint on Earth.\n\n![MSIS global time animation](./tests/msise00_demo.gif)\n\nThis plot is from [Matlab](./tests/test_msise00_matlab.m) calling MSISE00:\n\n![MSISE00 Matlab](./tests/msis_matlab.png)\n\n## Install\n\nThis process is used for the Python and [Matlab](#matlab) access to MSIS.\nAny Fortran compiler should work.\nFortran compiler may be installed by\n\n* MacOS / Homebrew: `brew install gcc`\n* Linux: `apt install gfortran`\n* [Windows](https://www.scivision.dev/windows-gcc-gfortran-cmake-make-install/)\n\nGet MSISE00 and install Python package\n\n```sh\ngit clone https://github.com/scivision/msise00\n\npython -m pip install -e msise00\n```\n\nThe Fortran code will automatically compile on first import.\nIf you need to recompile manually:\n\n```sh\npython msise00/build.py\n```\n\n## Examples\n\nMSISE00 can be used from the command line, as an imported module, and even from Matlab.\n\n### import module\n\n```python\nimport msise00\nfrom datetime import datetime\n\natmos = msise00.run(time=datetime(2013, 3, 31, 12), altkm=150., glat=65., glon=-148.)\n```\n\natmos is an [xarray.Dataset](http://xarray.pydata.org/en/stable/generated/xarray.Dataset.html) containing all the simulation output values.\n`atmos` is 4-D: (time, altitude, lat, lon), and indexed like `atmos['N2']`\n\n\n### Command Line\n\nWrite NetCDF4 output (HDF5 compatible) with command line argument `-w filename.nc`.\n\nSimple examples include:\n\n* AltitudeProfile.py\n* TimeProfile.py\n* Worldgrid.py\n\n\n* Altitude Profile at a single time:\n\n ```sh\n python MSISE00.py -t 2017-08-21T20:48 -c 40 -90\n ```\n* Alt. profile time-range with hourly time step:\n\n ```sh\n python MSISE00.py -t 2017-08-21 2017-08-22 -c 40 -90\n ```\n* Grid: time,lat,lon: generates the plots in the README:\n\n ```sh\n python MSISE00.py -t 2016-09-20 2016-09-21\n ```\n* single time lat/lon can be plotted:\n\n ```sh\n python MSISE00.py -t 2017-01-02T12\n ```\n\n### Matlab\n\nMatlab and GNU Octave users use of MSISE00 is demonstrated in\n[AltitudeProfile.m](./matlab/AlitudeProfile.m) and\n[msise00.m](./matlab/msise00.m).\n\nMSISE00 should **automatically compile** on first run from Matlab or Octave.\nIf you desire, manually compile MSISe00 by running [build.m](./matlab/build.m) from within Matlab or Octave:\n\n```matlab\ncd matlab\n\nbuild()\n```\n\nOptionally, verify Matlab is working by from the top `msise00/` directory in Terminal\n\n```sh\nmatlab -batch runtests('tests')\n```\n\n## Fortran source\n\nThe MSISE00 Fortran source code may also be used directly.\nWe have provided for easy code reuse in\n[CMake](./CMakeLists.txt)\nand\n[Meson](./meson.build)\nprojects.\n\n## Reference\n\n* Original fortran [code](https://ccmc.gsfc.nasa.gov/pub/modelweb/atmospheric/msis/)\n* 1200+ citations 2002 [paper](http://onlinelibrary.wiley.com/doi/10.1029/2002JA009430/pdf)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/space-physics/msise00", "keywords": "atmosphere,geospace", "license": "", "maintainer": "", "maintainer_email": "", "name": "msise00", "package_url": "https://pypi.org/project/msise00/", "platform": "", "project_url": "https://pypi.org/project/msise00/", "project_urls": { "Homepage": "https://github.com/space-physics/msise00" }, "release_url": "https://pypi.org/project/msise00/1.6.1/", "requires_dist": null, "requires_python": ">= 3.6", "summary": "Python API for Fortran MSISE-00 neutral atmosphere model.", "version": "1.6.1" }, "last_serial": 5740659, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "749b4320d469410c68a18088538994dd", "sha256": "40687aea5426a1bea58bbfe10ef976d921068766fac10ea30a13ba26ef307e12" }, "downloads": -1, "filename": "msise00-0.9.0.tar.gz", "has_sig": false, "md5_digest": "749b4320d469410c68a18088538994dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27176, "upload_time": "2017-04-24T03:27:02", "url": "https://files.pythonhosted.org/packages/7d/9f/f541cd181294803c9e78723c5568744795bec80766b9fe13216380720190/msise00-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "ec32c6d4faf87196dff209cc3a89db7a", "sha256": "a660233a623263d8705ce6fbff433b05cb6eae7c31332efa1310ce0130ad41f6" }, "downloads": -1, "filename": "msise00-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ec32c6d4faf87196dff209cc3a89db7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27203, "upload_time": "2017-04-24T09:06:43", "url": "https://files.pythonhosted.org/packages/48/87/958e012a0d8a479a550c8067ed0c9570a6b503c83beb0bbb536a3d320832/msise00-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6aeaf599d326409120d8bf67dda8eacb", "sha256": "8ad8e2eca1e0a7e32d0d29468d35654a230c86209d39c01d6e7fa2512a17544c" }, "downloads": -1, "filename": "msise00-1.1.0.tar.gz", "has_sig": false, "md5_digest": "6aeaf599d326409120d8bf67dda8eacb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28440, "upload_time": "2018-03-30T05:46:53", "url": "https://files.pythonhosted.org/packages/82/cf/44194351364e013ace16f11612a7a0bc32be3b840b9c134226609a58e394/msise00-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "f55f142ac2d5498d15e8630448859083", "sha256": "a7efe91957a8387c160a0366c7e6f9c5f094bd280612ab0278a8f31c42916b83" }, "downloads": -1, "filename": "msise00-1.1.1.tar.gz", "has_sig": false, "md5_digest": "f55f142ac2d5498d15e8630448859083", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28571, "upload_time": "2018-03-30T06:15:50", "url": "https://files.pythonhosted.org/packages/12/f5/7d3bf6b7859273242c0d402580c6008933d55302d2d54639045a33a528fb/msise00-1.1.1.tar.gz" } ], "1.1.1a0": [ { "comment_text": "", "digests": { "md5": "8e381702fa68c281aadfe8ac5b900460", "sha256": "118e40c708cfbded9e7e83b3ca71deaabffcaec8a362635b9f4c5831401c6931" }, "downloads": -1, "filename": "msise00-1.1.1a0.tar.gz", "has_sig": false, "md5_digest": "8e381702fa68c281aadfe8ac5b900460", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28577, "upload_time": "2018-03-30T06:21:19", "url": "https://files.pythonhosted.org/packages/c7/a4/5eba90a9943d4712eec1010a93e71be979411a35350ac5d2a061cf880adf/msise00-1.1.1a0.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "52928f9bcfbe7b746a9de4ca6058d4f4", "sha256": "e9ba47116b2c291a0295d5c858a1c0cb14735ee15617e589dfa86922d46e0782" }, "downloads": -1, "filename": "msise00-1.1.3.tar.gz", "has_sig": false, "md5_digest": "52928f9bcfbe7b746a9de4ca6058d4f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 30310, "upload_time": "2018-07-09T16:43:43", "url": "https://files.pythonhosted.org/packages/fb/27/98275403c85ae63a0fd2008d9ab7713d87f63222ec1f5ec113bf76e83b03/msise00-1.1.3.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "fadfc8c2672960e2fb09820d6e9de346", "sha256": "140f21b0d0108964bf9b4970d2fe6b9a0b61c4bc78c787a13fea2904f574ecfa" }, "downloads": -1, "filename": "msise00-1.2.0.tar.gz", "has_sig": false, "md5_digest": "fadfc8c2672960e2fb09820d6e9de346", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4016144, "upload_time": "2018-07-13T19:34:52", "url": "https://files.pythonhosted.org/packages/39/31/51d9853e916be8fd57d01aa4a7b584d3fb9950c0cc9abdbfbe907cd6c70d/msise00-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "57421f54eff615a9a89a5355eb1a4df8", "sha256": "6764758f2712c2ab3aa936837131098de0c01dc01a90665a3135ee728c079358" }, "downloads": -1, "filename": "msise00-1.2.1.tar.gz", "has_sig": false, "md5_digest": "57421f54eff615a9a89a5355eb1a4df8", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4008923, "upload_time": "2018-07-24T22:09:05", "url": "https://files.pythonhosted.org/packages/6a/f8/34f05bad81df6e219189585dfbf1a1c66ea4fb120c64db03d4c32e30c68f/msise00-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "cdd238555b66ae1fc49c96abbb86b687", "sha256": "dd03e591237549cba9267d75878a4054b98c6cf1a4edd1e45ac364819b65dd1c" }, "downloads": -1, "filename": "msise00-1.2.2.tar.gz", "has_sig": false, "md5_digest": "cdd238555b66ae1fc49c96abbb86b687", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4022510, "upload_time": "2018-08-15T16:38:50", "url": "https://files.pythonhosted.org/packages/4d/4a/ba9237544f13917967eb0d26f1713cffb89c3078052c68f1ccf21ed8e630/msise00-1.2.2.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "8049f661c50ac2a4855c020e2128b665", "sha256": "6f73810e77abb1737312fbfc5f141d0405304744e83c5ca30491566bc36e5529" }, "downloads": -1, "filename": "msise00-1.3.0.tar.gz", "has_sig": false, "md5_digest": "8049f661c50ac2a4855c020e2128b665", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4045032, "upload_time": "2019-03-13T06:46:10", "url": "https://files.pythonhosted.org/packages/61/d8/b46df2dffa07cc2743c7fc52767a205eef0f1b2ba0e4dcb98eb98978331f/msise00-1.3.0.tar.gz" } ], "1.3.0.1": [ { "comment_text": "", "digests": { "md5": "685d43dd8e9a50cf85225196bf70190f", "sha256": "09ee349d97a58152bfe6b5d4b572b7f8f73527c726fb5a3ad79b38d2d877c902" }, "downloads": -1, "filename": "msise00-1.3.0.1.tar.gz", "has_sig": false, "md5_digest": "685d43dd8e9a50cf85225196bf70190f", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4053908, "upload_time": "2019-03-14T16:20:17", "url": "https://files.pythonhosted.org/packages/55/e1/eccb3569950c10d24cc6c4bfc9bcb01ec71db4ae80a4f98c8679f3069ca9/msise00-1.3.0.1.tar.gz" } ], "1.3.0.2": [ { "comment_text": "", "digests": { "md5": "36f6ffc6345c4a3c9a60b26d75ef0ec5", "sha256": "3ab0e2e0a9a2bdd086a0f89aeaac6493c872213ad3a9c7c58ac8d55235c4a0a1" }, "downloads": -1, "filename": "msise00-1.3.0.2.tar.gz", "has_sig": false, "md5_digest": "36f6ffc6345c4a3c9a60b26d75ef0ec5", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4054006, "upload_time": "2019-03-14T16:38:44", "url": "https://files.pythonhosted.org/packages/00/36/3511ad8bc033f7ff3613e10cefdb186b052d55e748898d9a4cf9f1371f8c/msise00-1.3.0.2.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "3b139504aec0854d54d642c0b261fba1", "sha256": "70e23ca66729a69c620422d74a813c69966c1749d7b8fc12aaafe082018a07b0" }, "downloads": -1, "filename": "msise00-1.3.1.tar.gz", "has_sig": false, "md5_digest": "3b139504aec0854d54d642c0b261fba1", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4054081, "upload_time": "2019-03-14T18:59:19", "url": "https://files.pythonhosted.org/packages/8f/3e/ed8a4c30147cb1c6f1f001d33070c1faddf7cb110a33d98bda7db3f7cc8b/msise00-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "655e4c1082357ba29e95fed7f7832b77", "sha256": "9feb7b7a4e772728cf9eb6b32789807548bf1853d4a04f47b8aa069f5bcf0f4e" }, "downloads": -1, "filename": "msise00-1.3.2.tar.gz", "has_sig": false, "md5_digest": "655e4c1082357ba29e95fed7f7832b77", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 6088523, "upload_time": "2019-03-14T19:53:05", "url": "https://files.pythonhosted.org/packages/95/43/dc13f83690ca16705bd01ec58da40377279840e81e1504bdb76c5e54f04e/msise00-1.3.2.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "5ebd2c37ce737eee498adbc78dddb98d", "sha256": "1c76e97126c661c18fdf69964db6e3b075c68fc6fdd4a7d8c083ff2949acaf13" }, "downloads": -1, "filename": "msise00-1.4.0.tar.gz", "has_sig": false, "md5_digest": "5ebd2c37ce737eee498adbc78dddb98d", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4048228, "upload_time": "2019-07-02T15:06:11", "url": "https://files.pythonhosted.org/packages/ad/4f/959313beb1f07186255c8a420ca5e3b12e6339e0c238f7cb9bb0c0a0256a/msise00-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "3ef7dd8ca01b1f0d419bf6e5eb7c7948", "sha256": "f1207ab6a766458df5a999ceb18a54d1804a487b13118ad52cd6ae49146c2ae7" }, "downloads": -1, "filename": "msise00-1.5.0.tar.gz", "has_sig": false, "md5_digest": "3ef7dd8ca01b1f0d419bf6e5eb7c7948", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4009605, "upload_time": "2019-07-21T09:11:34", "url": "https://files.pythonhosted.org/packages/04/77/c2350b2fb286ab7b5039072845c920a6bad3906bb6a77c2bd9b8eeb7bdf0/msise00-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "3af669fa2751e287fbc46361621c0a35", "sha256": "519ee7f472fecfd92ba94fbe414e73973fef2051c6e132c561ae5812ecebe061" }, "downloads": -1, "filename": "msise00-1.6.0.tar.gz", "has_sig": false, "md5_digest": "3af669fa2751e287fbc46361621c0a35", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4009445, "upload_time": "2019-08-28T02:19:30", "url": "https://files.pythonhosted.org/packages/e0/6a/42bdad53bcb1d0460727caf6c72fbc04a6a3164f92c458b871e0fb6a453d/msise00-1.6.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "4f15e1c8f754abaf019274122082a995", "sha256": "d26015b796874c97cf80f128f24ed306b6ed1a8efa954e183bf5081eea178628" }, "downloads": -1, "filename": "msise00-1.6.1.tar.gz", "has_sig": false, "md5_digest": "4f15e1c8f754abaf019274122082a995", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4009353, "upload_time": "2019-08-28T04:38:27", "url": "https://files.pythonhosted.org/packages/54/dd/6a6826c3d12494f3a168a450b1d3bdfcdb3ec9cb83f6a7d91364e8f6743d/msise00-1.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4f15e1c8f754abaf019274122082a995", "sha256": "d26015b796874c97cf80f128f24ed306b6ed1a8efa954e183bf5081eea178628" }, "downloads": -1, "filename": "msise00-1.6.1.tar.gz", "has_sig": false, "md5_digest": "4f15e1c8f754abaf019274122082a995", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4009353, "upload_time": "2019-08-28T04:38:27", "url": "https://files.pythonhosted.org/packages/54/dd/6a6826c3d12494f3a168a450b1d3bdfcdb3ec9cb83f6a7d91364e8f6743d/msise00-1.6.1.tar.gz" } ] }