├── fitsblender ├── tests │ ├── __init__.py │ ├── test_fitsblender.py │ ├── EUVEngc4151imgx.fits │ ├── UITfuv2582gc.fits │ ├── FOSy19g0309t_c2f.fits │ ├── FGSf64y0106m_a1f.fits │ └── HRSz0yd020fm_c2f.fits ├── pars │ ├── blendheaders.cfg │ └── blendheaders.cfgspc ├── __init__.py ├── nirspec_header.rules ├── jwst_header.rules ├── nircam_header.rules ├── blender.py ├── acs_header.rules ├── hst_header.rules ├── wfpc2_header.rules ├── stis_header.rules ├── nicmos_header.rules └── wfc3_header.rules ├── .gitignore ├── .github ├── CODEOWNERS └── workflows │ ├── publish-to-pypi.yml │ └── ci.yml ├── requirements-dev.txt ├── .coveragerc ├── .flake8 ├── docs ├── source │ ├── index.rst │ └── conf.py └── Makefile ├── README.md ├── azure-pipelines.yml ├── tox.ini ├── pyproject.toml ├── LICENSE.txt └── CODE_OF_CONDUCT.md /fitsblender/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | build 3 | dist 4 | *.egg-info 5 | .eggs 6 | version.py 7 | *.pyc 8 | pip-wheel-metadata 9 | coverage.xml 10 | .coverage 11 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # automatically requests pull request reviews for files matching the given pattern; the last match takes precendence 2 | 3 | * @spacetelescope/fitsblender-maintainers 4 | -------------------------------------------------------------------------------- /fitsblender/pars/blendheaders.cfg: -------------------------------------------------------------------------------- 1 | _task_name_ = blendheaders 2 | drzfile = "" 3 | inputs = "" 4 | output = "" 5 | sciext = "SCI" 6 | errext = "ERR" 7 | dqext = "DQ" 8 | verbose = False 9 | 10 | [_RULES_] 11 | -------------------------------------------------------------------------------- /requirements-dev.txt: -------------------------------------------------------------------------------- 1 | git+https://github.com/spacetelescope/stsci.tools.git 2 | 3 | --extra-index-url https://pypi.anaconda.org/astropy/simple 4 | 5 | # Use Bi-weekly numpy/scipy dev builds 6 | --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple 7 | numpy>=0.0.dev0 8 | -------------------------------------------------------------------------------- /.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | branch = True 3 | source = fitsblender 4 | 5 | [report] 6 | exclude_lines = 7 | if self.debug: 8 | pragma: no cover 9 | raise NotImplementedError 10 | if __name__ == .__main__.: 11 | ignore_errors = True 12 | omit = 13 | conftest.py 14 | setup.py 15 | docs/* 16 | tests/* 17 | fitsblender/tests/* 18 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | # flake8 does not support pyproject.toml (https://github.com/PyCQA/flake8/issues/234) 2 | 3 | [flake8] 4 | select = F, W, E, C 5 | # We should set max line length lower eventually 6 | max-line-length = 130 7 | exclude = 8 | docs, 9 | .tox, 10 | .eggs, 11 | build 12 | per-file-ignores = 13 | __init__.py: F401 14 | ignore = 15 | E117, E122, E123, E128, E225, E226, E231, E241, E251, E261, E302, E701, W291, W293, W391, W503, W504, 16 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. fitsblender documentation master file, created by 2 | sphinx-quickstart on Wed Sep 15 11:27:12 2010. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to fitsblender's documentation! 7 | ======================================= 8 | 9 | .. automodule:: fitsblender 10 | :members: fitsblender 11 | 12 | 13 | Indices and tables 14 | ================== 15 | 16 | * :ref:`genindex` 17 | * :ref:`modindex` 18 | * :ref:`search` 19 | 20 | -------------------------------------------------------------------------------- /.github/workflows/publish-to-pypi.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: 4 | release: 5 | types: [ released ] 6 | pull_request: 7 | workflow_dispatch: 8 | 9 | concurrency: 10 | group: ${{ github.workflow }}-${{ github.ref }} 11 | cancel-in-progress: true 12 | 13 | jobs: 14 | build: 15 | uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v1 16 | with: 17 | upload_to_pypi: ${{ (github.event_name == 'release') && (github.event.action == 'released') }} 18 | secrets: 19 | pypi_token: ${{ secrets.PYPI_PASSWORD_STSCI_MAINTAINER }} 20 | -------------------------------------------------------------------------------- /fitsblender/pars/blendheaders.cfgspc: -------------------------------------------------------------------------------- 1 | _task_name_ = string_kw(default="blendheaders") 2 | drzfile = string_kw(default="",comment="Name(s) of drizzle product(s)") 3 | inputs = string_kw(default="",comment="Name(s) of files that went into drzfile (optional)") 4 | output = string_kw(default="",comment="Name of new file with blended headers (optional)") 5 | sciext = string_kw(default="SCI",comment="EXTNAME of science data (optional)") 6 | errext = string_kw(default="ERR",comment="EXTNAME of error array (optional)") 7 | dqext = string_kw(default="DQ",comment="EXTNAME of dq array (optional)") 8 | verbose = boolean_kw(default=False, comment="Print processing messages?") 9 | 10 | [ _RULES_ ] 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fitsblender 2 | 3 | [![Build Status](https://dev.azure.com/spacetelescope/fitsblender/_apis/build/status/spacetelescope.fitsblender?branchName=main)](https://dev.azure.com/spacetelescope/fitsblender/_build/latest?definitionId=14&branchName=main) 4 | [![codecov](https://codecov.io/gh/spacetelescope/fitsblender/branch/main/graph/badge.svg)](https://codecov.io/gh/spacetelescope/fitsblender) 5 | 6 | FITSBLENDER 7 | ============ 8 | 9 | This package supports the creation of a combined header for a FITS file based on the contents of the headers 10 | of a set of input FITS images. A rules file defines what keywords will be present in the combined 11 | output header as well as how the output value will be determined from the set of values from all 12 | the input image headers. 13 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | trigger: 2 | - main 3 | 4 | pool: 5 | vmImage: 'ubuntu-latest' 6 | strategy: 7 | matrix: 8 | Python310: 9 | python.version: '3.10' 10 | Python311: 11 | python.version: '3.11' 12 | Python312: 13 | python.version: '3.12' 14 | 15 | steps: 16 | - task: UsePythonVersion@0 17 | inputs: 18 | versionSpec: '$(python.version)' 19 | displayName: 'Python $(python.version)' 20 | 21 | - script: | 22 | python -m pip install --upgrade pip 23 | pip install -e ".[test]" 24 | displayName: 'Install dependencies' 25 | 26 | - script: | 27 | python -m pip freeze 28 | displayName: 'Package listing' 29 | 30 | - script: | 31 | python -m pip install pytest pytest-azurepipelines 32 | pytest --cov=./ --cov-report=xml:coverage.xml --cov-report=term-missing 33 | curl -Os https://uploader.codecov.io/latest/linux/codecov 34 | chmod +x codecov 35 | ./codecov -t "$CODECOV" 36 | displayName: 'pytest' 37 | env: 38 | CODECOV: $(codecov) 39 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | tags: 8 | - '*' 9 | pull_request: 10 | schedule: 11 | # Weekly Tuesday 9:05 PM build 12 | - cron: "5 21 * * 2" 13 | workflow_dispatch: 14 | 15 | concurrency: 16 | group: ${{ github.workflow }}-${{ github.ref }} 17 | cancel-in-progress: true 18 | 19 | jobs: 20 | check: 21 | uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1 22 | with: 23 | envs: | 24 | - linux: security 25 | - linux: style 26 | - linux: build-docs 27 | test: 28 | uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1 29 | with: 30 | envs: | 31 | - linux: py310 32 | - macos: py310 33 | - linux: py311 34 | pytest-results-summary: true 35 | - linux: py311-cov 36 | coverage: codecov 37 | - macos: py311 38 | pytest-results-summary: true 39 | - linux: py312 40 | - macos: py312 41 | -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | envlist = 3 | py{39,310,311,312} 4 | style 5 | security 6 | build-docs 7 | dev 8 | 9 | skip_missing_interpreters = true 10 | 11 | [pytest] 12 | testpaths = 13 | fitsblender/tests 14 | 15 | [testenv] 16 | changedir = {toxinidir} 17 | 18 | set_env = 19 | dev: PIP_EXTRA_INDEX_URL = https://pypi.anaconda.org/astropy/simple https://pypi.anaconda.org/scientific-python-nightly-wheels/simple 20 | 21 | commands_pre = 22 | dev: pip install -r requirements-dev.txt -U --upgrade-strategy eager 23 | 24 | deps = 25 | pytest 26 | cov: pytest-cov 27 | 28 | commands = 29 | pytest -s fitsblender/tests \ 30 | cov: --cov --cov-report term-missing \ 31 | {posargs} 32 | 33 | [testenv:style] 34 | description = Check with flake8 35 | skip_install = true 36 | deps = 37 | flake8 38 | commands = 39 | flake8 --count fitsblender 40 | 41 | [testenv:security] 42 | description = Check security compliance 43 | skip_install = true 44 | deps = 45 | bandit>=1.7 46 | # Recursive check 47 | commands = 48 | bandit -r -l -v -x fitsblender/tests/* fitsblender 49 | 50 | [testenv:build-docs] 51 | description = Invoke sphinx-build to build the HTML docs 52 | extras = docs 53 | commands = 54 | sphinx-build -b html -d docs/build/doctrees docs/source docs/build/html 55 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "fitsblender" 3 | description = "Aggregate values in FITS headers" 4 | authors = [ 5 | { name = "Michael Droettboom" }, 6 | ] 7 | classifiers = [ 8 | "Intended Audience :: Science/Research", 9 | "License :: OSI Approved :: BSD License", 10 | "Operating System :: OS Independent", 11 | "Programming Language :: Python", 12 | "Topic :: Scientific/Engineering :: Astronomy", 13 | "Topic :: Software Development :: Libraries :: Python Modules", 14 | ] 15 | dependencies = [ 16 | "astropy>=5.0.4", 17 | "numpy", 18 | "stsci.tools", 19 | ] 20 | dynamic = [ 21 | "version", 22 | ] 23 | requires-python = ">=3.10" 24 | 25 | [project.readme] 26 | file = "README.md" 27 | content-type = "text/markdown" 28 | 29 | [project.optional-dependencies] 30 | docs = [ 31 | "sphinx", 32 | "numpydoc", 33 | ] 34 | test = [ 35 | "pytest", 36 | "pytest-cov", 37 | ] 38 | 39 | [build-system] 40 | requires = [ 41 | "setuptools >=60", 42 | "setuptools_scm[toml] >=3.4", 43 | "wheel", 44 | ] 45 | build-backend = "setuptools.build_meta" 46 | 47 | [tool.setuptools] 48 | include-package-data = false 49 | 50 | [tool.setuptools.packages.find] 51 | namespaces = false 52 | 53 | [tool.setuptools.package-data] 54 | fitsblender = [ 55 | "*.rules", 56 | "pars/*", 57 | "tests/*.fits", 58 | ] 59 | 60 | [tool.setuptools_scm] 61 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2019, Association of Universities for Research in Astronomy (AURA) 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /fitsblender/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2008-2010 Association of Universities for Research in Astronomy (AURA) 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are met: 5 | # 6 | # 1. Redistributions of source code must retain the above copyright 7 | # notice, this list of conditions and the following disclaimer. 8 | # 9 | # 2. Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following 11 | # disclaimer in the documentation and/or other materials provided 12 | # with the distribution. 13 | # 14 | # 3. The name of AURA and its representatives may not be used to 15 | # endorse or promote products derived from this software without 16 | # specific prior written permission. 17 | # 18 | # THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED 19 | # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 20 | # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | # DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, 22 | # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 24 | # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 26 | # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 27 | # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 28 | # DAMAGE. 29 | from __future__ import absolute_import 30 | import os 31 | import sys 32 | import importlib.metadata 33 | 34 | try: 35 | __version__ = importlib.metadata.version(__name__) 36 | except importlib.metadata.PackageNotFoundError: # pragma: no cover 37 | # package is not installed 38 | __version__ = 'UNKNOWN' 39 | 40 | 41 | from . import blender 42 | from .blender import fitsblender 43 | 44 | from . import blendheaders 45 | 46 | # These lines allow TEAL to print out the names of TEAL-enabled tasks 47 | # upon importing this package. 48 | from stsci.tools import teal 49 | 50 | # Only print if running from pyraf 51 | if sys._getframe(1).f_code.co_name == '_irafImport': 52 | teal.print_tasknames(__name__, os.path.dirname(__file__)) 53 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Spacetelescope Open Source Code of Conduct 2 | 3 | We expect all "spacetelescope" organization projects to adopt a code of conduct that ensures a productive, respectful environment for all open source contributors and participants. We are committed to providing a strong and enforced code of conduct and expect everyone in our community to follow these guidelines when interacting with others in all forums. Our goal is to keep ours a positive, inclusive, successful, and growing community. The community of participants in open source Astronomy projects is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences success and continued growth. 4 | 5 | 6 | As members of the community, 7 | 8 | - We pledge to treat all people with respect and provide a harassment- and bullying-free environment, regardless of sex, sexual orientation and/or gender identity, disability, physical appearance, body size, race, nationality, ethnicity, and religion. In particular, sexual language and imagery, sexist, racist, or otherwise exclusionary jokes are not appropriate. 9 | 10 | - We pledge to respect the work of others by recognizing acknowledgment/citation requests of original authors. As authors, we pledge to be explicit about how we want our own work to be cited or acknowledged. 11 | 12 | - We pledge to welcome those interested in joining the community, and realize that including people with a variety of opinions and backgrounds will only serve to enrich our community. In particular, discussions relating to pros/cons of various technologies, programming languages, and so on are welcome, but these should be done with respect, taking proactive measure to ensure that all participants are heard and feel confident that they can freely express their opinions. 13 | 14 | - We pledge to welcome questions and answer them respectfully, paying particular attention to those new to the community. We pledge to provide respectful criticisms and feedback in forums, especially in discussion threads resulting from code contributions. 15 | 16 | - We pledge to be conscientious of the perceptions of the wider community and to respond to criticism respectfully. We will strive to model behaviors that encourage productive debate and disagreement, both within our community and where we are criticized. We will treat those outside our community with the same respect as people within our community. 17 | 18 | - We pledge to help the entire community follow the code of conduct, and to not remain silent when we see violations of the code of conduct. We will take action when members of our community violate this code such as such as contacting conduct@stsci.edu (all emails sent to this address will be treated with the strictest confidence) or talking privately with the person. 19 | 20 | This code of conduct applies to all community situations online and offline, including mailing lists, forums, social media, conferences, meetings, associated social events, and one-to-one interactions. 21 | 22 | Parts of this code of conduct have been adapted from the Astropy and Numfocus codes of conduct. 23 | http://www.astropy.org/code_of_conduct.html 24 | https://www.numfocus.org/about/code-of-conduct/ 25 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | BUILDDIR = build 9 | 10 | # Internal variables. 11 | PAPEROPT_a4 = -D latex_paper_size=a4 12 | PAPEROPT_letter = -D latex_paper_size=letter 13 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 14 | 15 | .PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest 16 | 17 | help: 18 | @echo "Please use \`make ' where is one of" 19 | @echo " html to make standalone HTML files" 20 | @echo " dirhtml to make HTML files named index.html in directories" 21 | @echo " pickle to make pickle files" 22 | @echo " json to make JSON files" 23 | @echo " htmlhelp to make HTML files and a HTML help project" 24 | @echo " qthelp to make HTML files and a qthelp project" 25 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 26 | @echo " changes to make an overview of all changed/added/deprecated items" 27 | @echo " linkcheck to check all external links for integrity" 28 | @echo " doctest to run all doctests embedded in the documentation (if enabled)" 29 | 30 | clean: 31 | -rm -rf $(BUILDDIR)/* 32 | 33 | html: 34 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 35 | @echo 36 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 37 | 38 | dirhtml: 39 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 40 | @echo 41 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 42 | 43 | pickle: 44 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 45 | @echo 46 | @echo "Build finished; now you can process the pickle files." 47 | 48 | json: 49 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 50 | @echo 51 | @echo "Build finished; now you can process the JSON files." 52 | 53 | htmlhelp: 54 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 55 | @echo 56 | @echo "Build finished; now you can run HTML Help Workshop with the" \ 57 | ".hhp project file in $(BUILDDIR)/htmlhelp." 58 | 59 | qthelp: 60 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 61 | @echo 62 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 63 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 64 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/fitsblender.qhcp" 65 | @echo "To view the help file:" 66 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/fitsblender.qhc" 67 | 68 | latex: 69 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 70 | @echo 71 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 72 | @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ 73 | "run these through (pdf)latex." 74 | 75 | changes: 76 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 77 | @echo 78 | @echo "The overview file is in $(BUILDDIR)/changes." 79 | 80 | linkcheck: 81 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 82 | @echo 83 | @echo "Link check complete; look for any errors in the above output " \ 84 | "or in $(BUILDDIR)/linkcheck/output.txt." 85 | 86 | doctest: 87 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 88 | @echo "Testing of doctests in the sources finished, look at the " \ 89 | "results in $(BUILDDIR)/doctest/output.txt." 90 | -------------------------------------------------------------------------------- /fitsblender/tests/test_fitsblender.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2008-2010 Association of Universities for Research in Astronomy (AURA) 2 | 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are met: 5 | 6 | # 1. Redistributions of source code must retain the above copyright 7 | # notice, this list of conditions and the following disclaimer. 8 | 9 | # 2. Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following 11 | # disclaimer in the documentation and/or other materials provided 12 | # with the distribution. 13 | 14 | # 3. The name of AURA and its representatives may not be used to 15 | # endorse or promote products derived from this software without 16 | # specific prior written permission. 17 | 18 | # THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED 19 | # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 20 | # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | # DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, 22 | # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 | # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 24 | # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 26 | # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 27 | # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 28 | # DAMAGE. 29 | from __future__ import print_function 30 | from pathlib import Path 31 | 32 | import numpy as np 33 | from astropy.io import fits as pyfits 34 | from numpy.testing import \ 35 | assert_equal, assert_almost_equal, assert_array_almost_equal, assert_raises 36 | 37 | import fitsblender 38 | 39 | ROOT_DIR = Path(__file__).parent 40 | 41 | 42 | def _test_fitsblender(files): 43 | spec = [ 44 | ('CRPIX1', 'crpix', np.average), 45 | ('crpix1', 'crpix_lower', np.average), 46 | ('CRPIX1', 'crpix_constant', np.average, 'constant', 0), 47 | ('CRPIX1', 'crpix'), 48 | ('CRPIX1', 'crpix_all', np.array), 49 | ('CRPIX1', 'crpix_range', (np.min, np.max)), 50 | ('OBSERVER', 'observer'), 51 | ('CRPIX1', 'crpix_sum', np.sum), 52 | ('CRPIX1', 'crpix_last', lambda x: x[-1]), 53 | ('CRPIX1', 'crpix_stddev', np.std), 54 | ] 55 | 56 | d, t = fitsblender.fitsblender(files, spec) 57 | 58 | print(d) 59 | print(t) 60 | print(t.dtype) 61 | 62 | assert_equal(d['crpix'], d['crpix_lower']) 63 | assert_almost_equal(d['crpix'], 77.6666666666666) 64 | assert_almost_equal(d['crpix_constant'], 51.7777777777777777) 65 | assert_array_almost_equal(d['crpix_all'], [1, 1, 1, 256.5, -213.5, 420.]) 66 | assert_array_almost_equal(t['crpix'], [np.nan, 1, 1, 1, np.nan, np.nan, 256.5, -213.5, 420.]) 67 | assert_array_almost_equal(d['crpix_range'], [-213.5, 420.0]) 68 | assert t['observer'][0] == 'A. A. Zdziarski' 69 | assert_almost_equal(d['crpix_sum'], 466.0) 70 | assert_almost_equal(d['crpix_last'], 420.0) 71 | assert_almost_equal(d['crpix_stddev'], 204.77012857239592) 72 | 73 | 74 | def test_filenames(): 75 | files = [(str(x), 0) for x in ROOT_DIR.glob("*.fits")] 76 | files.sort() 77 | 78 | _test_fitsblender(files) 79 | 80 | 81 | def test_header_objects(): 82 | files = list(ROOT_DIR.glob("*.fits")) 83 | files.sort() 84 | headers = [pyfits.open(x)[0].header for x in files] 85 | 86 | _test_fitsblender(headers) 87 | 88 | 89 | def test_nospec(): 90 | """ 91 | Test that no header list and no spec doesn't raise an exception. 92 | """ 93 | d, t = fitsblender.fitsblender([], []) 94 | assert d == {} 95 | assert len(t) == 0 96 | 97 | 98 | def test_raise(): 99 | def raises(): 100 | d, t = fitsblender.fitsblender(files, spec) 101 | 102 | spec = [ 103 | ('CRPIX1', 'crpix_raise', np.average, 'raises') 104 | ] 105 | 106 | files = [(str(x), 0) for x in ROOT_DIR.glob("*.fits")] 107 | files.sort() 108 | 109 | assert_raises(ValueError, raises) 110 | 111 | 112 | def test_raise_table(): 113 | def raises(): 114 | d, t = fitsblender.fitsblender(files, spec) 115 | 116 | spec = [ 117 | ('CRPIX1', 'crpix_raise', None, 'raises') 118 | ] 119 | 120 | files = [(str(x), 0) for x in ROOT_DIR.glob("*.fits")] 121 | files.sort() 122 | 123 | assert_raises(ValueError, raises) 124 | -------------------------------------------------------------------------------- /fitsblender/tests/EUVEngc4151imgx.fits: -------------------------------------------------------------------------------- 1 | SIMPLE = T / FITS STANDARD BITPIX = -64 / Character information NAXIS = 2 / No image data array present NAXIS1 = 0 NAXIS2 = 0 EXTEND = T / There may be standard extensions DATE = '31/10/97' / Date file was written (dd/mm/yy) 19yy ORIGIN = 'CEA/SSL UC Berkeley' / EUVE Science Archive CREATOR = 'STWFITS ' / Fitsio version 11-May-1995 TELESCOP= 'EUVE ' / Extreme Ultraviolet Explorer INSTTYPE= 'DS/S ' / Instrument type (DS/S, SCANNER) OBJECT = 'NGC 4151' / Name of observed object RA_OBJ = 182.635454000001 / R.A. of the object (degrees) DEC_OBJ = 39.4057280000001 / Declination of the object (degrees) RA_PNT = 182.988000000001 / R.A. of the pointing direction (degrees) DEC_PNT = 39.5477 / Declination of the pointing direction (degrees)RA_PROC = 182.637910000001 / R.A. used to process data (degrees) DEC_PROC= 39.41343 / Declination used to process data (degrees) OBSERVER= 'A. A. Zdziarski' / Original observing P.I. (EUVE = calibration) DATE-OBS= '30/04/97 GMT' / Start date of observation (dd/mm/yy) 19yy TIME-OBS= '23:51:30 GMT' / Start time of observation (hh:mm:ss GMT) DATE-END= '07/05/97 GMT' / End date of observation (dd/mm/yy) 19yy TIME-END= '09:34:27 GMT' / End time of observation (hh:mm:ss GMT) OBS_MODE= 'POINTING' / Inertial pointing mode DITHER = 'NONE ' / Spacecraft dither type (DITHERED, SPIRAL, NONE)DETMODE = 'WSZ ' / Detector position conversion mode (WSZ or XY) OFF-AXIS= T / Was this pointing done off-axis MOVING = F / Did the source position vary during observationDAYNIGHT= 'NIGHT ' / Day/night data indicator (DAY, NIGHT, BOTH) VALIDTIM= 201378.81295777 / Amount of telemetry present (seconds) RA_UNIT = 'deg ' / Units for Right Ascension DEC_UNIT= 'deg ' / Units for Declination EQUINOX = 2000. / Coordinate equinox RADECSYS= 'FK5 ' / Frame of reference of coordinates TIMESYS = 'MJD ' / MJD = JD - 2400000.5 TIMEZERO= 0. / No time offset required for EUVE event times TIMEUNIT= 's ' / Units for TSTART, TSTOP, TIMEZERO CLOCKCOR= 'NO ' / Not corrected to UT TIMEREF = 'LOCAL ' / No corrections applied (barycentric, etc.) TASSIGN = 'SATELLITE' / Event times are assigned at the satellite TSTART = 913161090.048001 / Time of start of observation (seconds) TSTOP = 913714467.840001 / Time of end of observation (seconds) MJDREF = 40000. / MJD of SC clock start, 24.00 May 1968 EGOCSVER= 'egocs1.7.1' / Software version used to produce this data REFVERS = 'egodata1.15.1' / Reference calibration dataset version used COMMENT ' ' COMMENT 'This file is part of the EUVE Science Archive. It contains' COMMENT 'images and filter limits for one EUVE observation.' COMMENT ' ' COMMENT 'The EUVE Science Archive contains the science data from' COMMENT 'observations performed with the EUVE telescopes. It forms one' COMMENT 'part of the EUVE Permanent Archive. The other part of the' COMMENT 'permanent archive is the EUVE Telemetry Archive, which is a' COMMENT 'complete record of the raw telemetry from the EUVE mission.' COMMENT ' ' COMMENT 'For documentation of the contents of the EUVE Science Archive,' COMMENT 'see the "EUVE Science Archive User's Guide". The contents of' COMMENT 'the EUVE Telemetry Archive are described in the "EUVE' COMMENT 'Telemetry Archive User's Guide".' COMMENT ' ' COMMENT 'The EUVE Permanent Archive was produced by the Center for EUV' COMMENT 'Astrophysics, a division of UC Berkeley's Space Science' COMMENT Laboratory. COMMENT ' ' END -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # fitsblender documentation build configuration file, created by 4 | # sphinx-quickstart on Wed Sep 15 11:27:12 2010. 5 | # 6 | # This file is execfile()d with the current directory set to its containing dir. 7 | # 8 | # Note that not all possible configuration values are present in this 9 | # autogenerated file. 10 | # 11 | # All configuration values have a default; values that are commented out 12 | # serve to show the default. 13 | 14 | import os 15 | import sys 16 | 17 | # The version info for the project you're documenting, acts as replacement for 18 | # |version| and |release|, also used in various other places throughout the 19 | # built documents. 20 | 21 | from fitsblender import __version__ as version 22 | 23 | # If extensions (or modules to document with autodoc) are in another directory, 24 | # add these directories to sys.path here. If the directory is relative to the 25 | # documentation root, use os.path.abspath to make it absolute, like shown here. 26 | sys.path.insert(1, os.path.abspath('.')) 27 | sys.path.insert(1, os.path.abspath('..')) 28 | sys.path.insert(1, os.path.abspath(os.path.join('..', '..'))) 29 | 30 | 31 | # -- General configuration ----------------------------------------------------- 32 | 33 | # Add any Sphinx extension module names here, as strings. They can be extensions 34 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. 35 | extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx'] 36 | 37 | # Add any paths that contain templates here, relative to this directory. 38 | templates_path = ['_templates'] 39 | 40 | # The suffix of source filenames. 41 | source_suffix = '.rst' 42 | 43 | # The encoding of source files. 44 | # source_encoding = 'utf-8' 45 | 46 | # The master toctree document. 47 | master_doc = 'index' 48 | 49 | # General information about the project. 50 | project = u'fitsblender' 51 | copyright = u'2010, Michael Droettboom' 52 | 53 | # The short X.Y `version` 54 | # The full version, including alpha/beta/rc tags. 55 | release = version 56 | 57 | # The language for content autogenerated by Sphinx. Refer to documentation 58 | # for a list of supported languages. 59 | # language = None 60 | 61 | # There are two options for replacing |today|: either, you set today to some 62 | # non-false value, then it is used: 63 | # today = '' 64 | # Else, today_fmt is used as the format for a strftime call. 65 | # today_fmt = '%B %d, %Y' 66 | 67 | # List of documents that shouldn't be included in the build. 68 | # unused_docs = [] 69 | 70 | # List of directories, relative to source directory, that shouldn't be searched 71 | # for source files. 72 | exclude_trees = [] 73 | 74 | # The reST default role (used for this markup: `text`) to use for all documents. 75 | # default_role = None 76 | 77 | # If true, '()' will be appended to :func: etc. cross-reference text. 78 | # add_function_parentheses = True 79 | 80 | # If true, the current module name will be prepended to all description 81 | # unit titles (such as .. function::). 82 | # add_module_names = True 83 | 84 | # If true, sectionauthor and moduleauthor directives will be shown in the 85 | # output. They are ignored by default. 86 | # show_authors = False 87 | 88 | # The name of the Pygments (syntax highlighting) style to use. 89 | pygments_style = 'sphinx' 90 | 91 | # A list of ignored prefixes for module index sorting. 92 | # modindex_common_prefix = [] 93 | 94 | 95 | # -- Options for HTML output --------------------------------------------------- 96 | 97 | # The theme to use for HTML and HTML Help pages. Major themes that come with 98 | # Sphinx are currently 'default' and 'sphinxdoc'. 99 | # html_theme = 'default' 100 | 101 | # Theme options are theme-specific and customize the look and feel of a theme 102 | # further. For a list of options available for each theme, see the 103 | # documentation. 104 | # html_theme_options = {} 105 | 106 | # Add any paths that contain custom themes here, relative to this directory. 107 | # html_theme_path = [] 108 | 109 | # The name for this set of Sphinx documents. If None, it defaults to 110 | # " v documentation". 111 | # html_title = None 112 | 113 | # A shorter title for the navigation bar. Default is the same as html_title. 114 | # html_short_title = None 115 | 116 | # The name of an image file (relative to this directory) to place at the top 117 | # of the sidebar. 118 | # html_logo = None 119 | 120 | # The name of an image file (within the static path) to use as favicon of the 121 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 122 | # pixels large. 123 | # html_favicon = None 124 | 125 | # Add any paths that contain custom static files (such as style sheets) here, 126 | # relative to this directory. They are copied after the builtin static files, 127 | # so a file named "default.css" will overwrite the builtin "default.css". 128 | # html_static_path = ['_static'] 129 | 130 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 131 | # using the given strftime format. 132 | # html_last_updated_fmt = '%b %d, %Y' 133 | 134 | # If true, SmartyPants will be used to convert quotes and dashes to 135 | # typographically correct entities. 136 | # html_use_smartypants = True 137 | 138 | # Custom sidebar templates, maps document names to template names. 139 | # html_sidebars = {} 140 | 141 | # Additional templates that should be rendered to pages, maps page names to 142 | # template names. 143 | # html_additional_pages = {} 144 | 145 | # If false, no module index is generated. 146 | # html_use_modindex = True 147 | 148 | # If false, no index is generated. 149 | # html_use_index = True 150 | 151 | # If true, the index is split into individual pages for each letter. 152 | # html_split_index = False 153 | 154 | # If true, links to the reST sources are added to the pages. 155 | # html_show_sourcelink = True 156 | 157 | # If true, an OpenSearch description file will be output, and all pages will 158 | # contain a tag referring to it. The value of this option must be the 159 | # base URL from which the finished HTML is served. 160 | # html_use_opensearch = '' 161 | 162 | # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). 163 | # html_file_suffix = '' 164 | 165 | # Output file base name for HTML help builder. 166 | htmlhelp_basename = 'fitsblenderdoc' 167 | 168 | 169 | # -- Options for LaTeX output -------------------------------------------------- 170 | 171 | # The paper size ('letter' or 'a4'). 172 | # latex_paper_size = 'letter' 173 | 174 | # The font size ('10pt', '11pt' or '12pt'). 175 | # latex_font_size = '10pt' 176 | 177 | # Grouping the document tree into LaTeX files. List of tuples 178 | # (source start file, target name, title, author, documentclass [howto/manual]). 179 | latex_documents = [ 180 | ('index', 'fitsblender.tex', u'fitsblender Documentation', 181 | u'Michael Droettboom', 'manual'), 182 | ] 183 | 184 | # The name of an image file (relative to this directory) to place at the top of 185 | # the title page. 186 | # latex_logo = None 187 | 188 | # For "manual" documents, if this is true, then toplevel headings are parts, 189 | # not chapters. 190 | # latex_use_parts = False 191 | 192 | # Additional stuff for the LaTeX preamble. 193 | # latex_preamble = '' 194 | 195 | # Documents to append as an appendix to all manuals. 196 | # latex_appendices = [] 197 | 198 | # If false, no module index is generated. 199 | # latex_use_modindex = True 200 | 201 | 202 | # Example configuration for intersphinx: refer to the Python standard library. 203 | # intersphinx_mapping = {'http://docs.python.org/': None} 204 | -------------------------------------------------------------------------------- /fitsblender/nirspec_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.1 2 | !INSTRUMENT = NIRSPEC 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | FILENAME 55 | EXTNAME 56 | EXTVER 57 | WCSAXES 58 | CRPIX1 59 | CRPIX2 60 | CRVAL1 61 | CRVAL2 62 | CRVAL3 63 | BITPIX 64 | NAXIS 65 | EXTEND 66 | DATE 67 | ORIGIN 68 | FILETYPE 69 | CAL_VER 70 | CAL_SVN 71 | TELESCOP 72 | RADESYS 73 | ASNPOOL 74 | ASNTABLE 75 | TITLE 76 | PI_NAME 77 | CATEGORY 78 | SUBCAT 79 | SCICAT 80 | CONT_ID 81 | DATE-OBS 82 | TIME-OBS 83 | OBS_ID 84 | VISIT_ID 85 | PROGRAM 86 | OBSERVTN 87 | VISIT 88 | VISITGRP 89 | SEQ_ID 90 | ACT_ID 91 | EXPOSURE 92 | TEMPLATE 93 | OBSLABEL 94 | VISITYPE 95 | VSTSTART 96 | WFSVISIT 97 | NEXPOSUR 98 | INTARGET 99 | TARGOOPP 100 | TARGPROP 101 | TARGNAME 102 | TARGTYPE 103 | TARG_RA 104 | TARG_DEC 105 | TARGURA 106 | PROP_RA 107 | PROP_DEC 108 | INSTRUME 109 | DETECTOR 110 | FILTER 111 | GRATING 112 | FXD_SLIT 113 | FOCUSPOS 114 | MSASTATE 115 | MSACONFL 116 | LAMP 117 | GWA_XTIL 118 | GWA_YTIL 119 | PNTG_SEQ 120 | EXPCOUNT 121 | EXP_TYPE 122 | EXPSTART 123 | EXPMID 124 | EXPEND 125 | READPATT 126 | NINTS 127 | NGROUPS 128 | NFRAMES 129 | GROUPGAP 130 | NSAMPLES 131 | TSAMPLE 132 | TFRAME 133 | TGROUP 134 | EFFINTTM 135 | EFFEXPTM 136 | CHRGTIME 137 | DURATION 138 | NRSTSTRT 139 | ZEROFRAM 140 | DATAPROB 141 | SUBARRAY 142 | SUBSTRT1 143 | SUBSTRT2 144 | SUBSIZE1 145 | SUBSIZE2 146 | FASTAXIS 147 | SLOWAXIS 148 | COORDSYS 149 | EPH_TIME 150 | JWST_X 151 | JWST_Y 152 | JWST_Z 153 | JWST_DX 154 | JWST_DY 155 | JWST_DZ 156 | APERNAME 157 | PA_APER 158 | CTYPE1 159 | CTYPE2 160 | CTYPE3 161 | CUNIT1 162 | CUNIT2 163 | CUNIT3 164 | CDELT1 165 | CDELT2 166 | CDELT3 167 | PC1_1 168 | PC1_2 169 | PC2_1 170 | PC2_2 171 | PC3_1 172 | PC3_2 173 | WAVSTART 174 | WAVEND 175 | SPORDER 176 | RA_REF 177 | DEC_REF 178 | V2_REF 179 | V3_REF 180 | ROLL_REF 181 | DVA_RA 182 | DVA_DEC 183 | VA_SCALE 184 | BARTDELT 185 | BSTRTIME 186 | BENDTIME 187 | BMIDTIME 188 | HELIDELT 189 | HSTRTIME 190 | HENDTIME 191 | HMIDTIME 192 | PHOTMJSR 193 | PHOTUJA2 194 | GSSTRTTM 195 | GSENDTIM 196 | GDSTARID 197 | CRDS_VER 198 | CRDS_CTX 199 | R_AREA 200 | R_DARK 201 | R_GAIN 202 | R_IFUFOR 203 | R_IFUPOS 204 | R_IFUSLI 205 | R_LINEAR 206 | R_MASK 207 | R_PHOTOM 208 | R_READNO 209 | R_SATURA 210 | R_SUPERB 211 | R_DISTOR 212 | R_FILOFF 213 | R_SPDIST 214 | R_REGION 215 | R_WAVRAN 216 | R_V2V3 217 | R_CAMERA 218 | R_COLLIM 219 | R_DISPER 220 | R_FORE 221 | R_FPA 222 | R_MSA 223 | R_OTE 224 | S_DQINIT 225 | S_SUPERB 226 | S_REFPIX 227 | S_DARK 228 | S_SATURA 229 | S_LINEAR 230 | S_JUMP 231 | S_RAMP 232 | S_WCS 233 | S_PHOTOM 234 | S_EXTR2D 235 | MSACONFG 236 | NEXTEND 237 | DPSW_VER 238 | EXTARGET 239 | TARRUDEC 240 | NRESET 241 | NXLIGHT 242 | GWAXTILT 243 | GWAYTILT 244 | GSURA 245 | GSUDEC 246 | GSUMAG 247 | XTENSION 248 | BITPIX 249 | NAXIS 250 | NAXIS1 251 | NAXIS2 252 | PCOUNT 253 | GCOUNT 254 | SLTNAME 255 | SLTSTRT1 256 | SLTSIZE1 257 | SLTSTRT2 258 | SLTSIZE2 259 | BUNIT 260 | O_BZERO 261 | ################################################################################ 262 | # 263 | # Header Keyword Rules 264 | # 265 | ################################################################################ 266 | SIMPLE SIMPLE first 267 | BITPIX BITPIX first 268 | NAXIS NAXIS first 269 | EXTEND EXTEND first 270 | DATE DATE first 271 | ORIGIN ORIGIN first 272 | FILENAME FILENAME first 273 | FILETYPE FILETYPE first 274 | CAL_VER CAL_VER first 275 | CAL_SVN CAL_SVN first 276 | TELESCOP TELESCOP first 277 | RADESYS RADESYS first 278 | ASNPOOL ASNPOOL first 279 | ASNTABLE ASNTABLE first 280 | TITLE TITLE first 281 | PI_NAME PI_NAME first 282 | CATEGORY CATEGORY first 283 | SUBCAT SUBCAT first 284 | SCICAT SCICAT first 285 | CONT_ID CONT_ID first 286 | DATE-OBS DATE-OBS first 287 | TIME-OBS TIME-OBS first 288 | OBS_ID OBS_ID first 289 | VISIT_ID VISIT_ID first 290 | PROGRAM PROGRAM first 291 | OBSERVTN OBSERVTN first 292 | VISIT VISIT first 293 | VISITGRP VISITGRP first 294 | SEQ_ID SEQ_ID first 295 | ACT_ID ACT_ID first 296 | EXPOSURE EXPOSURE first 297 | TEMPLATE TEMPLATE first 298 | OBSLABEL OBSLABEL first 299 | VISITYPE VISITYPE first 300 | VSTSTART VSTSTART first 301 | WFSVISIT WFSVISIT first 302 | NEXPOSUR NEXPOSUR first 303 | INTARGET INTARGET first 304 | TARGOOPP TARGOOPP first 305 | TARGPROP TARGPROP first 306 | TARGNAME TARGNAME first 307 | TARGTYPE TARGTYPE first 308 | TARG_RA TARG_RA first 309 | TARG_DEC TARG_DEC first 310 | TARGURA TARGURA first 311 | PROP_RA PROP_RA first 312 | PROP_DEC PROP_DEC first 313 | INSTRUME INSTRUME first 314 | DETECTOR DETECTOR first 315 | FILTER FILTER first 316 | GRATING GRATING first 317 | FXD_SLIT FXD_SLIT first 318 | FOCUSPOS FOCUSPOS first 319 | MSASTATE MSASTATE first 320 | MSACONFL MSACONFL first 321 | LAMP LAMP first 322 | GWA_XTIL GWA_XTIL first 323 | GWA_YTIL GWA_YTIL first 324 | PNTG_SEQ PNTG_SEQ first 325 | EXPCOUNT EXPCOUNT first 326 | EXP_TYPE EXP_TYPE first 327 | EXPSTART EXPSTART first 328 | EXPMID EXPMID first 329 | EXPEND EXPEND first 330 | READPATT READPATT first 331 | NINTS NINTS first 332 | NGROUPS NGROUPS first 333 | NFRAMES NFRAMES first 334 | GROUPGAP GROUPGAP first 335 | NSAMPLES NSAMPLES first 336 | TSAMPLE TSAMPLE first 337 | TFRAME TFRAME first 338 | TGROUP TGROUP first 339 | EFFINTTM EFFINTTM first 340 | EFFEXPTM EFFEXPTM first 341 | CHRGTIME CHRGTIME first 342 | DURATION DURATION first 343 | NRSTSTRT NRSTSTRT first 344 | ZEROFRAM ZEROFRAM first 345 | DATAPROB DATAPROB first 346 | SUBARRAY SUBARRAY first 347 | SUBSTRT1 SUBSTRT1 first 348 | SUBSTRT2 SUBSTRT2 first 349 | SUBSIZE1 SUBSIZE1 first 350 | SUBSIZE2 SUBSIZE2 first 351 | FASTAXIS FASTAXIS first 352 | SLOWAXIS SLOWAXIS first 353 | COORDSYS COORDSYS first 354 | EPH_TIME EPH_TIME first 355 | JWST_X JWST_X first 356 | JWST_Y JWST_Y first 357 | JWST_Z JWST_Z first 358 | JWST_DX JWST_DX first 359 | JWST_DY JWST_DY first 360 | JWST_DZ JWST_DZ first 361 | APERNAME APERNAME first 362 | PA_APER PA_APER first 363 | WCSAXES WCSAXES first 364 | CRPIX1 CRPIX1 first 365 | CRPIX2 CRPIX2 first 366 | CRVAL1 CRVAL1 first 367 | CRVAL2 CRVAL2 first 368 | CRVAL3 CRVAL3 first 369 | CTYPE1 CTYPE1 first 370 | CTYPE2 CTYPE2 first 371 | CTYPE3 CTYPE3 first 372 | CUNIT1 CUNIT1 first 373 | CUNIT2 CUNIT2 first 374 | CUNIT3 CUNIT3 first 375 | CDELT1 CDELT1 first 376 | CDELT2 CDELT2 first 377 | CDELT3 CDELT3 first 378 | PC1_1 PC1_1 first 379 | PC1_2 PC1_2 first 380 | PC2_1 PC2_1 first 381 | PC2_2 PC2_2 first 382 | PC3_1 PC3_1 first 383 | PC3_2 PC3_2 first 384 | WAVSTART WAVSTART first 385 | WAVEND WAVEND first 386 | SPORDER SPORDER first 387 | RA_REF RA_REF first 388 | DEC_REF DEC_REF first 389 | V2_REF V2_REF first 390 | V3_REF V3_REF first 391 | ROLL_REF ROLL_REF first 392 | DVA_RA DVA_RA first 393 | DVA_DEC DVA_DEC first 394 | VA_SCALE VA_SCALE first 395 | BARTDELT BARTDELT first 396 | BSTRTIME BSTRTIME first 397 | BENDTIME BENDTIME first 398 | BMIDTIME BMIDTIME first 399 | HELIDELT HELIDELT first 400 | HSTRTIME HSTRTIME first 401 | HENDTIME HENDTIME first 402 | HMIDTIME HMIDTIME first 403 | PHOTMJSR PHOTMJSR first 404 | PHOTUJA2 PHOTUJA2 first 405 | GSSTRTTM GSSTRTTM first 406 | GSENDTIM GSENDTIM first 407 | GDSTARID GDSTARID first 408 | CRDS_VER CRDS_VER first 409 | CRDS_CTX CRDS_CTX first 410 | MSACONFG MSACONFG first 411 | NEXTEND NEXTEND first 412 | DPSW_VER DPSW_VER first 413 | EXTARGET EXTARGET first 414 | TARRUDEC TARRUDEC first 415 | NRESET NRESET first 416 | NXLIGHT NXLIGHT first 417 | GWAXTILT GWAXTILT first 418 | GWAYTILT GWAYTILT first 419 | GSURA GSURA first 420 | GSUDEC GSUDEC first 421 | GSUMAG GSUMAG first 422 | XTENSION XTENSION first 423 | BITPIX BITPIX first 424 | NAXIS NAXIS first 425 | NAXIS1 NAXIS1 first 426 | NAXIS2 NAXIS2 first 427 | PCOUNT PCOUNT first 428 | GCOUNT GCOUNT first 429 | EXTNAME EXTNAME first 430 | EXTVER EXTVER first 431 | SLTNAME SLTNAME first 432 | SLTSTRT1 SLTSTRT1 first 433 | SLTSIZE1 SLTSIZE1 first 434 | SLTSTRT2 SLTSTRT2 first 435 | SLTSIZE2 SLTSIZE2 first 436 | BUNIT BUNIT first 437 | O_BZERO O_BZERO first 438 | -------------------------------------------------------------------------------- /fitsblender/jwst_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.1 2 | !INSTRUMENT = NIRSPEC 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | # 55 | # JWST keywords 56 | # 57 | FILENAME 58 | DATE-OBS 59 | TIME-OBS 60 | EXPSTART 61 | EXPMID 62 | EXPEND 63 | TITLE 64 | PI_NAME 65 | CATEGORY 66 | SUBCAT 67 | SCICAT 68 | OBS_ID 69 | VISIT_ID 70 | PROGRAM 71 | OBSERVTN 72 | VISIT 73 | VISITGRP 74 | SEQ_ID 75 | ACT_ID 76 | APERNAME 77 | PA_APER 78 | SCA_APER 79 | WCSAXES 80 | CRPIX1 81 | CRPIX2 82 | CRVAL1 83 | CRVAL2 84 | CTYPE1 85 | CTYPE2 86 | CUNIT1 87 | CUNIT2 88 | CDELT1 89 | CDELT2 90 | PC1_1 91 | PC1_2 92 | PC2_1 93 | PC2_2 94 | DVA_RA 95 | DVA_DEC 96 | VA_SCALE 97 | EXPOSURE 98 | TEMPLATE 99 | OBSLABEL 100 | DATE 101 | ORIGIN 102 | TIMESYS 103 | FILETYPE 104 | SDP_VER 105 | PRD_VER 106 | CAL_VER 107 | CAL_SVN 108 | TELESCOP 109 | RADESYS 110 | TITLE 111 | PI_NAME 112 | CATEGORY 113 | SUBCAT 114 | SCICAT 115 | DATE-OBS 116 | TIME-OBS 117 | VISITYPE 118 | VSTSTART 119 | WFSVISIT 120 | NEXPOSUR 121 | INTARGET 122 | TARGOOPP 123 | TARGPROP 124 | TARGNAME 125 | TARGTYPE 126 | TARG_RA 127 | TARG_DEC 128 | TARGURA 129 | TARGUDEC 130 | PROP_RA 131 | PROP_DEC 132 | PROPEPOC 133 | INSTRUME 134 | DETECTOR 135 | MODULE 136 | CHANNEL 137 | FILTER 138 | PUPIL 139 | PILIN 140 | LAMP 141 | PNTG_SEQ 142 | EXPCOUNT 143 | EXP_TYPE 144 | READPATT 145 | NINTS 146 | NGROUPS 147 | NFRAMES 148 | GROUPGAP 149 | NSAMPLES 150 | TSAMPLE 151 | TFRAME 152 | TGROUP 153 | EFFINTTM 154 | EFFEXPTM 155 | CHRGTIME 156 | DURATION 157 | NRSTSTRT 158 | NRESETS 159 | ZEROFRAM 160 | DATAPROB 161 | SCA_NUM 162 | DATAMODE 163 | COMPRSSD 164 | SUBARRAY 165 | SUBSTRT1 166 | SUBSTRT2 167 | SUBSIZE1 168 | SUBSIZE2 169 | FASTAXIS 170 | SLOWAXIS 171 | PATT_NUM 172 | SUBPXTYP 173 | SUBPXNUM 174 | SUBPXPNS 175 | COORDSYS 176 | EPH_TIME 177 | JWST_X 178 | JWST_Y 179 | JWST_Z 180 | JWST_DX 181 | JWST_DY 182 | JWST_DZ 183 | BARTDELT 184 | BSTRTIME 185 | BENDTIME 186 | BMIDTIME 187 | HELIDELT 188 | HSTRTIME 189 | HENDTIME 190 | HMIDTIME 191 | PHOTMJSR 192 | PHOTUJA2 193 | GS_ORDER 194 | GSSTRTTM 195 | GSENDTIM 196 | GDSTARID 197 | GS_RA 198 | GS_DEC 199 | GS_URA 200 | GS_UDEC 201 | GS_MAG 202 | GS_UMAG 203 | PCS_MODE 204 | GSCENTX 205 | GSCENTY 206 | JITTERMS 207 | VISITEND 208 | WFSCFLAG 209 | CRDS_VER 210 | CRDS_CTX 211 | R_AREA 212 | R_DARK 213 | R_FLAT 214 | R_GAIN 215 | R_IPC 216 | R_LINEAR 217 | R_MASK 218 | R_PHOTOM 219 | R_READNO 220 | R_SATURA 221 | S_IPC 222 | S_DQINIT 223 | S_SUPERB 224 | S_BSDRFT 225 | S_REFPIX 226 | S_DARK 227 | S_SATURA 228 | S_LINEAR 229 | S_JUMP 230 | S_RAMP 231 | S_WCS 232 | S_FLAT 233 | S_PERSIS 234 | S_TELEMI 235 | S_PHOTOM 236 | TCATFILE 237 | LONPOLE 238 | LATPOLE 239 | WCSNAME 240 | CRDER1 241 | CRDER2 242 | EQUINOX 243 | ############################### 244 | # 245 | # JWST Header rules 246 | # 247 | ############################### 248 | SIMPLE SIMPLE first 249 | BITPIX BITPIX first 250 | NAXIS NAXIS first 251 | EXTEND EXTEND first 252 | DATE DATE first 253 | ORIGIN ORIGIN first 254 | TIMESYS TIMESYS first 255 | FILENAME FILENAME first 256 | FILETYPE FILETYPE first 257 | SDP_VER SDP_VER first 258 | PRD_VER PRD_VER first 259 | CAL_VER CAL_VER first 260 | CAL_SVN CAL_SVN first 261 | TELESCOP TELESCOP first 262 | RADESYS RADESYS first 263 | TITLE TITLE first 264 | PI_NAME PI_NAME first 265 | CATEGORY CATEGORY first 266 | SUBCAT SUBCAT first 267 | SCICAT SCICAT first 268 | DATE-OBS DATE-OBS first 269 | TIME-OBS TIME-OBS first 270 | OBS_ID OBS_ID multi 271 | VISIT_ID VISIT_ID multi 272 | PROGRAM PROGRAM first 273 | OBSERVTN OBSERVTN first 274 | VISIT VISIT multi 275 | VISITGRP VISITGRP multi 276 | SEQ_ID SEQ_ID multi 277 | ACT_ID ACT_ID multi 278 | EXPOSURE EXPOSURE multi 279 | TEMPLATE TEMPLATE first 280 | OBSLABEL OBSLABEL first 281 | VISITYPE VISITYPE first 282 | VSTSTART VSTSTART first 283 | WFSVISIT WFSVISIT first 284 | NEXPOSUR NEXPOSUR first 285 | INTARGET INTARGET first 286 | TARGOOPP TARGOOPP first 287 | TARGPROP TARGPROP first 288 | TARGNAME TARGNAME first 289 | TARGTYPE TARGTYPE first 290 | TARG_RA TARG_RA first 291 | TARG_DEC TARG_DEC first 292 | TARGURA TARGURA first 293 | TARGUDEC TARGUDEC first 294 | PROP_RA PROP_RA first 295 | PROP_DEC PROP_DEC first 296 | PROPEPOC PROPEPOC first 297 | INSTRUME INSTRUME first 298 | DETECTOR DETECTOR first 299 | MODULE MODULE multi 300 | CHANNEL CHANNEL first 301 | FILTER FILTER first 302 | PUPIL PUPIL first 303 | PILIN PILIN first 304 | LAMP LAMP first 305 | PNTG_SEQ PNTG_SEQ first 306 | EXPCOUNT EXPCOUNT first 307 | EXP_TYPE EXP_TYPE first 308 | EXPSTART EXPSTART first 309 | EXPMID EXPMID mean 310 | EXPEND EXPEND last 311 | READPATT READPATT first 312 | NINTS NINTS first 313 | NGROUPS NGROUPS first 314 | NFRAMES NFRAMES first 315 | GROUPGAP GROUPGAP first 316 | NSAMPLES NSAMPLES first 317 | TSAMPLE TSAMPLE first 318 | TFRAME TFRAME first 319 | TGROUP TGROUP first 320 | EFFINTTM EFFINTTM first 321 | EFFEXPTM EFFEXPTM first 322 | CHRGTIME CHRGTIME first 323 | DURATION DURATION first 324 | NRSTSTRT NRSTSTRT first 325 | NRESETS NRESETS first 326 | ZEROFRAM ZEROFRAM first 327 | DATAPROB DATAPROB first 328 | SCA_NUM SCA_NUM first 329 | DATAMODE DATAMODE first 330 | COMPRSSD COMPRSSD first 331 | SUBARRAY SUBARRAY first 332 | SUBSTRT1 SUBSTRT1 first 333 | SUBSTRT2 SUBSTRT2 first 334 | SUBSIZE1 SUBSIZE1 first 335 | SUBSIZE2 SUBSIZE2 first 336 | FASTAXIS FASTAXIS first 337 | SLOWAXIS SLOWAXIS first 338 | PATT_NUM PATT_NUM multi 339 | SUBPXTYP SUBPXTYP multi 340 | SUBPXNUM SUBPXNUM multi 341 | SUBPXPNS SUBPXPNS multi 342 | COORDSYS COORDSYS first 343 | EPH_TIME EPH_TIME first 344 | JWST_X JWST_X first 345 | JWST_Y JWST_Y first 346 | JWST_Z JWST_Z first 347 | JWST_DX JWST_DX first 348 | JWST_DY JWST_DY first 349 | JWST_DZ JWST_DZ first 350 | APERNAME APERNAME first 351 | PA_APER PA_APER first 352 | SCA_APER SCA_APER first 353 | WCSAXES WCSAXES first 354 | CRPIX1 CRPIX1 first 355 | CRPIX2 CRPIX2 first 356 | CRVAL1 CRVAL1 first 357 | CRVAL2 CRVAL2 first 358 | CTYPE1 CTYPE1 first 359 | CTYPE2 CTYPE2 first 360 | CUNIT1 CUNIT1 first 361 | CUNIT2 CUNIT2 first 362 | CDELT1 CDELT1 first 363 | CDELT2 CDELT2 first 364 | PC1_1 PC1_1 first 365 | PC1_2 PC1_2 first 366 | PC2_1 PC2_1 first 367 | PC2_2 PC2_2 first 368 | DVA_RA DVA_RA first 369 | DVA_DEC DVA_DEC first 370 | VA_SCALE VA_SCALE first 371 | BARTDELT BARTDELT first 372 | BSTRTIME BSTRTIME first 373 | BENDTIME BENDTIME first 374 | BMIDTIME BMIDTIME first 375 | HELIDELT HELIDELT first 376 | HSTRTIME HSTRTIME first 377 | HENDTIME HENDTIME first 378 | HMIDTIME HMIDTIME first 379 | PHOTMJSR PHOTMJSR first 380 | PHOTUJA2 PHOTUJA2 first 381 | GS_ORDER GS_ORDER first 382 | GSSTRTTM GSSTRTTM first 383 | GSENDTIM GSENDTIM first 384 | GDSTARID GDSTARID first 385 | GS_RA GS_RA first 386 | GS_DEC GS_DEC first 387 | GS_URA GS_URA first 388 | GS_UDEC GS_UDEC first 389 | GS_MAG GS_MAG first 390 | GS_UMAG GS_UMAG first 391 | PCS_MODE PCS_MODE first 392 | GSCENTX GSCENTX first 393 | GSCENTY GSCENTY first 394 | JITTERMS JITTERMS first 395 | VISITEND VISITEND first 396 | WFSCFLAG WFSCFLAG first 397 | CRDS_VER CRDS_VER first 398 | CRDS_CTX CRDS_CTX first 399 | TCATFILE TCATFILE first 400 | LONPOLE LONPOLE first 401 | LATPOLE LATPOLE first 402 | WCSNAME WCSNAME first 403 | CRDER1 CRDER1 first 404 | CRDER2 CRDER2 first 405 | EQUINOX EQUINOX first 406 | -------------------------------------------------------------------------------- /fitsblender/nircam_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.1 2 | !INSTRUMENT = NIRCAM 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | # 55 | # NIRCAM keywords 56 | # 57 | FILENAME 58 | DATE-OBS 59 | TIME-OBS 60 | EXPSTART 61 | EXPMID 62 | EXPEND 63 | TITLE 64 | PI_NAME 65 | CATEGORY 66 | SUBCAT 67 | SCICAT 68 | OBS_ID 69 | VISIT_ID 70 | PROGRAM 71 | OBSERVTN 72 | VISIT 73 | VISITGRP 74 | SEQ_ID 75 | ACT_ID 76 | APERNAME 77 | PA_APER 78 | SCA_APER 79 | WCSAXES 80 | CRPIX1 81 | CRPIX2 82 | CRVAL1 83 | CRVAL2 84 | CTYPE1 85 | CTYPE2 86 | CUNIT1 87 | CUNIT2 88 | CDELT1 89 | CDELT2 90 | PC1_1 91 | PC1_2 92 | PC2_1 93 | PC2_2 94 | DVA_RA 95 | DVA_DEC 96 | VA_SCALE 97 | EXPOSURE 98 | TEMPLATE 99 | OBSLABEL 100 | DATE 101 | ORIGIN 102 | TIMESYS 103 | FILETYPE 104 | SDP_VER 105 | PRD_VER 106 | CAL_VER 107 | CAL_SVN 108 | TELESCOP 109 | RADESYS 110 | TITLE 111 | PI_NAME 112 | CATEGORY 113 | SUBCAT 114 | SCICAT 115 | DATE-OBS 116 | TIME-OBS 117 | VISITYPE 118 | VSTSTART 119 | WFSVISIT 120 | NEXPOSUR 121 | INTARGET 122 | TARGOOPP 123 | TARGPROP 124 | TARGNAME 125 | TARGTYPE 126 | TARG_RA 127 | TARG_DEC 128 | TARGURA 129 | TARGUDEC 130 | PROP_RA 131 | PROP_DEC 132 | PROPEPOC 133 | INSTRUME 134 | DETECTOR 135 | MODULE 136 | CHANNEL 137 | FILTER 138 | PUPIL 139 | PILIN 140 | LAMP 141 | PNTG_SEQ 142 | EXPCOUNT 143 | EXP_TYPE 144 | READPATT 145 | NINTS 146 | NGROUPS 147 | NFRAMES 148 | GROUPGAP 149 | NSAMPLES 150 | TSAMPLE 151 | TFRAME 152 | TGROUP 153 | EFFINTTM 154 | EFFEXPTM 155 | CHRGTIME 156 | DURATION 157 | NRSTSTRT 158 | NRESETS 159 | ZEROFRAM 160 | DATAPROB 161 | SCA_NUM 162 | DATAMODE 163 | COMPRSSD 164 | SUBARRAY 165 | SUBSTRT1 166 | SUBSTRT2 167 | SUBSIZE1 168 | SUBSIZE2 169 | FASTAXIS 170 | SLOWAXIS 171 | PATT_NUM 172 | SUBPXTYP 173 | SUBPXNUM 174 | SUBPXPNS 175 | COORDSYS 176 | EPH_TIME 177 | JWST_X 178 | JWST_Y 179 | JWST_Z 180 | JWST_DX 181 | JWST_DY 182 | JWST_DZ 183 | BARTDELT 184 | BSTRTIME 185 | BENDTIME 186 | BMIDTIME 187 | HELIDELT 188 | HSTRTIME 189 | HENDTIME 190 | HMIDTIME 191 | PHOTMJSR 192 | PHOTUJA2 193 | GS_ORDER 194 | GSSTRTTM 195 | GSENDTIM 196 | GDSTARID 197 | GS_RA 198 | GS_DEC 199 | GS_URA 200 | GS_UDEC 201 | GS_MAG 202 | GS_UMAG 203 | PCS_MODE 204 | GSCENTX 205 | GSCENTY 206 | JITTERMS 207 | VISITEND 208 | WFSCFLAG 209 | CRDS_VER 210 | CRDS_CTX 211 | R_AREA 212 | R_DARK 213 | R_FLAT 214 | R_GAIN 215 | R_IPC 216 | R_LINEAR 217 | R_MASK 218 | R_PHOTOM 219 | R_READNO 220 | R_SATURA 221 | S_IPC 222 | S_DQINIT 223 | S_SUPERB 224 | S_BSDRFT 225 | S_REFPIX 226 | S_DARK 227 | S_SATURA 228 | S_LINEAR 229 | S_JUMP 230 | S_RAMP 231 | S_WCS 232 | S_FLAT 233 | S_PERSIS 234 | S_TELEMI 235 | S_PHOTOM 236 | TCATFILE 237 | LONPOLE 238 | LATPOLE 239 | WCSNAME 240 | CRDER1 241 | CRDER2 242 | EQUINOX 243 | ############################### 244 | # 245 | # NIRCAM Header rules 246 | # 247 | ############################### 248 | SIMPLE SIMPLE first 249 | BITPIX BITPIX first 250 | NAXIS NAXIS first 251 | EXTEND EXTEND first 252 | DATE DATE first 253 | ORIGIN ORIGIN first 254 | TIMESYS TIMESYS first 255 | FILENAME FILENAME first 256 | FILETYPE FILETYPE first 257 | SDP_VER SDP_VER first 258 | PRD_VER PRD_VER first 259 | CAL_VER CAL_VER first 260 | CAL_SVN CAL_SVN first 261 | TELESCOP TELESCOP first 262 | RADESYS RADESYS first 263 | TITLE TITLE first 264 | PI_NAME PI_NAME first 265 | CATEGORY CATEGORY first 266 | SUBCAT SUBCAT first 267 | SCICAT SCICAT first 268 | DATE-OBS DATE-OBS first 269 | TIME-OBS TIME-OBS first 270 | OBS_ID OBS_ID multi 271 | VISIT_ID VISIT_ID multi 272 | PROGRAM PROGRAM first 273 | OBSERVTN OBSERVTN first 274 | VISIT VISIT multi 275 | VISITGRP VISITGRP multi 276 | SEQ_ID SEQ_ID multi 277 | ACT_ID ACT_ID multi 278 | EXPOSURE EXPOSURE multi 279 | TEMPLATE TEMPLATE first 280 | OBSLABEL OBSLABEL first 281 | VISITYPE VISITYPE first 282 | VSTSTART VSTSTART first 283 | WFSVISIT WFSVISIT first 284 | NEXPOSUR NEXPOSUR first 285 | INTARGET INTARGET first 286 | TARGOOPP TARGOOPP first 287 | TARGPROP TARGPROP first 288 | TARGNAME TARGNAME first 289 | TARGTYPE TARGTYPE first 290 | TARG_RA TARG_RA first 291 | TARG_DEC TARG_DEC first 292 | TARGURA TARGURA first 293 | TARGUDEC TARGUDEC first 294 | PROP_RA PROP_RA first 295 | PROP_DEC PROP_DEC first 296 | PROPEPOC PROPEPOC first 297 | INSTRUME INSTRUME first 298 | DETECTOR DETECTOR first 299 | MODULE MODULE multi 300 | CHANNEL CHANNEL first 301 | FILTER FILTER first 302 | PUPIL PUPIL first 303 | PILIN PILIN first 304 | LAMP LAMP first 305 | PNTG_SEQ PNTG_SEQ first 306 | EXPCOUNT EXPCOUNT first 307 | EXP_TYPE EXP_TYPE first 308 | EXPSTART EXPSTART first 309 | EXPMID EXPMID mean 310 | EXPEND EXPEND last 311 | READPATT READPATT first 312 | NINTS NINTS first 313 | NGROUPS NGROUPS first 314 | NFRAMES NFRAMES first 315 | GROUPGAP GROUPGAP first 316 | NSAMPLES NSAMPLES first 317 | TSAMPLE TSAMPLE first 318 | TFRAME TFRAME first 319 | TGROUP TGROUP first 320 | EFFINTTM EFFINTTM first 321 | EFFEXPTM EFFEXPTM first 322 | CHRGTIME CHRGTIME first 323 | DURATION DURATION first 324 | NRSTSTRT NRSTSTRT first 325 | NRESETS NRESETS first 326 | ZEROFRAM ZEROFRAM first 327 | DATAPROB DATAPROB first 328 | SCA_NUM SCA_NUM first 329 | DATAMODE DATAMODE first 330 | COMPRSSD COMPRSSD first 331 | SUBARRAY SUBARRAY first 332 | SUBSTRT1 SUBSTRT1 first 333 | SUBSTRT2 SUBSTRT2 first 334 | SUBSIZE1 SUBSIZE1 first 335 | SUBSIZE2 SUBSIZE2 first 336 | FASTAXIS FASTAXIS first 337 | SLOWAXIS SLOWAXIS first 338 | PATT_NUM PATT_NUM multi 339 | SUBPXTYP SUBPXTYP multi 340 | SUBPXNUM SUBPXNUM multi 341 | SUBPXPNS SUBPXPNS multi 342 | COORDSYS COORDSYS first 343 | EPH_TIME EPH_TIME first 344 | JWST_X JWST_X first 345 | JWST_Y JWST_Y first 346 | JWST_Z JWST_Z first 347 | JWST_DX JWST_DX first 348 | JWST_DY JWST_DY first 349 | JWST_DZ JWST_DZ first 350 | APERNAME APERNAME first 351 | PA_APER PA_APER first 352 | SCA_APER SCA_APER first 353 | WCSAXES WCSAXES first 354 | CRPIX1 CRPIX1 first 355 | CRPIX2 CRPIX2 first 356 | CRVAL1 CRVAL1 first 357 | CRVAL2 CRVAL2 first 358 | CTYPE1 CTYPE1 first 359 | CTYPE2 CTYPE2 first 360 | CUNIT1 CUNIT1 first 361 | CUNIT2 CUNIT2 first 362 | CDELT1 CDELT1 first 363 | CDELT2 CDELT2 first 364 | PC1_1 PC1_1 first 365 | PC1_2 PC1_2 first 366 | PC2_1 PC2_1 first 367 | PC2_2 PC2_2 first 368 | DVA_RA DVA_RA first 369 | DVA_DEC DVA_DEC first 370 | VA_SCALE VA_SCALE first 371 | BARTDELT BARTDELT first 372 | BSTRTIME BSTRTIME first 373 | BENDTIME BENDTIME first 374 | BMIDTIME BMIDTIME first 375 | HELIDELT HELIDELT first 376 | HSTRTIME HSTRTIME first 377 | HENDTIME HENDTIME first 378 | HMIDTIME HMIDTIME first 379 | PHOTMJSR PHOTMJSR first 380 | PHOTUJA2 PHOTUJA2 first 381 | GS_ORDER GS_ORDER first 382 | GSSTRTTM GSSTRTTM first 383 | GSENDTIM GSENDTIM first 384 | GDSTARID GDSTARID first 385 | GS_RA GS_RA first 386 | GS_DEC GS_DEC first 387 | GS_URA GS_URA first 388 | GS_UDEC GS_UDEC first 389 | GS_MAG GS_MAG first 390 | GS_UMAG GS_UMAG first 391 | PCS_MODE PCS_MODE first 392 | GSCENTX GSCENTX first 393 | GSCENTY GSCENTY first 394 | JITTERMS JITTERMS first 395 | VISITEND VISITEND first 396 | WFSCFLAG WFSCFLAG first 397 | CRDS_VER CRDS_VER first 398 | CRDS_CTX CRDS_CTX first 399 | TCATFILE TCATFILE first 400 | LONPOLE LONPOLE first 401 | LATPOLE LATPOLE first 402 | WCSNAME WCSNAME first 403 | CRDER1 CRDER1 first 404 | CRDER2 CRDER2 first 405 | EQUINOX EQUINOX first 406 | -------------------------------------------------------------------------------- /fitsblender/blender.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2008-2010 Association of Universities for Research in Astronomy (AURA) 3 | 4 | # Redistribution and use in source and binary forms, with or without 5 | # modification, are permitted provided that the following conditions are met: 6 | 7 | # 1. Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | 10 | # 2. Redistributions in binary form must reproduce the above 11 | # copyright notice, this list of conditions and the following 12 | # disclaimer in the documentation and/or other materials provided 13 | # with the distribution. 14 | 15 | # 3. The name of AURA and its representatives may not be used to 16 | # endorse or promote products derived from this software without 17 | # specific prior written permission. 18 | 19 | # THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | # DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, 23 | # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 24 | # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 25 | # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 27 | # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 28 | # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | # DAMAGE. 30 | 31 | import numpy as np 32 | from numpy import ma 33 | from astropy.io import fits 34 | 35 | 36 | class _KeywordMapping: 37 | """ 38 | A simple class to verify and store information about each mapping 39 | entry. 40 | """ 41 | def __init__(self, src_kwd, dst_name, agg_func=None, error_type="ignore", 42 | error_value=np.nan): 43 | if not isinstance(src_kwd, str): 44 | raise TypeError( 45 | "The source keyword name must be a string") 46 | 47 | if not isinstance(dst_name, str): 48 | raise TypeError( 49 | "The destination name must be a string") 50 | 51 | if agg_func is not None: 52 | try: 53 | for i in agg_func: 54 | if not hasattr(i, '__call__'): 55 | raise TypeError( 56 | "The aggregating function must be a callable " + 57 | "object, None or a sequence of callables") 58 | self.agg_func_is_sequence = True 59 | except TypeError: 60 | if not hasattr(agg_func, '__call__'): 61 | raise TypeError( 62 | "The aggregating function must be a callable object, " + 63 | "None or a sequence of callables") 64 | self.agg_func_is_sequence = False 65 | 66 | if error_type not in ('ignore', 'raise', 'constant'): 67 | raise ValueError( 68 | "The error type must be either 'ignore', 'raise' or 'constant'") 69 | 70 | self.src_kwd = src_kwd 71 | self.dst_name = dst_name 72 | self.agg_func = agg_func 73 | self.error_type = error_type 74 | self.error_value = error_value 75 | 76 | 77 | def fitsblender(headers, spec): 78 | """ 79 | Given a list of FITS headers, aggregates values and creates a 80 | table made up of values from a number of headers, according to the 81 | given specification. 82 | 83 | **Parameters:** 84 | 85 | - *headers* is a sequence where each element is either: 86 | 87 | - a `astropy.io.fits.Header` instance 88 | 89 | - a 2-tuple of the form (*filename*, *extension*), where 90 | *filename* is a path to a FITS file and *extension* is an 91 | extension number. 92 | 93 | - *spec* is a list defining which keyword arguments are to be 94 | aggregated and how. Each element in the list should be a 95 | sequence with 2 to 5 elements of the form: 96 | 97 | (*src_keyword*, *dst_name*, *function*, *error_type*, *error_value*) 98 | 99 | - *src_keyword* is the keyword to pull values from. It is 100 | case-insensitive. 101 | 102 | - *dst_name* is the name to use as a dictionary key or column 103 | name for the destination values. 104 | 105 | - *function* (optional). If function is not None, the values 106 | from the source are aggregated and returned in the 107 | *aggregate_dict*. If function is None (or the tuple contains 108 | only 2 elements), all values are stored as a column with the 109 | name *dst_name* in the result *table*. 110 | 111 | If not None, *function* should be a callable object that takes 112 | a sequence of values and returns an aggregate result. If the 113 | function returns None, no values will be added to the 114 | aggregate dictionary. There are many functions in Numpy that 115 | are directly useful as an aggregating function, for example: 116 | 117 | - mean: `numpy.mean` 118 | 119 | - median: `numpy.median` 120 | 121 | - maximum: `numpy.max` 122 | 123 | - minimum: `numpy.min` 124 | 125 | - total: `numpy.sum` 126 | 127 | - standard deviation: `numpy.std` 128 | 129 | Lambda functions are also often useful: 130 | 131 | - first: ``lambda x: x[0]`` 132 | 133 | - last: ``lambda x: x[-1]`` 134 | 135 | Additionally, *function* may be a tuple, where each member is 136 | itself a callable object. The result will be a tuple 137 | containing results from each of the given functions. For 138 | instance, to aggregate a range of values, i.e. both the 139 | minimum and maximum values, use the following as *function*: 140 | ``(numpy.min, numpy.max)``. 141 | 142 | - *error_type* (optional) defines how missing or syntax-errored 143 | values are handled. It may be one of the following: 144 | 145 | - 'ignore': missing or unparsable values are ignored. They 146 | are not included in the list of values passed to the 147 | aggregating function. In the result *table*, missing values 148 | are masked out. 149 | 150 | - 'raise': missing or unparsable values raise a `ValueError` 151 | exception. 152 | 153 | - 'constant': missing or unparsable values are replaced with a 154 | constant, given by the *error_value* field. 155 | 156 | - *error_value* (optional) is the constant value to be used for 157 | missing or unparsable values when *error_type* is set to 158 | 'constant'. When not provided, it defaults to `NaN`. 159 | 160 | **Returns:** 161 | 162 | A 2-tuple of the form (*aggregate_dict*, *table*) where: 163 | 164 | - *aggregate_dict* is a dictionary of where the keys come from 165 | *dst_name* and the values are the aggregated values as run 166 | through *function*. 167 | 168 | - *table* is a masked Numpy structured array where the column 169 | names come from *dst_name* and the column contains the values 170 | from *src_keyword* for all of the given headers. Missing values 171 | are masked out. 172 | """ 173 | mappings = [_KeywordMapping(*x) for x in spec] 174 | data = [[] for _ in spec] 175 | data_masks = [[] for _ in spec] 176 | 177 | # Read in data 178 | for header in headers: 179 | hdulist = None 180 | if not isinstance(header, fits.Header): 181 | if not isinstance(header, tuple) and len(header) == 2: 182 | raise TypeError( 183 | "Each entry in the headers list must be either a " + 184 | "fits.Header instance or a 2-tuple") 185 | filename, ext = header 186 | hdulist = fits.open(filename) 187 | header = hdulist[ext].header 188 | 189 | for i, mapping in enumerate(mappings): 190 | if mapping.src_kwd in header: 191 | value = header[mapping.src_kwd] 192 | elif mapping.error_type == 'raise': 193 | raise ValueError( 194 | "%s is missing keyword '%s'" % 195 | (header, mapping.src_kwd)) 196 | elif mapping.error_type == 'constant': 197 | value = mapping.error_value 198 | else: 199 | value = None 200 | 201 | if mapping.agg_func is None: 202 | if value is None: 203 | data[i].append(np.nan) 204 | data_masks[i].append(True) 205 | else: 206 | data[i].append(value) 207 | data_masks[i].append(False) 208 | else: 209 | if value is not None: 210 | data[i].append(value) 211 | 212 | if hdulist is not None: 213 | hdulist.close() 214 | 215 | # Aggregate data into dictionary 216 | results = {} 217 | for i, mapping in enumerate(mappings): 218 | if data[i] == []: 219 | result = None 220 | continue 221 | if mapping.agg_func is not None: 222 | if mapping.agg_func_is_sequence: 223 | result = [] 224 | for func in mapping.agg_func: 225 | result.append(func(data[i])) 226 | result = tuple(result) 227 | else: 228 | result = mapping.agg_func(data[i]) 229 | if result is not None: 230 | results[mapping.dst_name] = result 231 | 232 | # Aggregate data into table 233 | dtype = [] 234 | arrays = [] 235 | # Use Numpy to "guess" a data type for each of the columns 236 | for i, mapping in enumerate(mappings): 237 | if mapping.agg_func is None: 238 | array = np.array(data[i]) 239 | if np.issubdtype(np.int32, array.dtype): 240 | # see about recasting as int32 241 | if not np.any(array/(2**31 - 1) > 1.): 242 | array = array.astype(np.int32) 243 | dtype.append((mapping.dst_name, array.dtype)) 244 | arrays.append(array) 245 | 246 | if len(dtype): 247 | # Combine the columns into a structured array 248 | table = ma.empty((len(headers),), dtype=dtype) 249 | j = 0 250 | for i, mapping in enumerate(mappings): 251 | if mapping.agg_func is None: 252 | table.data[mapping.dst_name] = arrays[j] 253 | table.mask[mapping.dst_name] = data_masks[i] 254 | j += 1 255 | else: 256 | table = np.empty((0,)) 257 | 258 | return results, table 259 | 260 | 261 | def first(items): 262 | if len(items): 263 | return items[0] 264 | return None 265 | 266 | 267 | def last(items): 268 | if len(items): 269 | return items[-1] 270 | return None 271 | -------------------------------------------------------------------------------- /fitsblender/tests/UITfuv2582gc.fits: -------------------------------------------------------------------------------- 1 | SIMPLE = T / FLIGHT22 05Apr96 RSH BITPIX = -64 / SIGNED 16-BIT INTEGERS NAXIS = 2 / 2-DIMENSIONAL IMAGES NAXIS1 = 0 / SAMPLES PER LINE NAXIS2 = 0 / LINES PER IMAGE EXTEND = T / FILE MAY HAVE EXTENSIONS DATATYPE= 'INTEGER*2' / SAME INFORMATION AS BITPIX TELESCOP= 'UIT ' / TELECOPE USED INSTRUME= 'INTENSIFIED-FILM' / DETECTOR USED OBJECT = 'NGC4151 ' / TARGET NAME OBJECT2 = '_ ' / ALTERNATIVE TARGET NAME CATEGORY= 'FLIGHT ' / TARGET CATEGORY JOTFID = '8116-14 ' / ASTRO MISSION TARGET ID IMAGE = 'FUV2582 ' / IMAGE NUMBER ORIGIN = 'UIT/GSFC' / WHERE TAPE WRITTEN ASTRO = 2 / ASTRO MISSION NUMBER FRAMENO = 'b0582 ' / ANNOTATED FRAME NUMBER CATHODE = 'CSI ' / IMAGE TUBE PHOTOCATHODE FILTER = 'B1 ' / CAMERA/FILTER IDENTIFIER PDSDATIM= '06-JUL-1995 07:20' / MICRODENSITOMETRY DATE & TIME PDSID = 21 / MICRODENSITOMETER IDENT PDSAPERT= 20 / MICROD. APERTURE, MICRONS PDSSTEP = 10 / MICROD. STEP SIZE, MICRONS PIXELSIZ= 8.0000000E+01 / CURRENT PIXEL SIZE, MICRONS EQUINOX = 2.0000000E+03 / EQUINOX OF BEST COORDINATES NOMRA = 182.0044 / 1950 I.P.S. R.A., DEGREES NOMDEC = 39.6839 / 1950 I.P.S. DEC., DEGREES NOMROLL = 323.9500 / I.P.S. ROLL ANGLE NOMSCALE= 5.6832500E+01 / NOMINAL PLATE SCL (ARCSEC/MM) CALIBCON= 5.00000E-16 / PREFLIGHT LAB CALIB FOR CAMERA FEXPTIME= '8355 ' / EXPOSURE TIME, APPLICABLE FRM DATE-OBS= '13/03/95' / DATE OF OBSERVATION (GMT) TIME-OBS= 6.2728000E+00 / TIME OF OBS (HOURS GMT) BSCALE = 2.0587209E-16 / CALIBRATION CONST BUNIT = 'ERGS/CM**2/S/ANGSTRM' BZERO = 0.00000 / ADDITIVE CONST FOR CALIB. PATCHFIL= 'PATCH2 ' / FILE WITH PATCH INFORMATION FADJPROG= 'UITBAK ' / FOG ADJUSTMENT PROGRAM FADJVER = '2.1 ' / FOG ADJUSTMENT PROGRAM VERSION FADJDTIM= 'Jul 22,1996 12:53:24' FOGLL = 2.8988638E+02 / LOWER LEFT CORNER FOG FOGLLERR= 3.9720482E+01 / LOWER LEFT CORNER FOG ERROR FOGLR = 2.8807239E+02 / LOWER RIGHT CORNER FOG FOGLRERR= 3.9098114E+01 / LOWER RIGHT CORNER FOG ERROR FOGUL = 2.9494131E+02 / UPPER LEFT CORNER FOG FOGULERR= 4.0041096E+01 / UPPER LEFT CORNER FOG ERROR FOGUR = 2.8711835E+02 / UPPER RIGHT CORNER FOG FOGURERR= 3.8879002E+01 / UPPER RIGHT CORNER FOG ERROR EXPTIME = 8.3199997E+01 / EXPOSURE TIME, SECONDS FEXPNOTE= 'Fb40 ' / EXPOSURE TIME ANNOTATION EXPTMSRC= 'PREVFRAME' / SOURCE OF EXPTIME VALUE CRPIX1 = 2.5650000E+02 / REF. PIXEL, X, CENTER ORIGIN CRPIX2 = 2.5650000E+02 / REF. PIXEL, Y, CENTER ORIGIN CRVAL1 = 1.8265300E+02 / R. A., DEGREES, OF REF. PIXEL CRVAL2 = 3.9375320E+01 / DEC., DEGREES, OF REF. PIXEL CTYPE1 = 'RA---TAN' / COORDINATE TYPE CTYPE2 = 'DEC--TAN' / COORDINATE TYPE UNDISTRT= T / HAS THE IMAGE BEEN UNDISTORTED? CD1_1 = -1.2629445E-03 / SDAS-COMPATIBLE: DL/DX CD2_1 = 0.0000000E+00 / DM/DX CD1_2 = 0.0000000E+00 / DL/DY CD2_2 = 1.2629445E-03 / DM/DY BDRSTREM= 'FLIGHT22' / DATA REDUCTION STREAM IDENT PREDECES= 4275 / ENTRY OF PREVIOUS STEP LOGENTRY= 4281 / ENTRY IN BDR LOG HDCURVID= 'CALIB5 ' / CHARACTERISTIC CURVE IDENT FFID = 'FUV1V032' / FLAT FIELD IDENTIFIER FFSCALE = 253.769 / FLAT FIELD SCALE FACTOR CAMSCALE= 1.72E-16 / BASIC CAMERA CALIB. CONSTANT FILTFAC = 1.0 / AREA UNDER FILTER CURVE CALIBVER= '20-MAR-1996 LANDSMAN, USING ASTRO2 DATA' SHRINK = 2 / BOX-AVERAGE FACTOR ON INPUT BDRDATIM= 'Jul 22,1996 13:13:19' BDRIPRG = 'BDRON4 ' / CHAR. CURVE/FLAT-FIELD PROGRAM BDRIVER = '2.0 ' / CHAR. CURVE/FLAT-FIELD PROG VERS TIMEFAC = 1.5560098E+00 / T^0.1 PICSCAL0= 2.0673078E-18 / CAMSCALE*FILTFAC/EXPTIME PICSCALE= 3.2167511E-18 / CAMSCALE*FILTFAC*TIMEFAC/EXPTIME RADECSYS= 'FK5 ' / WORLD COORDINATE FRAME A_NMATCH= 4 / NUM OF ASTROM STDS MATCHED AX_RESID= 3.0000001E-01 / RMS ASTROM RESIDUALS (PIXELS): AY_RESID= 3.0000001E-01 / <0 MEANS DEFAULT SOLUTION HISTORY Jul 22,1996 13:13:21 ASTROM FROM BDR STREAM FLIGHT21 HISTORY Jul 22,1996 13:13:21 ASTROMETRY WAS THEN DONE BY UITCA2 HISTORY Jul 22,1996 13:13:21 VERSION 2.5 HISTORY Jul 22,1996 13:13:21 AT DATE AND TIME Jul 18,1995 17:41:19 VARCURVE= 'CALIB5 ' / VARIANCE FUNCTION IDENT PHT1PROG= 'UITPH1 ' / POINT SOURCE PHOTOMETRY PROGRAM PHT1VER = '4.4 ' / UITPH1 VERSION PHT1DTIM= 'Jul 22,1996 13:21:36' FWHM = 5.0000000E+00 / FWHM OF DETECTION FILTER IMIN = 30 / MINIMUM SIGNAL FOR DPFIND IMAX = 20000 / MAXIMUM SIGNAL FOR DPFIND APR = 3 / NUMBER OF PHOTOMETRY APERTURES APR1 = 3.0000000E+00 / RADIUS OF 1ST APERTURE APR2 = 2.0000000E+00 / RADIUS OF 2ND APERTURE APR3 = 7.0000000E+00 / RADIUS OF 3RD APERTURE SKYIN = 1.5000000E+01 / INNER RADIUS OF SKY ANNULUS SKYOUT = 2.5000000E+01 / OUTER RADIUS OF SKY ANNULUS BADLO = -1.0000000E+02 / LOWEST GOOD PIXEL VALUE BADHI = 2.0000000E+04 / HIGHEST GOOD PIXEL VALUE RCRIT = 9.9000000E+02 / RADIUS OF IMAGE CIRCLE USED SKWFAC = 2.0000000E-01 / PARAMETER FOR TRIMMING SKY LIMSKW = 15 / VALUE <= WHICH SKWFAC APPLIES MEALIM = -9.9990002E+02 / VALUE <= WHICH MEAN SKY USED SV_NAX1 = 2048 / X DIMENSION OF ORIGINAL IMAGE SV_NAX2 = 2048 / Y DIMENSION OF ORIGINAL IMAGE ASTRPROG= 'UITCA2 ' / ASTROMETRY PROGRAM NAME ASTRVER = '2.5 ' / ASTROMETRY PROGRAM VERSION ASTRDTIM= 'Jul 22,1996 14:16:55' HISTORY Jul 22,1996 14:16:55 ASTROMETRY. COPIED FROM IMAGE FUV2583 NHEDATIM= 'Jul 22,1996 16:05:36' NHEDPRG = 'NEWHED ' / HEADER ATTACHMENT PROGRAM NHEDVER = '3.1 ' / HEADER ATTACH. PROG. VERSION GEOMPROG= 'UITGE2 ' / ROTATION/RESAMPLING PROGRAM GEOMVER = '3.1 ' / GEOM PROGRAM VERSION GEOMDTIM= 'Jul 22,1996 16:11:19' SV001001= 6.9340203E-05 / ORIGINAL CD00M00N: DL/DX SV001002= -3.1189100E-04 / DL/DY SV002001= -3.0647300E-04 / DM/DX SV002002= -6.6140099E-05 / DM/DY SVPIX1 = 1.0245000E+03 / ORIGINAL REFERENCE PIXEL X SVPIX2 = 1.0245000E+03 / ORIGINAL REFERENCE PIXEL Y SVVAL1 = 1.8265289E+02 / ORIGINAL R.A. OF REF. PIXEL SVVAL2 = 3.9375599E+01 / ORIGINAL DEC. OF REF. PIXEL SVCTYPE1= 'RA--UIT2' / COORDINATE TYPE SVCTYPE2= 'DEC-UIT2' / COORDINATE TYPE BXAVDTIM= 'Jul 22,1996 16:19:19' BXAVPROG= 'UITBXA ' / ROTATION/RESAMPLING PROGRAM BXAVVER = '2.4 ' / RESAMPLING PROGRAM VERSION BXAVFAC = 4 / BOX-AVERAGE FACTOR FOR SMALL VER END -------------------------------------------------------------------------------- /fitsblender/acs_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.1 2 | !INSTRUMENT = ACS 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | ROOTNAME 55 | EXTNAME 56 | EXTVER 57 | A_0_2 58 | A_0_3 59 | A_0_4 60 | A_1_1 61 | A_1_2 62 | A_1_3 63 | A_2_0 64 | A_2_1 65 | A_2_2 66 | A_3_0 67 | A_3_1 68 | A_4_0 69 | ACQNAME 70 | A_ORDER 71 | APERTURE 72 | ASN_ID 73 | ASN_MTYP 74 | ASN_TAB 75 | ATODCORR 76 | ATODGNA 77 | ATODGNB 78 | ATODGNC 79 | ATODGND 80 | ATODTAB 81 | B_0_2 82 | B_0_3 83 | B_0_4 84 | B_1_1 85 | B_1_2 86 | B_1_3 87 | B_2_0 88 | B_2_1 89 | B_2_2 90 | B_3_0 91 | B_3_1 92 | B_4_0 93 | BADINPDQ 94 | BIASCORR 95 | BIASFILE 96 | BIASLEVA 97 | BIASLEVB 98 | BIASLEVC 99 | BIASLEVD 100 | BINAXIS1 101 | BINAXIS2 102 | BITPIX 103 | BLEVCORR 104 | B_ORDER 105 | BPIXTAB 106 | BUNIT 107 | CAL_VER 108 | CBLKSIZ 109 | CCDAMP 110 | CCDCHIP 111 | CCDGAIN 112 | CCDOFSTA 113 | CCDOFSTB 114 | CCDOFSTC 115 | CCDOFSTD 116 | CCDTAB 117 | CD1_1 118 | CD1_2 119 | CD2_1 120 | CD2_2 121 | CENTERA1 122 | CENTERA2 123 | CFLTFILE 124 | COMPTAB 125 | COMPTYP 126 | CRCORR 127 | CRMASK 128 | CRPIX1 129 | CRPIX2 130 | CRRADIUS 131 | CRREJTAB 132 | CRSIGMAS 133 | CRSPLIT 134 | CRTHRESH 135 | CRVAL1 136 | CRVAL2 137 | CTE_NAME 138 | CTE_VER 139 | CTEDIR 140 | CTEIMAGE 141 | CTYPE1 142 | CTYPE2 143 | D2IMFILE 144 | DARKCORR 145 | DARKFILE 146 | DATE 147 | DATE-OBS 148 | DEC_APER 149 | DEC_TARG 150 | DETECTOR 151 | DFLTFILE 152 | DGEOFILE 153 | DIRIMAGE 154 | DQICORR 155 | DRIZCORR 156 | DRKCFILE 157 | EQUINOX 158 | ERRCNT 159 | EXPEND 160 | EXPFLAG 161 | EXPNAME 162 | EXPSCORR 163 | EXPSTART 164 | EXPTIME 165 | EXTEND 166 | FGSLOCK 167 | FILENAME 168 | FILETYPE 169 | FILLCNT 170 | FILTER1 171 | FILTER2 172 | FLASHCUR 173 | FLASHDUR 174 | FLASHSTA 175 | FLATCORR 176 | FLSHCORR 177 | FLSHFILE 178 | FW1ERROR 179 | FW1OFFST 180 | FW2ERROR 181 | FW2OFFST 182 | FWSERROR 183 | FWSOFFST 184 | GCOUNT 185 | GLINCORR 186 | GLOBLIM 187 | GLOBRATE 188 | GOODMAX 189 | GOODMEAN 190 | GOODMIN 191 | GRAPHTAB 192 | GYROMODE 193 | IDCSCALE 194 | IDCTAB 195 | IDCTHETA 196 | IDCV2REF 197 | IDCV3REF 198 | IMAGETYP 199 | IMPHTTAB 200 | INHERIT 201 | INITGUES 202 | INSTRUME 203 | JWROTYPE 204 | LFLGCORR 205 | LFLTFILE 206 | LINENUM 207 | LOSTPIX 208 | LRC_FAIL 209 | LRC_XSTS 210 | LRFWAVE 211 | LTM1_1 212 | LTM2_2 213 | LTV1 214 | LTV2 215 | MDECODT1 216 | MDECODT2 217 | MDRIZSKY 218 | MDRIZTAB 219 | MEANBLEV 220 | MEANDARK 221 | MEANEXP 222 | MEANFLSH 223 | MLINTAB 224 | MOFFSET1 225 | MOFFSET2 226 | MOONANGL 227 | MTFLAG 228 | NAXIS 229 | NAXIS1 230 | NAXIS2 231 | NCOMBINE 232 | NEXTEND 233 | NGOODPIX 234 | NPOLFILE 235 | NRPTEXP 236 | OBSMODE 237 | OBSTYPE 238 | OCD1_1 239 | OCD1_2 240 | OCD2_1 241 | OCD2_2 242 | OCRPIX1 243 | OCRPIX2 244 | OCRVAL1 245 | OCRVAL2 246 | OCTYPE1 247 | OCTYPE2 248 | OCX10 249 | OCX11 250 | OCY10 251 | OCY11 252 | ONAXIS1 253 | ONAXIS2 254 | OORIENTA 255 | OPUS_VER 256 | ORIENTAT 257 | ORIGIN 258 | OSCNTAB 259 | P1_ANGLE 260 | P1_CENTR 261 | P1_FRAME 262 | P1_LSPAC 263 | P1_NPTS 264 | P1_ORINT 265 | P1_PSPAC 266 | P1_PURPS 267 | P1_SHAPE 268 | PA_APER 269 | PATTERN1 270 | PATTSTEP 271 | PA_V3 272 | PCOUNT 273 | PCTECORR 274 | PCTEFRAC 275 | PCTENSMD 276 | PCTERNCL 277 | PCTESHFT 278 | PCTESMIT 279 | PCTETAB 280 | PFLTFILE 281 | PHOTBW 282 | PHOTCORR 283 | PHOTFLAM 284 | PHOTMODE 285 | PHOTPLAM 286 | PHOTTAB 287 | PHOTZPT 288 | PODPSFF 289 | POSTARG1 290 | POSTARG2 291 | PRIMESI 292 | PR_INV_F 293 | PR_INV_L 294 | PR_INV_M 295 | PROCTIME 296 | PROPAPER 297 | PROPOSID 298 | QUALCOM1 299 | QUALCOM2 300 | QUALCOM3 301 | QUALITY 302 | RA_APER 303 | RA_TARG 304 | READNSEA 305 | READNSEB 306 | READNSEC 307 | READNSED 308 | REFFRAME 309 | REJ_RATE 310 | RPTCORR 311 | SCALENSE 312 | SCLAMP 313 | SDQFLAGS 314 | SHADCORR 315 | SHADFILE 316 | SHUTRPOS 317 | SIMPLE 318 | SIZAXIS1 319 | SIZAXIS2 320 | SKYCELL 321 | SKYSUB 322 | SKYSUM 323 | SNRMAX 324 | SNRMEAN 325 | SNRMIN 326 | SOFTERRS 327 | SPOTTAB 328 | STATFLAG 329 | STDCFFF 330 | STDCFFP 331 | SUBARRAY 332 | SUN_ALT 333 | SUNANGLE 334 | TARGNAME 335 | TDDALPHA 336 | TDDBETA 337 | TELESCOP 338 | TIME-OBS 339 | T_SGSTAR 340 | VAFACTOR 341 | WCSAXES 342 | WCSCDATE 343 | WFCMPRSD 344 | WCSNAME 345 | WRTERR 346 | XTENSION 347 | ################################################################################ 348 | # 349 | # Header Keyword Rules 350 | # 351 | ################################################################################ 352 | APERTURE APERTURE multi 353 | DETECTOR DETECTOR first 354 | EXPEND EXPEND max 355 | EXPSTART EXPSTART min 356 | EXPTIME TEXPTIME sum 357 | EXPTIME EXPTIME sum 358 | FILTER1 FILTER1 multi 359 | FILTER2 FILTER2 multi 360 | GOODMAX GOODMAX max 361 | GOODMEAN GOODMEAN mean 362 | GOODMIN GOODMIN min 363 | INHERIT INHERIT first # maintain IRAF compatibility 364 | INSTRUME INSTRUME first 365 | LRFWAVE LRFWAVE first 366 | NCOMBINE NCOMBINE sum 367 | MDRIZSKY MDRIZSKY mean 368 | PHOTBW PHOTBW mean 369 | PHOTFLAM PHOTFLAM mean 370 | PHOTMODE PHOTMODE first 371 | PHOTPLAM PHOTPLAM mean 372 | PHOTZPT PHOTZPT mean 373 | PROPOSID PROPOSID first 374 | SNRMAX SNRMAX max 375 | SNRMEAN SNRMEAN mean 376 | SNRMIN SNRMIN min 377 | TARGNAME TARGNAME first 378 | TELESCOP TELESCOP first 379 | WCSNAME WCSNAME first 380 | ### rules below were added 05Jun2012,in response to Dorothy Fraquelli guidance re: DADS 381 | ATODCORR ATODCORR multi 382 | ATODGNA ATODGNA first 383 | ATODGNB ATODGNB first 384 | ATODGNC ATODGNC first 385 | ATODGND ATODGND first 386 | ATODTAB ATODTAB multi 387 | BADINPDQ BADINPDQ sum 388 | BIASCORR BIASCORR multi 389 | BIASFILE BIASFILE multi 390 | BLEVCORR BLEVCORR multi 391 | BPIXTAB BPIXTAB multi 392 | CCDCHIP CCDCHIP first 393 | CCDGAIN CCDGAIN first 394 | CCDOFSTA CCDOFSTA first 395 | CCDOFSTB CCDOFSTB first 396 | CCDOFSTC CCDOFSTC first 397 | CCDOFSTD CCDOFSTD first 398 | CCDTAB CCDTAB multi 399 | CFLTFILE CFLTFILE multi 400 | COMPTAB COMPTAB multi 401 | CRCORR CRCORR multi 402 | CRMASK CRMASK first 403 | CRRADIUS CRRADIUS first 404 | CRREJTAB CRREJTAB multi 405 | CRSPLIT CRSPLIT first 406 | CRTHRESH CRTHRESH first 407 | CTEDIR CTEDIR multi 408 | CTEIMAGE CTEIMAGE first 409 | DARKCORR DARKCORR multi 410 | DARKFILE DARKFILE multi 411 | DATE-OBS DATE-OBS first 412 | DEC_APER DEC_APER first 413 | DFLTFILE DFLTFILE multi 414 | DGEOFILE DGEOFILE multi 415 | DIRIMAGE DIRIMAGE multi 416 | DQICORR DQICORR multi 417 | DRIZCORR DRIZCORR multi 418 | EXPFLAG EXPFLAG multi 419 | EXPSCORR EXPSCORR multi 420 | FGSLOCK FGSLOCK multi 421 | FLASHCUR FLASHCUR multi 422 | FLASHDUR FLASHDUR first 423 | FLASHSTA FLASHSTA first 424 | FLATCORR FLATCORR multi 425 | FLSHCORR FLSHCORR multi 426 | FLSHFILE FLSHFILE multi 427 | FW1ERROR FW1ERROR multi 428 | FW1OFFST FW1OFFST first 429 | FW2ERROR FW2ERROR multi 430 | FW2OFFST FW2OFFST first 431 | FWSERROR FWSERROR multi 432 | FWSOFFST FWSOFFST first 433 | GRAPHTAB GRAPHTAB multi 434 | GYROMODE GYROMODE multi 435 | IDCTAB IDCTAB multi 436 | IMAGETYP IMAGETYP first 437 | IMPHTTAB IMPHTTAB multi 438 | LFLGCORR LFLGCORR multi 439 | LFLTFILE LFLTFILE multi 440 | LTM1_1 LTM1_1 float_one 441 | LTM2_2 LTM2_2 float_one 442 | MDRIZTAB MDRIZTAB multi 443 | MEANEXP MEANEXP first 444 | MOONANGL MOONANGL first 445 | NRPTEXP NRPTEXP first 446 | OBSMODE OBSMODE multi 447 | OBSTYPE OBSTYPE first 448 | OSCNTAB OSCNTAB multi 449 | P1_ANGLE P1_ANGLE first 450 | P1_CENTR P1_CENTR multi 451 | P1_FRAME P1_FRAME multi 452 | P1_LSPAC P1_LSPAC first 453 | P1_NPTS P1_NPTS first 454 | P1_ORINT P1_ORINT first 455 | P1_PSPAC P1_PSPAC first 456 | P1_PURPS P1_PURPS multi 457 | P1_SHAPE P1_SHAPE multi 458 | P2_ANGLE P2_ANGLE first 459 | P2_CENTR P2_CENTR multi 460 | P2_FRAME P2_FRAME multi 461 | P2_LSPAC P2_LSPAC first 462 | P2_NPTS P2_NPTS first 463 | P2_ORINT P2_ORINT first 464 | P2_PSPAC P2_PSPAC first 465 | P2_PURPS P2_PURPS multi 466 | P2_SHAPE P2_SHAPE multi 467 | PATTERN1 PATTERN1 multi 468 | PATTERN2 PATTERN2 multi 469 | PATTSTEP PATTSTEP first 470 | PHOTCORR PHOTCORR multi 471 | PHOTTAB PHOTTAB multi 472 | POSTARG1 POSTARG1 first 473 | POSTARG2 POSTARG2 first 474 | PRIMESI PRIMESI multi 475 | PROPAPER PROPAPER multi 476 | RA_APER RA_APER first 477 | READNSEA READNSEA first 478 | READNSEB READNSEB first 479 | READNSEC READNSEC first 480 | READNSED READNSED first 481 | REJ_RATE REJ_RATE first 482 | SCALENSE SCALENSE first 483 | SCLAMP SCLAMP multi 484 | SHADCORR SHADCORR multi 485 | SHADFILE SHADFILE multi 486 | SHUTRPOS SHUTRPOS multi 487 | SKYCELL SKYCELL first 488 | SKYSUB SKYSUB multi 489 | SKYSUM SKYSUM sum 490 | SPOTTAB SPOTTAB multi 491 | SUBARRAY SUBARRAY first 492 | SUNANGLE SUNANGLE first 493 | SUN_ALT SUN_ALT first 494 | WRTERR WRTERR multi 495 | -------------------------------------------------------------------------------- /fitsblender/hst_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.1 2 | !INSTRUMENT = ACS 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | ROOTNAME 55 | EXTNAME 56 | EXTVER 57 | A_0_2 58 | A_0_3 59 | A_0_4 60 | A_1_1 61 | A_1_2 62 | A_1_3 63 | A_2_0 64 | A_2_1 65 | A_2_2 66 | A_3_0 67 | A_3_1 68 | A_4_0 69 | ACQNAME 70 | A_ORDER 71 | APERTURE 72 | ASN_ID 73 | ASN_MTYP 74 | ASN_TAB 75 | ATODCORR 76 | ATODGNA 77 | ATODGNB 78 | ATODGNC 79 | ATODGND 80 | ATODTAB 81 | B_0_2 82 | B_0_3 83 | B_0_4 84 | B_1_1 85 | B_1_2 86 | B_1_3 87 | B_2_0 88 | B_2_1 89 | B_2_2 90 | B_3_0 91 | B_3_1 92 | B_4_0 93 | BADINPDQ 94 | BIASCORR 95 | BIASFILE 96 | BIASLEVA 97 | BIASLEVB 98 | BIASLEVC 99 | BIASLEVD 100 | BINAXIS1 101 | BINAXIS2 102 | BITPIX 103 | BLEVCORR 104 | B_ORDER 105 | BPIXTAB 106 | BUNIT 107 | CAL_VER 108 | CBLKSIZ 109 | CCDAMP 110 | CCDCHIP 111 | CCDGAIN 112 | CCDOFSTA 113 | CCDOFSTB 114 | CCDOFSTC 115 | CCDOFSTD 116 | CCDTAB 117 | CD1_1 118 | CD1_2 119 | CD2_1 120 | CD2_2 121 | CENTERA1 122 | CENTERA2 123 | CFLTFILE 124 | COMPTAB 125 | COMPTYP 126 | CRCORR 127 | CRMASK 128 | CRPIX1 129 | CRPIX2 130 | CRRADIUS 131 | CRREJTAB 132 | CRSIGMAS 133 | CRSPLIT 134 | CRTHRESH 135 | CRVAL1 136 | CRVAL2 137 | CTE_NAME 138 | CTE_VER 139 | CTEDIR 140 | CTEIMAGE 141 | CTYPE1 142 | CTYPE2 143 | D2IMFILE 144 | DARKCORR 145 | DARKFILE 146 | DATE 147 | DATE-OBS 148 | DEC_APER 149 | DEC_TARG 150 | DETECTOR 151 | DFLTFILE 152 | DGEOFILE 153 | DIRIMAGE 154 | DQICORR 155 | DRIZCORR 156 | DRKCFILE 157 | EQUINOX 158 | ERRCNT 159 | EXPEND 160 | EXPFLAG 161 | EXPNAME 162 | EXPSCORR 163 | EXPSTART 164 | EXPTIME 165 | EXTEND 166 | FGSLOCK 167 | FILENAME 168 | FILETYPE 169 | FILLCNT 170 | FILTER1 171 | FILTER2 172 | FLASHCUR 173 | FLASHDUR 174 | FLASHSTA 175 | FLATCORR 176 | FLSHCORR 177 | FLSHFILE 178 | FW1ERROR 179 | FW1OFFST 180 | FW2ERROR 181 | FW2OFFST 182 | FWSERROR 183 | FWSOFFST 184 | GCOUNT 185 | GLINCORR 186 | GLOBLIM 187 | GLOBRATE 188 | GOODMAX 189 | GOODMEAN 190 | GOODMIN 191 | GRAPHTAB 192 | GYROMODE 193 | IDCSCALE 194 | IDCTAB 195 | IDCTHETA 196 | IDCV2REF 197 | IDCV3REF 198 | IMAGETYP 199 | IMPHTTAB 200 | INHERIT 201 | INITGUES 202 | INSTRUME 203 | JWROTYPE 204 | LFLGCORR 205 | LFLTFILE 206 | LINENUM 207 | LOSTPIX 208 | LRC_FAIL 209 | LRC_XSTS 210 | LRFWAVE 211 | LTM1_1 212 | LTM2_2 213 | LTV1 214 | LTV2 215 | MDECODT1 216 | MDECODT2 217 | MDRIZSKY 218 | MDRIZTAB 219 | MEANBLEV 220 | MEANDARK 221 | MEANEXP 222 | MEANFLSH 223 | MLINTAB 224 | MOFFSET1 225 | MOFFSET2 226 | MOONANGL 227 | MTFLAG 228 | NAXIS 229 | NAXIS1 230 | NAXIS2 231 | NCOMBINE 232 | NEXTEND 233 | NGOODPIX 234 | NPOLFILE 235 | NRPTEXP 236 | OBSMODE 237 | OBSTYPE 238 | OCD1_1 239 | OCD1_2 240 | OCD2_1 241 | OCD2_2 242 | OCRPIX1 243 | OCRPIX2 244 | OCRVAL1 245 | OCRVAL2 246 | OCTYPE1 247 | OCTYPE2 248 | OCX10 249 | OCX11 250 | OCY10 251 | OCY11 252 | ONAXIS1 253 | ONAXIS2 254 | OORIENTA 255 | OPUS_VER 256 | ORIENTAT 257 | ORIGIN 258 | OSCNTAB 259 | P1_ANGLE 260 | P1_CENTR 261 | P1_FRAME 262 | P1_LSPAC 263 | P1_NPTS 264 | P1_ORINT 265 | P1_PSPAC 266 | P1_PURPS 267 | P1_SHAPE 268 | PA_APER 269 | PATTERN1 270 | PATTSTEP 271 | PA_V3 272 | PCOUNT 273 | PCTECORR 274 | PCTEFRAC 275 | PCTENSMD 276 | PCTERNCL 277 | PCTESHFT 278 | PCTESMIT 279 | PCTETAB 280 | PFLTFILE 281 | PHOTBW 282 | PHOTCORR 283 | PHOTFLAM 284 | PHOTMODE 285 | PHOTPLAM 286 | PHOTTAB 287 | PHOTZPT 288 | PODPSFF 289 | POSTARG1 290 | POSTARG2 291 | PRIMESI 292 | PR_INV_F 293 | PR_INV_L 294 | PR_INV_M 295 | PROCTIME 296 | PROPAPER 297 | PROPOSID 298 | QUALCOM1 299 | QUALCOM2 300 | QUALCOM3 301 | QUALITY 302 | RA_APER 303 | RA_TARG 304 | READNSEA 305 | READNSEB 306 | READNSEC 307 | READNSED 308 | REFFRAME 309 | REJ_RATE 310 | RPTCORR 311 | SCALENSE 312 | SCLAMP 313 | SDQFLAGS 314 | SHADCORR 315 | SHADFILE 316 | SHUTRPOS 317 | SIMPLE 318 | SIZAXIS1 319 | SIZAXIS2 320 | SKYSUB 321 | SKYSUM 322 | SNRMAX 323 | SNRMEAN 324 | SNRMIN 325 | SOFTERRS 326 | SPOTTAB 327 | STATFLAG 328 | STDCFFF 329 | STDCFFP 330 | SUBARRAY 331 | SUN_ALT 332 | SUNANGLE 333 | TARGNAME 334 | TDDALPHA 335 | TDDBETA 336 | TELESCOP 337 | TIME-OBS 338 | T_SGSTAR 339 | VAFACTOR 340 | WCSAXES 341 | WCSCDATE 342 | WFCMPRSD 343 | WCSNAME 344 | WRTERR 345 | XTENSION 346 | # 347 | # WCS Related Keyword Rules 348 | # These move any OPUS-generated WCS values to the table 349 | # 350 | WCSNAMEO 351 | WCSAXESO 352 | LONPOLEO 353 | LATPOLEO 354 | RESTFRQO 355 | RESTWAVO 356 | CD1_1O 357 | CD1_2O 358 | CD2_1O 359 | CD2_2O 360 | CDELT1O 361 | CDELT2O 362 | CRPIX1O 363 | CRPIX2O 364 | CRVAL1O 365 | CRVAL2O 366 | CTYPE1O 367 | CTYPE2O 368 | CUNIT1O 369 | CUNIT2O 370 | ################################################################################ 371 | # 372 | # Header Keyword Rules 373 | # 374 | ################################################################################ 375 | APERTURE APERTURE multi 376 | DETECTOR DETECTOR first 377 | EXPEND EXPEND max 378 | EXPSTART EXPSTART min 379 | EXPTIME TEXPTIME sum 380 | EXPTIME EXPTIME sum 381 | FILTER1 FILTER1 multi 382 | FILTER2 FILTER2 multi 383 | GOODMAX GOODMAX max 384 | GOODMEAN GOODMEAN mean 385 | GOODMIN GOODMIN min 386 | INHERIT INHERIT first # maintain IRAF compatibility 387 | INSTRUME INSTRUME first 388 | LRFWAVE LRFWAVE first 389 | NCOMBINE NCOMBINE sum 390 | MDRIZSKY MDRIZSKY mean 391 | PHOTBW PHOTBW mean 392 | PHOTFLAM PHOTFLAM mean 393 | PHOTMODE PHOTMODE first 394 | PHOTPLAM PHOTPLAM mean 395 | PHOTZPT PHOTZPT mean 396 | PROPOSID PROPOSID first 397 | SNRMAX SNRMAX max 398 | SNRMEAN SNRMEAN mean 399 | SNRMIN SNRMIN min 400 | TARGNAME TARGNAME first 401 | TELESCOP TELESCOP first 402 | WCSNAME WCSNAME first 403 | ### rules below were added 05Jun2012,in response to Dorothy Fraquelli guidance re: DADS 404 | ATODCORR ATODCORR multi 405 | ATODGNA ATODGNA first 406 | ATODGNB ATODGNB first 407 | ATODGNC ATODGNC first 408 | ATODGND ATODGND first 409 | ATODTAB ATODTAB multi 410 | BADINPDQ BADINPDQ sum 411 | BIASCORR BIASCORR multi 412 | BIASFILE BIASFILE multi 413 | BLEVCORR BLEVCORR multi 414 | BPIXTAB BPIXTAB multi 415 | CCDCHIP CCDCHIP first 416 | CCDGAIN CCDGAIN first 417 | CCDOFSTA CCDOFSTA first 418 | CCDOFSTB CCDOFSTB first 419 | CCDOFSTC CCDOFSTC first 420 | CCDOFSTD CCDOFSTD first 421 | CCDTAB CCDTAB multi 422 | CFLTFILE CFLTFILE multi 423 | COMPTAB COMPTAB multi 424 | CRCORR CRCORR multi 425 | CRMASK CRMASK first 426 | CRRADIUS CRRADIUS first 427 | CRREJTAB CRREJTAB multi 428 | CRSPLIT CRSPLIT first 429 | CRTHRESH CRTHRESH first 430 | CTEDIR CTEDIR multi 431 | CTEIMAGE CTEIMAGE first 432 | DARKCORR DARKCORR multi 433 | DARKFILE DARKFILE multi 434 | DATE-OBS DATE-OBS first 435 | DEC_APER DEC_APER first 436 | DFLTFILE DFLTFILE multi 437 | DGEOFILE DGEOFILE multi 438 | DIRIMAGE DIRIMAGE multi 439 | DQICORR DQICORR multi 440 | DRIZCORR DRIZCORR multi 441 | EXPFLAG EXPFLAG multi 442 | EXPSCORR EXPSCORR multi 443 | FGSLOCK FGSLOCK multi 444 | FLASHCUR FLASHCUR multi 445 | FLASHDUR FLASHDUR first 446 | FLASHSTA FLASHSTA first 447 | FLATCORR FLATCORR multi 448 | FLSHCORR FLSHCORR multi 449 | FLSHFILE FLSHFILE multi 450 | FW1ERROR FW1ERROR multi 451 | FW1OFFST FW1OFFST first 452 | FW2ERROR FW2ERROR multi 453 | FW2OFFST FW2OFFST first 454 | FWSERROR FWSERROR multi 455 | FWSOFFST FWSOFFST first 456 | GRAPHTAB GRAPHTAB multi 457 | GYROMODE GYROMODE multi 458 | IDCTAB IDCTAB multi 459 | IMAGETYP IMAGETYP first 460 | IMPHTTAB IMPHTTAB multi 461 | LFLGCORR LFLGCORR multi 462 | LFLTFILE LFLTFILE multi 463 | LTM1_1 LTM1_1 float_one 464 | LTM2_2 LTM2_2 float_one 465 | MDRIZTAB MDRIZTAB multi 466 | MEANEXP MEANEXP first 467 | MOONANGL MOONANGL first 468 | NRPTEXP NRPTEXP first 469 | OBSMODE OBSMODE multi 470 | OBSTYPE OBSTYPE first 471 | OSCNTAB OSCNTAB multi 472 | P1_ANGLE P1_ANGLE first 473 | P1_CENTR P1_CENTR multi 474 | P1_FRAME P1_FRAME multi 475 | P1_LSPAC P1_LSPAC first 476 | P1_NPTS P1_NPTS first 477 | P1_ORINT P1_ORINT first 478 | P1_PSPAC P1_PSPAC first 479 | P1_PURPS P1_PURPS multi 480 | P1_SHAPE P1_SHAPE multi 481 | P2_ANGLE P2_ANGLE first 482 | P2_CENTR P2_CENTR multi 483 | P2_FRAME P2_FRAME multi 484 | P2_LSPAC P2_LSPAC first 485 | P2_NPTS P2_NPTS first 486 | P2_ORINT P2_ORINT first 487 | P2_PSPAC P2_PSPAC first 488 | P2_PURPS P2_PURPS multi 489 | P2_SHAPE P2_SHAPE multi 490 | PATTERN1 PATTERN1 multi 491 | PATTERN2 PATTERN2 multi 492 | PATTSTEP PATTSTEP first 493 | PHOTCORR PHOTCORR multi 494 | PHOTTAB PHOTTAB multi 495 | POSTARG1 POSTARG1 first 496 | POSTARG2 POSTARG2 first 497 | PRIMESI PRIMESI multi 498 | PROPAPER PROPAPER multi 499 | RA_APER RA_APER first 500 | READNSEA READNSEA first 501 | READNSEB READNSEB first 502 | READNSEC READNSEC first 503 | READNSED READNSED first 504 | REJ_RATE REJ_RATE first 505 | SCALENSE SCALENSE first 506 | SCLAMP SCLAMP multi 507 | SHADCORR SHADCORR multi 508 | SHADFILE SHADFILE multi 509 | SHUTRPOS SHUTRPOS multi 510 | SKYSUB SKYSUB multi 511 | SKYSUM SKYSUM sum 512 | SPOTTAB SPOTTAB multi 513 | SUBARRAY SUBARRAY first 514 | SUNANGLE SUNANGLE first 515 | SUN_ALT SUN_ALT first 516 | WRTERR WRTERR multi 517 | -------------------------------------------------------------------------------- /fitsblender/wfpc2_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.0 2 | !INSTRUMENT = WFPC2 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | ROOTNAME 55 | EXTNAME 56 | EXTVER 57 | A_0_2 58 | A_0_3 59 | A_0_4 60 | A_1_1 61 | A_1_2 62 | A_1_3 63 | A_2_0 64 | A_2_1 65 | A_2_2 66 | A_3_0 67 | A_3_1 68 | A_4_0 69 | A_ORDER 70 | APERTURE 71 | ASN_ID 72 | ASN_MTYP 73 | ASN_TAB 74 | ATODCORR 75 | ATODGNA 76 | ATODGNB 77 | ATODGNC 78 | ATODGND 79 | ATODTAB 80 | B_0_2 81 | B_0_3 82 | B_0_4 83 | B_1_1 84 | B_1_2 85 | B_1_3 86 | B_2_0 87 | B_2_1 88 | B_2_2 89 | B_3_0 90 | B_3_1 91 | B_4_0 92 | B_ORDER 93 | BADINPDQ 94 | BIASCORR 95 | BIASFILE 96 | BIASLEVA 97 | BIASLEVB 98 | BIASLEVC 99 | BIASLEVD 100 | BINAXIS1 101 | BINAXIS2 102 | BLEVCORR 103 | BPIXTAB 104 | BUNIT 105 | CAL_VER 106 | CCDAMP 107 | CCDCHIP 108 | CCDGAIN 109 | CCDOFSAB 110 | CCDOFSCD 111 | CCDOFSTA 112 | CCDOFSTB 113 | CCDOFSTC 114 | CCDOFSTD 115 | CCDTAB 116 | CD1_1 117 | CD1_2 118 | CD2_1 119 | CD2_2 120 | CENTERA1 121 | CENTERA2 122 | CHINJECT 123 | COMPTAB 124 | CRCORR 125 | CRMASK 126 | CRPIX1 127 | CRPIX2 128 | CRRADIUS 129 | CRREJTAB 130 | CRSIGMAS 131 | CRSPLIT 132 | CRTHRESH 133 | CRVAL1 134 | CRVAL2 135 | CTEDIR 136 | CTEIMAGE 137 | CTYPE1 138 | CTYPE2 139 | DARKCORR 140 | DARKFILE 141 | DATAMAX 142 | DATAMIN 143 | DATE 144 | DATE-OBS 145 | DEC_APER 146 | DEC_TARG 147 | DELTATIM 148 | DETECTOR 149 | DFLTFILE 150 | DGEOFILE 151 | DIRIMAGE 152 | DQICORR 153 | DRIZCORR 154 | EQUINOX 155 | ERRCNT 156 | EXPEND 157 | EXPFLAG 158 | EXPNAME 159 | EXPSCORR 160 | EXPSTART 161 | EXPTIME 162 | FGSLOCK 163 | FILENAME 164 | FILETYPE 165 | FILLCNT 166 | FILTER 167 | FLASHCUR 168 | FLASHDUR 169 | FLASHSTA 170 | FLATCORR 171 | FLSHCORR 172 | FLSHFILE 173 | GOODMAX 174 | GOODMEAN 175 | GOODMIN 176 | GRAPHTAB 177 | GYROMODE 178 | IDCSCALE 179 | IDCTAB 180 | IDCTHETA 181 | IDCV2REF 182 | IDCV3REF 183 | IMAGETYP 184 | INHERIT 185 | INITGUES 186 | INSTRUME 187 | IRAF-TLM 188 | LFLTFILE 189 | LINENUM 190 | LTM1_1 191 | LTM2_2 192 | LTV1 193 | LTV2 194 | MDRIZSKY 195 | MDRIZTAB 196 | MEANBLEV 197 | MEANDARK 198 | MEANEXP 199 | MEANFLSH 200 | MOONANGL 201 | MTFLAG 202 | NAXIS1 203 | NAXIS2 204 | NCOMBINE 205 | NGOODPIX 206 | NLINCORR 207 | NLINFILE 208 | NRPTEXP 209 | NSAMP 210 | OBSMODE 211 | OBSTYPE 212 | OCD1_1 213 | OCD1_2 214 | OCD2_1 215 | OCD2_2 216 | OCRPIX1 217 | OCRPIX2 218 | OCRVAL1 219 | OCRVAL2 220 | OCTYPE1 221 | OCTYPE2 222 | OCX10 223 | OCX11 224 | OCY10 225 | OCY11 226 | ONAXIS1 227 | ONAXIS2 228 | OORIENTA 229 | OPUS_VER 230 | ORIENTAT 231 | ORIGIN 232 | OSCNTAB 233 | P1_ANGLE 234 | P1_CENTR 235 | P1_FRAME 236 | P1_LSPAC 237 | P1_NPTS 238 | P1_ORINT 239 | P1_PSPAC 240 | P1_PURPS 241 | P1_SHAPE 242 | P2_ANGLE 243 | P2_CENTR 244 | P2_FRAME 245 | P2_LSPAC 246 | P2_NPTS 247 | P2_ORINT 248 | P2_PSPAC 249 | P2_PURPS 250 | P2_SHAPE 251 | PA_APER 252 | PA_V3 253 | PATTERN1 254 | PATTERN2 255 | PATTSTEP 256 | PFLTFILE 257 | PHOTBW 258 | PHOTCORR 259 | PHOTFLAM 260 | PHOTFNU 261 | PHOTMODE 262 | PHOTPLAM 263 | PHOTZPT 264 | PODPSFF 265 | POSTARG1 266 | POSTARG2 267 | PR_INV_F 268 | PR_INV_L 269 | PR_INV_M 270 | PRIMESI 271 | PROCTIME 272 | PROPAPER 273 | PROPOSID 274 | QUALCOM1 275 | QUALCOM2 276 | QUALCOM3 277 | QUALITY 278 | RA_APER 279 | RA_TARG 280 | READNSEA 281 | READNSEB 282 | READNSEC 283 | READNSED 284 | REFFRAME 285 | REJ_RATE 286 | ROUTTIME 287 | RPTCORR 288 | SAA_DARK 289 | SAA_EXIT 290 | SAA_TIME 291 | SAACRMAP 292 | SAMP_SEQ 293 | SAMPNUM 294 | SAMPTIME 295 | SAMPZERO 296 | SCALENSE 297 | SCLAMP 298 | SDQFLAGS 299 | SHADCORR 300 | SHADFILE 301 | SHUTRPOS 302 | SIMPLE 303 | SIZAXIS1 304 | SIZAXIS2 305 | SKYSUB 306 | SKYSUM 307 | SNRMAX 308 | SNRMEAN 309 | SNRMIN 310 | SOFTERRS 311 | STDCFFF 312 | STDCFFP 313 | SUBARRAY 314 | SUBTYPE 315 | SUN_ALT 316 | SUNANGLE 317 | T_SGSTAR 318 | TARGNAME 319 | TDFTRANS 320 | TELESCOP 321 | TIME-OBS 322 | UNITCORR 323 | VAFACTOR 324 | WCSAXES 325 | WCSCDATE 326 | ZOFFCORR 327 | ZSIGCORR 328 | ################################################################################ 329 | # 330 | # Header Keyword Rules 331 | # 332 | ################################################################################ 333 | APERTURE APERTURE multi 334 | ASN_ID ASN_ID first 335 | ASN_MTYP ASN_MTYP multi 336 | ASN_TAB ASN_TAB multi 337 | ATODCORR ATODCORR multi 338 | ATODGNA ATODGNA first 339 | ATODGNB ATODGNB first 340 | ATODGNC ATODGNC first 341 | ATODGND ATODGND first 342 | ATODTAB ATODTAB multi 343 | BADINPDQ BADINPDQ sum 344 | BIASCORR BIASCORR multi 345 | BIASFILE BIASFILE multi 346 | BIASLEVA BIASLEVA first 347 | BIASLEVB BIASLEVB first 348 | BIASLEVC BIASLEVC first 349 | BIASLEVD BIASLEVD first 350 | BINAXIS1 BINAXIS1 first 351 | BINAXIS2 BINAXIS2 first 352 | BLEVCORR BLEVCORR multi 353 | BPIXTAB BPIXTAB multi 354 | BUNIT BUNIT first 355 | CAL_VER CAL_VER first 356 | CCDAMP CCDAMP first 357 | CCDCHIP CCDCHIP first 358 | CCDGAIN CCDGAIN first 359 | CCDOFSTA CCDOFSTA first 360 | CCDOFSTB CCDOFSTB first 361 | CCDOFSTC CCDOFSTC first 362 | CCDOFSTD CCDOFSTD first 363 | CCDTAB CCDTAB multi 364 | CD1_1 CD1_1 first 365 | CD1_2 CD1_2 first 366 | CD2_1 CD2_1 first 367 | CD2_2 CD2_2 first 368 | CENTERA1 CENTERA1 first 369 | CENTERA2 CENTERA2 first 370 | CHINJECT CHINJECT multi 371 | COMPTAB COMPTAB multi 372 | CRCORR CRCORR multi 373 | CRMASK CRMASK first 374 | CRPIX1 CRPIX1 first 375 | CRPIX2 CRPIX2 first 376 | CRRADIUS CRRADIUS first 377 | CRREJTAB CRREJTAB multi 378 | CRSIGMAS CRSIGMAS multi 379 | CRSPLIT CRSPLIT first 380 | CRTHRESH CRTHRESH first 381 | CTEDIR CTEDIR multi 382 | CTEIMAGE CTEIMAGE multi 383 | CTYPE1 CTYPE1 multi 384 | CTYPE2 CTYPE2 multi 385 | CRVAL1 CRVAL1 first 386 | CRVAL2 CRVAL2 first 387 | DARKCORR DARKCORR multi 388 | DARKFILE DARKFILE multi 389 | DATE-OBS DATE-OBS first 390 | DEC_APER DEC_APER first 391 | DEC_TARG DEC_TARG first 392 | DELTATIM DELTATIM first 393 | DETECTOR DETECTOR multi 394 | DFLTFILE DFLTFILE multi 395 | DGEOFILE DGEOFILE multi 396 | DIRIMAGE DIRIMAGE multi 397 | DQICORR DQICORR multi 398 | DRIZCORR DRIZCORR multi 399 | EQUINOX EQUINOX first 400 | EXPEND EXPEND max 401 | EXPFLAG EXPFLAG multi 402 | EXPNAME EXPNAME first 403 | EXPSCORR EXPSCORR multi 404 | EXPSTART EXPSTART min 405 | EXPTIME EXPTIME sum 406 | EXPTIME TEXPTIME sum 407 | EXTVER EXTVER first 408 | FGSLOCK FGSLOCK multi 409 | FILENAME FILENAME multi 410 | FILETYPE FILETYPE multi 411 | FILTER FILTER multi 412 | FLASHCUR FLASHCUR multi 413 | FLASHDUR FLASHDUR first 414 | FLASHSTA FLASHSTA first 415 | FLATCORR FLATCORR multi 416 | FLSHCORR FLSHCORR multi 417 | FLSHFILE FLSHFILE multi 418 | GRAPHTAB GRAPHTAB multi 419 | GYROMODE GYROMODE multi 420 | IDCTAB IDCTAB multi 421 | IMAGETYP IMAGETYP first 422 | INHERIT INHERIT first # maintains IRAF compatibility 423 | INITGUES INITGUES multi 424 | INSTRUME INSTRUME first 425 | LFLTFILE LFLTFILE multi 426 | LINENUM LINENUM first 427 | LTM1_1 LTM1_1 float_one 428 | LTM2_2 LTM2_2 float_one 429 | LTV1 LTV1 first 430 | LTV2 LTV2 first 431 | MDRIZTAB MDRIZTAB multi 432 | MEANEXP MEANEXP first 433 | MEANFLSH MEANFLSH first 434 | MOONANGL MOONANGL first 435 | MTFLAG MTFLAG first 436 | NCOMBINE NCOMBINE first 437 | NLINCORR NLINCORR multi 438 | NLINFILE NLINFILE multi 439 | NRPTEXP NRPTEXP first 440 | NSAMP NSAMP first 441 | OBSMODE OBSMODE multi 442 | OBSTYPE OBSTYPE first 443 | OPUS_VER OPUS_VER first 444 | ORIENTAT ORIENTAT first 445 | OSCNTAB OSCNTAB multi 446 | P1_ANGLE P1_ANGLE first 447 | P1_CENTR P1_CENTR multi 448 | P1_FRAME P1_FRAME multi 449 | P1_LSPAC P1_LSPAC first 450 | P1_NPTS P1_NPTS first 451 | P1_ORINT P1_ORINT first 452 | P1_PSPAC P1_PSPAC first 453 | P1_PURPS P1_PURPS multi 454 | P1_SHAPE P1_SHAPE multi 455 | P2_ANGLE P2_ANGLE first 456 | P2_CENTR P2_CENTR multi 457 | P2_FRAME P2_FRAME multi 458 | P2_LSPAC P2_LSPAC first 459 | P2_NPTS P2_NPTS first 460 | P2_ORINT P2_ORINT first 461 | P2_PSPAC P2_PSPAC first 462 | P2_PURPS P2_PURPS multi 463 | P2_SHAPE P2_SHAPE multi 464 | PA_APER PA_APER first 465 | PA_V3 PA_V3 first 466 | PATTERN1 PATTERN1 multi 467 | PATTERN2 PATTERN2 multi 468 | PATTSTEP PATTSTEP first 469 | PFLTFILE PFLTFILE multi 470 | PHOTBW PHOTBW mean 471 | PHOTCORR PHOTCORR multi 472 | PHOTFLAM PHOTFLAM mean 473 | PHOTFNU PHOTFNU mean 474 | PHOTMODE PHOTMODE multi 475 | PHOTPLAM PHOTPLAM mean 476 | PHOTZPT PHOTZPT mean 477 | PODPSFF PODPSFF multi 478 | PR_INV_F PR_INV_F first 479 | PR_INV_L PR_INV_L first 480 | PR_INV_M PR_INV_M first 481 | PRIMESI PRIMESI multi 482 | PROCTIME PROCTIME first 483 | PROPAPER PROPAPER multi 484 | PROPOSID PROPOSID first 485 | QUALCOM1 QUALCOM1 multi 486 | QUALCOM2 QUALCOM2 multi 487 | QUALCOM3 QUALCOM3 multi 488 | QUALITY QUALITY multi 489 | RA_APER RA_APER first 490 | RA_TARG RA_TARG first 491 | READNSEA READNSEA first 492 | READNSEB READNSEB first 493 | READNSEC READNSEC first 494 | READNSED READNSED first 495 | REFFRAME REFFRAME multi 496 | ROOTNAME ROOTNAME first 497 | ROUTTIME ROUTTIME first 498 | RPTCORR RPTCORR multi 499 | SAACRMAP SAACRMAP multi 500 | SAMP_SEQ SAMP_SEQ first 501 | SAMPNUM SAMPNUM first 502 | SAMPTIME SAMPTIME first 503 | SAMPZERO SAMPZERO first 504 | SCALENSE SCALENSE first 505 | SCLAMP SCLAMP multi 506 | SDQFLAGS SDQFLAGS first 507 | SHADCORR SHADCORR multi 508 | SHADFILE SHADFILE multi 509 | SIZAXIS1 SIZAXIS1 first 510 | SIZAXIS2 SIZAXIS2 first 511 | SOFTERRS SOFTERRS sum 512 | STDCFFF STDCFFF multi 513 | STDCFFP STDCFFP multi 514 | SUBARRAY SUBARRAY first 515 | SUBTYPE SUBTYPE multi 516 | SUNANGLE SUNANGLE first 517 | T_SGSTAR T_SGSTAR multi 518 | TARGNAME TARGNAME multi 519 | TDFTRANS TDFTRANS sum 520 | TELESCOP TELESCOP first 521 | TIME-OBS TIME-OBS first 522 | UNITCORR UNITCORR multi 523 | WCSAXES WCSAXES first 524 | WCSCDATE WCSCDATE first 525 | WCSNAME WCSNAME first 526 | ZOFFCORR ZOFFCORR multi 527 | ZSIGCORR ZSIGCORR multi 528 | -------------------------------------------------------------------------------- /fitsblender/stis_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.0 2 | !INSTRUMENT = STIS 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | ROOTNAME 55 | EXTNAME 56 | EXTVER 57 | A_0_2 58 | A_0_3 59 | A_0_4 60 | A_1_1 61 | A_1_2 62 | A_1_3 63 | A_2_0 64 | A_2_1 65 | A_2_2 66 | A_3_0 67 | A_3_1 68 | A_4_0 69 | A_ORDER 70 | APERTURE 71 | ASN_ID 72 | ASN_MTYP 73 | ASN_TAB 74 | ATODCORR 75 | ATODGNA 76 | ATODGNB 77 | ATODGNC 78 | ATODGND 79 | ATODTAB 80 | B_0_2 81 | B_0_3 82 | B_0_4 83 | B_1_1 84 | B_1_2 85 | B_1_3 86 | B_2_0 87 | B_2_1 88 | B_2_2 89 | B_3_0 90 | B_3_1 91 | B_4_0 92 | B_ORDER 93 | BADINPDQ 94 | BIASCORR 95 | BIASFILE 96 | BIASLEVA 97 | BIASLEVB 98 | BIASLEVC 99 | BIASLEVD 100 | BINAXIS1 101 | BINAXIS2 102 | BLEVCORR 103 | BPIXTAB 104 | BUNIT 105 | CAL_VER 106 | CCDAMP 107 | CCDCHIP 108 | CCDGAIN 109 | CCDOFSAB 110 | CCDOFSCD 111 | CCDOFSTA 112 | CCDOFSTB 113 | CCDOFSTC 114 | CCDOFSTD 115 | CCDTAB 116 | CD1_1 117 | CD1_2 118 | CD2_1 119 | CD2_2 120 | CENTERA1 121 | CENTERA2 122 | CHINJECT 123 | COMPTAB 124 | CRCORR 125 | CRMASK 126 | CRPIX1 127 | CRPIX2 128 | CRRADIUS 129 | CRREJTAB 130 | CRSIGMAS 131 | CRSPLIT 132 | CRTHRESH 133 | CRVAL1 134 | CRVAL2 135 | CTEDIR 136 | CTEIMAGE 137 | CTYPE1 138 | CTYPE2 139 | DARKCORR 140 | DARKFILE 141 | DATAMAX 142 | DATAMIN 143 | DATE 144 | DATE-OBS 145 | DEC_APER 146 | DEC_TARG 147 | DELTATIM 148 | DETECTOR 149 | DFLTFILE 150 | DGEOFILE 151 | DIRIMAGE 152 | DQICORR 153 | DRIZCORR 154 | EQUINOX 155 | ERRCNT 156 | EXPEND 157 | EXPFLAG 158 | EXPNAME 159 | EXPSCORR 160 | EXPSTART 161 | EXPTIME 162 | FGSLOCK 163 | FILENAME 164 | FILETYPE 165 | FILLCNT 166 | FILTER 167 | FLASHCUR 168 | FLASHDUR 169 | FLASHSTA 170 | FLATCORR 171 | FLSHCORR 172 | FLSHFILE 173 | GOODMAX 174 | GOODMEAN 175 | GOODMIN 176 | GRAPHTAB 177 | GYROMODE 178 | IDCSCALE 179 | IDCTAB 180 | IDCTHETA 181 | IDCV2REF 182 | IDCV3REF 183 | IMAGETYP 184 | INHERIT 185 | INITGUES 186 | INSTRUME 187 | IRAF-TLM 188 | LFLTFILE 189 | LINENUM 190 | LTM1_1 191 | LTM2_2 192 | LTV1 193 | LTV2 194 | MDRIZSKY 195 | MDRIZTAB 196 | MEANBLEV 197 | MEANDARK 198 | MEANEXP 199 | MEANFLSH 200 | MOONANGL 201 | MTFLAG 202 | NAXIS1 203 | NAXIS2 204 | NCOMBINE 205 | NGOODPIX 206 | NLINCORR 207 | NLINFILE 208 | NRPTEXP 209 | NSAMP 210 | OBSMODE 211 | OBSTYPE 212 | OCD1_1 213 | OCD1_2 214 | OCD2_1 215 | OCD2_2 216 | OCRPIX1 217 | OCRPIX2 218 | OCRVAL1 219 | OCRVAL2 220 | OCTYPE1 221 | OCTYPE2 222 | OCX10 223 | OCX11 224 | OCY10 225 | OCY11 226 | ONAXIS1 227 | ONAXIS2 228 | OORIENTA 229 | OPUS_VER 230 | ORIENTAT 231 | ORIGIN 232 | OSCNTAB 233 | P1_ANGLE 234 | P1_CENTR 235 | P1_FRAME 236 | P1_LSPAC 237 | P1_NPTS 238 | P1_ORINT 239 | P1_PSPAC 240 | P1_PURPS 241 | P1_SHAPE 242 | P2_ANGLE 243 | P2_CENTR 244 | P2_FRAME 245 | P2_LSPAC 246 | P2_NPTS 247 | P2_ORINT 248 | P2_PSPAC 249 | P2_PURPS 250 | P2_SHAPE 251 | PA_APER 252 | PA_V3 253 | PATTERN1 254 | PATTERN2 255 | PATTSTEP 256 | PFLTFILE 257 | PHOTBW 258 | PHOTCORR 259 | PHOTFLAM 260 | PHOTFNU 261 | PHOTMODE 262 | PHOTPLAM 263 | PHOTZPT 264 | PODPSFF 265 | POSTARG1 266 | POSTARG2 267 | PR_INV_F 268 | PR_INV_L 269 | PR_INV_M 270 | PRIMESI 271 | PROCTIME 272 | PROPAPER 273 | PROPOSID 274 | QUALCOM1 275 | QUALCOM2 276 | QUALCOM3 277 | QUALITY 278 | RA_APER 279 | RA_TARG 280 | READNSEA 281 | READNSEB 282 | READNSEC 283 | READNSED 284 | REFFRAME 285 | REJ_RATE 286 | ROUTTIME 287 | RPTCORR 288 | SAA_DARK 289 | SAA_EXIT 290 | SAA_TIME 291 | SAACRMAP 292 | SAMP_SEQ 293 | SAMPNUM 294 | SAMPTIME 295 | SAMPZERO 296 | SCALENSE 297 | SCLAMP 298 | SDQFLAGS 299 | SHADCORR 300 | SHADFILE 301 | SHUTRPOS 302 | SIMPLE 303 | SIZAXIS1 304 | SIZAXIS2 305 | SKYSUB 306 | SKYSUM 307 | SNRMAX 308 | SNRMEAN 309 | SNRMIN 310 | SOFTERRS 311 | STDCFFF 312 | STDCFFP 313 | SUBARRAY 314 | SUBTYPE 315 | SUN_ALT 316 | SUNANGLE 317 | T_SGSTAR 318 | TARGNAME 319 | TDFTRANS 320 | TELESCOP 321 | TIME-OBS 322 | UNITCORR 323 | VAFACTOR 324 | WCSAXES 325 | WCSCDATE 326 | WCSNAME 327 | ZOFFCORR 328 | ZSIGCORR 329 | ################################################################################ 330 | # 331 | # Header Keyword Rules 332 | # 333 | ################################################################################ 334 | APERTURE APERTURE multi 335 | ASN_ID ASN_ID first 336 | ASN_MTYP ASN_MTYP multi 337 | ASN_TAB ASN_TAB multi 338 | ATODCORR ATODCORR multi 339 | ATODGNA ATODGNA first 340 | ATODGNB ATODGNB first 341 | ATODGNC ATODGNC first 342 | ATODGND ATODGND first 343 | ATODTAB ATODTAB multi 344 | BADINPDQ BADINPDQ sum 345 | BIASCORR BIASCORR multi 346 | BIASFILE BIASFILE multi 347 | BIASLEVA BIASLEVA first 348 | BIASLEVB BIASLEVB first 349 | BIASLEVC BIASLEVC first 350 | BIASLEVD BIASLEVD first 351 | BINAXIS1 BINAXIS1 first 352 | BINAXIS2 BINAXIS2 first 353 | BLEVCORR BLEVCORR multi 354 | BPIXTAB BPIXTAB multi 355 | BUNIT BUNIT first 356 | CAL_VER CAL_VER first 357 | CCDAMP CCDAMP first 358 | CCDCHIP CCDCHIP first 359 | CCDGAIN CCDGAIN first 360 | CCDOFSTA CCDOFSTA first 361 | CCDOFSTB CCDOFSTB first 362 | CCDOFSTC CCDOFSTC first 363 | CCDOFSTD CCDOFSTD first 364 | CCDTAB CCDTAB multi 365 | CD1_1 CD1_1 first 366 | CD1_2 CD1_2 first 367 | CD2_1 CD2_1 first 368 | CD2_2 CD2_2 first 369 | CENTERA1 CENTERA1 first 370 | CENTERA2 CENTERA2 first 371 | CHINJECT CHINJECT multi 372 | COMPTAB COMPTAB multi 373 | CRCORR CRCORR multi 374 | CRMASK CRMASK first 375 | CRPIX1 CRPIX1 first 376 | CRPIX2 CRPIX2 first 377 | CRRADIUS CRRADIUS first 378 | CRREJTAB CRREJTAB multi 379 | CRSIGMAS CRSIGMAS multi 380 | CRSPLIT CRSPLIT first 381 | CRTHRESH CRTHRESH first 382 | CTEDIR CTEDIR multi 383 | CTEIMAGE CTEIMAGE first 384 | CTYPE1 CTYPE1 multi 385 | CTYPE2 CTYPE2 multi 386 | CRVAL1 CRVAL1 first 387 | CRVAL2 CRVAL2 first 388 | DARKCORR DARKCORR multi 389 | DARKFILE DARKFILE multi 390 | DATE-OBS DATE-OBS first 391 | DEC_APER DEC_APER first 392 | DEC_TARG DEC_TARG first 393 | DELTATIM DELTATIM first 394 | DETECTOR DETECTOR first 395 | DFLTFILE DFLTFILE multi 396 | DGEOFILE DGEOFILE multi 397 | DIRIMAGE DIRIMAGE multi 398 | DQICORR DQICORR multi 399 | DRIZCORR DRIZCORR multi 400 | EQUINOX EQUINOX first 401 | EXPEND EXPEND max 402 | EXPFLAG EXPFLAG multi 403 | EXPNAME EXPNAME first 404 | EXPSCORR EXPSCORR multi 405 | EXPSTART EXPSTART min 406 | EXPTIME EXPTIME sum 407 | EXPTIME TEXPTIME sum 408 | EXTVER EXTVER first 409 | FGSLOCK FGSLOCK multi 410 | FILENAME FILENAME multi 411 | FILETYPE FILETYPE multi 412 | FILTER FILTER multi 413 | FLASHCUR FLASHCUR multi 414 | FLASHDUR FLASHDUR first 415 | FLASHSTA FLASHSTA first 416 | FLATCORR FLATCORR multi 417 | FLSHCORR FLSHCORR multi 418 | FLSHFILE FLSHFILE multi 419 | GRAPHTAB GRAPHTAB multi 420 | GYROMODE GYROMODE multi 421 | IDCTAB IDCTAB multi 422 | IMAGETYP IMAGETYP first 423 | INHERIT INHERIT first # maintains IRAF compatibility 424 | INITGUES INITGUES multi 425 | INSTRUME INSTRUME first 426 | LFLTFILE LFLTFILE multi 427 | LINENUM LINENUM first 428 | LTM1_1 LTM1_1 float_one 429 | LTM2_2 LTM2_2 float_one 430 | LTV1 LTV1 first 431 | LTV2 LTV2 first 432 | MDRIZTAB MDRIZTAB multi 433 | MEANEXP MEANEXP first 434 | MEANFLSH MEANFLSH first 435 | MOONANGL MOONANGL first 436 | MTFLAG MTFLAG first 437 | NCOMBINE NCOMBINE sum 438 | NLINCORR NLINCORR multi 439 | NLINFILE NLINFILE multi 440 | NRPTEXP NRPTEXP first 441 | NSAMP NSAMP first 442 | OBSMODE OBSMODE multi 443 | OBSTYPE OBSTYPE first 444 | OPUS_VER OPUS_VER first 445 | ORIENTAT ORIENTAT first 446 | OSCNTAB OSCNTAB multi 447 | P1_ANGLE P1_ANGLE first 448 | P1_CENTR P1_CENTR multi 449 | P1_FRAME P1_FRAME multi 450 | P1_LSPAC P1_LSPAC first 451 | P1_NPTS P1_NPTS first 452 | P1_ORINT P1_ORINT first 453 | P1_PSPAC P1_PSPAC first 454 | P1_PURPS P1_PURPS multi 455 | P1_SHAPE P1_SHAPE multi 456 | P2_ANGLE P2_ANGLE first 457 | P2_CENTR P2_CENTR multi 458 | P2_FRAME P2_FRAME multi 459 | P2_LSPAC P2_LSPAC first 460 | P2_NPTS P2_NPTS first 461 | P2_ORINT P2_ORINT first 462 | P2_PSPAC P2_PSPAC first 463 | P2_PURPS P2_PURPS multi 464 | P2_SHAPE P2_SHAPE multi 465 | PA_APER PA_APER first 466 | PA_V3 PA_V3 first 467 | PATTERN1 PATTERN1 multi 468 | PATTERN2 PATTERN2 multi 469 | PATTSTEP PATTSTEP first 470 | PFLTFILE PFLTFILE multi 471 | PHOTBW PHOTBW mean 472 | PHOTCORR PHOTCORR multi 473 | PHOTFLAM PHOTFLAM mean 474 | PHOTFNU PHOTFNU mean 475 | PHOTMODE PHOTMODE multi 476 | PHOTPLAM PHOTPLAM mean 477 | PHOTZPT PHOTZPT mean 478 | PODPSFF PODPSFF multi 479 | PR_INV_F PR_INV_F first 480 | PR_INV_L PR_INV_L first 481 | PR_INV_M PR_INV_M first 482 | PRIMESI PRIMESI multi 483 | PROCTIME PROCTIME first 484 | PROPAPER PROPAPER multi 485 | PROPOSID PROPOSID first 486 | QUALCOM1 QUALCOM1 multi 487 | QUALCOM2 QUALCOM2 multi 488 | QUALCOM3 QUALCOM3 multi 489 | QUALITY QUALITY multi 490 | RA_APER RA_APER first 491 | RA_TARG RA_TARG first 492 | READNSEA READNSEA first 493 | READNSEB READNSEB first 494 | READNSEC READNSEC first 495 | READNSED READNSED first 496 | REFFRAME REFFRAME multi 497 | ROOTNAME ROOTNAME first 498 | ROUTTIME ROUTTIME first 499 | RPTCORR RPTCORR multi 500 | SAACRMAP SAACRMAP multi 501 | SAMP_SEQ SAMP_SEQ first 502 | SAMPNUM SAMPNUM first 503 | SAMPTIME SAMPTIME first 504 | SAMPZERO SAMPZERO first 505 | SCALENSE SCALENSE first 506 | SCLAMP SCLAMP multi 507 | SDQFLAGS SDQFLAGS first 508 | SHADCORR SHADCORR multi 509 | SHADFILE SHADFILE multi 510 | SIZAXIS1 SIZAXIS1 first 511 | SIZAXIS2 SIZAXIS2 first 512 | SOFTERRS SOFTERRS sum 513 | STDCFFF STDCFFF multi 514 | STDCFFP STDCFFP multi 515 | SUBARRAY SUBARRAY first 516 | SUBTYPE SUBTYPE multi 517 | SUNANGLE SUNANGLE first 518 | T_SGSTAR T_SGSTAR multi 519 | TARGNAME TARGNAME multi 520 | TDFTRANS TDFTRANS sum 521 | TELESCOP TELESCOP first 522 | TIME-OBS TIME-OBS first 523 | UNITCORR UNITCORR multi 524 | WCSAXES WCSAXES first 525 | WCSCDATE WCSCDATE first 526 | WCSNAME WCSNAME first 527 | ZOFFCORR ZOFFCORR multi 528 | ZSIGCORR ZSIGCORR multi 529 | -------------------------------------------------------------------------------- /fitsblender/nicmos_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.0 2 | !INSTRUMENT = NICMOS 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | ROOTNAME 55 | EXTNAME 56 | EXTVER 57 | A_0_2 58 | A_0_3 59 | A_0_4 60 | A_1_1 61 | A_1_2 62 | A_1_3 63 | A_2_0 64 | A_2_1 65 | A_2_2 66 | A_3_0 67 | A_3_1 68 | A_4_0 69 | A_ORDER 70 | APERTURE 71 | ASN_ID 72 | ASN_MTYP 73 | ASN_TAB 74 | ATODCORR 75 | ATODGNA 76 | ATODGNB 77 | ATODGNC 78 | ATODGND 79 | ATODTAB 80 | B_0_2 81 | B_0_3 82 | B_0_4 83 | B_1_1 84 | B_1_2 85 | B_1_3 86 | B_2_0 87 | B_2_1 88 | B_2_2 89 | B_3_0 90 | B_3_1 91 | B_4_0 92 | B_ORDER 93 | BADINPDQ 94 | BIASCORR 95 | BIASFILE 96 | BIASLEVA 97 | BIASLEVB 98 | BIASLEVC 99 | BIASLEVD 100 | BINAXIS1 101 | BINAXIS2 102 | BLEVCORR 103 | BPIXTAB 104 | BUNIT 105 | CAL_VER 106 | CCDAMP 107 | CCDCHIP 108 | CCDGAIN 109 | CCDOFSAB 110 | CCDOFSCD 111 | CCDOFSTA 112 | CCDOFSTB 113 | CCDOFSTC 114 | CCDOFSTD 115 | CCDTAB 116 | CD1_1 117 | CD1_2 118 | CD2_1 119 | CD2_2 120 | CENTERA1 121 | CENTERA2 122 | CHINJECT 123 | COMPTAB 124 | CRCORR 125 | CRMASK 126 | CRPIX1 127 | CRPIX2 128 | CRRADIUS 129 | CRREJTAB 130 | CRSIGMAS 131 | CRSPLIT 132 | CRTHRESH 133 | CRVAL1 134 | CRVAL2 135 | CTEDIR 136 | CTEIMAGE 137 | CTYPE1 138 | CTYPE2 139 | DARKCORR 140 | DARKFILE 141 | DATAMAX 142 | DATAMIN 143 | DATE 144 | DATE-OBS 145 | DEC_APER 146 | DEC_TARG 147 | DELTATIM 148 | DETECTOR 149 | DFLTFILE 150 | DGEOFILE 151 | DIRIMAGE 152 | DQICORR 153 | DRIZCORR 154 | EQUINOX 155 | ERRCNT 156 | EXPEND 157 | EXPFLAG 158 | EXPNAME 159 | EXPSCORR 160 | EXPSTART 161 | EXPTIME 162 | FGSLOCK 163 | FILENAME 164 | FILETYPE 165 | FILLCNT 166 | FILTER 167 | FLASHCUR 168 | FLASHDUR 169 | FLASHSTA 170 | FLATCORR 171 | FLSHCORR 172 | FLSHFILE 173 | GOODMAX 174 | GOODMEAN 175 | GOODMIN 176 | GRAPHTAB 177 | GYROMODE 178 | IDCSCALE 179 | IDCTAB 180 | IDCTHETA 181 | IDCV2REF 182 | IDCV3REF 183 | IMAGETYP 184 | INHERIT 185 | INITGUES 186 | INSTRUME 187 | IRAF-TLM 188 | LFLTFILE 189 | LINENUM 190 | LTM1_1 191 | LTM2_2 192 | LTV1 193 | LTV2 194 | MDRIZSKY 195 | MDRIZTAB 196 | MEANBLEV 197 | MEANDARK 198 | MEANEXP 199 | MEANFLSH 200 | MOONANGL 201 | MTFLAG 202 | NAXIS1 203 | NAXIS2 204 | NCOMBINE 205 | NGOODPIX 206 | NLINCORR 207 | NLINFILE 208 | NRPTEXP 209 | NSAMP 210 | OBSMODE 211 | OBSTYPE 212 | OCD1_1 213 | OCD1_2 214 | OCD2_1 215 | OCD2_2 216 | OCRPIX1 217 | OCRPIX2 218 | OCRVAL1 219 | OCRVAL2 220 | OCTYPE1 221 | OCTYPE2 222 | OCX10 223 | OCX11 224 | OCY10 225 | OCY11 226 | ONAXIS1 227 | ONAXIS2 228 | OORIENTA 229 | OPUS_VER 230 | ORIENTAT 231 | ORIGIN 232 | OSCNTAB 233 | P1_ANGLE 234 | P1_CENTR 235 | P1_FRAME 236 | P1_LSPAC 237 | P1_NPTS 238 | P1_ORINT 239 | P1_PSPAC 240 | P1_PURPS 241 | P1_SHAPE 242 | P2_ANGLE 243 | P2_CENTR 244 | P2_FRAME 245 | P2_LSPAC 246 | P2_NPTS 247 | P2_ORINT 248 | P2_PSPAC 249 | P2_PURPS 250 | P2_SHAPE 251 | PA_APER 252 | PA_V3 253 | PATTERN1 254 | PATTERN2 255 | PATTSTEP 256 | PFLTFILE 257 | PHOTBW 258 | PHOTCORR 259 | PHOTFLAM 260 | PHOTFNU 261 | PHOTMODE 262 | PHOTPLAM 263 | PHOTZPT 264 | PODPSFF 265 | POSTARG1 266 | POSTARG2 267 | PR_INV_F 268 | PR_INV_L 269 | PR_INV_M 270 | PRIMESI 271 | PROCTIME 272 | PROPAPER 273 | PROPOSID 274 | QUALCOM1 275 | QUALCOM2 276 | QUALCOM3 277 | QUALITY 278 | RA_APER 279 | RA_TARG 280 | READNSEA 281 | READNSEB 282 | READNSEC 283 | READNSED 284 | REFFRAME 285 | REJ_RATE 286 | ROUTTIME 287 | RPTCORR 288 | SAA_DARK 289 | SAA_EXIT 290 | SAA_TIME 291 | SAACRMAP 292 | SAMP_SEQ 293 | SAMPNUM 294 | SAMPTIME 295 | SAMPZERO 296 | SCALENSE 297 | SCLAMP 298 | SDQFLAGS 299 | SHADCORR 300 | SHADFILE 301 | SHUTRPOS 302 | SIMPLE 303 | SIZAXIS1 304 | SIZAXIS2 305 | SKYSUB 306 | SKYSUM 307 | SNRMAX 308 | SNRMEAN 309 | SNRMIN 310 | SOFTERRS 311 | STDCFFF 312 | STDCFFP 313 | SUBARRAY 314 | SUBTYPE 315 | SUN_ALT 316 | SUNANGLE 317 | T_SGSTAR 318 | TARGNAME 319 | TDFTRANS 320 | TELESCOP 321 | TIME-OBS 322 | UNITCORR 323 | VAFACTOR 324 | WCSAXES 325 | WCSCDATE 326 | WCSNAME 327 | ZOFFCORR 328 | ZSIGCORR 329 | ################################################################################ 330 | # 331 | # Header Keyword Rules 332 | # 333 | ################################################################################ 334 | APERTURE APERTURE multi 335 | ASN_ID ASN_ID first 336 | ASN_MTYP ASN_MTYP multi 337 | ASN_TAB ASN_TAB multi 338 | ATODCORR ATODCORR multi 339 | ATODGNA ATODGNA first 340 | ATODGNB ATODGNB first 341 | ATODGNC ATODGNC first 342 | ATODGND ATODGND first 343 | ATODTAB ATODTAB multi 344 | BADINPDQ BADINPDQ sum 345 | BIASCORR BIASCORR multi 346 | BIASFILE BIASFILE multi 347 | BIASLEVA BIASLEVA first 348 | BIASLEVB BIASLEVB first 349 | BIASLEVC BIASLEVC first 350 | BIASLEVD BIASLEVD first 351 | BINAXIS1 BINAXIS1 first 352 | BINAXIS2 BINAXIS2 first 353 | BLEVCORR BLEVCORR multi 354 | BPIXTAB BPIXTAB multi 355 | BUNIT BUNIT first 356 | CAL_VER CAL_VER first 357 | CCDAMP CCDAMP first 358 | CCDCHIP CCDCHIP first 359 | CCDGAIN CCDGAIN first 360 | CCDOFSTA CCDOFSTA first 361 | CCDOFSTB CCDOFSTB first 362 | CCDOFSTC CCDOFSTC first 363 | CCDOFSTD CCDOFSTD first 364 | CCDTAB CCDTAB multi 365 | CD1_1 CD1_1 first 366 | CD1_2 CD1_2 first 367 | CD2_1 CD2_1 first 368 | CD2_2 CD2_2 first 369 | CENTERA1 CENTERA1 first 370 | CENTERA2 CENTERA2 first 371 | CHINJECT CHINJECT multi 372 | COMPTAB COMPTAB multi 373 | CRCORR CRCORR multi 374 | CRMASK CRMASK first 375 | CRPIX1 CRPIX1 first 376 | CRPIX2 CRPIX2 first 377 | CRRADIUS CRRADIUS first 378 | CRREJTAB CRREJTAB multi 379 | CRSIGMAS CRSIGMAS multi 380 | CRSPLIT CRSPLIT first 381 | CRTHRESH CRTHRESH first 382 | CTEDIR CTEDIR multi 383 | CTEIMAGE CTEIMAGE first 384 | CTYPE1 CTYPE1 multi 385 | CTYPE2 CTYPE2 multi 386 | CRVAL1 CRVAL1 first 387 | CRVAL2 CRVAL2 first 388 | DARKCORR DARKCORR multi 389 | DARKFILE DARKFILE multi 390 | DATE-OBS DATE-OBS first 391 | DEC_APER DEC_APER first 392 | DEC_TARG DEC_TARG first 393 | DELTATIM DELTATIM first 394 | DETECTOR DETECTOR first 395 | DFLTFILE DFLTFILE multi 396 | DGEOFILE DGEOFILE multi 397 | DIRIMAGE DIRIMAGE multi 398 | DQICORR DQICORR multi 399 | DRIZCORR DRIZCORR multi 400 | EQUINOX EQUINOX first 401 | EXPEND EXPEND max 402 | EXPFLAG EXPFLAG multi 403 | EXPNAME EXPNAME first 404 | EXPSCORR EXPSCORR multi 405 | EXPSTART EXPSTART min 406 | EXPTIME EXPTIME sum 407 | EXPTIME TEXPTIME sum 408 | EXTVER EXTVER first 409 | FGSLOCK FGSLOCK multi 410 | FILENAME FILENAME multi 411 | FILETYPE FILETYPE multi 412 | FILTER FILTER multi 413 | FLASHCUR FLASHCUR multi 414 | FLASHDUR FLASHDUR first 415 | FLASHSTA FLASHSTA first 416 | FLATCORR FLATCORR multi 417 | FLSHCORR FLSHCORR multi 418 | FLSHFILE FLSHFILE multi 419 | GRAPHTAB GRAPHTAB multi 420 | GYROMODE GYROMODE multi 421 | IDCTAB IDCTAB multi 422 | IMAGETYP IMAGETYP first 423 | INHERIT INHERIT first # maintains IRAF compatibility 424 | INITGUES INITGUES multi 425 | INSTRUME INSTRUME first 426 | LFLTFILE LFLTFILE multi 427 | LINENUM LINENUM first 428 | LTM1_1 LTM1_1 float_one 429 | LTM2_2 LTM2_2 float_one 430 | LTV1 LTV1 first 431 | LTV2 LTV2 first 432 | MDRIZTAB MDRIZTAB multi 433 | MEANEXP MEANEXP first 434 | MEANFLSH MEANFLSH first 435 | MOONANGL MOONANGL first 436 | MTFLAG MTFLAG first 437 | NCOMBINE NCOMBINE sum 438 | NLINCORR NLINCORR multi 439 | NLINFILE NLINFILE multi 440 | NRPTEXP NRPTEXP first 441 | NSAMP NSAMP first 442 | OBSMODE OBSMODE multi 443 | OBSTYPE OBSTYPE first 444 | OPUS_VER OPUS_VER first 445 | ORIENTAT ORIENTAT first 446 | OSCNTAB OSCNTAB multi 447 | P1_ANGLE P1_ANGLE first 448 | P1_CENTR P1_CENTR multi 449 | P1_FRAME P1_FRAME multi 450 | P1_LSPAC P1_LSPAC first 451 | P1_NPTS P1_NPTS first 452 | P1_ORINT P1_ORINT first 453 | P1_PSPAC P1_PSPAC first 454 | P1_PURPS P1_PURPS multi 455 | P1_SHAPE P1_SHAPE multi 456 | P2_ANGLE P2_ANGLE first 457 | P2_CENTR P2_CENTR multi 458 | P2_FRAME P2_FRAME multi 459 | P2_LSPAC P2_LSPAC first 460 | P2_NPTS P2_NPTS first 461 | P2_ORINT P2_ORINT first 462 | P2_PSPAC P2_PSPAC first 463 | P2_PURPS P2_PURPS multi 464 | P2_SHAPE P2_SHAPE multi 465 | PA_APER PA_APER first 466 | PA_V3 PA_V3 first 467 | PATTERN1 PATTERN1 multi 468 | PATTERN2 PATTERN2 multi 469 | PATTSTEP PATTSTEP first 470 | PFLTFILE PFLTFILE multi 471 | PHOTBW PHOTBW mean 472 | PHOTCORR PHOTCORR multi 473 | PHOTFLAM PHOTFLAM mean 474 | PHOTFNU PHOTFNU mean 475 | PHOTMODE PHOTMODE multi 476 | PHOTPLAM PHOTPLAM mean 477 | PHOTZPT PHOTZPT mean 478 | PODPSFF PODPSFF multi 479 | PR_INV_F PR_INV_F first 480 | PR_INV_L PR_INV_L first 481 | PR_INV_M PR_INV_M first 482 | PRIMESI PRIMESI multi 483 | PROCTIME PROCTIME first 484 | PROPAPER PROPAPER multi 485 | PROPOSID PROPOSID first 486 | QUALCOM1 QUALCOM1 multi 487 | QUALCOM2 QUALCOM2 multi 488 | QUALCOM3 QUALCOM3 multi 489 | QUALITY QUALITY multi 490 | RA_APER RA_APER first 491 | RA_TARG RA_TARG first 492 | READNSEA READNSEA first 493 | READNSEB READNSEB first 494 | READNSEC READNSEC first 495 | READNSED READNSED first 496 | REFFRAME REFFRAME multi 497 | ROOTNAME ROOTNAME first 498 | ROUTTIME ROUTTIME first 499 | RPTCORR RPTCORR multi 500 | SAACRMAP SAACRMAP multi 501 | SAMP_SEQ SAMP_SEQ first 502 | SAMPNUM SAMPNUM first 503 | SAMPTIME SAMPTIME first 504 | SAMPZERO SAMPZERO first 505 | SCALENSE SCALENSE first 506 | SCLAMP SCLAMP multi 507 | SDQFLAGS SDQFLAGS first 508 | SHADCORR SHADCORR multi 509 | SHADFILE SHADFILE multi 510 | SIZAXIS1 SIZAXIS1 first 511 | SIZAXIS2 SIZAXIS2 first 512 | SOFTERRS SOFTERRS sum 513 | STDCFFF STDCFFF multi 514 | STDCFFP STDCFFP multi 515 | SUBARRAY SUBARRAY first 516 | SUBTYPE SUBTYPE multi 517 | SUNANGLE SUNANGLE first 518 | T_SGSTAR T_SGSTAR multi 519 | TARGNAME TARGNAME multi 520 | TDFTRANS TDFTRANS sum 521 | TELESCOP TELESCOP first 522 | TIME-OBS TIME-OBS first 523 | UNITCORR UNITCORR multi 524 | WCSAXES WCSAXES first 525 | WCSCDATE WCSCDATE first 526 | WCSNAME WCSNAME first 527 | ZOFFCORR ZOFFCORR multi 528 | ZSIGCORR ZSIGCORR multi 529 | -------------------------------------------------------------------------------- /fitsblender/wfc3_header.rules: -------------------------------------------------------------------------------- 1 | !VERSION = 1.1 2 | !INSTRUMENT = WFC3 3 | ################################################################################ 4 | # 5 | # Header keyword rules 6 | # 7 | # Columns definitions: 8 | # Column 1: header keyword from input header or '' 9 | # Column 2: [optional] name of table column for recording values from 10 | # keyword specified in the first column from each input image 11 | # =or= name of keyword to be updated in output image header 12 | # Column 3: [optional] function to use to create output header value 13 | # (output keyword name must be specified in second column) 14 | # 15 | # Any line that starts with '' indicates that that keyword 16 | # or set of keywords for that header section should be deleted from the 17 | # output header. 18 | # 19 | # Supported functions: first, last, min, max, mean, sum, stddev, multi 20 | # 21 | # Any keyword without a function will be copied to a table column with the 22 | # name given in the second column, or first column if only 1 column has been 23 | # specified. These keywords will also be removed from the output header unless 24 | # another rule for the same keyword (1st column) has been specified with a 25 | # function named in the 3rd column. 26 | # 27 | # All keywords *not specified in this rules file* will be derived from the first 28 | # input image's header and used unchanged to create the final output header(s). 29 | # So, any keyword with a rule that adds that keyword to a table will be removed from 30 | # the output headers unless additional rules are provided to specify what values 31 | # should be kept in the header for that keyword. 32 | ## 33 | # Final header output will use the same formatting and order of keywords defined 34 | # by the first image's headers. 35 | # 36 | # Rules for headers from all image extensions can be included in the same 37 | # file without regard for order, although keeping them organized by extension 38 | # makes the file easier to maintain and update. 39 | # 40 | # The order of the rules will determine the order of the columns in the 41 | # final output table. As a result, the rules for EXTNAME and EXTVER are 42 | # associated with ROOTNAME, rather than the SCI header, in order to make 43 | # rows of the table easier to identify. 44 | # 45 | # Comments appended to the end of a rule will be ignored when reading the 46 | # rules. All comments start with '#'. 47 | # 48 | # 49 | ################################################################################ 50 | # 51 | # Table Keyword Rules 52 | # 53 | ################################################################################ 54 | ROOTNAME 55 | EXTNAME 56 | EXTVER 57 | A_0_2 58 | A_0_3 59 | A_0_4 60 | A_1_1 61 | A_1_2 62 | A_1_3 63 | A_2_0 64 | A_2_1 65 | A_2_2 66 | A_3_0 67 | A_3_1 68 | A_4_0 69 | A_ORDER 70 | APERTURE 71 | ASN_ID 72 | ASN_MTYP 73 | ASN_TAB 74 | ATODCORR 75 | ATODGNA 76 | ATODGNB 77 | ATODGNC 78 | ATODGND 79 | ATODTAB 80 | B_0_2 81 | B_0_3 82 | B_0_4 83 | B_1_1 84 | B_1_2 85 | B_1_3 86 | B_2_0 87 | B_2_1 88 | B_2_2 89 | B_3_0 90 | B_3_1 91 | B_4_0 92 | B_ORDER 93 | BADINPDQ 94 | BIASCORR 95 | BIASFILE 96 | BIASLEVA 97 | BIASLEVB 98 | BIASLEVC 99 | BIASLEVD 100 | BINAXIS1 101 | BINAXIS2 102 | BLEVCORR 103 | BPIXTAB 104 | BUNIT 105 | CAL_VER 106 | CCDAMP 107 | CCDCHIP 108 | CCDGAIN 109 | CCDOFSAB 110 | CCDOFSCD 111 | CCDOFSTA 112 | CCDOFSTB 113 | CCDOFSTC 114 | CCDOFSTD 115 | CCDTAB 116 | CD1_1 117 | CD1_2 118 | CD2_1 119 | CD2_2 120 | CENTERA1 121 | CENTERA2 122 | CHINJECT 123 | COMPTAB 124 | CRCORR 125 | CRMASK 126 | CRPIX1 127 | CRPIX2 128 | CRRADIUS 129 | CRREJTAB 130 | CRSIGMAS 131 | CRSPLIT 132 | CRTHRESH 133 | CRVAL1 134 | CRVAL2 135 | CTEDIR 136 | CTEIMAGE 137 | CTYPE1 138 | CTYPE2 139 | DARKCORR 140 | DARKFILE 141 | DATAMAX 142 | DATAMIN 143 | DATE 144 | DATE-OBS 145 | DEC_APER 146 | DEC_TARG 147 | DELTATIM 148 | DETECTOR 149 | DFLTFILE 150 | DGEOFILE 151 | DIRIMAGE 152 | DQICORR 153 | DRIZCORR 154 | EQUINOX 155 | ERRCNT 156 | EXPEND 157 | EXPFLAG 158 | EXPNAME 159 | EXPSCORR 160 | EXPSTART 161 | EXPTIME 162 | FGSLOCK 163 | FILENAME 164 | FILETYPE 165 | FILLCNT 166 | FILTER 167 | FLASHCUR 168 | FLASHDUR 169 | FLASHSTA 170 | FLATCORR 171 | FLSHCORR 172 | FLSHFILE 173 | GOODMAX 174 | GOODMEAN 175 | GOODMIN 176 | GRAPHTAB 177 | GYROMODE 178 | IDCSCALE 179 | IDCTAB 180 | IDCTHETA 181 | IDCV2REF 182 | IDCV3REF 183 | IMAGETYP 184 | INHERIT 185 | INITGUES 186 | INSTRUME 187 | IRAF-TLM 188 | LFLTFILE 189 | LINENUM 190 | LTM1_1 191 | LTM2_2 192 | LTV1 193 | LTV2 194 | MDRIZSKY 195 | MDRIZTAB 196 | MEANBLEV 197 | MEANDARK 198 | MEANEXP 199 | MEANFLSH 200 | MOONANGL 201 | MTFLAG 202 | NAXIS1 203 | NAXIS2 204 | NCOMBINE 205 | NGOODPIX 206 | NLINCORR 207 | NLINFILE 208 | NRPTEXP 209 | NSAMP 210 | OBSMODE 211 | OBSTYPE 212 | OCD1_1 213 | OCD1_2 214 | OCD2_1 215 | OCD2_2 216 | OCRPIX1 217 | OCRPIX2 218 | OCRVAL1 219 | OCRVAL2 220 | OCTYPE1 221 | OCTYPE2 222 | OCX10 223 | OCX11 224 | OCY10 225 | OCY11 226 | ONAXIS1 227 | ONAXIS2 228 | OORIENTA 229 | OPUS_VER 230 | ORIENTAT 231 | ORIGIN 232 | OSCNTAB 233 | P1_ANGLE 234 | P1_CENTR 235 | P1_FRAME 236 | P1_LSPAC 237 | P1_NPTS 238 | P1_ORINT 239 | P1_PSPAC 240 | P1_PURPS 241 | P1_SHAPE 242 | P2_ANGLE 243 | P2_CENTR 244 | P2_FRAME 245 | P2_LSPAC 246 | P2_NPTS 247 | P2_ORINT 248 | P2_PSPAC 249 | P2_PURPS 250 | P2_SHAPE 251 | PA_APER 252 | PA_V3 253 | PATTERN1 254 | PATTERN2 255 | PATTSTEP 256 | PFLTFILE 257 | PHOTBW 258 | PHOTCORR 259 | PHOTFLAM 260 | PHOTFNU 261 | PHOTMODE 262 | PHOTPLAM 263 | PHOTZPT 264 | PODPSFF 265 | POSTARG1 266 | POSTARG2 267 | PR_INV_F 268 | PR_INV_L 269 | PR_INV_M 270 | PRIMESI 271 | PROCTIME 272 | PROPAPER 273 | PROPOSID 274 | QUALCOM1 275 | QUALCOM2 276 | QUALCOM3 277 | QUALITY 278 | RA_APER 279 | RA_TARG 280 | READNSEA 281 | READNSEB 282 | READNSEC 283 | READNSED 284 | REFFRAME 285 | REJ_RATE 286 | ROUTTIME 287 | RPTCORR 288 | SAA_DARK 289 | SAA_EXIT 290 | SAA_TIME 291 | SAACRMAP 292 | SAMP_SEQ 293 | SAMPNUM 294 | SAMPTIME 295 | SAMPZERO 296 | SCALENSE 297 | SCLAMP 298 | SDQFLAGS 299 | SHADCORR 300 | SHADFILE 301 | SHUTRPOS 302 | SIMPLE 303 | SIZAXIS1 304 | SIZAXIS2 305 | SKYCELL 306 | SKYSUB 307 | SKYSUM 308 | SNRMAX 309 | SNRMEAN 310 | SNRMIN 311 | SOFTERRS 312 | STDCFFF 313 | STDCFFP 314 | SUBARRAY 315 | SUBTYPE 316 | SUN_ALT 317 | SUNANGLE 318 | T_SGSTAR 319 | TARGNAME 320 | TDFTRANS 321 | TELESCOP 322 | TIME-OBS 323 | UNITCORR 324 | VAFACTOR 325 | WCSAXES 326 | WCSCDATE 327 | WCSNAME 328 | ZOFFCORR 329 | ZSIGCORR 330 | ################################################################################ 331 | # 332 | # Header Keyword Rules 333 | # 334 | ################################################################################ 335 | APERTURE APERTURE multi 336 | ASN_ID ASN_ID first 337 | ASN_MTYP ASN_MTYP multi 338 | ASN_TAB ASN_TAB multi 339 | ATODCORR ATODCORR multi 340 | ATODGNA ATODGNA first 341 | ATODGNB ATODGNB first 342 | ATODGNC ATODGNC first 343 | ATODGND ATODGND first 344 | ATODTAB ATODTAB multi 345 | BADINPDQ BADINPDQ sum 346 | BIASCORR BIASCORR multi 347 | BIASFILE BIASFILE multi 348 | BIASLEVA BIASLEVA first 349 | BIASLEVB BIASLEVB first 350 | BIASLEVC BIASLEVC first 351 | BIASLEVD BIASLEVD first 352 | BINAXIS1 BINAXIS1 first 353 | BINAXIS2 BINAXIS2 first 354 | BLEVCORR BLEVCORR multi 355 | BPIXTAB BPIXTAB multi 356 | BUNIT BUNIT first 357 | CAL_VER CAL_VER first 358 | CCDAMP CCDAMP first 359 | CCDCHIP CCDCHIP first 360 | CCDGAIN CCDGAIN first 361 | CCDOFSTA CCDOFSTA first 362 | CCDOFSTB CCDOFSTB first 363 | CCDOFSTC CCDOFSTC first 364 | CCDOFSTD CCDOFSTD first 365 | CCDTAB CCDTAB multi 366 | CD1_1 CD1_1 first 367 | CD1_2 CD1_2 first 368 | CD2_1 CD2_1 first 369 | CD2_2 CD2_2 first 370 | CENTERA1 CENTERA1 first 371 | CENTERA2 CENTERA2 first 372 | CHINJECT CHINJECT multi 373 | COMPTAB COMPTAB multi 374 | CRCORR CRCORR multi 375 | CRMASK CRMASK first 376 | CRPIX1 CRPIX1 first 377 | CRPIX2 CRPIX2 first 378 | CRRADIUS CRRADIUS first 379 | CRREJTAB CRREJTAB multi 380 | CRSIGMAS CRSIGMAS multi 381 | CRSPLIT CRSPLIT first 382 | CRTHRESH CRTHRESH first 383 | CTEDIR CTEDIR multi 384 | CTEIMAGE CTEIMAGE first 385 | CTYPE1 CTYPE1 multi 386 | CTYPE2 CTYPE2 multi 387 | CRVAL1 CRVAL1 first 388 | CRVAL2 CRVAL2 first 389 | DARKCORR DARKCORR multi 390 | DARKFILE DARKFILE multi 391 | DATE-OBS DATE-OBS first 392 | DEC_APER DEC_APER first 393 | DEC_TARG DEC_TARG first 394 | DELTATIM DELTATIM first 395 | DETECTOR DETECTOR first 396 | DFLTFILE DFLTFILE multi 397 | DGEOFILE DGEOFILE multi 398 | DIRIMAGE DIRIMAGE multi 399 | DQICORR DQICORR multi 400 | DRIZCORR DRIZCORR multi 401 | EQUINOX EQUINOX first 402 | EXPEND EXPEND max 403 | EXPFLAG EXPFLAG multi 404 | EXPNAME EXPNAME first 405 | EXPSCORR EXPSCORR multi 406 | EXPSTART EXPSTART min 407 | EXPTIME EXPTIME sum 408 | EXPTIME TEXPTIME sum 409 | EXTVER EXTVER first 410 | FGSLOCK FGSLOCK multi 411 | FILENAME FILENAME multi 412 | FILETYPE FILETYPE multi 413 | FILTER FILTER multi 414 | FLASHCUR FLASHCUR multi 415 | FLASHDUR FLASHDUR first 416 | FLASHSTA FLASHSTA first 417 | FLATCORR FLATCORR multi 418 | FLSHCORR FLSHCORR multi 419 | FLSHFILE FLSHFILE multi 420 | GRAPHTAB GRAPHTAB multi 421 | GYROMODE GYROMODE multi 422 | IDCTAB IDCTAB multi 423 | IMAGETYP IMAGETYP first 424 | INHERIT INHERIT first # maintains IRAF compatibility 425 | INITGUES INITGUES multi 426 | INSTRUME INSTRUME first 427 | LFLTFILE LFLTFILE multi 428 | LINENUM LINENUM first 429 | LTM1_1 LTM1_1 float_one 430 | LTM2_2 LTM2_2 float_one 431 | LTV1 LTV1 first 432 | LTV2 LTV2 first 433 | MDRIZTAB MDRIZTAB multi 434 | MEANEXP MEANEXP first 435 | MEANFLSH MEANFLSH first 436 | MOONANGL MOONANGL first 437 | MTFLAG MTFLAG first 438 | NCOMBINE NCOMBINE sum 439 | NLINCORR NLINCORR multi 440 | NLINFILE NLINFILE multi 441 | NRPTEXP NRPTEXP first 442 | NSAMP NSAMP first 443 | OBSMODE OBSMODE multi 444 | OBSTYPE OBSTYPE first 445 | OPUS_VER OPUS_VER first 446 | ORIENTAT ORIENTAT first 447 | OSCNTAB OSCNTAB multi 448 | P1_ANGLE P1_ANGLE first 449 | P1_CENTR P1_CENTR multi 450 | P1_FRAME P1_FRAME multi 451 | P1_LSPAC P1_LSPAC first 452 | P1_NPTS P1_NPTS first 453 | P1_ORINT P1_ORINT first 454 | P1_PSPAC P1_PSPAC first 455 | P1_PURPS P1_PURPS multi 456 | P1_SHAPE P1_SHAPE multi 457 | P2_ANGLE P2_ANGLE first 458 | P2_CENTR P2_CENTR multi 459 | P2_FRAME P2_FRAME multi 460 | P2_LSPAC P2_LSPAC first 461 | P2_NPTS P2_NPTS first 462 | P2_ORINT P2_ORINT first 463 | P2_PSPAC P2_PSPAC first 464 | P2_PURPS P2_PURPS multi 465 | P2_SHAPE P2_SHAPE multi 466 | PA_APER PA_APER first 467 | PA_V3 PA_V3 first 468 | PATTERN1 PATTERN1 multi 469 | PATTERN2 PATTERN2 multi 470 | PATTSTEP PATTSTEP first 471 | PFLTFILE PFLTFILE multi 472 | PHOTBW PHOTBW mean 473 | PHOTCORR PHOTCORR multi 474 | PHOTFLAM PHOTFLAM mean 475 | PHOTFNU PHOTFNU mean 476 | PHOTMODE PHOTMODE first 477 | PHOTPLAM PHOTPLAM mean 478 | PHOTZPT PHOTZPT mean 479 | PODPSFF PODPSFF multi 480 | PR_INV_F PR_INV_F first 481 | PR_INV_L PR_INV_L first 482 | PR_INV_M PR_INV_M first 483 | PRIMESI PRIMESI multi 484 | PROCTIME PROCTIME first 485 | PROPAPER PROPAPER multi 486 | PROPOSID PROPOSID first 487 | QUALCOM1 QUALCOM1 multi 488 | QUALCOM2 QUALCOM2 multi 489 | QUALCOM3 QUALCOM3 multi 490 | QUALITY QUALITY multi 491 | RA_APER RA_APER first 492 | RA_TARG RA_TARG first 493 | READNSEA READNSEA first 494 | READNSEB READNSEB first 495 | READNSEC READNSEC first 496 | READNSED READNSED first 497 | REFFRAME REFFRAME multi 498 | ROOTNAME ROOTNAME first 499 | ROUTTIME ROUTTIME first 500 | RPTCORR RPTCORR multi 501 | SAACRMAP SAACRMAP multi 502 | SAMP_SEQ SAMP_SEQ first 503 | SAMPNUM SAMPNUM first 504 | SAMPTIME SAMPTIME first 505 | SAMPZERO SAMPZERO first 506 | SCALENSE SCALENSE first 507 | SCLAMP SCLAMP multi 508 | SDQFLAGS SDQFLAGS first 509 | SHADCORR SHADCORR multi 510 | SHADFILE SHADFILE multi 511 | SIZAXIS1 SIZAXIS1 first 512 | SIZAXIS2 SIZAXIS2 first 513 | SKYCELL SKYCELL first 514 | SOFTERRS SOFTERRS sum 515 | STDCFFF STDCFFF multi 516 | STDCFFP STDCFFP multi 517 | SUBARRAY SUBARRAY first 518 | SUBTYPE SUBTYPE multi 519 | SUNANGLE SUNANGLE first 520 | T_SGSTAR T_SGSTAR multi 521 | TARGNAME TARGNAME first 522 | TDFTRANS TDFTRANS sum 523 | TELESCOP TELESCOP first 524 | TIME-OBS TIME-OBS first 525 | UNITCORR UNITCORR multi 526 | WCSAXES WCSAXES first 527 | WCSCDATE WCSCDATE first 528 | WCSNAME WCSNAME first 529 | ZOFFCORR ZOFFCORR multi 530 | ZSIGCORR ZSIGCORR multi 531 | -------------------------------------------------------------------------------- /fitsblender/tests/FOSy19g0309t_c2f.fits: -------------------------------------------------------------------------------- 1 | SIMPLE = T / Standard FITS format BITPIX = -64 / 32 bit IEEE floating point numbers NAXIS = 2 / Number of axes NAXIS1 = 0 NAXIS2 = 0 EXTEND = T / There may be standard extensions OPSIZE = 832 / PSIZE of original image ORIGIN = 'ST-DADS ' / Institution that originated the FITS file FITSDATE= '12/07/94' / Date FITS file was created FILENAME= 'y19g0309t_cvt.c2h' / Original GEIS header file name with _cvt ODATTYPE= 'FLOATING' / Original datatype SDASMGNU= 2 / GCOUNT of original image DADSFILE= 'Y19G0309T.C2F' / DADSCLAS= 'CAL ' / DADSDATE= '12-JUL-1994 02:44:39' / CRVAL1 = 1.0000000000000 / CRPIX1 = 1.0000000000000 / CD1_1 = 1.0000000000000 / DATAMIN = 0.00000000000000 / DATAMAX = 2.7387550387959E-15 / RA_APER = 182.63573015260 / DEC_APER= 39.405888372580 / FILLCNT = 0 / ERRCNT = 0 / FPKTTIME= 49099.133531036 / LPKTTIME= 49099.133541164 / CTYPE1 = 'PIXEL ' / APER_POS= 'SINGLE ' / PASS_DIR= 0 / YPOS = -1516.0000000000 / YTYPE = 'OBJ ' / EXPOSURE= 31.249689102173 / X_OFFSET= 0.00000000000000 / Y_OFFSET= 0.00000000000000 / / GROUP PARAMETERS: OSS / GROUP PARAMETERS: PODPS / FOS DATA DESCRIPTOR KEYWORDS INSTRUME= 'FOS ' / instrument in use ROOTNAME= 'Y19G0309T ' / rootname of the observation set FILETYPE= 'ERR ' / file type BUNIT = 'ERGS/CM**2/S/A' / brightness units / GENERIC CONVERSION KEYWORDS HEADER = T / science header line exists TRAILER = F / reject array exists YWRDSLIN= 516 / science words per packet YLINSFRM= 5 / packets per frame / CALIBRATION FLAGS AND INDICATORS GRNDMODE= 'SPECTROSCOPY ' / ground software mode DETECTOR= 'AMBER ' / detector in use: amber, blue APER_ID = 'B-2 ' / aperture id POLAR_ID= 'C ' / polarizer id POLANG = 0.0000000E+00 / initial angular position of polarizer FGWA_ID = 'H57 ' / FGWA id FCHNL = 0 / first channel NCHNLS = 512 / number of channels OVERSCAN= 5 / overscan number NXSTEPS = 4 / number of x steps YFGIMPEN= T / onboard GIMP correction enabled (T/F) YFGIMPER= 'NO ' / error in onboard GIMP correction (YES/NO) / CALIBRATION REFERENCE FILES AND TABLES DEFDDTBL= F / UDL disabled diode table used BACHFILE= 'yref$b3m1128fy.r0h' / background header file FL1HFILE= 'yref$baf13103y.r1h' / first flat-field header file FL2HFILE= 'yref$n/a ' / second flat-field header file IV1HFILE= 'yref$c3u13412y.r2h' / first inverse sensitivity header file IV2HFILE= 'yref$n/a ' / second inverse sensitivity header file RETHFILE= 'yref$n/a ' / waveplate retardation header file DDTHFILE= 'yref$c861559ay.r4h' / disabled diode table header file DQ1HFILE= 'yref$b2f1301qy.r5h' / first data quality initialization header file DQ2HFILE= 'yref$n/a ' / second data quality initialization header file CCG2 = 'mtab$a3d1145ly.cmg' / paired pulse correction parameters CCS0 = 'ytab$a3d1145dy.cy0' / aperture parameters CCS1 = 'ytab$aaj0732ay.cy1' / aperture position parameters CCS2 = 'ytab$a3d1145fy.cy2' / sky emission line regions CCS3 = 'ytab$a3d1145gy.cy3' / big and sky filter widths and prism X0 CCS4 = 'ytab$b9d1019my.cy4' / polarimetry parameters CCS5 = 'ytab$a3d1145jy.cy5' / sky shifts CCS6 = 'ytab$bck10546y.cy6' / wavelength coefficients CCS7 = 'ytab$ba910502y.cy7' / GIMP correction scale factores CCS8 = 'ytab$ba31407ly.cy8' / predicted background count rates / CALIBRATION SWITCHES CNT_CORR= 'COMPLETE' / count to count rate conversion OFF_CORR= 'OMIT ' / GIMP correction PPC_CORR= 'COMPLETE' / paired pulse correction BAC_CORR= 'COMPLETE' / background subtraction GMF_CORR= 'COMPLETE' / scale reference background FLT_CORR= 'COMPLETE' / flat-fielding SKY_CORR= 'COMPLETE' / sky subtraction WAV_CORR= 'COMPLETE' / wavelength scale generation FLX_CORR= 'COMPLETE' / flux scale generation ERR_CORR= 'COMPLETE' / propagated error computation MOD_CORR= 'OMIT ' / ground software mode dependent reductions / PATTERN KEYWORDS INTS = 2 / number of integrations YBASE = -1516 / y base YRANGE = 0 / y range YSTEPS = 1 / number of y steps YSPACE = 0.0000000E+00 / yrange * 32 / ysteps SLICES = 1 / number of time slices NPAT = 12 / number of patterns per readout NREAD = 2 / number of readouts per memory clear NMCLEARS= 1 / number of memory clears per acquisition YSTEP1 = 'OBJ ' / first ystep data type: OBJ, SKY, BCK, NUL YSTEP2 = 'NUL ' / second ystep data type: OBJ, SKY, BCK, NUL YSTEP3 = 'NUL ' / third ystep data type: OBJ, SKY, BCK, NUL XBASE = 0 / X-deflection base XPITCH = 1521 / X-deflection pitch between diode YPITCH = 1834 / Y-deflection pitch / CALIBRATION KEYWORDS LIVETIME= 33333 / accumulator open time (unit=7.8125 microsec) DEADTIME= 1280 / accumulator close time (unit=7.8125 microsec) MAXCLK = 0 / maximum clock count PA_APER = 0.2462417E+03 / position ang of aperture used with target (deg)NOISELM = 65535 / burst noise rejection limit OFFS_TAB= 'n/a ' / GIMP offsets (post-pipeline processing only) MINWAVE = 4569.102 / minimum wavelength (angstroms) MAXWAVE = 6817.517 / maximum wavelength (angstroms) / STATISTICAL KEYWORDS DATE = '22/04/93 ' / date this file was written (dd/mm/yy) PKTFMT = 96 / packet format code PODPSFF = '0 ' / 0=(no podps fill), 1=(podps fill present) STDCFFF = '0 ' / 0=(no st dcf fill), 1=(st dcf fill present) STDCFFP = '0000 ' / st dcf fill pattern (hex) / APERTURE POSITION RA_APER1= 0.1826357301526E+03 / right ascension of the aperture (deg) DECAPER1= 0.3940588837258E+02 / declination of the aperture (deg) / EXPOSURE INFORMATION EQUINOX = 'J2000 ' / equinox of the celestial coordinate system SUNANGLE= 0.1225114E+03 / angle between sun and V1 axis (deg) MOONANGL= 0.1191039E+03 / angle between moon and V1 axis (deg) SUN_ALT = 0.4515910E+02 / altitude of the sun above Earth's limb (deg) FGSLOCK = 'COARSE ' / commanded FGS lock (FINE,COARSE,GYROS,UNKNOWN) DATE-OBS= '22/04/93 ' / UT date of start of observation (dd/mm/yy) TIME-OBS= '03:12:17 ' / UT time of start of observation (hh:mm:ss) EXPSTART= 0.4909913202874E+05 / exposure start time (Modified Julian Date) EXPEND = 0.4909913505303E+05 / exposure end time (Modified Julian Date) EXPTIME = 0.2499975E+03 / exposure duration (seconds)--calculated EXPFLAG = 'NORMAL ' / Exposure interruption indicator / TARGET & PROPOSAL ID TARGNAME= 'NGC4151-CLOUD2 ' / proposer's target name RA_TARG = 0.1826357301526E+03 / right ascension of the target (deg) (J2000) DEC_TARG= 0.3940588837258E+02 / declination of the target (deg) (J2000) PROPOSID= 4220 / PEP proposal identifier PEP_EXPO= '174.0000000 ' / PEP exposure identifier including sequence LINENUM = '174.000 ' / PEP proposal line number SEQLINE = ' ' / PEP line number of defined sequence SEQNAME = ' ' / PEP define/use sequence name END -------------------------------------------------------------------------------- /fitsblender/tests/FGSf64y0106m_a1f.fits: -------------------------------------------------------------------------------- 1 | SIMPLE = T / data conform to FITS standard BITPIX = -64 / bits per data value NAXIS = 2 / number of data axes NAXIS1 = 0 / length of first data axis NAXIS2 = 0 / length of second data axis EXTEND = T / File may contain standard extensions NEXTEND = 1 / Number of standard extensions GROUPS = F / image is in group format DATE = '2000-11-02' / date this file was written (yyyy-mm-dd) FILENAME= 'f64y0106m_cvt.a1h ' / name of file FILETYPE= 'AST ' / type of data found in data file TELESCOP= 'HST' / telescope used to acquire data INSTRUME= 'FGS ' / identifier for instrument used to acquire data EQUINOX = 2000.0 / equinox of celestial coord. system BSCALE = 1.0 / scale factor for array value to physical value BZERO = 0.0 / physical value for an array value of zero / DATA DESCRIPTION KEYWORDS ROOTNAME= 'F64Y0106M ' / rootname of the observation set PRIMESI = 'FGS1 ' / instrument designated as prime / TARGET INFORMATION TARGNAME= 'NGC4151 ' / proposer's target name RA_TARG = 1.826360416667E+02 / right ascension of the target (deg) (J2000) DEC_TARG= 3.940572222222E+01 / declination of the target (deg) (J2000) / PROPOSAL INFORMATION PROPOSID= 8727 / PEP proposal identifier LINENUM = '01.060 ' / proposal logsheet line number PR_INV_L= 'Schreier ' / last name of principal investigatorPR_INV_F= 'Ethan ' / first name of principal investigator PR_INV_M= 'J. ' / middle name / initial of principal investigat / EXPOSURE INFORMATION ORIENTAT= 234.49153137 / position angle of image y axis (deg. e of n) SUNANGLE= 60.884026 / angle between sun and V1 axis MOONANGL= 82.687187 / angle between moon and V1 axis SUN_ALT = -5.572749 / altitude of the sun above Earth's limb FGSLOCK = 'FINE ' / commanded FGS lock (FINE,COARSE,GYROS,UNKNOWN) DATE-OBS= '2000-10-29' / UT date of start of observation (yyyy-mm-dd) TIME-OBS= '22:02:51' / UT time of start of observation (hh:mm:ss) EXPSTART= 51846.91864656 / exposure start time (Modified Julian Date) EXPEND = 51846.94459390 / exposure end time (Modified Julian Date) EXPTIME = 2241.85003268 / exposure duration (seconds)--calculated EXPFLAG = 'NORMAL ' / Exposure interruption indicator / World Coordinate System and Related Parameters CRPIX1 = 1.0 / x-coordinate of reference pixel CRPIX2 = 0.000000000000E+00 / y-coordinate of reference pixel CRVAL1 = 499471371.0625929 / first axis value at reference pixel CRVAL2 = 0.000000000000E+00 / second axis value at reference pixel CTYPE1 = 'SECONDS ' / the coordinate type for the first axis CTYPE2 = 'GROUP_NUMBER' / Extra dimension axis name CD1_1 = 0.025 / partial of first axis coordinate w.r.t. x CD1_2 = 0.0 / partial of first axis coordinate w.r.t. y CD2_1 = 0.0 / partial of second axis coordinate w.r.t. x CD2_2 = 1.0 / partial of second axis coordinate w.r.t. y DATAMIN = -2142765056.0 / the minimum value of the data DATAMAX = 956825600.0 / the maximum value of the data / GROUP PARAMETER INFORMATION OPSIZE = 0 / PSIZE of original image ODATTYPE= 'INTEGER ' / original datatype: 32 bit integer SDASMGNU= 7 / number of groups in original image ALLG-MAX= 956825600.0 / maximum data value in all groups ALLG-MIN= -2142765056.0 / minimum data value in all groups / GROUP CONTENTS GTYPE1 = 'PMTXA ' / PMT A Fine Counts in X direction GTYPE2 = 'PMTXB ' / PMT B Fine Counts in X direction GTYPE3 = 'PMTYA ' / PMT A Fine Counts in Y direction GTYPE4 = 'PMTYB ' / PMT B Fine Counts in Y direction GTYPE5 = 'SSENCA ' / A Star Selector Position GTYPE6 = 'SSENCB ' / B Star Selector Position GTYPE7 = 'FLAGS ' / FGS STATUS FLAGS PROGRMID= '64Y' / program id (base 36) OBSET_ID= '01' / observation set id OBSERVTN= '06 ' / observation number (base 36) SCHDUNIT= '00303215557_00304010658 ' / OMS Scheduling Unit Processing TelemetNTGTS = 1 / NUMBER OF TARGETS FGSNO = 1 / FGS NUMBER FOR THIS FILE FGSID = '1' / ID OF ASTROMETRY FGS FILL1 = 99999998 / DATA VALUE FOR END-OF-ARRAY FILL FILL2 = 99999999 / DATA VALUE FOR BAD DATA FILL TMFMT = 'FN' / TELEMETRY FORMAT (AF, AN, FF, FN, HF, HN) FTYPE = 'RAW ' / DATA TYPE (RAW = RAW DATA, SDAS = PROCESSED DATPASTMODE= 'TRANSFER' / PREDICTED ASTROMETRY MODE AASTMODE= 'TEST ' / ACTUAL ASTROMETRY PROCESSING MODE DATAFILS= T / DOES FILE SET CONTAIN DATA FILES? (T/F) ACQRESLT= 'Y' / RESULT OF ACQUISITION PROCEDURE SRCHTIME= 51846.91891855 / start time of target search (MJD) BADMINFR= 0.04 / PERCENT BAD MINOR FRAMES ENDFOUND= T / PROPER END OF OBS FOUND IN DATA (T/F) / CALIBRATION INFORMATION CALECDR = F / ENCODER ERROR CORRECTION APPLIED CALSIDTR= F / DISTORTION CORRECTION APPLIED CALPHOTO= F / PHOTOMETRIC CALIBRATION APPLIED CALCOLOR= F / COLOR EFFECT CORRECTION APPLIED CALWEDGE= F / FILTER WEDGE CORRECTION APPLIED CALTEMPR= F / TEMPERATURE EFFECT CORRECTION APPLIED CALDIFAB= F / DIFFERENTIAL ABERRATION CORRECTION APPLIED CALCYCLE= F / CYCLING EFFECTS CORRECTION APPLIED TIMED = F / DATA WITH FINE ERROR INTERVAL TIMES COMPUTED CENTROID= F / CENTROIDED FLAG PUTS = ' 2000303202622' / PRED UT START OF OBS SET (YYYYDDDHHMMSS) PCCS = -1640150441 / PRED S/C CLOCK CNT, START OBS SET PUTE = ' 2000303225015' / PRED UT END OF OBS SET (YYYYDDDHHMMSS) PCCE = -1640081377 / PRED S/C CLOCK CNT, END OBS SET UTC0_HI = 0 / UTC(0) MOST SIGNIFICANT 32 BITS UTC0_LO = 0 / UTC(0) LEAST SIGNIFICANT 32 BITS T0 = 0 / T(0) R0 = 0.0000000000000E+00 / R(0) D0 = 0.0000000000000E+00 / D(0) PUTOS = ' 2000303220251' / PRED UT OBS START (YYYYDDDHHMMSS) PSC_CLK = 0 / PRED S/C CLK CNT AT OBS START PDUR_OB = 2243.00000000 / PRED DURATION OF OBS (SEC) AUTOS = ' 2000303220251.063' / ACTUAL UT OBS START (YYYYDDDHHMMSS) ASC_CLK = -1640104128 / ACTUAL S/C CLK CNT AT OBS START ADUR_OB = 2241.85003268 / ACTUAL DURATION OF OBS (SEC) PRAV1 = 182.84880000 / PRED RA, V1 AXIS, OBSET START (DEG) PDECV1 = 39.52019000 / PRED DEC, V1 AXIS, OBSET START (DEG) PROLV3 = 215.38540000 / PRED ROLL, V3 AXIS, OBSET START (DEG) PRATGT = 182.6360400000000 / PRED RA OF TARGET (DEG) PDECTGT = 39.4057200000000 / PRED DEC OF TARGET (DEG) FGSREFV2= 720.73999023 / FGS aperture reference V2 position (arcsec) FGSREFV3= -7.34999990 / FGS aperture reference V3 position (arcsec) FGS_PAV3= 144.4915328615052 / FGS aperture position angle of V3-axis (deg) FGSOFFV2= 0.00000000 / V2 offset from the FGS aper ref position (arcseFGSOFFV3= 0.00000000 / V3 offset from the FGS aper ref position (arcsePX_POS = -690.99600000 / PRED HST X-COMP POS, OBS START (KM) PY_POS = 6882.43700000 / PRED HST Y-COMP POS, OBS START (KM) PZ_POS = 773.63500000 / PRED HST Z-COMP POS, OBS START (KM) PX_VEL = -6.62672000 / PRED HST X-COMP VEL WRT EARTH (KM/SEC) PY_VEL = -1.07140000 / PRED HST Y-COMP VEL WRT EARTH (KM/SEC) PZ_VEL = 3.51252000 / PRED HST Z-COMP VEL WRT EARTH (KM/SEC) PVEL_AB = 16.86952000 / PRED VEL ABERRATION (ARCSEC) PH_PRLX = 0.0000000000000 / PRED HORIZ PARALLAX (ARCSEC) PA_PRLX = 0.0000000000000 / PRED ANNUAL PARALLAX (ARCSEC) DIST = 0.0000000000000 / DISTANCE TO TARGET (KM) PERSSA = 336558 / PRED SSA ENCODER READING OF THIS FGS PERSSB = 706953 / PRED SSB ENCODER READING OF THIS FGS CAVG_TIM= 0.02500000 / COMMANDED AVG TIME IN AST FGS (SEC) AAVG_TIM= 0.02500000 / ACTUAL AVG TIME IN AST FGS (SEC) TGT_MAG = 0.12400000E+02 / TARGET MAGNITUDE CAST_FLT= 'F583W ' / COMMANDED AST FGS FILTER POS AAST_FLT= 'Clr/583W' / ACTUAL AST FGS FILTER POS TARGETID= '8727_10 ' / TARGET IDENTIFICATION PSTARID = -1 / PREDICTED STAR IDENTIFIER (-1 - 255) ASTARID = -1 / ACTUAL STAR IDENTIFIER (-1 - 255) ASTARNO = -1 / POSITION OF ACTUAL GUIDE STAR ON LIST (-1 - 20) / K FACTORS K1X = 0.0309753656250 / K-FACTOR FOR THIS FGS (ARCMIN) K3X = 0.5523829656250 / K-FACTOR FOR THIS FGS K1Y = 0.0398828218750 / K-FACTOR FOR THIS FGS (ARCMIN) K3Y = 0.4767382281250 / K-FACTOR FOR THIS FGS K6 = 2.15312500E+01 / K-FACTOR FOR THIS FGS K7 = 3.71093750E-01 / K-FACTOR FOR THIS FGS K8 = 8.69200000E+04 / K-FACTOR FOR THIS FGS KA = 0.00000000E+00 / K-FACTOR FOR THIS FGS (ARCMIN) KG = -2.5600000000000 / K-FACTOR FOR THIS FGS (ARCMIN) KJ = 2.50000000E-02 / K-FACTOR FOR THIS FGS (ARCMIN) KY = 1.20000000E+01 / K-FACTOR FOR THIS FGS (ARCMIN**2/SEC) K10 = 24.0000000000000 / K-FACTOR FOR THIS FGS K13 = 27.0000000000000 / K-FACTOR FOR THIS FGS K14 = 1.3500000000000 / K-FACTOR FOR THIS FGS K15 = 0.00000000E+00 / K-FACTOR FOR THIS FGS K16 = 1.23356250E+04 / K-FACTOR FOR THIS FGS (ARCSEC/SEC) KB = 0.4321060062337 / K-FACTOR FOR THIS FGS (ARCMIN) KD = 0.0002825000000 / K-FACTOR FOR THIS FGS (ARCMIN) KZ = 0.0000000000000 / K-FACTOR FOR THIS FGS (ARCMIN) K5 = 130.0000000000000 / K-FACTOR FOR THIS FGS KM = 0.1650000000000 / K-FACTOR FOR THIS FGS (ARCMIN) KN = 0.4140000000000 / K-FACTOR FOR THIS FGS (ARCMIN) KE = 0.00000000E+00 / K-FACTOR FOR THIS FGS (ARCMIN) KF = 0.00000000E+00 / K-FACTOR FOR THIS FGS (ARCSEC) K30 = 1.40000000E+01 / K-FACTOR FOR THIS FGS K31 = 2.05600000E+03 / K-FACTOR FOR THIS FGS (ARCSEC/SEC) K0X = 0.00000000E+00 / K-FACTOR FOR THIS FGS (ARCMIN) K11 = 3.0000000000000 / K-FACTOR FOR THIS FGS K0Y = 0.00000000E+00 / K-FACTOR FOR THIS FGS (ARCMIN) K18 = 4.00000000E+00 / K-FACTOR FOR THIS FGS (ARCMIN) K9 = 0.00000000E+00 / K-FACTOR FOR THIS FGS K20 = 0.00000000E+00 / K-FACTOR FOR THIS FGS (ARCSEC) K21 = 0.00000000E+00 / K-FACTOR FOR THIS FGS (ARCSEC) K22 = 0.00000000E+00 / K-FACTOR FOR THIS FGS K23 = 0.00000000E+00 / K-FACTOR FOR THIS FGS K24 = 0.00000000E+00 / K-FACTOR FOR THIS FGS K25 = 0.00000000E+00 / K-FACTOR FOR THIS FGS KH = 1.35000000E+01 / K-FACTOR FOR THIS FGS (DEG) / TEMPERATURE SENSOR COUNTS TEMP21 = 124.00000000 / TEMPERATURE SENSOR 2 COUNTS FOR FGS 1 TEMP31 = 115.00000000 / TEMPERATURE SENSOR 3 COUNTS FOR FGS 1 TEMP41 = 123.00000000 / TEMPERATURE SENSOR 4 COUNTS FOR FGS 1 TEMP61 = 125.00000000 / TEMPERATURE SENSOR 6 COUNTS FOR FGS 1 TEMP71 = 125.00000000 / TEMPERATURE SENSOR 7 COUNTS FOR FGS 1 TEMP91 = 24.00000000 / TEMPERATURE SENSOR 9 COUNTS FOR FGS 1 / AVERAGES AVGXAPMT= 0.00000000E+00 / AVG X,A PMT COUNTS (PER FE TIME) AVGXBPMT= 0.00000000E+00 / AVG X,B PMT COUNTS (PER FE TIME) AVGYAPMT= 0.00000000E+00 / AVG Y,A PMT COUNTS (PER FE TIME) AVGYBPMT= 0.00000000E+00 / AVG Y,B PMT COUNTS (PER FE TIME) AVGFESX = 0.00000000E+00 / AVG FES IN X (ARCSEC) AVGFESY = 0.00000000E+00 / AVG FES IN Y (ARCSEC) AVGA_BX = 0.00000000E+00 / AVG IN X (COUNTS) AVGA_BY = 0.00000000E+00 / AVG IN Y (COUNTS) AVGINT = 0.00000000E+00 / ACT AVG TIME COVERED BY FINE ERR AVG TIME INT ( END -------------------------------------------------------------------------------- /fitsblender/tests/HRSz0yd020fm_c2f.fits: -------------------------------------------------------------------------------- 1 | SIMPLE = T / Standard FITS format BITPIX = -64 / 32 bit IEEE floating point numbers NAXIS = 2 / Number of axes NAXIS1 = 0 NAXIS2 = 0 EXTEND = T / There may be standard extensions OPSIZE = 960 / PSIZE of original image ORIGIN = 'ST-DADS ' / Institution that originated the FITS file FITSDATE= ' 2/02/94' / Date FITS file was created FILENAME= 'z0yd020fm_cvt.c2h' / Original GEIS header file name with _cvt ODATTYPE= 'FLOATING' / Original datatype SDASMGNU= 4 / GCOUNT of original image DADSFILE= 'Z0YD020FM.C2F' / DADSCLAS= 'CAL ' / DADSDATE= '02-FEB-1994 16:52:41' / CRVAL1 = 1.0000000000000 / CRPIX1 = 1.0000000000000 / CD1_1 = 1.0000000000000 / DATAMIN = 2.6947009822641E-14 / DATAMAX = 2.6849890041349E-13 / RA_APER = 182.63579607520 / DEC_APER= 39.405782030150 / FILLCNT = 0 / ERRCNT = 0 / PKTTIME = 48807.889156621 / CTYPE1 = 'PIXEL ' / OBSRPT = 0 / OBSINT = 0 / YDEF = 2820 / XDEF = 2048 / SAMPLE = 28.673919677734 / DELTAS = 0.25052589178085 / LINE = 320.93301391602 / EXPOSURE= 82.367996215820 / BINID = 2 / CARPOS = 50684 / ZSCOEF1 = 28.673919677734 / ZSCOEF2 = 0.12425660341978 / ZSCOEF3 = 0.00000000000000 / ZSCOEF4 = 1.0021040439606 / / GROUP PARAMETERS: OSS / GROUP PARAMETERS: PODPS / HRS DATA DESCRIPTOR KEYWORDS INSTRUME= 'HRS ' / instrument in use ROOTNAME= 'Z0YD020FM ' / rootname of the observation set FILETYPE= 'ERR ' / shp, udl, ext, sci, img, wav, flx BUNIT = 'ERGS/CM**2/S/A' / brightness units / HRS PATTERN KEYWORDS NBINS = 6 / number of substep bins in this pattern NINIT = 4 / number of initial deflections RPTOBS = 0 / expected number of observation repeats INTOBS = 0 / expected number of intermediate readouts BINID1 = 2 / bin id of substep 1 (0 = no data, 7 = dark cur)BINID2 = 2 / bin id of substep 2 (1 = star small aperture) BINID3 = 2 / bin id of substep 3 (2 = star large aperture) BINID4 = 2 / bin id of substep 4 (3 = upper interorder) BINID5 = 3 / bin id of substep 5 (4 = lower interorder) BINID6 = 4 / bin id of substep 6 (5 = sky small aperture) BINID7 = 0 / bin id of substep 7 (6 = sky large aperture) IXDEF1 = 2048 / initial x deflection 1 IXDEF2 = 2056 / initial x deflection 2 IXDEF3 = 2064 / initial x deflection 3 IXDEF4 = 2072 / initial x deflection 4 IXDEF5 = 0 / initial x deflection 5 IYDEF1 = 2825 / initial y deflection 1 IYDEF2 = 2825 / initial y deflection 2 IYDEF3 = 2825 / initial y deflection 3 IYDEF4 = 2825 / initial y deflection 4 IYDEF5 = 0 / initial y deflection 5 HOFF1 = 2 / horizontal offset bin 2 HOFF2 = 4 / horizontal offset bin 3 HOFF3 = 6 / horizontal offset bin 4 HOFF4 = 0 / horizontal offset bin 5 HOFF5 = 0 / horizontal offset bin 6 HOFF6 = 0 / horizontal offset bin 7 VOFF1 = 0 / vertical offset bin 2 VOFF2 = 0 / vertical offset bin 3 VOFF3 = 0 / vertical offset bin 4 VOFF4 = -96 / vertical offset bin 5 VOFF5 = 96 / vertical offset bin 6 VOFF6 = 0 / vertical offset bin 7 RPTCD1 = 1 / repeat code bin 2 (0 = no def offset) RPTCD2 = 1 / repeat code bin 3 (1 = every time) RPTCD3 = 1 / repeat code bin 4 (2 = every 2nd time) RPTCD4 = 8 / repeat code bin 5 (4 = every 4th time) RPTCD5 = 8 / repeat code bin 6 (8 = every 8th time) RPTCD6 = 0 / repeat code bin 7 ZXDCALU = 0.0000000E+00 / x comp null deflection cal correction ZXDCALP = 0.0000000E+00 / proportional x-deflection cal correction ZYDCALU = 0.0000000E+00 / y comp null deflection cal correction ZYDCALP = 0.0000000E+00 / proportional y-deflection cal correction INFOB = 34 / deflection pairs/substep pattern INFOC = 8 / largest repeat code in the substep pattern SCIDMP = -1 / intermediate data dump (-1 = nodump) MAXGSS = 52 / maximum substep patterns/observation MERGED = 0 / number of merged spectra in this pattern STEPPATT= 5 / step pattern sequence STEPTIME= 0.2000000E+00 / integration time at step pattern position (sec)FP_SPLIT= 'FOUR ' / fp-split (NO, TWO, FOUR, DSTWO, DSFOUR) COMB_ADD= 'FOUR ' / comb-addition (NO, TWO, FOUR, DSTWO, DSFOUR) FINCODE = 102 / observation termination code DOPPLER = 'ON ' / on-board doppler compensation (ON, OFF) METER = 'N ' / exposure meter enabled / CALIBRATION FLAGS AND INDICATORS OBSMODE = 'ACCUMULATION ' / observation mode DETECTOR= 2 / detector in use (1-2) GRATING = 'G160M ' / grating,echelle or mirror in use APERTURE= 'LSA ' / aperture name / CALIBRATION REFERENCE FILES DIOHFILE= 'zref$c551543az.r0h' / diode response header file PHCHFILE= 'zref$bcc11275z.r1h' / photocathode response header file VIGHFILE= 'zref$b9i1428ez.r2h' / vignetting response header file ABSHFILE= 'zref$b9i1427nz.r3h' / absolute flux header file NETHFILE= 'zref$b9i1429hz.r4h' / absolute flux wavelength net header file DQIHFILE= 'zref$c5516031z.r5h' / data quality initialization header file CCR1 = 'ztab$aau13518z.cz1' / photocathode line mapping parameters table CCR2 = 'ztab$ba412190z.cz2' / photocathode sample parameters table CCR3 = 'ztab$bc41634lz.cz3' / detector parameters table CCR4 = 'ztab$a3d1045dz.cz4' / wavelength ranges table CCR5 = 'ztab$bc41510sz.cz5' / spectral order constants table CCR6 = 'ztab$c3v1133gz.cz6' / dispersion constants table CCR7 = 'ztab$ba41219bz.cz7' / thermal constants table CCR8 = 'ztab$bb110387z.cz8' / incidence angle coefficients table CCR9 = 'ztab$bb11038hz.cz9' / echelle interpolation constants table CCRA = 'ztab$bb11038kz.cza' / echelle non-interpolation constants table CCRB = 'ztab$bc41437gz.czb' / scattered light correction factors CCG2 = 'mtab$a3d1145ly.cmg' / paired-pulse correction table / CALIBRATION SWITCHES DQI_CORR= 'COMPLETE' / data quality initialization EXP_CORR= 'COMPLETE' / division by exposure time DIO_CORR= 'COMPLETE' / diode response correction PPC_CORR= 'COMPLETE' / paired-pulse correction MAP_CORR= 'COMPLETE' / mapping function DOP_CORR= 'COMPLETE' / doppler compensation PHC_CORR= 'COMPLETE' / removal of photocathode nonuniformity VIG_CORR= 'COMPLETE' / removal of vignetting nonuniformity MER_CORR= 'COMPLETE' / merging of substep bins MDF_CORR= 'OMIT ' / median filter of background spectra MNF_CORR= 'OMIT ' / mean filter of background spectra PLY_CORR= 'COMPLETE' / polynomial smoothing of background spectra BCK_CORR= 'COMPLETE' / background removal ADC_CORR= 'COMPLETE' / application of dispersion constants IAC_CORR= 'COMPLETE' / incidence angle correction ECH_CORR= 'PERFORM ' / correction for echelle ripple FLX_CORR= 'COMPLETE' / absolute flux calibration HEL_CORR= 'COMPLETE' / conversion to heliocentric wavelengths VAC_CORR= 'OMIT ' / vacuum to air correction / CALIBRATION KEYWORDS DOPZER = 0.4880782186206E+05 / doppler shift zero phase time (Mod Julian Date)DOPMAG = 0.4000000E+01 / doppler shift scaling correction magnitude SCLAMP = 0 / spectral calibration lamp ZLCOEF1 = 224.843 / line mapping function L0 ZLCOEF2 = 0.1244689 / line mapping function A SPORDER = 1 / spectral order MINWAVE = 1529.678388896864 / minimum wavelength (angstroms) MAXWAVE = 1564.917875354415 / maximum wavelength (angstroms) / STATISTICAL KEYWORDS DATE = '05/07/92 ' / date this file was written (dd/mm/yy) PODPSFF = '0 ' / 0=(no podps fill), 1=(podps fill present) STDCFFF = '0 ' / 0=(no st dcf fill), 1=(st dcf fill present) STDCFFP = '0000 ' / st dcf fill pattern (hex) PKTFMT = 154 / packet format code / CDBS KEYWORDS ZFSPYBF = 2 / control bits for spectrum y-balance ZFXMAPC = 2201 / x deflection of the center of field map ZFYMAPC = 1703 / y deflection of the center of fiels map ZDEBTF = 0.4000000E-12 / DEB front post amp. temperature ZDEBTR = 0.3500000E+02 / DEB rear post amp temperature ZDETT1 = 0.1406250E+02 / det. 1 temperature ZDETT2 = 0.1785714E+02 / det. 2 temperature ZDRT = 0.4333333E+01 / digicon radiator tem ZDT11 = -0.5519900E+02 / det. 1 detector shield temperature #1 ZDT12 = -0.5491700E+02 / det. 2 detector shield temperature #1 ZET11 = -0.5519900E+02 / det. 1 enclosure temperature #1 ZET31 = -0.5519900E+02 / det. 1 enclosure temperature #3 ZFIAT = 0.7666667E+01 / fixture interface A temperature ZFIBT = 0.1666667E+01 / fixture interface B temperature ZFICT = 0.4666667E+01 / fixture interface C temperature ZHDC1 = -0.1522500E+04 / det. 1 horizontal deflection current ZHDC2 = 0.2021731E+04 / det. 2 horizontal deflection current ZHVPST1 = -0.5375814E+02 / det. 1 high voltage power supply temperature ZHVPST2 = 0.1952812E+02 / det. 2 high voltage power supply temperature ZMEBT1 = 0.2142857E+02 / main elec box 1 temperature ZMEBT2 = 0.1714286E+02 / main elec box 2 temperature ZOBBT = 0.2142857E+02 / optical bench bulkhead temperature ZOBT11 = -0.5519900E+02 / det. 1 optical bench temperature #1 ZPABT1 = 0.2035714E+02 / det. 1 preamp assembly box temperature ZPABT2 = 0.4250000E+02 / det. 2 preamp assembly box temperature ZPCC1 = 0.0000000E+00 / det. 1 photo cathode current ZPCC2 = 0.8487564E+02 / det. 2 photo cathode current ZPCV1 = 0.0000000E+00 / det. 1 photo cathode high voltage ZPCV2 = 0.2197059E+02 / det. 2 photo cathode high voltage ZRIUTA = 0.1807692E+02 / RIU A internal temperature ZRIUTB = 0.2000000E+02 / RIU B internal temperature ZSCT1 = -0.5375814E+02 / det. 1 spectral calibration lamp temperature ZSCT2 = 0.2223059E+02 / det. 2 spectral calibration lamp temperature ZTST11 = -0.5519900E+02 / det. 1 thermal shelf temperature #1 ZCST = 0.2285714E+02 / carrousel stator temperature ZSPYBLU = -5 / spectrum y-balance offset / APERTURE POSITION RA_APER1= 0.1826357960752E+03 / right ascension of the aperture (deg) DECAPER1= 0.3940578203015E+02 / declination of the aperture (deg) / EXPOSURE INFORMATION EQUINOX = 'J2000 ' / equinox of the celestial coordinate system SUNANGLE= 0.6694343E+02 / angle between sun and V1 axis (deg) MOONANGL= 0.4171095E+02 / angle between moon and V1 axis (deg) SUN_ALT = 0.5403080E+02 / altitude of the sun above Earth's limb (deg) FGSLOCK = 'COARSE ' / commanded FGS lock (FINE,COARSE,GYROS,UNKNOWN) DATE-OBS= ' 4/07/92 ' / UT date of start of observation (dd/mm/yy) TIME-OBS= '21:14:28 ' / UT time of start of observation (hh:mm:ss) EXPSTART= 0.4880788504638E+05 / exposure start time (Modified Julian Date) EXPEND = 0.4880790229464E+05 / exposure end time (Modified Julian Date) EXPTIME = 0.1414400E+04 / exposure duration (seconds)--calculated EXPFLAG = 'NORMAL ' / Exposure interruption indicator / TARGET & PROPOSAL ID TARGNAME= 'NGC4151 ' / proposer's target name RA_TARG = 0.1826357960752E+03 / right ascension of the target (deg) (J2000) DEC_TARG= 0.3940578203015E+02 / declination of the target (deg) (J2000) PEQUINOX= 'B1950.0 ' / proposed equinox of celestial coordinate system PROPOSID= 1141 / PEP proposal identifier PEP_EXPO= '6.4000000 ' / PEP exposure identifier including sequence LINENUM = '6.400 ' / PEP proposal line number SEQLINE = ' ' / PEP line number of defined sequence SEQNAME = ' ' / PEP define/use sequence name END --------------------------------------------------------------------------------