系外行星目录界面

exodata的Python项目详细描述


#外部数据
[![构建状态](https://api.travis-ci.org/ryanvarley/exodata.png?branch=master)(https://travis ci.org/ryanvarley/exodata)
[![文档状态](https://readthedocs.org/projects/exodata/badge/?版本=最新](http://exodata.readthedocs.io/en/latest/?徽章=最新)
[![覆盖状态](https://coveralls.io/repos/ryanvarley/exodata/badge.svg)](https://coveralls.io/r/ryanvarley/exodata)

此python接口(以前是oecpy)用作[开放外星球目录](https://github.com/open exoplanet catalogue/open撸exoplanet撸cata)的原始xml之间的链接。Logo)。它允许:

*搜索行星(包括替代名称)
*简单地引用行星参数,如gj1214b.ra、gj1214b.t、gj1214b.r
*计算过境时间等值。
*定义行星类型并查询行星以找出它们是什么ts
*轻松导航层次结构(即从行星到恒星或从恒星到行星)
*行星中系统参数的可用性(即ra、dec、d(距离))

如果您在科学出版物中使用Exodata,请包括对本论文的参考[http://dx.doi.org/10.1016/j.cpc.2016.05.009](http://dx.doi.org/10.1016/j.cpc.2016.05.009)。

#安装
此模块取决于

*[数量](https://github.com/python数量/python数量)
*[数量](http://www.numpy.org/)
*nose
*matplotlib
*请求
*假设
*[打开系外行星目录](https://github.com/open exoplanet catalogue/openxoplanet_catalogue)(在您的系统中的某个地方)

**目前仅在Mac和Linux上的Python2.7、3.4和3.5下测试**。如果您使用windows或其他python版本,请无论如何尝试,如果遇到问题,请打开一个问题。


当然,也可以每次自动从Web加载最新版本。



git克隆https://github.com/open exoplanet catalogue/open_exoplanet_catalogue.git

然后应该下载目录。如果要更新目录,请移动到open_exoplanet_catalogue文件夹并拉入


cd open_exoplanet_catalogue/
git pull origin master

如果要以gui方式跟踪此回购,我建议使用[sourcetree](http://www.sourcetreeapp.com/)或[github client)(https://help.github.com/articles/set-up git)。

s文件夹)
exocat=exodata.oecdatabase(数据库位置)

=exodata.load_db_from_url()


然后您可以访问列表

exocat.stars
exocat.plasters
exocat.transitingplasters

以下代码假定导入(以及如上所述加载exocat)

import exodata
import exodata.astroQuantity as aq

您现在可以执行更高级的查询,例如获取半径小于10的所有行星地球半径

>;>superearths=[外星系行星中的行星,如果是行星r<;(10*aq.r\u e)]
>;>len(superearths)
1096


选择行星

>;>kepler60b=exocat.searchplanet('kepler60b')
>;p开普勒60号行星(开普勒60号行星)、开普勒60号行星、开普勒60号行星、开普勒60号行星、开普勒60号行星、开普勒60号行星(开普勒60 C行星、开普勒60 C行星、开普勒60 B行星、开普勒60 D开普勒60 D行星)是开普勒60号恒星获得开普勒60号恒星的关键。是的获取行星半径
阵列(0.196)*r_j这就像一个阵列在大多数函数中的工作方式一样

>>>>gt;开普勒60b.r.r.r.r.rescale(aq.r_e)参见"单位"部分了解更多
阵列(2.1507770051797206)*r_e

>>>>>开普勒60b.r.r.r.rescale(aq.m)阵列(13702525252525252525






请参见"单位"部分了解更多
请参见"单位"部分
阵列(2 56.0分)*关于开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b;开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普勒60b.开普英语1214 b')

>>>>exocat.planetict['gliese 1214 b']\它由数量包处理,然后您可以访问大多数单位和常数,如米pq.m、天文单位pq.au等!

一些天文学单位,如r嫒e、r嫒j、r嫒s(其中e是地球,j是木星,s在太阳中)尚未包含在数量中,因此您需要通过导入exodata将其称为aq.r嫒e。astroquantity

导入exodata.astroquantity作为aq

exodata.astroquantity inc排除所有PQ单位,因此只需输入*AQ*。

还有其他单位,如质量(M_e、M_s和M_j)。

包含许多独立使用或直接从行星或恒星对象调用的系外行星方程。大多数方程都是类,当给定所有参数条时,一个将计算缺少的一个。

>>>;从exodata。方程导入开普勒第三定律
>>>;开普勒第三定律(a=0.01488*aq.au,m_s=0.176*aq.m_s)。p
数组(1.579696141940911)*d

>;kepl第三方焊接(A=0.015*AQ.AU,P=1.58*AQ.D.M U S
阵列(0.1802231567367392929148)*M U S

>>>>>;GJ12144B=外星面平面CT['Gliese 1214 B']
>>;GJ12144B;GJ12144B.Calcsurface重力()
阵列(7.92973535778087916)*M/S**2
>
>>>
>>>>>>
>>>>>>>>>>>>>>>>>GJ11214B;GJ12144B;平面平面平面CT['Gliese.calblogg()
2.8992587166958947

>>gj1214b.计算传输持续时间(圆形=真)
阵列(52.74732533968579)*min

假设

参数。目前,它们存储在字典"exodata.assumptions.planetassumptions"中。

覆盖这些值(或添加新值)将更改输出。例如,查看质量类型,我们可以看到定义极限的列表。编辑此列表以更改值或添加新类将改变行星在程序中的分类方式。

>;>;exodata.assumptions.planetassumptions['masstype']
[(array(10.0)*m嫒e,"super earth"),(array(20.0)*m嫒e,"neptune"),(inf,"jupiter")]

exodata global参数
可以在exodata中设置一些选项来更改程序的全局行为。默认情况下,如果参数缺少数量,则计算该数量如果可能的话。例如,如果你用.a表示半长轴,而它不在星表中,它将用周期和恒星质量计算并返回。除了升起"calculated sma"标志之外,这种情况不会发生。(参见标志)。通过键入



可以关闭此行为,这只会占用当前项目的范围,因此如果关闭解释器,它将重置为true。

plotting

exodata具有行星和恒星p的绘图库散点图和每个参数箱中的参数。有关更多信息,请参见文档的[绘图部分](https://github.com/ryanvarley/open-exoplanet-catalogue-python/wiki/plotting)。请注意,此处显示的所有绘图都是在"import seaborn"之后生成的,这会更改绘图样式。

您还需要在键入任何其他命令之前关闭打开的绘图。

import matplotlib.pyplot as plt
plt.show()


dm_plot.plot(方法标签=("径向速度"、"过境方法"、"其他")
````
![按年份划分的发现方法](https://github.com/ryanvarley/exodata/blob/images/discovery_year_method_v2.png?raw=true"按年份的发现方法")


\python
exodata.plots.generalplotter(exocat.plates,'r','m',yaxislog=true).plot()
plt.xlim(0,2.5)
```
![行星半径的行星质量](https://github.com/ryanvarley/exodata/blob/images/planetr-m_v5.png?raw=true"行星质量与行星半径图")


[具有行星半径的恒星v星等](https://github.com/ryanvarley/exodata/blob/images/planetr-starmagv_5.png"具有行星半径图的恒星v星等")


,0.4,float('inf'))。绘图条形图(标签旋转=45)
````
![行星偏心率](https://github.com/ryanvarley/exodata/blob/images/exodata-orbital-eccentricity_5.png"行星偏心率图")


您还可以将其绘制为饼图

`` python
exodata.plots.dataperparameterbin(exocat.planes,'e',
(0,0.05,0.1,0.2,0.4,float('inf')).plotPieChart()
```

![行星偏心率](https://github.com/ryanvarley/exodata/blob/images/exodata-orbital-eccentricity-pie_v6.png?raw=true"行星偏心率饼图")

plots也可以很大(即用于演示),您可以使用普通的*matplotlib*语法轻松更改颜色

``python
``exodata.plots.dataperparameterbin(exocat.planets,'m',
(0.2,0.5,1,2,3,6,12,float('inf'),size='large').plotbarchart(c='r')
```
![行星偏心率](https://github.com/ryanvarley/exodata/blob/images/exodata-orbital-eccentricity-large_v5.png?RAW=真实的"行星偏心率曲线图大")

许可证

MIT许可证


版权所有(C)2016 Ryan Varley

不受限制的软件,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或出售软件副本的权利,以及允许向其提供软件的人这样做的权利,但须符合以下条件:

上述版权声明和本许可声明应包含在软件的所有
副本或大部分中。


>适合某一特定目的和非侵犯性。在任何情况下,
作者或版权持有人均不对任何索赔、损害或其他
责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或
软件的使用或其他交易引起的或与之相关的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java检查整数是0还是检查变量是null更好?   java Android Kotlin(初学者)使用File(),并从ACTION\u GET\u内容返回Uri   java JavaFx在“内部场景”和根场景之间切换   spring将XMLBean配置转换为java配置   java JPA HIBERNATE映射列两次(embeddedID和POJO)   c#单态模式模型在什么情况下适用?   java请求。getRemoteUser在特定时间后返回null?   spring boot中PUT api控制器的java my单元测试用例失败   java在字符串中互换地解析和替换值   java Android JNI在应用程序中检测到错误:调用JNI GetMethodID时出现挂起异常   JavaSpringDataMongo:使用非简单键持久化映射   爪哇玻璃鱼连接被拒绝   java如何在用户注册时发送特定电子邮件id的自动回复?   Java列表:实例化时和之后的赋值之间的差异