A pure-Python package to download data from the Extrasolar Planets Encyclopaedia
This small package downloads all the data from the exoplanet.eu online catalogue of exoplanets and builds a (custom) dictionary with each column. It is a pure-Python package with no extra dependencies (see below).
Install it from pip (pyExoplaneteu has no extra depencies)
pip install pyExoplaneteu
and it's ready to use from Python
import pyexoplaneteu
pyExoplaneteu has one simple function, get_data()
,
which downloads the data from the online archive and returns it in a dictionary.
>>> data = pyexoplaneteu.get_data()
Downloading exoplanet.eu data Saved exoplanet.eu data to $HOME/.pyexoplaneteu/exoplanetEU.csv Data in `exoplanetEU.csv` is recent. There are 98 columns with 3793 entries each in `exoplanetEU.csv`
where $HOME
will be your home directory.
The second time you call get_data()
it will check if the data was downloaded recently,
and only conditionally download it again.
>>> data = pyexoplaneteu.get_data()
Data in `exoplanetEU.csv` is recent. There are 98 columns with 3793 entries each in `exoplanetEU.csv`
Now, data is (basically) a Python dictionary with the each column as keys. But it has a couple extra methods and properties. For example
>>> data.size
3793
returns the number of values in each column. The columns()
method
>>> data.columns()
['name', 'planet_status', 'mass', 'mass_error_min', 'mass_error_max',
'mass_sini', 'mass_sini_error_min', 'mass_sini_error_max', 'radius',
'radius_error_min', 'radius_error_max', 'orbital_period',
...
will print the available columns.
The columns can be accessed as in a normal dictionary, with
data['name'] # the name of the planet
data['mass'] # the mass of the planet
data['star_radius'] # the radius of the host star
Also, to drop the NaN values in a column (for some columns there will be quite a few) we can use
data['mass_nonan']
np.isnan(data['mass']).any() # True
np.isnan(data['mass_nonan']).any() # False
which allows us to more easily do histograms of the values.
Finnally, the .to_numpy(inplace=True)
method converts all the columns to numpy arrays,
either in place or not (this is the only function in pyExoplaneteu that requires numpy).
Copyright 2018 João Faria.
pyExoplaneteu is free software made available under the MIT License. For details see the LICENSE file.