{ "info": { "author": "Ryan Varley", "author_email": "oecpy@ryanvarley.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Scientific/Engineering :: Astronomy" ], "description": "# ExoData\n[![Build Status](https://api.travis-ci.org/ryanvarley/ExoData.png?branch=master)](https://travis-ci.org/ryanvarley/ExoData)\n[![Documentation Status](https://readthedocs.org/projects/exodata/badge/?version=latest)](http://exodata.readthedocs.io/en/latest/?badge=latest)\n[![Coverage Status](https://coveralls.io/repos/ryanvarley/ExoData/badge.svg)](https://coveralls.io/r/ryanvarley/ExoData)\n\nThis python interface (formerly oecpy) serves as a link between the raw XML of the [Open Exoplanet Catalogue](https://github.com/OpenExoplanetCatalogue/open_exoplanet_catalogue). It allows:\n\n* Searching of planets (including alternate names)\n* Easy reference of planet parameters ie GJ1214b.ra, GJ1214b.T, GJ1214b.R\n* Calculation of values like the transit duration.\n* Define planet types and query planets to find out what they are\n* Easy rescale of units\n* Easily navigate hierarchy (ie from planet to star or star to planets)\n* Availability of system parameters in planets (ie ra, dec, d (distance))\n\nIf you use ExoData in a scientific publication, please include a reference to this paper [http://dx.doi.org/10.1016/j.cpc.2016.05.009](http://dx.doi.org/10.1016/j.cpc.2016.05.009).\n\n# Documentation\n\nFull documentation is currently being built [here](http://exodata.readthedocs.io/en/latest/).\nFor now this page and the [ExoData paper](http://dx.doi.org/10.1016/j.cpc.2016.05.009) are the best sources.\n\n# Installation\nThis module depends on\n\n* [Quantities](https://github.com/python-quantities/python-quantities)\n* [numpy](http://www.numpy.org/)\n* nose\n* matplotlib\n* requests\n* hypothesis\n* [Open Exoplanet Catalogue](https://github.com/OpenExoplanetCatalogue/open_exoplanet_catalogue) (somewhere on your system)\n\n**Currently only tested under Python 2.7, 3.4, 3.5 on mac and linux**. If you use windows or a different python version try it anyway and open an issue if you encounter problems.\n\nEasiest way\n\n`pip install exodata`\n\nOr from this repo\n\n python setup.py install\n\nYou can either download and manage the Open Exoplanet Catalogue yourself or automatically load the latest version from the web each time.\n\nTo get your own copy move to the folder on your system where you want to store it and clone the Open Exoplanet Catalogue (this process will create a folder named open-exoplanet-catalogue within your working directory).\n\n git clone https://github.com/OpenExoplanetCatalogue/open_exoplanet_catalogue.git\n\nThe catalogue should then download. If you want to update the catalogue, move to the open_exoplanet_catalogue folder and pull\n\n cd open_exoplanet_catalogue/\n git pull origin master\n\nIf you want to keep track of this repo in a GUI way, I recommend [sourcetree](http://www.sourcetreeapp.com/) or the [github client](https://help.github.com/articles/set-up-git).\n\n# Usage\n\nThis section was generated using the OEC version dc8c08a4ba0c64dd039e96c801d12f17c82a7ff3 (1st May 2016)\n\n\timport exodata\n\tdatabaseLocation = '/git/open_exoplanet_catalogue/systems/' # Your path here (to systems folder)\n\texocat = exodata.OECDatabase(databaseLocation)\n\n\t# To automatically load the latest version from github you can instead use load_db_from_url() which fetches\n\t# the latest version from https://github.com/OpenExoplanetCatalogue/oec_gzip/raw/master/systems.xml.gz\n\texocat = exodata.load_db_from_url()\n\nYou can then access the lists\n\n\texocat.systems\n\texocat.stars\n\texocat.planets\n\texocat.transitingPlanets\n\nThe following code assumes the imports (along with loading exocat as above)\n\n import exodata\n import exodata.astroquantities as aq\n\nYou can now perform more advanced queries such as fetching all planets whose radius is less than 10 Earth Radii\n\n\t>>> superEarths = [planet for planet in exocat.planets if planet.R < (10 * aq.R_e)]\n\t>>> len(superEarths)\n\t1096\n\nTo choose a planet\n\n\t>>> kepler60b = exocat.searchPlanet('kepler60b')\n\t>>> print kepler60b\n\tPlanet('Kepler-60 b')\n\n\t>>> exocat.searchPlanet('kepler60') # or all the kepler 60 planets\n\t[Planet('Kepler-60 c'), Planet('Kepler-60 b'), Planet('Kepler-60 d')]\n\n\t>>> kepler60b.star # to get the star kepler-60\n\tStar('Kepler-60')\n\n\t>>> kepler60b.R # to get the planetary radius\n\tarray(0.196) * R_j # this works like an array in most functions\n\n\t>>> kepler60b.R.rescale(aq.R_e) # See Units section for more\n\tarray(2.150770051797206) * R_e\n\n\t>>> kepler60b.R.rescale(aq.m)\n\tarray(13702556.0) * m\n\n\t>>> kepler60b.dec\n\t\n\n\t>>> kepler60b.dec.dms # or in degrees, minutes and seconds\n\tdms_tuple(d=42.0, m=15.0, s=54.040000000011901)\n\n\t>>> gj1214b = exocat.searchPlanet('gj1214')\n\tPlanet('Gliese 1214 b')\n\n\t>>> exocat.planetDict['Gliese 1214 b'] # or with the exact name\n\tPlanet('Gliese 1214 b')\n\nFor a full list of planets, star and system parameters see Appendix B (pg 16-19) of the [ExoData paper](http://arxiv.org/pdf/1510.02738v1.pdf).\n\n# Units\nunits are handled by the quantities package\n`import quantities as pq`\n\nYou can then access most units and constants such as meters pq.m, astronomical units pq.au etc!\n\nSome astronomy units such as R_e, R_j, R_s (where e is Earth, j is Jupiter and s in the Sun) are not included (yet) in quantities so you need to refer to them as aq.R_e by importing exodata.astroquantities\n\n\timport exodata.astroquantities as aq\n\nexodata.astroquantities includes all pq units so only the *aq* import is necessary\n\nThere are also other units such as mass (M_e, M_s and M_j).\n\nYou can read more about the Quantities package [here](https://github.com/python-quantities/python-quantities).\n\n# Equations\n\nThe equations module contains many exolanet equations that be be used independantly or called directly from a planet or star object. Most equations are classes that when given all parameters bar one will calculate the missing one.\n\n\t>>> from exodata.equations import KeplersThirdLaw\n\t>>> KeplersThirdLaw(a=0.01488*aq.au, M_s=0.176*aq.M_s).P\n\tarray(1.579696141940911) * d\n\n\t>>> KeplersThirdLaw(a=0.015*aq.au, P=1.58*aq.d).M_s\n\tarray(0.18022315673929148) * M_s\n\n\t>>> gj1214b = exocat.planetDict['Gliese 1214 b']\n\t>>> gj1214b.calcSurfaceGravity()\n\tarray(7.929735778087916) * m/s**2\n\n\t>>> gj1214b.calcLogg()\n\t2.8992587166958947\n\n\t>>>> gj1214b.calcTransitDuration(circular=True)\n\tarray(52.74732533968579) * min\n\n# Assumptions\n\nThese are how a planet is classified acoridng to mass, radius and temperature along with assumptions for the albedo and mean molecular weight based on these parameters. Currently they are stored in the dictionary `exodata.assumptions.planetAssumptions`.\n\nOverwriting these values (or adding new ones) will change the output. for example, looking at the mass types we can see a list defining the limits. Editing this list to change the values or add new classes will chnage how planet are classified in the program.\n\n\t>>> exodata.assumptions.planetAssumptions['massType']\n\t[(array(10.0) * M_e, 'Super-Earth'), (array(20.0) * M_e, 'Neptune'), (inf, 'Jupiter')]\n\n# ExoData Global Parameters\nA few options can be set within ExoData to change the global behaviour of the program. By default if a quantity is missing for a parameter it is calculated if possible. For example if you use .a for the semi-major axis and it is not present in the catalogue it will be calculated using the period and stellar mass and returned. This happens silently except for raising the `Calculated SMA` flag. (see flags). You can turn this behaviour off by typing\n\n\texodata.params.estimateMissingValues = False\n\nThis will only take scope in the current project so if you close the interpreter it will reset to True.\n\n# Plotting\n\nExoData features a plotting library for planet and stellar parameters in a scatter plot and per parameter bin. Please see the [plots section](https://github.com/ryanvarley/open-exoplanet-catalogue-python/wiki/Plotting) of the documentation for further information. Note that all plots are shown here were produced after `import seaborn` which changes the plot style.\n\nNote if you want to replicate these plots in the default python interpretor you will need to **import pyplot and issue the show command after each plotting code** shown below. You will also need to close the open plot before typing any further commands.\n\n\timport matplotlib.pyplot as plt\n\tplt.show()\n\n### Discovery Method by Year\n\n```python\ndm_plot = exodata.plots.DiscoveryMethodByYear(exocat.planets, methods_to_plot=('RV', 'transit', 'Other'))\ndm_plot.plot(method_labels=('Radial Velocity', 'Transit Method', 'Other'))\n```\n![Discovery method by year](https://github.com/ryanvarley/ExoData/blob/images/discovery_year_method_v2.png?raw=true \"Discovery method by year\")\n\n### Planet Mass with Planet Radius\n```python\nexodata.plots.GeneralPlotter(exocat.planets, 'R', 'M', yaxislog=True).plot()\nplt.xlim(0, 2.5)\n```\n![Planet Mass with Planet Radius](https://github.com/ryanvarley/ExoData/blob/images/planetR-M_v5.png?raw=true \"Planet Mass with Planet Radius Plot\")\n\n### Stellar V Magnitude with Planet Radius\n```python\nexodata.plots.GeneralPlotter(exocat.planets, 'R', 'star.magV',\n xunit=aq.R_e, xaxislog=True).plot()\n```\n\n![Stellar V Magnitude with Planet Radius](https://github.com/ryanvarley/ExoData/blob/images/planetR-starMagV_v5.png \"Stellar V Magnitude with Planet Radius Plot\")\n\n### Planet Eccentricity\n```python\nexodata.plots.DataPerParameterBin(exocat.planets, 'e',\n (0, 0, 0.05, 0.1, 0.2, 0.4, float('inf'))).plotBarChart(label_rotation=45)\n```\n![Planet Eccentricity](https://github.com/ryanvarley/ExoData/blob/images/exodata-orbital-eccentricity_v5.png \"Planet Eccentricity Plot\")\n\nYou can also plot this as a pie chart\n\n```python\nexodata.plots.DataPerParameterBin(exocat.planets, 'e',\n (0, 0, 0.05, 0.1, 0.2, 0.4, float('inf'))).plotPieChart()\n```\n\n![Planet Eccentricity](https://github.com/ryanvarley/ExoData/blob/images/exodata-orbital-eccentricity-pie_v6.png?raw=true \"Planet Eccentricity Pie Chart\")\n\nPlots can also be large (i.e. for presentations), and you can change the color easily with normal *matplotlib* syntax\n\n```python\nexodata.plots.DataPerParameterBin(exocat.planets, 'M',\n (0, 0.2, 0.5, 1, 2, 3, 6, 12, float('inf')), size='large').plotBarChart(c='r')\n```\n![Planet Eccentricity](https://github.com/ryanvarley/ExoData/blob/images/exodata-orbital-eccentricity-large_v5.png?raw=true \"Planet Eccentricity Plot Large\")\n\n# Licence\n\nMIT License\n\nCopyright (c) 2016 Ryan Varley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ryanvarley/exodata", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "exodata", "package_url": "https://pypi.org/project/exodata/", "platform": "", "project_url": "https://pypi.org/project/exodata/", "project_urls": { "Homepage": "https://github.com/ryanvarley/exodata" }, "release_url": "https://pypi.org/project/exodata/2.1.7/", "requires_dist": null, "requires_python": "", "summary": "Exoplanet catalogue interface", "version": "2.1.7" }, "last_serial": 2886628, "releases": { "1": [], "1.1.1": [ { "comment_text": "", "digests": { "md5": "d824e1881f18a0e350aabe4231ee296d", "sha256": "72ec5efe68af341191003a95749ae35d2ae6a0af00ebc16d16214d079b9c4437" }, "downloads": -1, "filename": "exodata-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d824e1881f18a0e350aabe4231ee296d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 580790, "upload_time": "2015-04-17T14:36:05", "url": "https://files.pythonhosted.org/packages/38/b7/599f33e1299a0543ea48a9f4570db5a637b7255f6535f79fce17331a9af4/exodata-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d03391521552fd52c237924b2f9cdafe", "sha256": "7b5ba360d8ab36d288ec6186259fa2761d0ad205e119f325706677804f52c202" }, "downloads": -1, "filename": "exodata-1.1.1.tar.gz", "has_sig": false, "md5_digest": "d03391521552fd52c237924b2f9cdafe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 566053, "upload_time": "2015-04-17T14:36:10", "url": "https://files.pythonhosted.org/packages/4d/49/0b832b599a0796fe346e610cdfedd09a4d167e2922e46ebf27e6abf40262/exodata-1.1.1.tar.gz" } ], "1.1.1.2.2": [ { "comment_text": "", "digests": { "md5": "75d0d5092f07151eebb5e4775a0d2d81", "sha256": "e30413a7ef7dfa78b34390e0cecafa2b6d767578acb98e5af21b98d383a3c3a2" }, "downloads": -1, "filename": "exodata-1.1.1.2.2.tar.gz", "has_sig": false, "md5_digest": "75d0d5092f07151eebb5e4775a0d2d81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 566261, "upload_time": "2015-06-17T22:53:00", "url": "https://files.pythonhosted.org/packages/d2/83/647c6a67ad64659d108e13cad70b2612290f3dd1073fdc174c937879796a/exodata-1.1.1.2.2.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "5a28fd2f80ad45a875607d90aedcd5d8", "sha256": "371c5a827563b42721c509045d0c29644c13db2681ccf5313d43b2b0e680da3d" }, "downloads": -1, "filename": "exodata-2.0.tar.gz", "has_sig": false, "md5_digest": "5a28fd2f80ad45a875607d90aedcd5d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 569528, "upload_time": "2015-10-09T16:51:38", "url": "https://files.pythonhosted.org/packages/ed/0a/4fd8de53f7912f694946e9a2bcae0c0ba95eacedd02b1963cce76d3f83e7/exodata-2.0.tar.gz" } ], "2.0a150911": [ { "comment_text": "", "digests": { "md5": "c61a5692af7c718e88cc92e4a627c041", "sha256": "dc1a67665524122283c46065bef8103a83edb84d2e05eee770c2ebf1ee699f6b" }, "downloads": -1, "filename": "exodata-2.0a150911.tar.gz", "has_sig": false, "md5_digest": "c61a5692af7c718e88cc92e4a627c041", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 569543, "upload_time": "2015-10-06T15:54:16", "url": "https://files.pythonhosted.org/packages/f6/3e/72deaf6a1ef711467b08f567a9ecdd3be8de7b465321d2a1250307b3119f/exodata-2.0a150911.tar.gz" } ], "2.0b151006": [ { "comment_text": "", "digests": { "md5": "4afb8528c72f26bf8e4b35b6576dace8", "sha256": "8b0a1301b2cdcdd219bebd755086a59926d019cfbf78418be31d55dca32dd7ea" }, "downloads": -1, "filename": "exodata-2.0b151006.tar.gz", "has_sig": false, "md5_digest": "4afb8528c72f26bf8e4b35b6576dace8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 569586, "upload_time": "2015-10-06T17:12:59", "url": "https://files.pythonhosted.org/packages/e6/b6/9f8b090a88ea223cb21e3f80d6082d97e3222d9c156812f91f46a7ca15d6/exodata-2.0b151006.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "d0e765d504568106669327384b4493aa", "sha256": "45a56ef3f8da207d0b884edb7565ee358c9878fbd6fb5584b0f63824f05618e3" }, "downloads": -1, "filename": "exodata-2.1.tar.gz", "has_sig": false, "md5_digest": "d0e765d504568106669327384b4493aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 570814, "upload_time": "2015-10-12T18:29:24", "url": "https://files.pythonhosted.org/packages/ec/4f/ff5f98d475ee8da14eb464bbb1264b9b8273ee14d6001bd18a9fdedd82aa/exodata-2.1.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "c1bc48a53ca8b576dc838850398daa93", "sha256": "7d707516217e6f8c27b61d5e8bf98c6ff1b45db9d8b3d5d1028fbbeec82c5c23" }, "downloads": -1, "filename": "exodata-2.1.1.tar.gz", "has_sig": false, "md5_digest": "c1bc48a53ca8b576dc838850398daa93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 570913, "upload_time": "2015-10-13T10:33:59", "url": "https://files.pythonhosted.org/packages/5f/82/9e89c84067b942dd5d42ea64cd40c2741e85c82dd2567fa5f3103273b37b/exodata-2.1.1.tar.gz" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "fc2e501a7bf1791d606da18008b37076", "sha256": "17959781eb09933eee55db273c31abb23180b368e7a91e6491be7213b3324f65" }, "downloads": -1, "filename": "exodata-2.1.3.tar.gz", "has_sig": false, "md5_digest": "fc2e501a7bf1791d606da18008b37076", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 571478, "upload_time": "2015-10-16T11:08:37", "url": "https://files.pythonhosted.org/packages/94/f9/c2634efae09c695d30de4c8644c6b9e0eb185e16a7c5162529f99f2b0c25/exodata-2.1.3.tar.gz" } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "8c63e85b287894600f1b1cdb1e5f6296", "sha256": "cdf15838a58863d22f9cd1512719106e428710c24565e79c7271f206ece64af3" }, "downloads": -1, "filename": "exodata-2.1.4.tar.gz", "has_sig": false, "md5_digest": "8c63e85b287894600f1b1cdb1e5f6296", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 571490, "upload_time": "2015-11-04T21:41:53", "url": "https://files.pythonhosted.org/packages/23/1f/9fffe3ed1f15669deab99cdb9eb7135e50eb5dd71feaaca0be97465d2264/exodata-2.1.4.tar.gz" } ], "2.1.5": [ { "comment_text": "", "digests": { "md5": "b23206aa22fa829e230132ed72a998a0", "sha256": "699a2d8bd1a2075fd672254acc23da56e00706b06c4f67388d6f8ae9fa9f4e61" }, "downloads": -1, "filename": "exodata-2.1.5.tar.gz", "has_sig": false, "md5_digest": "b23206aa22fa829e230132ed72a998a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 571477, "upload_time": "2015-11-11T14:54:29", "url": "https://files.pythonhosted.org/packages/82/1f/7fc7ca91bbf97307bc8c7a852335987e8c4291f574c1aa0fced661a4d87e/exodata-2.1.5.tar.gz" } ], "2.1.6": [ { "comment_text": "", "digests": { "md5": "cfe39dc4befd586078e89296838da71a", "sha256": "a8c6dc4dcef1f604bba3b5a2f4371ad4b3fa2d52b45bccf08ebf5ceba91fd3d8" }, "downloads": -1, "filename": "exodata-2.1.6.tar.gz", "has_sig": false, "md5_digest": "cfe39dc4befd586078e89296838da71a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 571426, "upload_time": "2016-05-30T12:23:40", "url": "https://files.pythonhosted.org/packages/ad/0a/12a88c78bb76f66ff02d1ec0505b71d223532856818ed5eb7b3e0e8a4eeb/exodata-2.1.6.tar.gz" } ], "2.1.7": [ { "comment_text": "", "digests": { "md5": "6f39741c1782b9c2cfe36e2b239b4b62", "sha256": "c8e32d18fb6b82f27dadee1e29d1d176231b7681b6ca12510e26a6e2517ad7c8" }, "downloads": -1, "filename": "exodata-2.1.7.tar.gz", "has_sig": false, "md5_digest": "6f39741c1782b9c2cfe36e2b239b4b62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 572022, "upload_time": "2017-05-19T22:54:55", "url": "https://files.pythonhosted.org/packages/d8/a3/b211a970943ea4a5a3fe8f8f1ed1c6b14866ffd4dab6333043c762958bd9/exodata-2.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f39741c1782b9c2cfe36e2b239b4b62", "sha256": "c8e32d18fb6b82f27dadee1e29d1d176231b7681b6ca12510e26a6e2517ad7c8" }, "downloads": -1, "filename": "exodata-2.1.7.tar.gz", "has_sig": false, "md5_digest": "6f39741c1782b9c2cfe36e2b239b4b62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 572022, "upload_time": "2017-05-19T22:54:55", "url": "https://files.pythonhosted.org/packages/d8/a3/b211a970943ea4a5a3fe8f8f1ed1c6b14866ffd4dab6333043c762958bd9/exodata-2.1.7.tar.gz" } ] }