{"id":49675491,"url":"https://github.com/soar-telescope/goodman_pipeline","last_synced_at":"2026-05-07T02:01:33.008Z","repository":{"id":9717057,"uuid":"62915938","full_name":"soar-telescope/goodman_pipeline","owner":"soar-telescope","description":"Goodman Data Reduction Pipeline","archived":false,"fork":false,"pushed_at":"2026-05-06T18:04:09.000Z","size":285591,"stargazers_count":17,"open_issues_count":68,"forks_count":13,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-05-06T20:09:53.815Z","etag":null,"topics":["astronomy","ccd","ccd-image","goodman","pipeline","soar","ubuntu","wavelength-solution"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soar-telescope.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-07-08T20:34:45.000Z","updated_at":"2026-05-06T18:04:16.000Z","dependencies_parsed_at":"2023-09-26T19:39:40.945Z","dependency_job_id":"0f63fd9b-0b5e-465b-beb1-2ed0ded2f425","html_url":"https://github.com/soar-telescope/goodman_pipeline","commit_stats":{"total_commits":1233,"total_committers":12,"mean_commits":102.75,"dds":0.08596918085969185,"last_synced_commit":"b22f4edb6f7df7ec0dfd5dc239974364efb2f923"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/soar-telescope/goodman_pipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soar-telescope%2Fgoodman_pipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soar-telescope%2Fgoodman_pipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soar-telescope%2Fgoodman_pipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soar-telescope%2Fgoodman_pipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soar-telescope","download_url":"https://codeload.github.com/soar-telescope/goodman_pipeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soar-telescope%2Fgoodman_pipeline/sbom","scorecard":{"id":53782,"data":{"date":"2025-08-04","repo":{"name":"github.com/soar-telescope/goodman_pipeline","commit":"9a5795c5bddff49dfd6f12faa3fb3c14f81cdd88"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":3.6,"checks":[{"name":"Maintained","score":8,"reason":"9 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/6 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: found token with 'none' permissions: .github/workflows/python-package.yml:90","Warn: no topLevel permission defined: .github/workflows/python-package.yml:1","Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/python-publish.yml:28"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":0,"reason":"12 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-h2x6-5jx5-46hf","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-package.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-package.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-package.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-package.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-package.yml:102: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-package.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/soar-telescope/goodman_pipeline/python-publish.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:58","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:59","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:60","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:19","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-15T00:14:24.465Z","repository_id":9717057,"created_at":"2025-08-15T00:14:24.465Z","updated_at":"2025-08-15T00:14:24.465Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32719572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T00:29:05.620Z","status":"online","status_checked_at":"2026-05-07T02:00:07.170Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astronomy","ccd","ccd-image","goodman","pipeline","soar","ubuntu","wavelength-solution"],"created_at":"2026-05-07T02:00:47.453Z","updated_at":"2026-05-07T02:01:33.002Z","avatar_url":"https://github.com/soar-telescope.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Goodman High Throughput Spectrograph Data Reduction Pipeline\n\n![Goodman Pipeline](https://github.com/soar-telescope/goodman_pipeline/actions/workflows/python-package.yml/badge.svg)\n[![codecov](https://codecov.io/gh/soar-telescope/goodman_pipeline/graph/badge.svg?token=1z2Zkl5I0n)](https://codecov.io/gh/soar-telescope/goodman_pipeline)\n[![Documentation Status](https://readthedocs.org/projects/goodman/badge/?version=latest)](http://goodman.readthedocs.io/en/latest/?badge=latest)\n[![pypi](https://img.shields.io/pypi/v/goodman_pipeline.svg?style=flat)](https://pypi.org/project/goodman-pipeline/)\n[![astropy](http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat)](http://www.astropy.org/)\n\n\n![Upload to PYPI](https://github.com/soar-telescope/goodman_pipeline/workflows/Upload%20to%20PYPI/badge.svg)\n\n\n## Overview\nThe Goodman High Throughput Spectrograph (Goodman HTS) Data-Reduction Pipeline\nis the SOAR Telescope's official data reduction pipeline for *Goodman HTS*.\n\nIt has been fully developed in Python and uses mostly astropy affiliated packages\nwith the exception of [dcr](http://users.camk.edu.pl/pych/DCR/) which is an external tool\nthat does cosmic ray identification and correction. The reason for using it\ninstead of LACosmic is that it works very well for spectroscopic data and the\nresults are evidently superior. Some of the negative aspects of using this\nexternal (meaning outside of Python domains) software were: The integration into\nthe pipeline's workflow and the use of an external `dcr.par` parameter file.\n Such parameters have to be changed by hand and can't be integrated into the\n pipeline's workflow itself. In particular for binning 2x2 and custom ROI those\n parameters contained in _dcr.par_ has to be specifically tuned.\n\n## Documentation\n\nYou will find a user manual on [goodman.readthedocs.org](http://goodman.readthedocs.io/en/latest/)\n\nIf you wish to know more about the instrument please check the \n[SOAR website](http://www.ctio.noao.edu/soar/content/goodman-high-throughput-spectrograph)\n\n## Having trouble?\n\nIf you are having trouble operating the Goodman Pipeline we suggest the following\nprocedure.\n\n* Check [existing issues](https://github.com/soar-telescope/goodman_pipeline/issues) or \nopen a [new Issue](https://github.com/soar-telescope/goodman_pipeline/issues/new) on GitHub.\n\n## Development Team\n\n- [Simón Torres](https://github.com/simontorres) (NOIRLab Software Engineer - main code developer)\n- [César Briceño](https://github.com/cbaorion) (SOAR Telescope Scientist - team lead)\n- [Bruno Quint](https://github.com/b1quint) (Brazil Support Astronomer - code development adviser)\n\n\n## Acknowledgements\n\nWe acknowledge the important contribution of  [David Sanmartim](https://github.com/dsanmartim), who developed\nthe initial incarnation of the redccd module. We thank [Tina Armond](https://github.com/tarmond) for her\ninvaluable help in adding calibrated comparison lamps to the [library](https://goodman.readthedocs.io/projects/lamps/en/latest/) of\nreference comparison lamps for wavelength solution.\n\nOur work would not be possible without the friendly work atmosphere at CTIO\nheadquarters in La Serena, were we can interact with our SOAR and CTIO\ncolleagues in lively and useful discussions that have been important in making\nthe Goodman pipeline possible.  We also acknowledge fruitful discussions and\nsuggestions from our colleagues Bart Dunlop, Chris Clemens, and Erik Dennihy,\nat University of North Carolina at Chapel Hill.\n  \n## Citations:\n  This pipeline makes extensive use of Astropy therefore you should cite as suggested\n  on [Astropy Citation Page](https://github.com/astropy/astropy/blob/master/CITATION) as follows:\n  \n    This research made use of Astropy, a community-developed core Python package\n    for Astronomy (Astropy Collaboration, 2013, 2018).\n    \n  It also uses [DCR](http://users.camk.edu.pl/pych/DCR/) for cosmic rays identification\n  and removal. You should cite [this paper](http://adsabs.harvard.edu/abs/2004PASP..116..148P)\n  \n     Pych, W., 2004, PASP, 116, 148\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoar-telescope%2Fgoodman_pipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoar-telescope%2Fgoodman_pipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoar-telescope%2Fgoodman_pipeline/lists"}