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.4.0 #27

Merged
merged 36 commits into from
Mar 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
37a6c75
Add column_names module (iss #25)
astrochun Feb 19, 2020
064e69c
column_names: Add indv_names0 list (issue #25)
astrochun Feb 19, 2020
cde2a20
column_names: Add bin_mzevolve_names0 list (issue #25)
astrochun Feb 19, 2020
c174f21
column_names: Add bin_zcalbase_names0 list (issue #25)
astrochun Feb 19, 2020
16acb11
column_names: Fix typo in bin_mzevolve_names0 (issue #25)
astrochun Feb 19, 2020
e9af9d8
column_names: Add merge_column_names function (iss #25)
astrochun Feb 20, 2020
e3fa946
column_names: Additional minor documentation (iss #25)
astrochun Feb 20, 2020
992a3f7
column_names: Add gauss_lines_names0 (iss #25)
astrochun Feb 20, 2020
f473382
column_names: Add temp_metal_names0 (iss #25)
astrochun Feb 20, 2020
aced264
column_names: Change names to be consistent with definitions in temp_…
astrochun Feb 20, 2020
311ab05
column_names: Add remove_from_list function (iss #25)
astrochun Feb 20, 2020
14a79fd
column_names.remove_from_list: Return a list (does not modify origina…
astrochun Feb 20, 2020
7330e45
temp_metallicity_calc.metallicity_calculation: Use column_names modul…
astrochun Feb 20, 2020
fcf3e0e
column_names: Minor fixes for clarity, PEP8 (iss #25)
astrochun Feb 20, 2020
1ecaf7a
column_names: Define filename_dict dictionary (iss #25)
astrochun Feb 21, 2020
c4fc361
column_names: Add bin_fit_revised to filename_dict (iss #25)
astrochun Feb 22, 2020
b0540bf
column_names: Use dict literal (iss #25)
astrochun Feb 22, 2020
23fed9d
column_names: Add bin_derived_prop and bin_derived_prop_rev in filena…
astrochun Feb 22, 2020
ba79f41
column_names: Shorten key name in filename_dict: bin_fit_revised -> b…
astrochun Feb 22, 2020
8a3f8f5
column_names: Add bin_valid in filename_dict (iss #25)
astrochun Feb 22, 2020
0320c9a
column_names: Add indv_derived_prop in filename_dict (iss #25)
astrochun Feb 22, 2020
b04a93a
column_names: Add median column names in bin_mzevolve_names0 and bin_…
astrochun Feb 22, 2020
746f037
column_names: Add individual filenames in filename_dict; additional c…
astrochun Feb 22, 2020
b1c1b86
column_names: Add indv_bin_info in filename_dict (iss #25)
astrochun Feb 22, 2020
e8b6c5c
column_names: Add Median and Center in gauss_names0 (iss #25)
astrochun Feb 22, 2020
ad0b5fd
column_names: Define balmer_names0, pass into gauss_lines_names0 (iss…
astrochun Feb 22, 2020
b748136
column_names: Change R23 and O32 to log names (iss #25)
astrochun Feb 25, 2020
b21b912
column_names: Add logM and logLHb in indv_names0 (iss #25)
astrochun Feb 25, 2020
96d73b4
column_names: Add line_fit_suffix_add function (iss #25)
astrochun Feb 25, 2020
718babd
column_names: Use line_fit_suffix_add in gauss_lines_names0 (iss #25)
astrochun Feb 25, 2020
888e029
column_names: Add indv_R23_O32 function (iss #25)
astrochun Feb 25, 2020
b17c34b
column_names: Add indv_M_LHb function (iss #25)
astrochun Feb 25, 2020
170ead8
column_names: Add bin_ratios0 (iss #25)
astrochun Feb 27, 2020
4c9e940
column_names: Add two_beta and three_beta to indv_names0 (iss #25)
astrochun Feb 27, 2020
24003ea
column_names: Add dust0 list (iss #25)
astrochun Feb 27, 2020
ca5d3d7
Merge branch 'feature/column_names' into develop (PR #26)
astrochun Mar 1, 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
136 changes: 136 additions & 0 deletions Metallicity_Stack_Commons/column_names.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
from . import line_name, line_type


# Need to define here
def line_fit_suffix_add(line_name0, line_type0):
"""
Purpose:
Simple list comprehension combining emission line fit suffixes with
the emission line. This works for individual lines

:param line_name0: str containing the line name
:param line_type0: str containing the emisison-line type (e.g., 'Balmer')
:return: gauss_lines_names: list with str formatted as [LINE]_[SUFFIX]
"""

gauss_lines_names = ['{}_{}'.format(line_name0, suffix) for suffix in gauss_names0]
if line_type0 == 'Balmer':
gauss_lines_names += ['{}_{}'.format(line_name0, suffix) for suffix in balmer_names0]

return gauss_lines_names


# These are common/general column names

# Column names for bin information
bin_names0 = ['bin_ID', 'N_stack', 'Detection']

# Column names for individual galaxies/spectra
indv_names0 = ['ID', 'logR23', 'logO32', 'logM', 'logLHb', 'two_beta', 'three_beta']

# Dust attenuation
dust0 = ['E(B-V)', 'HgHb', 'HdHb']

# Column names for bin information in stellar mass and H-beta luminosity
bin_mzevolve_names0 = ['logM_min', 'logM_max', 'logM_avg', 'logM_median',
'logLHb_min', 'logLHb_max', 'logLHb_avg', 'logLHb_median']

# Column names for bin information in R23 and O32 line ratios
bin_zcalbase_names0 = ['logR23_min', 'logR23_max', 'logR23_avg', 'logR23_median',
'logO32_min', 'logO32_max', 'logO32_avg', 'logO32_median']

# Column names for composite line ratios
bin_ratios0 = ['logR23_composite', 'logO32_composite',
'two_beta_composite', 'three_beta_composite']

# Column names for Gaussian fitting
# This is just the suffix
gauss_names0 = ['Flux_Gaussian', 'Flux_Observed', 'S/N', 'Center', 'Norm',
'Median', 'Sigma']
balmer_names0 = ['Abs_Norm', 'Abs_Sigma']

# Emission-line fit column names with [LINE] prefix
gauss_lines_names0 = []
for line0, type0 in zip(line_name, line_type):
gauss_lines_names0 += line_fit_suffix_add(line0, type0)


# Temperature and metallicity properties
temp_metal_names0 = ['T_e', '12+log(O/H)', 'log(O+/H)', 'log(O++/H)', 'O+/H', 'O++/H']

# Dictionary containing filenames
filename_dict = dict()

# Bin-related files
filename_dict['bin_info'] = 'bin_info.tbl'
filename_dict['bin_valid'] = 'bin_validation.tbl'
filename_dict['bin_fit'] = 'bin_emission_line_fit.tbl'
filename_dict['bin_fit_rev'] = filename_dict['bin_fit'].replace('.tbl', '.revised.tbl')
filename_dict['bin_derived_prop'] = 'bin_derived_properties.tbl'
filename_dict['bin_derived_prop_rev'] = filename_dict['bin_derived_prop'].replace('.tbl', '.revised.tbl')

# Individual galaxy/spectra-related files
filename_dict['indv_prop'] = 'individual_properties.tbl'
filename_dict['indv_bin_info'] = 'individual_bin_info.tbl'
filename_dict['indv_derived_prop'] = 'individual_derived_properties.tbl'


def merge_column_names(*args):
"""
Purpose:
Merges multiple lists containing column names.

Usage:
column_names = merge_column_names(bin_names0, indv_names0)

:param args: An undefined number of lists
:return merge_list:
"""

merge_list = list()

arg_count = len(args)
if arg_count > 0:
for elem in args:
merge_list += elem

return merge_list


def remove_from_list(list0, remove_entries):
"""
Purpose:
Remove entries from list

:param list0: list of column names
:param remove_entries: list of column names to remove
"""

dup_list0 = list0.copy()

for entry in remove_entries:
dup_list0.remove(entry)

return dup_list0


def indv_R23_O32():
"""
Purpose:
Use remove_from_list() to provide simplified list that contains ID, logR23 and logO32

:return: list containing just ID, logR23, logO32
"""

return remove_from_list(indv_names0, ['logM', 'logLHb'])


def indv_M_LHb():
"""
Purpose:
Use remove_from_list() to provide simplified list that contains ID, logM and logLHb

:return: list containing just ID, logM, logLHb
"""

return remove_from_list(indv_names0, ['logR23', 'logO32'])
7 changes: 5 additions & 2 deletions Metallicity_Stack_Commons/temp_metallicity_calc.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

from . import k_dict

from .column_names import temp_metal_names0, remove_from_list

k_4363 = k_dict['OIII_4363']
k_5007 = k_dict['OIII_5007']

Expand Down Expand Up @@ -73,7 +75,8 @@ def metallicity_calculation(T_e, TWO_BETA, THREE_BETA):
com_O = O_s_ion + O_d_ion
com_O_log = np.log10(com_O) + 12

metal_dict = dict(O_s_ion=O_s_ion, O_d_ion=O_d_ion,
O_s_ion_log=O_s_ion_log, O_d_ion_log=O_d_ion_log)
key_dict = remove_from_list(temp_metal_names0, ['T_e', '12+log(O/H)'])
key_values = [O_s_ion_log, O_d_ion_log, O_s_ion, O_d_ion] # Order matters here
metal_dict = dict(zip(key_dict, key_values))

return com_O_log, metal_dict