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

DM-26738: Rename abstract_filter to band #253

Merged
merged 1 commit into from
Sep 25, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
114 changes: 57 additions & 57 deletions python/lsst/obs/lsst/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@
from .translators.lsst import FILTER_DELIMITER


def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
def addFilter(filter_dict, band, physical_filter, lambdaEff=0.0):
"""Define a filter in filter_dict, to be converted to a Filter later"""

if abstract_filter not in filter_dict:
filter_dict[abstract_filter] = dict(physical_filter=physical_filter,
lambdaEff=lambdaEff, alias=[])
if band not in filter_dict:
filter_dict[band] = dict(physical_filter=physical_filter,
lambdaEff=lambdaEff, alias=[])
else:
assert filter_dict[abstract_filter]["lambdaEff"] == lambdaEff
assert filter_dict[band]["lambdaEff"] == lambdaEff

filter_dict[abstract_filter]["alias"].append(physical_filter)
filter_dict[band]["alias"].append(physical_filter)


# The LSST Filters from L. Jones 05/14/2020 - "Edges" = 5% of peak throughput
Expand All @@ -45,20 +45,20 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
# the camera team has decided upon the final values (CAP-617)

LsstCamFiltersBaseline = FilterDefinitionCollection(
FilterDefinition(physical_filter="NONE", abstract_filter="NONE",
FilterDefinition(physical_filter="NONE", band="NONE",
lambdaEff=0.0,
alias={"no_filter", "OPEN"}),
FilterDefinition(physical_filter="u", abstract_filter="u",
FilterDefinition(physical_filter="u", band="u",
lambdaEff=368.48, lambdaMin=320.00, lambdaMax=408.60),
FilterDefinition(physical_filter="g", abstract_filter="g",
FilterDefinition(physical_filter="g", band="g",
lambdaEff=480.20, lambdaMin=386.40, lambdaMax=567.00),
FilterDefinition(physical_filter="r", abstract_filter="r",
FilterDefinition(physical_filter="r", band="r",
lambdaEff=623.12, lambdaMin=537.00, lambdaMax=706.00),
FilterDefinition(physical_filter="i", abstract_filter="i",
FilterDefinition(physical_filter="i", band="i",
lambdaEff=754.17, lambdaMin=676.00, lambdaMax=833.00),
FilterDefinition(physical_filter="z", abstract_filter="z",
FilterDefinition(physical_filter="z", band="z",
lambdaEff=869.05, lambdaMin=803.00, lambdaMax=938.60),
FilterDefinition(physical_filter="y", abstract_filter="y",
FilterDefinition(physical_filter="y", band="y",
lambdaEff=973.64, lambdaMin=908.40, lambdaMax=1099.00),
)

Expand All @@ -77,7 +77,7 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
# Experimentally we also see FILTER2 values of:
# ['ND_OD0.01', 'ND_OD0.05', 'ND_OD0.4', 'ND_OD3.0', 'ND_OD4.0']
#
# The abstract_filter names are not yet defined, so I'm going to invent them
# The band names are not yet defined, so I'm going to invent them


BOTFilters_dict = {}
Expand All @@ -104,18 +104,18 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
]:
mat = re.search(r"^SDSS(.)$", physical_filter)
if mat:
abstract_filter = mat.group(1).lower()
band = mat.group(1).lower()

lsstCamFilter = [f for f in LsstCamFiltersBaseline if f.abstract_filter == abstract_filter][0]
lsstCamFilter = [f for f in LsstCamFiltersBaseline if f.band == band][0]
lambdaEff = lsstCamFilter.lambdaEff
else:
if re.search(r"^empty[3-6]$", physical_filter):
abstract_filter = "empty"
band = "empty"
else:
abstract_filter = physical_filter
band = physical_filter
lambdaEff = 0.0

addFilter(BOTFilters_dict, abstract_filter, physical_filter, lambdaEff=lambdaEff)
addFilter(BOTFilters_dict, band, physical_filter, lambdaEff=lambdaEff)

ndFilters = ["empty", "ND_OD0.1", "ND_OD0.3", "ND_OD0.5", "ND_OD0.7", "ND_OD1.0", "ND_OD2.0"]
# We found these additional filters in BOT data files:
Expand All @@ -127,26 +127,26 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
# When one of the filters is empty we can just use the real filter
# (e.g. "u" not "u~empty"); but we always need at least one "empty"
#
# Don't use . in abstract filter names, it's just asking for trouble
# Don't use . in band names, it's just asking for trouble
# if they ever end up in filenames
if nd == "empty":
if abstract_filter == "empty":
if band == "empty":
af = "empty"
else:
af = f"{abstract_filter}"
elif abstract_filter == "empty":
af = f"{band}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-existing, but this is a little weird.

elif band == "empty":
pf = nd
af = f"{nd.replace('.', '_')}"
else:
af = f"{abstract_filter}{FILTER_DELIMITER}{nd.replace('.', '_')}"
af = f"{band}{FILTER_DELIMITER}{nd.replace('.', '_')}"

addFilter(BOTFilters_dict, abstract_filter=af, physical_filter=pf, lambdaEff=lambdaEff)
addFilter(BOTFilters_dict, band=af, physical_filter=pf, lambdaEff=lambdaEff)

BOTFilters = [
FilterDefinition(abstract_filter="unknown", physical_filter="UNKNOWN", lambdaEff=0.0),
FilterDefinition(band="unknown", physical_filter="UNKNOWN", lambdaEff=0.0),
]
for abstract_filter, filt in BOTFilters_dict.items():
BOTFilters.append(FilterDefinition(abstract_filter=abstract_filter,
for band, filt in BOTFilters_dict.items():
BOTFilters.append(FilterDefinition(band=band,
physical_filter=filt["physical_filter"],
lambdaEff=filt["lambdaEff"],
alias=filt["alias"]))
Expand All @@ -166,7 +166,7 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
# Filters in SLAC's Test Stand 3
#
TS3Filters = [
FilterDefinition(abstract_filter="unknown", physical_filter="UNKNOWN", lambdaEff=0.0),
FilterDefinition(band="unknown", physical_filter="UNKNOWN", lambdaEff=0.0),
FilterDefinition(physical_filter="275CutOn", lambdaEff=0.0),
FilterDefinition(physical_filter="550CutOn", lambdaEff=0.0)]

Expand All @@ -178,7 +178,7 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
# Filters in SLAC's Test Stand 8
#
TS8Filters = [
FilterDefinition(abstract_filter="unknown", physical_filter="UNKNOWN", lambdaEff=0.0),
FilterDefinition(band="unknown", physical_filter="UNKNOWN", lambdaEff=0.0),
FilterDefinition(physical_filter="275CutOn", lambdaEff=0.0),
FilterDefinition(physical_filter="550CutOn", lambdaEff=0.0)]

Expand All @@ -197,13 +197,13 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
FilterDefinition(physical_filter="blank_bk7_wg05",
lambdaEff=0.0),
FilterDefinition(physical_filter="KPNO_1111_436nm",
abstract_filter="g",
band="g",
lambdaEff=436.0, lambdaMin=386.0, lambdaMax=486.0),
FilterDefinition(physical_filter="KPNO_373A_677nm",
abstract_filter="r",
band="r",
lambdaEff=677.0, lambdaMin=624.0, lambdaMax=730.0),
FilterDefinition(physical_filter="KPNO_406_828nm",
abstract_filter="z",
band="z",
lambdaEff=828.0, lambdaMin=738.5, lambdaMax=917.5),
FilterDefinition(physical_filter="diffuser",
lambdaEff=0.0),
Expand All @@ -212,7 +212,7 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
FilterDefinition(physical_filter="UNKNOWN",
lambdaEff=0.0),
FilterDefinition(physical_filter="BG40",
# abstract_filter="g", # afw only allows one g filter
# band="g", # afw only allows one g filter
lambdaEff=472.0, lambdaMin=334.5, lambdaMax=609.5),
FilterDefinition(physical_filter="quadnotch1",
lambdaEff=0.0),
Expand Down Expand Up @@ -250,22 +250,22 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
# These were computed using throughputs 1.4 and
# lsst.sims.photUtils.BandpassSet.
FilterDefinition(physical_filter="u_sim_1.4",
abstract_filter="u",
band="u",
lambdaEff=367.070, lambdaMin=308.0, lambdaMax=408.6),
FilterDefinition(physical_filter="g_sim_1.4",
abstract_filter="g",
band="g",
lambdaEff=482.685, lambdaMin=386.5, lambdaMax=567.0),
FilterDefinition(physical_filter="r_sim_1.4",
abstract_filter="r",
band="r",
lambdaEff=622.324, lambdaMin=537.0, lambdaMax=706.0),
FilterDefinition(physical_filter="i_sim_1.4",
abstract_filter="i",
band="i",
lambdaEff=754.598, lambdaMin=676.0, lambdaMax=833.0),
FilterDefinition(physical_filter="z_sim_1.4",
abstract_filter="z",
band="z",
lambdaEff=869.090, lambdaMin=803.0, lambdaMax=938.6),
FilterDefinition(physical_filter="y_sim_1.4",
abstract_filter="y",
band="y",
lambdaEff=971.028, lambdaMin=908.4, lambdaMax=1096.3)
)

Expand All @@ -276,29 +276,29 @@ def addFilter(filter_dict, abstract_filter, physical_filter, lambdaEff=0.0):
# See https://jira.lsstcorp.org/browse/DM-21706

ComCamFilters_dict = {}
for abstract_filter, sn in [("u", "SN-05"),
("u", "SN-02"), # not yet coated
("u", "SN-06"), # not yet coated
("g", "SN-07"),
("g", "SN-01"),
("r", "SN-03"),
("i", "SN-06"),
("z", "SN-03"),
("z", "SN-02"),
("y", "SN-04"),
]:
physical_filter = f"{abstract_filter}_{sn[3:]}"
lsstCamFilter = [f for f in LsstCamFiltersBaseline if f.abstract_filter == abstract_filter][0]
for band, sn in [("u", "SN-05"),
("u", "SN-02"), # not yet coated
("u", "SN-06"), # not yet coated
("g", "SN-07"),
("g", "SN-01"),
("r", "SN-03"),
("i", "SN-06"),
("z", "SN-03"),
("z", "SN-02"),
("y", "SN-04"),
]:
physical_filter = f"{band}_{sn[3:]}"
lsstCamFilter = [f for f in LsstCamFiltersBaseline if f.band == band][0]
lambdaEff = lsstCamFilter.lambdaEff

addFilter(ComCamFilters_dict, abstract_filter, physical_filter, lambdaEff=lambdaEff)
addFilter(ComCamFilters_dict, band, physical_filter, lambdaEff=lambdaEff)


ComCamFilters = [
FilterDefinition(abstract_filter="unknown", physical_filter="UNKNOWN", lambdaEff=0.0),
FilterDefinition(band="unknown", physical_filter="UNKNOWN", lambdaEff=0.0),
]
for abstract_filter, filt in ComCamFilters_dict.items():
ComCamFilters.append(FilterDefinition(abstract_filter=abstract_filter,
for band, filt in ComCamFilters_dict.items():
ComCamFilters.append(FilterDefinition(band=band,
physical_filter=filt["physical_filter"],
lambdaEff=filt["lambdaEff"],
alias=filt["alias"]))
Expand Down