{ "info": { "author": "Aaron Dettmann", "author_email": "dettmann@kth.se", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Atmospheric Science", "Topic :: Scientific/Engineering :: Physics" ], "description": ".. image:: https://img.shields.io/pypi/v/ambiance.svg?style=flat\n :target: https://pypi.org/project/ambiance/\n :alt: Latest PyPI version\n\n.. image:: https://readthedocs.org/projects/ambiance/badge/?version=latest\n :target: https://ambiance.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/badge/license-Apache%202-blue.svg\n :target: https://github.com/aarondettmann/ambiance/blob/master/LICENSE.txt\n :alt: License\n\n.. image:: https://travis-ci.org/aarondettmann/ambiance.svg?branch=master\n :target: https://travis-ci.org/aarondettmann/ambiance\n :alt: Build status\n\n.. image:: https://codecov.io/gh/aarondettmann/ambiance/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/aarondettmann/ambiance\n :alt: Coverage\n\n|\n\n.. image:: https://raw.githubusercontent.com/aarondettmann/ambiance/master/docs/source/_static/images/logo/logo.png\n :target: https://github.com/aarondettmann/ambiance/\n :alt: Ambiance\n\n*Ambiance* is a full implementation of the ICAO standard atmosphere 1993 written in Python.\n\n* `International Standard Atmosphere (Wikipedia) `_\n* `Manual Of The ICAO Standard Atmosphere - 3rd Edition 1993 (Doc 7488) `_\n\nUsage\n=====\n\nAtmospheric properties are computed from an \"Atmosphere object\" which takes the altitude (geometric height) as input. For instance, to simply retrieve sea level properties, you can write:\n\n.. code:: python\n\n >>> from ambiance import Atmosphere\n >>> sealevel = Atmosphere(0)\n\n >>> sealevel.temperature\n array([288.15])\n\n >>> sealevel.pressure\n array([101325.])\n\n >>> sealevel.kinematic_viscosity\n array([1.46071857e-05])\n\n**List of available atmospheric properties**\n\n* Collision frequency (`collision_frequency`)\n* Density (`density`)\n* Dynamic viscosity (`dynamic_viscosity`)\n* Gravitational acceleration (`grav_accel`)\n* Kinematic viscosity (`kinematic_viscosity`)\n* Layer names (`layer_name`) [string array]\n* Mean free path (`mean_free_path`)\n* Mean particle speed (`mean_particle_speed`)\n* Number density (`number_density`)\n* Pressure (`pressure`)\n* Pressure scale height (`pressure_scale_height`)\n* Specific weight (`specific_weight`)\n* Speed of sound (`speed_of_sound`)\n* Temperature (`temperature`, `temperature_in_celsius`)\n* Thermal conductivity (`thermal_conductivity`)\n\n**List-like input**\n\n*Ambiance* also handles list-like input (list, tuples, *Numpy* arrays). The following code demonstrates how to produce a temperature plot with *Matplotlib*. In the example, *Numpy*'s `linspace()` function is used to produce an array with altitudes.\n\n.. code:: python\n\n import numpy as np\n import matplotlib.pyplot as plt\n from ambiance import Atmosphere\n\n # Make an atmosphere object\n heights = np.linspace(-5e3, 80e3, num=1000)\n atmosphere = Atmosphere(heights)\n\n # Make plot\n plt.plot(atmosphere.temperature_in_celsius, heights/1000)\n plt.ylabel('Height [km]')\n plt.xlabel('Temperature [\u00b0C]')\n plt.grid()\n plt.show()\n\nThe output is\n\n.. image:: https://raw.githubusercontent.com/aarondettmann/ambiance/master/tests/temperature_plot.png\n :alt: Temperature plot\n\n**Matrix-like input**\n\nSimilarly, you can also pass in entire *matrices*. Example:\n\n.. code:: python\n\n >>> import numpy as np\n >>> from ambiance import Atmosphere\n\n >>> h = np.array([[0, 11, 12], [20, 21, 35], [0, 80, 50]])*1000\n >>> h # Geometric heights in metres\n array([[ 0, 11000, 12000],\n [20000, 21000, 35000],\n [ 0, 80000, 50000]])\n\n >>> Atmosphere(h).temperature\n array([[288.15 , 216.7735127 , 216.65 ],\n [216.65 , 217.58085353, 236.51337209],\n [288.15 , 198.63857625, 270.65 ]])\n\n >>> Atmosphere(h).speed_of_sound\n array([[340.29398803, 295.15359145, 295.06949351],\n [295.06949351, 295.70270856, 308.29949587],\n [340.29398803, 282.53793156, 329.798731 ]])\n\n >>> Atmosphere([30000, 0]).layer_name\n array(['stratosphere', 'troposphere'], dtype='`_.\n\nInstallation\n============\n\n*Ambiance* is available on `PyPI `_ and may simply be installed with\n\n.. code::\n\n pip install ambiance\n\nRequirements\n============\n\nUsing *Ambiance* requires\n\n* *Python 3.6* or higher\n* *Numpy*\n\n*For developers*: Recommended packages may be installed with the `requirements.txt`.\n\n.. code::\n\n pip install -r requirements.txt\n\nLicense\n=======\n\n**License:** Apache-2.0\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aarondettmann/ambiance/", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "ambiance", "package_url": "https://pypi.org/project/ambiance/", "platform": "", "project_url": "https://pypi.org/project/ambiance/", "project_urls": { "Homepage": "https://github.com/aarondettmann/ambiance/" }, "release_url": "https://pypi.org/project/ambiance/0.3.0/", "requires_dist": [ "numpy" ], "requires_python": ">=3.6.0", "summary": "A full implementation of the ICAO standard atmosphere 1993", "version": "0.3.0" }, "last_serial": 5662739, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c6eede2b31090696e408b5ba643d3559", "sha256": "9a49b43d75e80492ae8f2341b43b39d088a22c1788b57c077ac65ce50db3cbe9" }, "downloads": -1, "filename": "ambiance-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6eede2b31090696e408b5ba643d3559", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 11567, "upload_time": "2019-07-26T10:13:49", "url": "https://files.pythonhosted.org/packages/41/d9/b387425bc34b0a8617faf1f10adc0e55a21d27227328bc2c576e92309ca5/ambiance-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb8e388abdbfdafa54a11096778bcc7d", "sha256": "a942a139c82749bedb43f2c9b76512ffee067c899c99a17e0eae391980010f57" }, "downloads": -1, "filename": "ambiance-0.1.0.tar.gz", "has_sig": false, "md5_digest": "cb8e388abdbfdafa54a11096778bcc7d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 10938, "upload_time": "2019-07-26T10:13:51", "url": "https://files.pythonhosted.org/packages/96/97/7325f40e81113643f84af225c8ba6466b4e162b5ac4dfa942e8d82d81331/ambiance-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5b1c7506b280101d2ff30789c17c0c23", "sha256": "aba69b56aa9dda554eee7a270a0591184cc8d4726d62cf6ca8fd320a809d9a3f" }, "downloads": -1, "filename": "ambiance-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5b1c7506b280101d2ff30789c17c0c23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12416, "upload_time": "2019-07-28T16:03:04", "url": "https://files.pythonhosted.org/packages/8c/8d/cbb20014181a75303ce32466703cfc2641a047f048513e611555598d5a4d/ambiance-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4182822bbc7aab7c9e2eda250a44d41", "sha256": "a4550415d6358f0609abe86b3b18cf62194da1cc269d4f8ac4b3ee23581e8921" }, "downloads": -1, "filename": "ambiance-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e4182822bbc7aab7c9e2eda250a44d41", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 12557, "upload_time": "2019-07-28T16:03:08", "url": "https://files.pythonhosted.org/packages/f1/cf/4c24ce9629b8e6ce66533f5f8d90c0c65709ee3260ec13c21bf086f6de71/ambiance-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "38caa8d7c5dbcb211629f5b0dc67e8e7", "sha256": "2e70688ca6b8d3455148ce78ea1fbd21638f7cda9206efe6f4e0034ea57f4b63" }, "downloads": -1, "filename": "ambiance-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "38caa8d7c5dbcb211629f5b0dc67e8e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12464, "upload_time": "2019-08-03T09:27:16", "url": "https://files.pythonhosted.org/packages/8d/60/79c2dab14ce69afaeabc57c74e5e4ffe3d8a05571612ebcb5a4a48af8f5b/ambiance-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b6945a3afe5439376314f10f5882e93", "sha256": "c0ae21c321df550271136dfceef9e946d19a4ac5d852cab4310c29c9d1bd5f11" }, "downloads": -1, "filename": "ambiance-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7b6945a3afe5439376314f10f5882e93", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 12657, "upload_time": "2019-08-03T09:27:18", "url": "https://files.pythonhosted.org/packages/9e/24/ab9cb56da980cdcd0f1aeaf00dd567b526f7dec2773792db47924d9fb1d7/ambiance-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "061ed851a3bf86ae322ceb12880373cf", "sha256": "42680e6b197cf9dce61d41ac44ae32cef6c1fec83274dcce0606036d4d383bfa" }, "downloads": -1, "filename": "ambiance-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "061ed851a3bf86ae322ceb12880373cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12719, "upload_time": "2019-08-11T17:02:16", "url": "https://files.pythonhosted.org/packages/bd/78/77049b09aa1fbdcb63b2af751cbb905efa75a302299ee7ac9028a8ffe989/ambiance-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1884625754133ee24dbcb56ade48c82", "sha256": "c4a6535799c6d3e1e8098834f32de68f25dc63e58cffbb45424b29337f82b9e2" }, "downloads": -1, "filename": "ambiance-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e1884625754133ee24dbcb56ade48c82", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 12923, "upload_time": "2019-08-11T17:02:18", "url": "https://files.pythonhosted.org/packages/60/d1/6e5be759f2911af7fdb5e1a933d13fb4d717ab7cf2965baa61e9bb8113ee/ambiance-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "061ed851a3bf86ae322ceb12880373cf", "sha256": "42680e6b197cf9dce61d41ac44ae32cef6c1fec83274dcce0606036d4d383bfa" }, "downloads": -1, "filename": "ambiance-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "061ed851a3bf86ae322ceb12880373cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12719, "upload_time": "2019-08-11T17:02:16", "url": "https://files.pythonhosted.org/packages/bd/78/77049b09aa1fbdcb63b2af751cbb905efa75a302299ee7ac9028a8ffe989/ambiance-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1884625754133ee24dbcb56ade48c82", "sha256": "c4a6535799c6d3e1e8098834f32de68f25dc63e58cffbb45424b29337f82b9e2" }, "downloads": -1, "filename": "ambiance-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e1884625754133ee24dbcb56ade48c82", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 12923, "upload_time": "2019-08-11T17:02:18", "url": "https://files.pythonhosted.org/packages/60/d1/6e5be759f2911af7fdb5e1a933d13fb4d717ab7cf2965baa61e9bb8113ee/ambiance-0.3.0.tar.gz" } ] }