Python-based database for CARMA EDGE. This package requires Python 3.
The EDGE database has several components (see index_hdf.txt and index_csv.md for details):
-
Zero-dimensional tables (one value per galaxy), found in
dat_glob
. -
One-dimensional tables (e.g. radial profiles or spectra), found in
dat_prof
anddat_spec
. -
Downsampled 2D or 3D images, saved as HDF5 binary tables in the
img_
directories.
Install the package directly from PyPI (https://pypi.org/project/edge-pydb/) using
pip install --user edge_pydb
or, if you prefer to keep the latest source code handy, by cloning this Github repository and running
pip install --user .
in the directory containing setup.py
.
The --user
flag ensures the package is not installed in your system-wide Python directories, which you probably don't have write access to. The package tries to save and update a configuration file _config.json
, so installation in your user area is recommended.
If you have access to the protected archive (not on Github), you should also obtain the team_files.py
script from Tony which will download and install the additional tables into the appropriate locations. You can run this script in a shell or iPython environment (but should avoid doing so in the same directory as setup.py
). Currently the Github repository only includes HDF5 files for one galaxy, for demonstration and testing purposes.
A demo_notebk
folder provides examples of accessing database values from a Jupyter notebook.
from edge_pydb import EdgeTable
EdgeTable('list')
- makes a listing of the available files
ctrpos = EdgeTable('edge_coflux_smo7.csv')
- loads a CSV file.
ctrpos
can now be treated like an astropy table.
ctrpos = EdgeTable('edge_coflux_smo7.csv', cols=['Name', 'coRactr_smo7', 'coDectr_smo7'])
- loads the three specified columns only from the CSV file
leda = EdgeTable('edge_leda.csv', cols=['Name', 'ledaD25', 'ledaPA', 'ledaIncl'])
ctrpos.join(leda)
- will merge a sub-table from
edge_leda.csv
intoctrpos
. We must select theName
column for the join to work.
comom = EdgeTable('NGC4047.comom_smo7.hdf5', path='smo')
- loads an HDF5 file. The path must be given, otherwise a listing of available paths is provided.
For additional database files not in this Github repository, it’s better to keep these in a separate, more visible directory in your file system, and not inside your Python libraries (site-packages area). Here is the suggested way to do this:
- Leave the git directory in which this README is located. Open an iPython shell and type:
import edge_pydb.util as edgeutil
edgeutil.listfiles(values=True)
- should show only the public data. Now suppose the additional data files are in a folder called
pybase
.
edgeutil.add_from_dir('/path/to/pybase/', copy=False)
- will add these to your environment. This only needs to be done once after package installation.