Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release/0.5.0 #29

Merged
merged 45 commits into from
Mar 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
31655b4
analysis: Add composite_indv_detect module, starting from Zcalbase_ga…
astrochun Feb 9, 2020
447fbf5
analysis.composite_indv_detect: Remove unused codes (iss #21)
astrochun Feb 9, 2020
a38519d
analysis.composite_indv_detect: Create main function (iss #21)
astrochun Feb 9, 2020
3fa2c71
analysis.composite_indv_detect: Update docstrings for main() (iss #21)
astrochun Feb 9, 2020
1667313
analysis.composite_indv_detect: Use os.path.join (iss #21)
astrochun Feb 9, 2020
fb8fcd6
analysis.composite_indv_detect: Define variables (iss #21)
astrochun Feb 9, 2020
7860e99
analysis.composite_indv_detect.main: Remove unused files (iss #21)
astrochun Feb 9, 2020
196789d
analysis.composite_indv_detect.main: code re-organization; call metal…
astrochun Feb 9, 2020
d2b2c4f
analysis.composite_indv_detect.main: Add temperature and metallicity …
astrochun Feb 9, 2020
5a7597d
analysis.composite_indv_detect.main: Populate composite temperature f…
astrochun Feb 9, 2020
5e90c5d
analysis.composite_indv_detect.main: Re-organize code for simplicity …
astrochun Feb 9, 2020
a49940a
analysis.composite_indv_detect.main: Write table to [outfile] (iss #21)
astrochun Feb 9, 2020
e969d11
analysis.composite_indv_detect.main: Remove run_ind_detection(), ind_…
astrochun Feb 9, 2020
67fca6d
analysis.composite_indv_detect.main: Remove unused imports (vstack, T…
astrochun Feb 9, 2020
0eb57a3
analysis.composite_indv_detect.main: Add det3 to handle cases without…
astrochun Feb 11, 2020
c5acfbd
analysis.composite_indv_detect.main: Pass in inputs for individual ga…
astrochun Feb 12, 2020
835f4b7
analysis.composite_indv_detect.main: Change to use bin_ID naming conv…
astrochun Feb 19, 2020
9a858dc
analysis.composite_indv_detect.main: Use [LINE]_Flux_Observed convent…
astrochun Feb 19, 2020
50a28df
analysis.composite_indv_detect.main: Change to use T_e and 12+log(O/H…
astrochun Feb 22, 2020
034b5f6
analysis.composite_indv_detect.main: docsstring update to be consiste…
astrochun Feb 22, 2020
4c173e0
analysis.composite_indv_detect.main: print statement when file exists…
astrochun Feb 22, 2020
a5a1aeb
analysis.composite_indv_detect.main: Simplify if statement (iss #21)
astrochun Mar 1, 2020
fddd7da
analysis.composite_indv_detect.main: Minor fix in docstrings (iss #21)
astrochun Mar 1, 2020
ce87545
analysis.composite_indv_detect.main: Rename det3_table to indv_em_lin…
astrochun Mar 1, 2020
c6bbf8d
analysis.composite_indv_detect.main: Rename det3_table to indv_em_lin…
astrochun Mar 1, 2020
cceb3db
analysis.composite_indv_detect.main: Rename bin_table to indv_bin_inf…
astrochun Mar 1, 2020
7287278
Add init in analysis (iss #21)
astrochun Mar 5, 2020
7cb7994
Changed the Flux_Observed to Flux_Gaussian
Reagen Mar 12, 2020
19bf0aa
Changed the np where in the det3 else to be if detection is 1.0 or 0.5.
cmccormick1 Mar 14, 2020
2d3bf60
Added bin_ID to the output table so that the individual spectrum all …
Reagen Mar 15, 2020
9d79dbc
Merge branch 'feature/composite_indv_detect' of https://github.com/as…
Reagen Mar 15, 2020
dfdab4a
analysis.composite_indv_detect.main: Define new astropy Table with ju…
astrochun Mar 15, 2020
0501ff9
analysis.composite_indv_detect.main: Include other columns in output …
astrochun Mar 15, 2020
bfb155e
analysis.composite_indv_detect.main: Remove extra line break (iss #21)
astrochun Mar 15, 2020
2e0fb0c
analysis.composite_indv_detect.main: Bug fix, need to define metal_di…
astrochun Mar 15, 2020
bd98f51
analysis.composite_indv_detect.main: Bug fix in names0 addition (iss …
astrochun Mar 15, 2020
f07d244
merge column_names to use in composite_indv_detect (iss #21)
astrochun Mar 15, 2020
daa8199
temp_metallicity_calc.metallicity_calculation: Use column_names temp_…
astrochun Mar 15, 2020
4b586bd
analysis.composite_indv_detect.main: Use column_names definition (iss…
astrochun Mar 15, 2020
bb5f680
analysis.composite_indv_detect.main: Use definition for composite_fil…
astrochun Mar 15, 2020
3c66dd7
analysis.composite_indv_detect.main: Use definition for indv_em_line_…
astrochun Mar 15, 2020
4e3cce8
analysis.composite_indv_detect.main: Use definition for indv_bin_file…
astrochun Mar 15, 2020
f8c5530
analysis.composite_indv_detect.main: Use definition for indv_derived_…
astrochun Mar 15, 2020
52584dc
Fix conflicts between feature/composite_indv_detect with develop with…
astrochun Mar 15, 2020
492a4d8
Update version number 0.1.0 -> 0.5.0
astrochun Mar 15, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Metallicity_Stack_Commons/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import getpass
import numpy as np

version = "0.1.0"
version = "0.5.0"

lambda0 = [3726.18, 4101.73, 4340.46, 4363.21, 4861.32, 4958.91, 5006.84]
line_type = ['Oxy2', 'Balmer', 'Balmer', 'Single', 'Balmer', 'Single', 'Single']
Expand Down
Empty file.
122 changes: 122 additions & 0 deletions Metallicity_Stack_Commons/analysis/composite_indv_detect.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
from os.path import join
from os.path import exists

import numpy as np
from astropy.io import ascii as asc
from astropy.table import Table

from ..temp_metallicity_calc import metallicity_calculation
from .. import OIII_r
from ..column_names import bin_names0, indv_names0, temp_metal_names0
from ..column_names import filename_dict

ID_name = indv_names0[0]
bin_ID_name = bin_names0[0]


def main(fitspath, dataset, revised=False, det3=True):
"""
Purpose:
Reads in composite table(s) containing bin information to
determine temperature-based metallicity from composite average
T_e and individual line ratios ([OII]/H-beta, [OIII]/H-beta)

:param fitspath: str containing folder path
:param dataset: str containing sub-folder (specific to stacking approach)
:param revised: Bool indicates whether to use revised bin properties
(e.g., *.revised.tbl files)
:param det3: Bool indicates whether individual galaxy files is limited to
those satisfying emission-line det3 requirement
Default: True

Files identified by default
composite_file: str containing filename of composite data
e.g., '[dataset]/bin_derived_properties.tbl' or
'[dataset]/bin_derived_properties.revised.tbl'
indv_em_line_file: str containing filename that contains
emission-line information for each galaxy
e.g., 'individual_properties.tbl'
indv_bin_file: str containing filename tha contains bin information
for each galaxy
e.g., '[dataset]/individual_bin_info.tbl'
outfile: str containing filename of output file
e.g., '[dataset]/individual_derived_properties.tbl'
"""

# Define [composite_file]
t_comp = filename_dict['bin_derived_prop'] if not revised else \
filename_dict['bin_derived_prop']
composite_file = join(fitspath, dataset, t_comp)
if not exists(composite_file):
print("ERROR: File not found! "+composite_file)
return

# Read in composite table
composite_table = asc.read(composite_file)

bin_id = composite_table['bin_ID'].data
bin_temp = composite_table['T_e'].data

# Define [indv_em_line_file]
indv_em_line_file = join(fitspath, dataset, filename_dict['indv_prop'])
if not exists(indv_em_line_file):
print("ERROR: File not found! "+indv_em_line_file)
return

# Read in tables containing line ratios, etc.
indv_em_line_table = asc.read(indv_em_line_file)

# Define [indv_bin_file]
indv_bin_file = join(fitspath, dataset, filename_dict['indv_bin_info'])
if not exists(indv_bin_file):
print("ERROR: File not found! "+indv_bin_file)
return

# Read in tables containing bin info for individual
indv_bin_info_table = asc.read(indv_bin_file)

# Populate composite temperature for individual galaxies
adopted_temp = np.zeros(len(indv_em_line_table))
bin_id_indv = np.zeros(len(indv_em_line_table))
for comp_bin, comp_temp in zip(bin_id, bin_temp):
bin_idx = np.where(indv_bin_info_table['bin_ID'].data == comp_bin)[0]
adopted_temp[bin_idx] = comp_temp
bin_id_indv[bin_idx] = comp_bin

O2 = indv_em_line_table['OII_3727_Flux_Gaussian'].data # [OII]3726,3728 fluxes
O3 = indv_em_line_table['OIII_5007_Flux_Gaussian'].data * OIII_r # [OIII]4959,5007 fluxes (Assume 3.1:1 ratio)
Hb = indv_em_line_table['HBETA_Flux_Gaussian'].data # H-beta fluxes

if det3:
com_O_log, metal_dict = metallicity_calculation(adopted_temp, O2/Hb, O3/Hb)
else:
det3 = np.where((indv_bin_info_table['Detection'] == 1.0) | (indv_bin_info_table['Detection'] == 0.5))[0]
temp_com_O_log, temp_metal_dict = \
metallicity_calculation(adopted_temp[det3], O2[det3]/Hb[det3],
O3[det3]/Hb[det3])
com_O_log = np.zeros(len(indv_em_line_table))
com_O_log[det3] = temp_com_O_log

metal_dict = dict()
for key0 in temp_metal_dict.keys():
metal_dict[key0] = np.zeros(len(indv_em_line_table))
metal_dict[key0][det3] = temp_metal_dict[key0]

# Define [indv_derived_prop_table] to include ID, bin_ID, composite T_e,
# and 12+log(O/H)
arr0 = [indv_em_line_table[ID_name], bin_id_indv, adopted_temp, com_O_log]
names0 = [ID_name, bin_ID_name] + temp_metal_names0[:2]

# Include other metallicities
arr0 += list(metal_dict.values())
names0 += metal_dict.keys()
indv_derived_prop_table = Table(arr0, names=names0)

outfile = join(fitspath, dataset, filename_dict['indv_derived_prop'])

# Write Astropy ASCII table containing composite T_e and derived metallicity
if exists(outfile):
print("File exists! Overwriting : ", outfile)
else:
print("Writing : ", outfile)
indv_derived_prop_table.write(outfile, overwrite=True, format='ascii.fixed_width_two_line')
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setup(
name='Metallicity_Stack_Commons',
version='0.1.0',
version='0.5.0',
packages=find_packages('Metallicity_Stack_Commons'),
url='https://github.com/astrochun/Metallicity_Stack_Commons',
license='MIT License',
Expand Down