From 61b029851fbda2d026f0c41f5974d8c647ced63f Mon Sep 17 00:00:00 2001 From: Dave Davis Date: Fri, 15 Dec 2023 08:40:49 -0500 Subject: [PATCH 1/7] add images --- docs/_static/stsci_logo.png | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docs/_static/stsci_logo.png diff --git a/docs/_static/stsci_logo.png b/docs/_static/stsci_logo.png new file mode 100644 index 000000000..7002699f0 --- /dev/null +++ b/docs/_static/stsci_logo.png @@ -0,0 +1,7 @@ +<<<<<<< HEAD +{"payload":{"allShortcutsEnabled":true,"fileTree":{"docs/_static":{"items":[{"name":"favicon.ico","path":"docs/_static/favicon.ico","contentType":"file"},{"name":"roman_logo_black_w200px.png","path":"docs/_static/roman_logo_black_w200px.png","contentType":"file"},{"name":"roman_logo_white_w100px.png","path":"docs/_static/roman_logo_white_w100px.png","contentType":"file"},{"name":"stsci_logo.png","path":"docs/_static/stsci_logo.png","contentType":"file"}],"totalCount":4},"docs":{"items":[{"name":"_static","path":"docs/_static","contentType":"directory"},{"name":"exts","path":"docs/exts","contentType":"directory"},{"name":"images","path":"docs/images","contentType":"directory"},{"name":"roman","path":"docs/roman","contentType":"directory"},{"name":"0.5.0","path":"docs/0.5.0","contentType":"file"},{"name":"Makefile","path":"docs/Makefile","contentType":"file"},{"name":"conf.py","path":"docs/conf.py","contentType":"file"},{"name":"conftest.py","path":"docs/conftest.py","contentType":"file"},{"name":"index.rst","path":"docs/index.rst","contentType":"file"},{"name":"make.bat","path":"docs/make.bat","contentType":"file"},{"name":"rtd_environment.yaml","path":"docs/rtd_environment.yaml","contentType":"file"}],"totalCount":11},"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"pytest_plugin","path":"pytest_plugin","contentType":"directory"},{"name":"romancal","path":"romancal","contentType":"directory"},{"name":".codecov.yml","path":".codecov.yml","contentType":"file"},{"name":".flake8","path":".flake8","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".gitmodules","path":".gitmodules","contentType":"file"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","contentType":"file"},{"name":".readthedocs.yaml","path":".readthedocs.yaml","contentType":"file"},{"name":"CHANGES.rst","path":"CHANGES.rst","contentType":"file"},{"name":"CODEOWNERS.txt","path":"CODEOWNERS.txt","contentType":"file"},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"JenkinsfileRT","path":"JenkinsfileRT","contentType":"file"},{"name":"JenkinsfileRT_dev","path":"JenkinsfileRT_dev","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"MANIFEST.in","path":"MANIFEST.in","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"pyproject.toml","path":"pyproject.toml","contentType":"file"},{"name":"requirements-dev-st.txt","path":"requirements-dev-st.txt","contentType":"file"},{"name":"requirements-dev-thirdparty.txt","path":"requirements-dev-thirdparty.txt","contentType":"file"},{"name":"requirements-sdp.txt","path":"requirements-sdp.txt","contentType":"file"},{"name":"tox.ini","path":"tox.ini","contentType":"file"}],"totalCount":24}},"fileTreeProcessingTime":7.522358,"foldersToFetch":[],"reducedMotionEnabled":"system","repo":{"id":301819610,"defaultBranch":"main","name":"romancal","ownerLogin":"spacetelescope","currentUserCanPush":true,"isFork":false,"isEmpty":false,"createdAt":"2020-10-06T14:29:19.000-04:00","ownerAvatar":"https://avatars.githubusercontent.com/u/2751928?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":true,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1701186231.0","canEdit":true,"refType":"branch","currentOid":"4a847be56ce64e700bd5f3c18d4e277075da1711"},"path":"docs/_static/stsci_logo.png","currentUser":{"id":49163225,"login":"ddavis-stsci","userEmail":"ddavis@stsci.edu"},"blob":{"rawLines":null,"stylingDirectives":[[],[],[]],"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":null,"configFilePath":null,"networkDependabotPath":"/spacetelescope/romancal/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":false,"repoAlertsPath":"/spacetelescope/romancal/security/dependabot","repoSecurityAndAnalysisPath":"/spacetelescope/romancal/settings/security_analysis","repoOwnerIsOrg":true,"currentUserCanAdminRepo":true},"displayName":"stsci_logo.png","displayUrl":"https://media.githubusercontent.com/media/spacetelescope/romancal/main/docs/_static/stsci_logo.png","headerInfo":{"blobSize":"58.6 KB","deleteInfo":{"deleteTooltip":"Delete this file"},"editInfo":{"editTooltip":"Edit this file"},"ghDesktopPath":"x-github-client://openRepo/https://github.com/spacetelescope/romancal?branch=main&filepath=docs%2F_static%2Fstsci_logo.png","gitLfsPath":"https://docs.github.com/articles/versioning-large-files/","onBranch":true,"shortPath":"5400abe","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fspacetelescope%2Fromancal%2Fblob%2Fmain%2Fdocs%2F_static%2Fstsci_logo.png","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":null,"truncatedSloc":null},"mode":"file"},"image":true,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":null,"languageID":null,"large":false,"loggedIn":true,"newDiscussionPath":"/spacetelescope/romancal/discussions/new","newIssuePath":"/spacetelescope/romancal/issues/new","planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/spacetelescope/romancal/blob/main/docs/_static/stsci_logo.png","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","dismissStackNoticePath":"/settings/dismiss-notice/publish_stack_from_file","releasePath":"/spacetelescope/romancal/releases/new?marketplace=true","showPublishActionBanner":false,"showPublishStackBanner":false},"rawBlobUrl":"https://github.com/spacetelescope/romancal/raw/main/docs/_static/stsci_logo.png","renderImageOrRaw":true,"richText":null,"renderedFileInfo":null,"shortPath":null,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"spacetelescope","repoName":"romancal","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","showDependabotConfigurationBanner":null,"actionsOnboardingTip":null},"truncated":false,"viewable":false,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":true,"symbols":[]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/spacetelescope/romancal/branches":{"post":"kstZIzUdTE8_tutGjWh81JvY0GEKhUIdoka2bWnvJYSETwQicBrqNy23ePSBOEsPhBmLcE_yXYOcIM0KTuj5Xg"},"/repos/preferences":{"post":"BjnQBZsTGCLxgNI5ntt2cOLermd1zVvUJlqPdNryKNBhvdj-pJB_s34Q3CW6QzZ-ANzQJJqctbxchCV-_RolIQ"}}},"title":"romancal/docs/_static/stsci_logo.png at main · spacetelescope/romancal"} +======= +version https://git-lfs.github.com/spec/v1 +oid sha256:2c389fd7e3686d9c192efcd7e84755ed40f06029ac6234297197fed25fb289d7 +size 59966 +>>>>>>> 6e74936 (add images) From b46c149836a4fbb8514fa726982c8a37e1183761 Mon Sep 17 00:00:00 2001 From: Dave Davis Date: Fri, 15 Dec 2023 08:39:09 -0500 Subject: [PATCH 2/7] fixes Co-authored-by: Eddie Schlafly --- docs/_static/roman_logo_black_w200px.png | Bin 47381 -> 0 bytes docs/_static/roman_logo_white_w100px.png | Bin 18255 -> 0 bytes docs/_static/stsci_logo.png | 7 ------- 3 files changed, 7 deletions(-) delete mode 100644 docs/_static/roman_logo_black_w200px.png delete mode 100644 docs/_static/roman_logo_white_w100px.png delete mode 100644 docs/_static/stsci_logo.png diff --git a/docs/_static/roman_logo_black_w200px.png b/docs/_static/roman_logo_black_w200px.png deleted file mode 100644 index c779bd40234a28c81abbbcb4ea8d5f72e6014ab5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47381 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 diff --git a/docs/_static/roman_logo_white_w100px.png b/docs/_static/roman_logo_white_w100px.png deleted file mode 100644 index 82f872620fbd8f81ceaddc5b89dd111aa558288c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18255 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 gBoEh>>>>>> 6e74936 (add images) From ed3563d5c145650a16f5cdc87e6a66d0d7eb4da1 Mon Sep 17 00:00:00 2001 From: Brett Graham Date: Tue, 30 Jan 2024 15:23:26 -0500 Subject: [PATCH 3/7] switch jenkins runs to use roman-serverless for crds (#946) --- JenkinsfileRT | 2 +- JenkinsfileRT_dev | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/JenkinsfileRT b/JenkinsfileRT index 62be909bb..f6e968a15 100644 --- a/JenkinsfileRT +++ b/JenkinsfileRT @@ -53,7 +53,7 @@ def pip_install_args = "--index-url ${pip_index} --progress-bar=off" env_vars = [ "TEST_BIGDATA=https://bytesalad.stsci.edu/artifactory", "CRDS_CONTEXT=roman_0052.pmap", - "CRDS_SERVER_URL=https://serverless", + "CRDS_SERVER_URL=https://roman-serverless", 'CRDS_PATH=/grp/crds/roman/test/', 'DD_ENV=ci', 'DD_SERVICE=romancal', diff --git a/JenkinsfileRT_dev b/JenkinsfileRT_dev index d7961a782..793d8eef3 100644 --- a/JenkinsfileRT_dev +++ b/JenkinsfileRT_dev @@ -53,7 +53,7 @@ def pip_install_args = "--index-url ${pip_index} --progress-bar=off" env_vars = [ "TEST_BIGDATA=https://bytesalad.stsci.edu/artifactory", "CRDS_CONTEXT=roman_0052.pmap", - "CRDS_SERVER_URL=https://serverless", + "CRDS_SERVER_URL=https://roman-serverless", 'CRDS_PATH=/grp/crds/roman/test/', 'WEBBPSF_PATH=/grp/jwst/ote/webbpsf-data', 'PYSYN_CDBS=/grp/hst/cdbs', From 07cee9a04f02130061ed9d3a074b8d400af02761 Mon Sep 17 00:00:00 2001 From: Dave Davis Date: Tue, 30 Jan 2024 12:52:04 -0500 Subject: [PATCH 4/7] rcal-622 Add ability to copy resultantdq from SDF to a rampmodel --- romancal/dq_init/dq_init_step.py | 28 ++++++++------ romancal/dq_init/tests/test_dq_init.py | 51 ++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 11 deletions(-) diff --git a/romancal/dq_init/dq_init_step.py b/romancal/dq_init/dq_init_step.py index db1e1786d..0c757b9af 100644 --- a/romancal/dq_init/dq_init_step.py +++ b/romancal/dq_init/dq_init_step.py @@ -45,20 +45,26 @@ def process(self, input): if not isinstance(input_model, RampModel): # Create base ramp node with dummy values (for validation) input_ramp = maker_utils.mk_ramp(shape=input_model.shape) + # check if the input model has a resultantdq from SDF + if hasattr(input_model, 'resultantdq'): + input_ramp.groupdq = input_model.resultantdq.copy() # Copy input_model contents into RampModel for key in input_model.keys(): - # If a dictionary (like meta), overwrite entires (but keep - # required dummy entries that may not be in input_model) - if isinstance(input_ramp[key], dict): - input_ramp[key].update(input_model.__getattr__(key)) - elif isinstance(input_ramp[key], np.ndarray): - # Cast input ndarray as RampModel dtype - input_ramp[key] = input_model.__getattr__(key).astype( - input_ramp[key].dtype - ) - else: - input_ramp[key] = input_model.__getattr__(key) + # check for resultantdq if present copy this to the emp + # it to the ramp model, we don't want to carry this around + if key != 'resultantdq': + # If a dictionary (like meta), overwrite entires (but keep + # required dummy entries that may not be in input_model) + if isinstance(input_ramp[key], dict): + input_ramp[key].update(input_model.__getattr__(key)) + elif isinstance(input_ramp[key], np.ndarray): + # Cast input ndarray as RampModel dtype + input_ramp[key] = input_model.__getattr__(key).astype( + input_ramp[key].dtype + ) + else: + input_ramp[key] = input_model.__getattr__(key) # Create model from node output_model = RampModel(input_ramp) diff --git a/romancal/dq_init/tests/test_dq_init.py b/romancal/dq_init/tests/test_dq_init.py index 4bea3e8da..d03babc4f 100644 --- a/romancal/dq_init/tests/test_dq_init.py +++ b/romancal/dq_init/tests/test_dq_init.py @@ -284,6 +284,57 @@ def test_dqinit_refpix(instrument, exptype): assert result.dq_border_ref_pix_bottom.shape == (4, 20) +@pytest.mark.parametrize( + "instrument, exptype", + [ + ("WFI", "WFI_IMAGE"), + ], +) +def test_dqinit_resultantdq(instrument, exptype): + """Test that the basic inferface works for data requiring a DQ reffile""" + + # Set test size + shape = (2, 20, 20) + + # Create test science raw model + wfi_sci_raw = maker_utils.mk_level1_science_raw(shape=shape, dq=True) + wfi_sci_raw.meta.instrument.name = instrument + wfi_sci_raw.meta.instrument.detector = "WFI01" + wfi_sci_raw.meta.instrument.optical_element = "F158" + wfi_sci_raw.meta["guidestar"]["gw_window_xstart"] = 1012 + wfi_sci_raw.meta["guidestar"]["gw_window_xsize"] = 16 + wfi_sci_raw.meta.exposure.type = exptype + wfi_sci_raw.resultantdq[1,12,12] = dqflags.pixel["DROPOUT"] + wfi_sci_raw.data = u.Quantity( + np.ones(shape, dtype=np.uint16), u.DN, dtype=np.uint16 + ) + wfi_sci_raw_model = ScienceRawModel(wfi_sci_raw) + + # Create mask model + maskref = stnode.MaskRef() + meta = maker_utils.mk_ref_common("MASK") + meta["instrument"]["optical_element"] = "F158" + meta["instrument"]["detector"] = "WFI01" + maskref["meta"] = meta + maskref["data"] = np.ones(shape[1:], dtype=np.float32) + maskref["dq"] = np.zeros(shape[1:], dtype=np.uint16) + maskref["err"] = (RNG.uniform(size=shape[1:]) * 0.05).astype(np.float32) + maskref_model = MaskRefModel(maskref) + + # Perform Data Quality application step + result = DQInitStep.call(wfi_sci_raw_model, override_mask=maskref_model) + + # check that the resultantdq is present in the raw model + assert hasattr(wfi_sci_raw_model,'resultantdq') + # check that the resultantdq is not copied to the result + assert not hasattr(result,'resultantdq') + # check to see the resultantdq is the correct shape + assert wfi_sci_raw_model.resultantdq.shape == shape + # check to see the resultantdq & groupdq have the correct value + assert wfi_sci_raw_model.resultantdq[1,12,12] == dqflags.pixel["DROPOUT"] + assert result.groupdq[1,12,12] == dqflags.pixel["DROPOUT"] + + @pytest.mark.parametrize( "instrument, exptype", [ From 1be97f129aa254eb18b2d3e775ef927391beef40 Mon Sep 17 00:00:00 2001 From: Dave Davis Date: Tue, 30 Jan 2024 13:05:12 -0500 Subject: [PATCH 5/7] rcal-622 Update change file --- CHANGES.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index bd8b30ad4..730970885 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,11 @@ 0.13.1 (unreleased) =================== +dq_init +------- + +- Add the ability to copy resultantdq from a SDF science raw model to the new rampmodel created by dq_init [#1085] + outlier_detection ----------------- From b6619415fdf79d83d65dde483a78db3807cb15ac Mon Sep 17 00:00:00 2001 From: Dave Davis Date: Wed, 31 Jan 2024 08:15:27 -0500 Subject: [PATCH 6/7] rcal-622 updates for docs and pytest versions --- docs/_static/roman_logo_black_w200px.png | 3 +++ docs/_static/roman_logo_white_w100px.png | 3 +++ pyproject.toml | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 docs/_static/roman_logo_black_w200px.png create mode 100644 docs/_static/roman_logo_white_w100px.png diff --git a/docs/_static/roman_logo_black_w200px.png b/docs/_static/roman_logo_black_w200px.png new file mode 100644 index 000000000..0cb47b8f0 --- /dev/null +++ b/docs/_static/roman_logo_black_w200px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d3b1cad9d07c9dd96ceac84601cb7e4a15a62f02f1c7e39216a53f70c085679 +size 47381 diff --git a/docs/_static/roman_logo_white_w100px.png b/docs/_static/roman_logo_white_w100px.png new file mode 100644 index 000000000..0d56cdfe4 --- /dev/null +++ b/docs/_static/roman_logo_white_w100px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c0c9f637a271f1f358551a37232cfe5e83964b63b85da8a4ccca1afa7325ade +size 18255 diff --git a/pyproject.toml b/pyproject.toml index 64ec00b00..b6985847b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,7 @@ docs = [ ] test = [ 'ci-watson >=0.5.0', - 'pytest >=4.6.0', + 'pytest >=4.6.0, <8.0.0', 'pytest-astropy', 'metrics_logger >= 0.1.0', 'deepdiff', From a51f0e8bbf46412da4ef823a87c42b7665030b25 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 13:16:11 +0000 Subject: [PATCH 7/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- romancal/dq_init/dq_init_step.py | 4 ++-- romancal/dq_init/tests/test_dq_init.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/romancal/dq_init/dq_init_step.py b/romancal/dq_init/dq_init_step.py index 0c757b9af..d0d49c654 100644 --- a/romancal/dq_init/dq_init_step.py +++ b/romancal/dq_init/dq_init_step.py @@ -46,14 +46,14 @@ def process(self, input): # Create base ramp node with dummy values (for validation) input_ramp = maker_utils.mk_ramp(shape=input_model.shape) # check if the input model has a resultantdq from SDF - if hasattr(input_model, 'resultantdq'): + if hasattr(input_model, "resultantdq"): input_ramp.groupdq = input_model.resultantdq.copy() # Copy input_model contents into RampModel for key in input_model.keys(): # check for resultantdq if present copy this to the emp # it to the ramp model, we don't want to carry this around - if key != 'resultantdq': + if key != "resultantdq": # If a dictionary (like meta), overwrite entires (but keep # required dummy entries that may not be in input_model) if isinstance(input_ramp[key], dict): diff --git a/romancal/dq_init/tests/test_dq_init.py b/romancal/dq_init/tests/test_dq_init.py index d03babc4f..305be5352 100644 --- a/romancal/dq_init/tests/test_dq_init.py +++ b/romancal/dq_init/tests/test_dq_init.py @@ -304,7 +304,7 @@ def test_dqinit_resultantdq(instrument, exptype): wfi_sci_raw.meta["guidestar"]["gw_window_xstart"] = 1012 wfi_sci_raw.meta["guidestar"]["gw_window_xsize"] = 16 wfi_sci_raw.meta.exposure.type = exptype - wfi_sci_raw.resultantdq[1,12,12] = dqflags.pixel["DROPOUT"] + wfi_sci_raw.resultantdq[1, 12, 12] = dqflags.pixel["DROPOUT"] wfi_sci_raw.data = u.Quantity( np.ones(shape, dtype=np.uint16), u.DN, dtype=np.uint16 ) @@ -325,14 +325,14 @@ def test_dqinit_resultantdq(instrument, exptype): result = DQInitStep.call(wfi_sci_raw_model, override_mask=maskref_model) # check that the resultantdq is present in the raw model - assert hasattr(wfi_sci_raw_model,'resultantdq') + assert hasattr(wfi_sci_raw_model, "resultantdq") # check that the resultantdq is not copied to the result - assert not hasattr(result,'resultantdq') + assert not hasattr(result, "resultantdq") # check to see the resultantdq is the correct shape assert wfi_sci_raw_model.resultantdq.shape == shape # check to see the resultantdq & groupdq have the correct value - assert wfi_sci_raw_model.resultantdq[1,12,12] == dqflags.pixel["DROPOUT"] - assert result.groupdq[1,12,12] == dqflags.pixel["DROPOUT"] + assert wfi_sci_raw_model.resultantdq[1, 12, 12] == dqflags.pixel["DROPOUT"] + assert result.groupdq[1, 12, 12] == dqflags.pixel["DROPOUT"] @pytest.mark.parametrize(