pax_global_header00006660000000000000000000000064150223772400014514gustar00rootroot0000000000000052 comment=b7628b9b4f3d7b76b17909dbf8d76afba74934c2 asdf-wcs-schemas-0.5.0/000077500000000000000000000000001502237724000146465ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/.flake8000066400000000000000000000003471502237724000160250ustar00rootroot00000000000000# this file exists to support an editable PEP517 install and for `flake8` (https://github.com/PyCQA/flake8/issues/234) [flake8] max-line-length = 120 extend-ignore = E203 exclude = .git, __pycache__, build, dist, eggs, *.egg, .tox asdf-wcs-schemas-0.5.0/.gitattributes000066400000000000000000000001101502237724000175310ustar00rootroot00000000000000* text eol=lf # Don't mess with these files *.asdf binary *.png binary asdf-wcs-schemas-0.5.0/.github/000077500000000000000000000000001502237724000162065ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/.github/dependabot.yml000066400000000000000000000005401502237724000210350ustar00rootroot00000000000000version: 2 updates: # Maintain dependencies for GitHub Actions (main) - package-ecosystem: "github-actions" directory: "/" target-branch: "main" schedule: interval: "weekly" # Maintain dependencies for pip (main) - package-ecosystem: "pip" directory: "/" target-branch: "main" schedule: interval: "weekly" asdf-wcs-schemas-0.5.0/.github/workflows/000077500000000000000000000000001502237724000202435ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/.github/workflows/changelog.yml000066400000000000000000000010351502237724000227140ustar00rootroot00000000000000name: Changelog on: pull_request: types: [labeled, unlabeled, opened, synchronize, reopened] jobs: changelog: name: Confirm changelog entry runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 submodules: true - name: Grep for PR number in CHANGES.rst run: grep -P '\[[^\]]*#${{github.event.number}}[,\]]' CHANGES.rst if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-changelog-entry-needed') }} asdf-wcs-schemas-0.5.0/.github/workflows/ci.yml000066400000000000000000000053011502237724000213600ustar00rootroot00000000000000name: CI on: push: branches: - main tags: - '*' pull_request: schedule: # Weekly Monday 9AM build - cron: '0 9 * * 1' jobs: tox: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - name: Python 3.13 Schema validation tests python-version: '3.13' os: ubuntu-latest toxenv: py313 - name: Python 3.12 Schema validation tests python-version: '3.12' os: ubuntu-latest toxenv: py312 - name: Python 3.11 Schema validation tests python-version: '3.11' os: ubuntu-latest toxenv: py311 - name: Python 3.10 Schema validation tests python-version: '3.10' os: ubuntu-latest toxenv: py310 - name: Python 3.9 Schema validation tests python-version: 3.9 os: ubuntu-latest toxenv: py39 - name: Twine check python-version: 3.11 os: ubuntu-latest toxenv: twine - name: Code style checks python-version: 3.11 os: ubuntu-latest toxenv: codestyle - name: macOS python-version: 3.13 os: macos-latest toxenv: py313 - name: Windows python-version: 3.13 os: windows-latest toxenv: py313 steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install tox run: | python -m pip install --upgrade pip pip install tox - name: Run tox run: tox -e ${{ matrix.toxenv }} gwcs-dev: name: Run gwcs development tests runs-on: ubuntu-latest steps: - name: Checkout asdf-wcs-schemas uses: actions/checkout@v4 with: fetch-depth: 0 path: asdf-wcs-schemas - name: Checkout gwcs dev uses: actions/checkout@v4 with: fetch-depth: 0 repository: spacetelescope/gwcs path: gwcs - name: Set up Python 3.13 uses: actions/setup-python@v5 with: python-version: 3.13 - name: Install asdf-wcs-schemas run: cd asdf-wcs-schemas && pip install . - name: Install gwcs run: cd gwcs && pip install -e .[test] - name: Pip Freeze run: pip freeze - name: Run gwcs development tests run: cd gwcs && pytest asdf-wcs-schemas-0.5.0/.github/workflows/publish-to-pypi.yml000066400000000000000000000005741502237724000240410ustar00rootroot00000000000000name: Publish to PyPI on: release: types: [released] workflow_dispatch: jobs: publish: uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v1 with: upload_to_pypi: ${{ (github.event_name == 'release') && (github.event.action == 'released') }} secrets: pypi_token: ${{ secrets.PYPI_PASSWORD_ASDF_MAINTAINER }} asdf-wcs-schemas-0.5.0/.gitignore000066400000000000000000000011371502237724000166400ustar00rootroot00000000000000# Compiled files *.py[co] *.a *.o *.so __pycache__ # Ignore .c files by default to avoid including generated code. If you want to # add a non-generated .c extension, use `git add -f filename.c`. *.c # Other generated files */*/_version.py */cython_version.py htmlcov .coverage MANIFEST .pytest_cache .tox # Sphinx docs/api docs/_build docs/generated # Eclipse editor project files .project .pydevproject .settings # Packages/installer info *.egg *.eggs *.egg-info dist build eggs parts bin var sdist develop-eggs .installed.cfg distribute-*.tar.gz # Other .*.swp *~ # Mac OSX .DS_Store .idea .vscode asdf-wcs-schemas-0.5.0/.pre-commit-config.yaml000066400000000000000000000026521502237724000211340ustar00rootroot00000000000000repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: check-added-large-files - id: check-ast - id: check-case-conflict - id: check-yaml args: ["--unsafe"] - id: check-toml - id: check-merge-conflict - id: check-symlinks - id: debug-statements - id: detect-private-key - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/pre-commit/pygrep-hooks rev: v1.10.0 hooks: - id: python-check-blanket-noqa - id: python-check-mock-methods - id: rst-directive-colons - id: rst-inline-touching-normal - id: text-unicode-replacement-char - repo: https://github.com/asottile/yesqa rev: v1.5.0 hooks: - id: yesqa - repo: https://github.com/asottile/pyupgrade rev: v3.15.0 hooks: - id: pyupgrade args: ["--py38-plus"] exclude: "asdf/extern/.*" - repo: https://github.com/PyCQA/autoflake rev: v2.2.1 hooks: - id: autoflake - repo: https://github.com/pycqa/isort rev: 5.12.0 hooks: - id: isort - repo: https://github.com/psf/black rev: 23.10.1 hooks: - id: black - repo: https://github.com/asottile/blacken-docs rev: 1.16.0 hooks: - id: blacken-docs - repo: https://github.com/PyCQA/flake8 rev: 6.1.0 hooks: - id: flake8 exclude: "docs" - repo: https://github.com/PyCQA/bandit rev: 1.7.5 hooks: - id: bandit args: ["-c", "bandit.yaml"] asdf-wcs-schemas-0.5.0/.readthedocs.yml000066400000000000000000000003621502237724000177350ustar00rootroot00000000000000version: 2 build: os: ubuntu-20.04 apt_packages: - graphviz tools: python: "3.9" sphinx: configuration: docs/conf.py python: install: - method: pip path: . extra_requirements: - docs formats: all asdf-wcs-schemas-0.5.0/CHANGES.rst000066400000000000000000000020741502237724000164530ustar00rootroot000000000000000.5.0 (2025-06-11) ------------------ - Update documentation configuration settings to be consistent with other asdf subprojects [#65] - Fix typo in latex logo path and footer copyright author text [#66] - Adds global navigation in docs top bar [#67] - Update schemas to prefer tag over ref [#68] - Add a schema for imaging WCS as defined by the FITS WCS standard. [#72] 0.4.0 (2024-03-09) ------------------ - Update schemas for ASDF standard 1.6.0. [#59] 0.3.0 (2023-11-28) ------------------ - Add gwcs-1.2.0 manifest with new wcs-1.2.0 schema. [#56] 0.2.0 (2023-09-11) ------------------ - Update documentation to be consistent with rest of ASDF. [#12] - Switch over to ``pyproject.toml`` for build configuration. [#20] - Remove duplicate tag versions in gwcs manifest 1.0.0 (adding 1.0.1) and add 1.1.0 with only the newest tags [#46] 0.1.1 (2021-12-03) ------------------ - Update manifest URI authority to asdf-format.org. [#5] 0.1.0 (2021-11-24) ------------------ - Initial schemas for ``gwcs``. [#1] - Update ``$ref`` targets from tag URIs to schema URIs. [#3] asdf-wcs-schemas-0.5.0/CODE_OF_CONDUCT.md000066400000000000000000000062651502237724000174560ustar00rootroot00000000000000# Spacetelescope Open Source Code of Conduct 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. As members of the community, - 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. - 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. - 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. - 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. - 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. - 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. 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. Parts of this code of conduct have been adapted from the Astropy and Numfocus codes of conduct. http://www.astropy.org/code_of_conduct.html https://www.numfocus.org/about/code-of-conduct/ asdf-wcs-schemas-0.5.0/CONTRIBUTING.rst000066400000000000000000000015251502237724000173120ustar00rootroot00000000000000Reporting Issues ---------------- Feature requests and bug reports for the Python implementation can be posted at `asdf-wcs-schemas's github page `_. Contributing Code and Documentation ----------------------------------- We love contributions! If you're interested in contributing to this project, please open a Pull Request or issue and we would be glad to work with you. .. note:: ASDF-wcs-schemas is mostly a collection of schemas for the ASDF format. This means that in addition to contributing a schema, you will likely also need some code to actually handle serializing and deserializing your data. Typically, this code will need to be contributed to :ref:`GWCS `, which is a separate project. Please link your pull requests and issues between the two projects. asdf-wcs-schemas-0.5.0/LICENSE000066400000000000000000000026671502237724000156660ustar00rootroot00000000000000Copyright (C) 2021 Association of Universities for Research in Astronomy (AURA) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of AURA and its representatives may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. asdf-wcs-schemas-0.5.0/README.md000066400000000000000000000013131502237724000161230ustar00rootroot00000000000000# asdf-wcs-schemas ![CI](https://github.com/asdf-format/asdf-wcs-schemas/workflows/CI/badge.svg) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) This package provides ASDF schemas for validating WCS tags. Users should not need to install this directly; instead, install an implementation package such as gwcs, which includes asdf-wcs-schemas as a dependency. asdf-wcs-schemas-0.5.0/bandit.yaml000066400000000000000000000002061502237724000167710ustar00rootroot00000000000000exclude_dirs: - .eggs - .git - .pytest_cache - .tox - reference_files - tests - build - dist - docs - __pycache__ asdf-wcs-schemas-0.5.0/docs/000077500000000000000000000000001502237724000155765ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/docs/Makefile000066400000000000000000000112071502237724000172370ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest #This is needed with git because git doesn't create a dir if it's empty $(shell [ -d "_static" ] || mkdir -p _static) help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR) -rm -rf api -rm -rf generated html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Astropy.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Astropy.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/Astropy" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Astropy" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." make -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." asdf-wcs-schemas-0.5.0/docs/_static/000077500000000000000000000000001502237724000172245ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/docs/_static/custom.css000066400000000000000000000015251502237724000212530ustar00rootroot00000000000000div.admonition { transition: width 0.5s; -webkit-transition: width 0.5s; overflow: hidden; } div.admonition:active { width: 150% } div.note:active { width: 100% } div.highlight-yaml { transition: width 0.5s; -webkit-transition: width 0.5s; overflow: hidden; } div.highlight-yaml:active { width: 150% } div.highlight-default { transition: width 0.5s; -webkit-transition: width 0.5s; overflow: hidden; } div.highlight-default:active { width: 150% } div.highlight-python { transition: width 0.5s; -webkit-transition: width 0.5s; overflow: hidden; } div.highlight-python:active { width: 150% } /* Top Banner Navigation -------------------------------------------------- */ .announcement-content a { padding-right: 1em; } .announcement-content a:hover { color: fuchsia; } asdf-wcs-schemas-0.5.0/docs/_static/images/000077500000000000000000000000001502237724000204715ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/docs/_static/images/favicon.ico000066400000000000000000001245161502237724000226230ustar00rootroot00000000000000PNG  IHDR|^=% pHYs  ~ IDATx}=Uic%_"sea2V`e74ZHH\KV"g-Ea5Bk%=Q<լ|b֘z쮍H|`2=_7/3ԩ[>}}_騻|SU1DSe 7ƬNKD%Jt0pYU*h ,<˲u4~OD%J(>,(`!(b- R%J(QD[Yͳ,+TPQUOP,ˁƘFM,/D%Jm >D8&YiE5pg&%J(QDBȲlo@! GKBM wh[.Ӥ I(QD; $NaYc\i T(h܅3cjgIxD%Jtڂ,Jwni_;.RNij:nF!rD!I4 $z13/%J(ѵk >PegY6 v@ FAȁ{!驀Ө@(QDn+C| TvtM/" |~47ZcR`>H%J(Qۍ "ҁ h%]Oi%v:ݦ9C_t AN 13զD%JҵXF\, g̱&\kYNuoZ99j9[Ku]t/w%J(ѵ>Jo*ݨ`XP|ܣCx 7%T*iO(QD]!¼  Cj:fYq?^n[#Bq@b# `aYy$(QDnG:ieY;oAp>3 5ρZF~8?<xdYVdYQ%J(ѵX>˲QNMPPgYVF+-VK8kcL+߹?fhS  qqt7K(QD4P`gѴkȲ 9v:nM/}GzC9v6K#ihD4psй (QD+$КcZ3T.8 X^fY6u7ZTchJ^crSkBbJU%J(QXF 6f>"k弖;vBWw[VIu7wXQ+  PJ5 f"G,įQye˾gӑ(QۃN|cY-]L!- 3@Xx~{$\6ڊ 8Z`M9ĝ hRYd- t 9 ʲY0MCDKgYR7.ImЗ$\{&6MZDN|Fӑc2ea, 9Y/!cFW|6 yW.p%q>$xLQe"˲Vcfjђ;WAk]%rTY3^~>{)ZЭTǔm&E(Q=IQZx.pIaN/@W%~pvֵ\;ECnYJG'4!i ]0xQGA>[%Jt.#`\ #3JDpO13|aJ<i^ C9x Q7 fśb&. xh3Tf_3eL4!bD& }+lZ5h7w朱Y_]= Z`|Э ]0Xi%J1'}U 7jj98QDgI 8fvߖ/뀔Xrڜ{-k*~x?ǂ##YbSjek&tc=Z8QlZ C@q*l!5p3㨡KزZ 9g0!~hLU3:`\>rή.tk8%$h6 ^PbE4]ccs ƛ_vs9`G} Bxg'k{0|kftZLg!,f\*9v\FA$~M^@ͬ0Q̍#%Je~QA!(Rv^+ljCܳ !XE׎r|}L8MJ]B1WkN߷\DnW F^:^7s,N+<8Yc:ރ c5FCǀGߑ<5٬~ %ށB|`&NoňNBj^5=)xN軰TQ~&x!9S'(V:yÉqQDQo;T6uDi,ޒ3jĉ1N,Sw|fbwN> 83a/>APί*r>yy@Ho垑zXx+uy}`ý!񲊮%8+oY&43⺙A tDOivL܆'N|{ 87~H#4xLYGKHsع?0r) Xa/˽Ob5 uL}+VT%ͳ.Ԅ#%dJ9*N?s\ EޭCUC=62EF!ڴ`A>ZBRi@O#VGĉ{x\*ѡgwt摭P JĮRXǰxJߨ/cAGoSiXD࢖%\G\T &' 4r V;Zr6($2`;_myŃh Ζ^[U@9T]} oALRq{AJk3t&Nx8Ό1\7R/rt΢+:y> d.9| V~xE,0qx <x 2Sa7Ux&uVcZc 7^XAXJ>WI\cdߛ F xPi7+lJlF+B?pH1.:" P=]zWʽkIJBs63T<8qۋO vferDs"3LpA_h~*rCh~q P@g(~7q~J"!>FgVȖ SBVHxN]FϺu=m$ZW8q 8jfx8A#e{9:gKʡ)5b2F Vœ #Og-<[NÙ4C =^6.H)&`AwbW3j񚑾6Ᾱ\mis8q8cvϗ8w<fF_Į vnWׇxip)?Jm$ +\Vʮ_c^#x`QI%x3 Q#@KJ?iaNdMsN>! -~ ؾ+p+I9|k ?PMJ vyDN |\БT[y ?*}쬕ŮMW_1OaSSeǣ,rkoΣN,uc%[\xߎUqj%[71E<\Uܖ1YZ++p%\:WKu5XSC*^@(QېVxջ{Dpo%Yb;ϗʹގ5| r3ތv%[TxUpzgue!ʼ΂b58>s K/;٥sw ^2m1ur[y_Feު`Tx?Sej\;`7o,Q~Zj"3ϵ:ɹ$Nxw<&P: >Ff ބp~It'Nye.F(wͣ?c:!ES _h6 ]4r^5k,s}9d 59:!~+N|>r[U;s:+U.b8Ph$G 7-ʉؕ5^caoΦx_N'N|<{Ʉd]5 #\^Vb7s+? xYpeT9g?<0hߕ_Iw2nwS7}s{%²&ͷӥB'R[1t[ݱ-@O+ʽƷo]1qepA50xMB=[w5z {"s8qσ' eA˜= %TyN>gpqGpf`fErBhz{QK,y'7]kQ"帖*%ߧbd ŌP3Qf1~t]4R^\N]9păWHJN R73N+Vl% #u8q 9~&7Z+"g@u`O^`JOftVr߉W#f]VX+yMrlT!4Ux0k=tޱ;!F+ET  x5R5RGS,+tu9. K" \j%m<ڀ+ Iڒ@^&ao3c~? f)?3uLk+SdWvzA*8aĻ K& Buk(>t:72|î>`@f™Fi褕P9$VW-p<"o GCp-!IcP;~]ƀpkzgkb|ۯL(mo-.)FR=`V*|FRVxm^Ws}} Fj?fC%q t]cPHXI8j+{c|z!tG7:#kASiI N_ 9a8V|=xrSeNNqYQx-G15D#}'9{xp%sZr6V[5m׍%tfd5`ZJmĉZd 6 =X}bXh0v [Yz x1gߋݵ_ZͥuAimz]zf*Yr]cO;jv:Nh44GWфpƔ%~%yOlt3y9 `G} G/Vb)x6xsK-yJnZˤo;`>Հm:ǃsfE5]R.a$ve/I/a"xoby/=;ɁE#Kyh-lLCV3Y!|-tv9M79Ix|R,˦FPi(yVamu:I>5*3>GW!R4ϙDiyzzG5c)EFIƻ M- D\u2H_V91SW"o(!`t$J46ڗ8*IG@D \Kx鞑r=,Gw BMX?{-GP9zI}weV밻 ?iK]r<<+A@،r\~2,3,*6x0ϲO[B`@7@`b.G&CGkln#M*PA 7rq:ڗD|dYlρyBY9~kYγ,[!%5\KvƇ3 1>^/JNObM+ch'e2l~vUޯP gO:)v^*MZ#akw-?ܡHڴ5wc.{ ܷ؁LeӦ&J$5}]~HP)v+%?{bLgpOe١MNcc{|o-TrXmX3IM,q(>:> Gp/Kl=ʩғr|l/Cҏ@eYci$leM"y,˷h@b9y3sճ5uYM|s%:$Ф,`Zu$ ۶NcV4(7[ص+~`t'Pež:T$5dΌ:~5vT, g^NͿ9Ҩ*i5PO5()/Fu)b-&yeDj,*)%~Kշ' Y@\~?,יpZp&˲ErFM44Pf:c!5#ǎ]ԙb W%vCu[f<=ֹZDZOǮT5j1ީq|IG= 8ޡg`zl[wѾ_OP>'Y.d/ @jXgӕX@Vw vf߇6}9Tb-hG!$}>F%«|fV0N,xSJׄ me}›}ft~;85 IDATy.ׁ\. ֨8<S:2A5kDc+X$^0oHSSyW+ϸV(?x*Dv"3FɨTTᅗ[tl_r}bs^ :r1A.Y>QAw)[J<$\?,7Z.5g=iCbZm3D )-,#2%gy_(Ȗt]K Ƶ\ 9{.˨E}=BqP˭{kuHݓ++_O^3<&DeO[ɹ꧍[u'1x`/䌲t8!g]ގxp+kދ_x/02tSTˇ]>"V<\8{Oy9`Z)YtHI8Y2:_6o%aqvEv*3~WO2A/pPLfDwˮ ?i +^$ j(? ΒN.V;R?p~sƆN\@;56&;gj7*j,Y^;6U<ZħŃ'`oUtGGWS *9ם@>)uX<٨Y;WI9p yS7KzKVOT/b5Po <ԉ+ 듲U+Up SDcpf5q~V7U^y_ޝ -﫳bZןO2$"XuI:JO5sn v͆! ;v ߙ߅W |-¯⌑5y۫\f}! OW nLkwk.ܞP/ Q+kGہ(~ \C.~ÛSJET75oWq~RشY?8Dmp)aF@^C?q@o"JK 4 vĉ̓'(JXM$`< SJu=d8QSn640m[E9~邰îgUDOį%Q1BC։3R+"9N .rY?=5#r\/iQ~>ś\ir6F_$~ڹ@\řxwԄKF?$.;N!BPܠFs㚞o4.`Xc5~h V`:zEvQ~sFx0QM&j9ޜX၄;׀qe6xf*\=*}uz $Ӳq6'(QnuF:RI0.BQKY.NWcs-:R[< ?M&\b}u4=(jXG7%}: WI^[#V8Uy3/Q*BqcB9sVan'Bo#V1s"(br+37xj!^7%߄ӞWrv&佄ĭ:*ږR%0mNw޼%No<so_^#_G+n8SxUؑ 3@(GP'h_}jU}U|ŸFQ vyOˉ ~otXݲX {ړWLG _tv#y.0[ş>O5r,x/+0[Ge\@6~6:q"Gkc8f#I%eOYaN j M zRyx? sr~v`#r5t578/&wS? =hpLkt}TZs xl 9t7rfY z > |w/~=ESXOg,@d-|~v Ư<;7)8sf!q(˲3?{ؔ~7s1me3),+.>1UeSƘ ˲v\gYV3+#K[Ǧ,˦| y5'1u۸2/%NXKƘl1GU̍1Qrz4=N}4ƸkB3vy+䏀o~z=AciDEO:0O |g6\q!Bfe3c "X!WgYVfYVc*cL#YgYVc:2&˲܅_22cJʫmŽ_ ρee XeYH!,u䣑e|Ie}Bi\w_"i_ՂrDi@+@]O-sIKN;'2㮣  tu Й$~a-{"13z}ܳ&D ۑdDX }; Q_V: )g! H;3NU>^/#HX'_Vn*3To}g8Z"f1[^wRf3w=lcD'Cc 2,DSp/6Z)*6Dz,*чZ|  J+| ~+8!1Wcd|/T،Cn,(3Tt]*?UQD>)G0hz&v:;#&~qHDbJf_~5HXF` B~#׍\ϱ1ŨWcpb ֡!t F>\]zMׯfZ{%j&Mhh6& rUf`_$ &$`WD}:hN$h(i>$їGh]RcUkAcZ8gQKhXLS2&˲R9~`$Bu4D4'2I߉ V²^r363lBs]bvrݥĂI]8\9cH4f We߅-ۻ>! ~ sB@򛋶fc7%10 .tpWmUXAԢudJ"#%Ծ[y*{U}~ʁA)3qSs]RXȝ/Ёf29}&I fA%C;n愎p1Pk}(j$u|˞8CSUgCM}hᨑ5X$t3!P4.3{𔐟a#wuV?9vS7kj<ʥsٵH\:;XеHoD.# 5[ct kT.k ft5 ۩+1f1$Zt@X]3&Vb&qm-[sNfF;LəgYƘB|f_kLAc|/\cMVKc\@v.ηE%: %1 C.6aLf^h{!͇2z.րQ;-z֤m `7/T>d,˲871&ĮpPRJݾӤ{l$~Ox.<4ƔnQlvOGP/\ȒB6Sy<~g[6"Ch;&PKtX0x-nsJ)[7r]?w:'R[Jkda{~N۞7OO@B'n;t}8.V5`qMWkMѻKČY- iۭ{"X'/߇5 'RWiVxKnRl1Pնvaƥh&wJKZ-vu:o-ʶ۹n *3%o5~]Y>}uLLyTZN||N>|l;ܹo42Ӈ͑־pdc9'[i ܏hg2Q-|3s,8Y9#}-G35ֹ}{w}1go K <qn]įY#3:r,#hh8dl'; rax0|b֚pnI?pLJʞp v1(F*BG`@ӷ߾"<'a3scLeYe{dY6ɲlR3Uek߅(˲㷕ܤYro7 {yƕT(Qahhs1Z; ];ɘ-GY#zA -r]5r|oT;x@//kR=5Q> ƢKGnOj46EԌ UvZ־OLă ڻe_\ ];X-k\/s6SgO&ZDL > 84 F1pfgAɛSTqՊ)5ߍ#9ٓh!ĉ'vb#ͣaquZ"AOܐ}sƃ99.Wb]r,3V> 94 ?GwA5Q_E'ۅc#sAXX)s1=p'K<q@Z$oTyoĚx<ꝅ/MA -ryNY 1xDubkU)YߚH<<`h7$ݗazzH9_XˊJr9 tr Dm9"[bszvQKL!XfJĉƙ1D,*Cc:cL5t"dF@341f9dz,W#-(~n Gc|_! ;GڎZc7Uv.oi+Όtlqc22cTƘ\*N#a1(.ǁI/>:p2D?h7t+>d M=B1Ⱥ 5 kvn^swoZ EYv1ϒ4>A\Y>S9˲:l%:4%q`CcDt _i=naU8D9 5QbNk.)>6#-V!<1G$ X4fexk?RS Ih̔Iz! :ƘV&~! J.ƛiX?{><Cgz *)&xSڬh7ƼYұ:VfenK=L%<%q@5vSAcWuG'p'R ~ 4.t< %EƘ_# '΄1c:~ێS]8eYVcmމΧ_F3-l|MO:> @#|:M=%QHV` ]"^f~w18*>ixgODi0GDEGqQg VsGJ 81z6̊C~D@e <.װ|ez` %$]x0/r\vfY6 6iSߪ.}tc]㡡p-&CNYeY!\ 7F֔X #::k?St,It>=f$eY6S &M%J rhuP'SAcγy@5 a p,T -t [Ny(*]!P)˲35ƘL\!fYs`/ߏxvm:Ozp/2q&3"eY~~y/CFK{FC8\q@D!4v.1&QaU뱔:ǪH@Mi͆1Ƙ1F/>q#5䴗K,Z7i؅MI6#ߚ*"?#R5ww6e^b5!cu1\F%T1u .(˲3¶5Pc&Nbw?| <(O*?ׄzTq6K)n҆P _Vl:'ZGxE5 4>-]2`;9^pg$WGfTiF01]nҸRs>BCPNŎ/Le3,!U6/%?aw}viH#>%:MZDm"7t뚳'vbY݅1R뉄*lYEw2,2[yJ]gv<^,ZIy%mFP?g+ILxl2Y_Խk X> ;t;;]Ok6XP&B]ؙ:8Qa~U*fM%WkP,袳U!*ahaýF횄+H{~ki~/9gS&ln0^|ZDaɱzlYO+9-gإ9;yz6v·fY-!̑FJWUkc̶jP+XC(_(Qf@,L },Y6X\4:Z"52ƒ2Ci>\k ]hT׸,*G ?>W}:4nrOS\NQ#-e4d5?}?jBWqm!u/FP7-c3tI|3k9@] &[7r[[B+Fǹp/PN7:}~9.pyTh u sa #څ;A:xӆXGc_q|_c;Vb& 83ˌxr9Qr47#/Ifk˲P6}SBYi 9c'ݽ@_75o.RQ.*Z"v$J9/z fזw:@uh@ϮSc q:G␝Ԟr.eFu\u{i^~/ARv x rm#zٖ.(yD=v+\'01#!pkd*>$p=V>%6tcq*y8$A3 TFӈWATxa$K#OOkO<UVѕkśP愚0*l`M-oǮBy>@ D6r^ 'sFqU-TxR5Īm_4{8\zo4quzZ c2,y~yOxkx,fO)hKNrkr?~6F xoV?TV ]i cJ?p֎\=ѺHX)mp~) l+*@]CZ\]"Cq;tw#tGNT*V30깅:*9_MҶs_A#wZMP{m/ gs-]`a#^FnJ{nESFimg־B3d\JeUt ?o.[7PxTŖ<2鵆=Na~Ka4k^GOc5QSI:>C,){^`iq:h_W˼v~^˺/k[&4_ms$t( dA87.nMlS'QyOaU}"gNă|p &5+åO~ ?eKt;vc:\^0ûB[7k8 CkB FuE \q!,uw pm'CRp*B<ڜ)\#8w{55KfQD*z^t%4(g\a89cȸ%!( mnfCQpʾv,o PX;BOhN~I]WR<N. ns˻ :esNw|Ҹ[#Tϸw5Q)0rRԠL%r}+q덦W;T!p_A`x֭ڝ3ʣe<ø~i..j=hì)* Q:еnnI^JUs"-DvޔuO3B C+Hwp|Z5"K­ Yw[19>XAں#P邎#X㧷>x`M%[u[A?t w*x?y\ sqz:PW;ۭu=uDH- ^#G*y4O=3t]*'r* LόL+p)k' -_LhYXs1pZԊ8;uF+}k^ a=ݫaGSx L\{oHaR. K8B3[ykEgiF q4Cw~Wh5!pZmi뚰j=؜:\ʮ#a •S@?9ҳC1~`P&xK}x0KOs/jZ[|)F_`+"'R +=r}Nqdp)简KI[G^ zl5wq{^e_'GG>̗r, q[$4Q|R Bet^m\Nq^9]  =d~/߂0{Pm+rs\l@kD 5޹UF/G$\x?(AV!>.ϽJ*֧r}XKK_4|;]6agcO?b]Sd5ca5*lIh{ 'FW`cF8ףPayN::6k8*{b}O,Ox+GzZ{ rQJ9=l?/w,К -یK\(^Z,`Z2>,S`ZObş\؇h9%agV?ЄqivZq}N|IP32'FD&)ygZ։4/QGx owƂ7bAK[~ *CQaxB74xLNWǾ`3J-&rPq›E4N !2z#Vc[a5ÂC+ġӱ 6˸V>mwLdi&QG`!6꼠fG 6Vfr5t;%o PN?!vPI<~_,!u r]]Q"Tاex͝XzX>cu@YxMz=oߊW}hΥ[Ƙɱ>eY1nk,plt3:,˜ dM1\7X!ȵ1d*~|̽\Ok=ih1\~:c#iS,0IgS Gm ['&Z-ҭVH"2A0`q'pL5< <xUOHuacLqeY6zC;tIrc|D\,b`e4*,#:2yG6#;gW0Gj F"+ w}÷`3>? CDǻ1Y>ΣKgbfwH D2$m>uƘ]:,VIsJk-$MHXetQ2޺J+Nϝ2Qjr-40,XɼGL}3?oYK/jR>3 }.ª}>+z)z[Ϟڪ;`4Yǜ/no,.)sjTIFP.c'} ḅo{V {9EBqK(sz:?x5,$.n7I&oa7y@+wʽb_>1+7CQhFP&%=NjEl}VڅAY/ex5^y0^egtw$l%;zlCCs >J)/[koH+o8%'GPcU= l{H2z 3-۠uYx:nI۱R-~}* 9.y"9=V3Ӓ~0oFQ9Ҡ #p)?T6Ne3QF O͊=!J|j@$=(YY W$ $0@ z1cPSlP!d`ȚYŬqΉfOn:uwu諸yN>WWWw]uW%Uh?,IY?=aEd'Gi!7UsQV6YC/@ǖka [FqH; #LY߶FZYb;%nɨ Փ{=sz]nEE[2 MH)~SnchoR7Uⱝ}aF{K./r;5ɨ'_/!$!aV*uP)޷9Nm^%عs9WH'Mґ{7ERM\VnHw3,o_pJN= |?D( Дp*W G8mvsPcx&1?GHJ67k~/ Lu1CI߻zZ>Yp@[;2}%/sw[YdБɊ*H!qXGhNͩ3 rM.W?O97uj&1Vx]FIvV:b 6DN[ ~lcjf`[T*Sw_#zz\~YOiX#nAHh-3E\RUlgۣ 340=&G3*l~_;wQi ` | gҤn&МSȋ+uAdUD' E#T[⦛),/C^I\܌4勾ޯTHj-SX~ieeГ񷰽-w`HmDoW?n.9}v]Tw :yw~M@f[9_IL|xL~_sG?٠`8s;8A/5~5"g  k&I2ꕱ]])%LnJ,%)Q ڷ6Zu4^/0rT?zX@{538z%Z b;񨿣T/ґsX߮vF,~m9Ss v&tzQuE+@QUI=aQCn[EQ"F+iV^K\2d퍰? ӫDa#:Yrmic`]ZFu8a=UE$ir h"[`wڵs/$/ K4~3^G@ӣPdmgh t.v=o/c&?ϣC}d @3Y튇}VG+y+Ɲ73NWcyyO ;^>\Ex])|-Ϣch[:X.Y9_I8Dcf]#rl'/ߢ9Zxgh΃SCVe&2 ɰ=2v} iul=]|sjo#~k^#Iﱞ_B\aw_zh?[b; (T@24# :}2l,$34ńC͘~M?]Mp'/"/@+"CPTh*$1Ps,%7?o]o N uȥl#}j︳^ CHǖI@Һ_O ׸o?[b;Ȱ=˰OvGhF#h&hӲA3g?xpC{|(@wu". ŬVV2zR#:Qݖ ;_n0F:2P Zv _wl L,~iCزi| [D~xy 4s4@Ϭo+$u&q/N= vl ] }8XY>Z $ɢp9eY¤fw%vDlds8ѽ/Q'&7˹+kߓmeET1^l<aѥl}/7s_F?c.FKoa~-fzX׹yl)S2^+_ ͢Ν@) K43lK4xGI=Gݠ)"`Cwŷa*>p"RE˰_hNGC笔;VvvYH[+b}YQ{D6ߴMf ތrNz{o ^ F'ZgaQ B}Փu"C+@kvK߁"YVTι%Z&/V' ]+V!$/ ?9w'm:N5k\cz|Z}?nJ.4J;#k 9#\X̒ͅW@#p* !( !!(?_ ufzXCbNbɇeg"VVm$ ='l'+DoBV8< ޯ[Ͽ 5|9d~. s=ȗXjrNL,~DӧƐ*uC]ۿƺs2km qG}nڿn{"Gu눗k]^xWy0nRvVÇL`KV:#suy }ǿkJ rN`bE{LH9HN󌰓UOȺɰ[x+Ls7<}]V/E {=@4.8r+rέꡮs0vkT{ׇ$z+-.}ʐK. Y}q"Ӊx7Y+ȱӕ἞7*|xCj]I>mpzV|CJU#4^U=r6?^`_@4н֎v#9kG\-']wc嶧kaO"{Zrwj{7|dtW+PN `y.ThpD g +D''gUgjP$2NjqO~N54[>@1c0>} >ܚ {وU\(hUѲ|>z3TINa&4ojD8 {LH^'ǥPxUoi<ޟz䃆ɑ ɴvʳNUh pDRJIq*V=g$G40&4@g{VAIݘypL)T=6YL>hhua;B,^T|x%L;4<)Tבbգ`&4:Old+`k4*O(|c©Ub xjNX܉b+Qn:ո`Ǽp^Y.co)|+}8 S #|gл:5@ꝿEFu0|KܬzDYOb[`ŪQL>\7͝1qQ!SzByyx-]K*a*NڹKRcT(<'G$ `"fBHL,~hU{} ɧQĴ.-A[|${)yN~#Bo9UDr&Ac1!\]N8 W9l;XaT&PA;|Ld+ 3^+ޖ}D>z_C9s`+òA0H~HeJ:|O>xC3G8!ץy&CSe@\_DN!c@H) dWuι9WS|<(qzEW4
9G4LɜA8kR*(ە%yݏ!GjMÕ9uF3ȾK 縱52km2/_N5ȑs 83Xe̪Gqx lI *l7ܾgjß'ॊ=[ acDndlP J;!>{JSb9E9s|ױ@~ %ZoT>2De4SF?ϱ](<]P`aTt{Ht~x5c^+UXV6̩nV>m1wCD@Tm#ϗlFw0HlT>ci NNƘn)1ꂿ[@sE{0*T^XD%dd )t&s|d[n_ zKB3R ME\qSTޟ' J*HU?|?v"Yy'n>+}WQ7`ZU=! $^D 3]2 :]#Cs uOr[PA(t!{Ъ{__i\r:!Y9{ fHJYȿ+GS9 ݷ_~qvB Q;|hZZhAIZ \てvzm{hsn[Գ3Yι~Q"Th$Br挓{|X ? O{/ϕ!TO{yF7ΤZX~`m >/0&ht*g\2P94RX,Iae齈\>Q L$V!7 |FH_C}ףPW'*G#qͽC/s}~|=Dbq^Y:ʴ_K͵֭mXN.x-v.[͇=lN 8҄+7*Hd9>9DӨZ_ߔ=!T>61O J|uH%iǴo߷ DW'2~߱m)\h>4[2,:rֶMs ;U==B3sn%,[ۮ~ 2")Mh} ͙2 B/1'òՐ?"O=S~Y0?f(Y܇o|g 5x/mHDAiV\䬎/bc=}?rॗeP(d\Ջ$ u ?!x?>BH <_u7/2Y5-ĆL>">\X;SdPU(diIG4dj!`W ڧ ;, |E !f;!$0k,*o}!w*O!$.?-o)븥Z7G~~@3TT]c#^6Õzaɝv=m)GO̖^zi tNM2A( ;ιz^! 7Ջvm(NJ!QKE@?\9cN*N:{)zܵskwuxپB?1߉k!G1_@H>WI[CӣJg&*=jYo4-iУv{<e4G gC$"qOU ;s\GsιFFgX7P!#BGʐKE;ɪb7L>v Q%=J0j8~ Ҝ㝗 h80Rr4h XU0= ?k.&c|hp{(D6橈fŝޥVj/dJE|m1hZ :Cs {4;mKP?OXrq .ԣ)1Œ'X!@dt;~c#mW%;J͢[Lg.*l3>c}|uL>pix {G)}\3/}j$b[ 4Xң1n1߉pMp/7IL>a?TNaqvgIm8.0x!GD#fs}hΚ EnQC#l#c(? IDAT-WFNpDι9lUJ6dx<#L5N%9ykhDcA+߳МREۨpGxJ;K/`K?YA)v6>7d.MUx|aޏ ~cGwtzx`յmKEӵxD-{b)'ܼw ^:Zι%%ipݪPG8o.5]~c!%/B"EXDH& aw RٙfvgRS\zUJ&btms*>j_Ef^(Bg$°ffxeaj22XW Lh~~_qL>S^sD9s*ɥ-W=+iz->(0#\4!w$Bh;@HXIZ9WxWXCNuUrOrc*N*VeiqV&1~h6t&4_D88?l$%BD#GH3v{7BrR(wvGa X9ZIe}#' $@(^3eK-qjS싱WIGH6U?~% !X!| !Ϝske^vKu!\2$ OJ;10,J<_;4#6ƅ=-?| |wh B͕kgDyR(q*ߓfҺ/c4ş{"oO`7 nuricKk TX/[|.Og&' )Tr\~[G~/?L>3d aVPvlţi̕՝>w^e Ự @Q~,{Q~őmOgôDSwѧ ^,ŀ>2~.UO{f൤XJ<2o!'k!?*4I%+&* !YyIflj;r9nZ5yv᧰ F|k^܁I<+  KJzYyk}ՉFZ$)w(U@*zn&DIIyCގaRXP#% 4=yt ۉNR؟gwն@* ة!!_ ^k}.on5d'3SWveb ѩ諸wSqSaߣ:Kz,H˵zvݠ9~=,7&'k/wX{vo`\l* πCn/\M698{j?\(m3b VqFKY*~J\+":~^{$wa >Jr*Z+yo-KJ ;!SXG:AZS[iDl5ZZМFju`p>-vL^CA3vdj{;ǁ4F:VV>SipB9U} G:ؿ*!n#$V\||B5K~V 4a xM!֐/C8Q䜋9uIL>γ:~S(\.^yx@>jFN3KHk8:<#$lv Tx\f.>jKl' E=" (38C#ܝw|kpF7o4[coX<* >;IF͝v}!V z=*D{sͥ]|//7r3وu>|2`,cp˸>/0ڒH<:#QB˰ߘʇ;a:&K-KC\窎AH#|`H0gdC0et=O_x[XȣǙd#:G۲ιB;~:.悔phyL&;+kռs3D=Ry:4eChbR )W2)~/qT;VHgS&4`S L`k|=1=#$o;É)ș'Oϥ>^0uSr)w`IܗS*ev"6(ӭ &+-<p9ƻ><Վ)1Y}`rL%<Ijo רIFۦ9f&vF3uRz”C X9ŠU<-#Ľ'(i걜b]uJ = KrumۻĎSsc't|\! ?9jʑ8K=x2gh0s&Ky>ci,]=B CI.v\[=11t1vJ#zuL>4ZCa)2`j( gw6 L> P+r6>hг)6IzML>1Is^X]qTϰዘ 3[jVX|@>`S9rV"G[4,;ĩ$y"zX9( |G$ b TK*zAL>3ع MS䐉Nif3lc1׎gurJbc8yB;ĔSfK[JJ|kjJw|OiЇ&.R( |H@}nˁ.PGi1QipG}LBF$N~1_JGxι\&{H33{L;Wk.40[&#cѯw8Hv}Jz'ï)Q{tgL>z6:LOޏ6[&&#sy=`zWKL-M'||K;#{&9`Q-쮣EDWac|%x=38BW?># ΩԎzu+CC/KػvK,ai AkqOE.`@yiiӯr]a}"ɇR;ڭO~H^籂>C|sұtq뤼3+z|=>>pXCW_+H(ճz~Ȕofxv4=CsnG>\=q-|M; ]5GB<{ﴃaC_sy+ cV?U"z[Tǜ]pe;H4"m+6Q1DG֯e$rJmJOann;}T%^{0;N-]̳\h(| _\)Nl^^hkiP|Igl l{$bmz- #X0icx YZ^ʇ!8ϼv97rR: Pr^ C&p8xKvک_np9*x<21aDSv ?vWzFڕKV=hL> k>|Ǎ7JsOH{睲':]l*QLZ K}x^;T0110~^q=ra8hhg OG3\ht|h hGX }O;&kRʇq~ nv&kR# K̗0Ͱv.G4& #s~QQ&2IDHS0A; zILLUj0A 96\8&s{$g>LDdz^z `95vPi@'Bh1H|^뷐%L>$wq$GI)p #]8إ3K$/3&k|$JLXF =;=&i뗩18FF1H]F;:':3p #qv|-diȵ "3>cYc8Yhy a1vD l0d0cxG08@SJj;!ι;39^)bi@s|eL)|LqX'IcaL<(I|Lsnv}Et)ܞLIbcrc@"s9x)J ⩷Geq2<uT&$Jʵ0,NR]xP|LzvFreA~ι9ia&ƫ3(r(0M UobaypK&'_Xl>ZJd$CMG7&`ă& ia'2u7)sΕ>֎&4YL>nl>kp˜swx|1Ln\W ǀ;`{1[ sm֎V?Si;ՉZ;" |ܶ\;cXQGy|8 Y2 `& 񌖽x̧mk\EK+0h{păcir6PhBd]O;ABf,]]>s(p=q* &D8B^f>}1:BK7`3&Dݘ|PͧdT`GOvDV1l>aHcģa2|6x鷂3X:&ͧnT*@%8)]rBt&I~!vZxFA嬥D MO7阱Gɧ0؋HXk$0$圛G&D#b.v}ۜ2}/&D#c僮aH_R;.LhaGsΕ>y{ăPodjąͧι7x<,4QFia+4$%2ă V>W<7'Q|Px^5FQLh0#c^!)i0v?LƧB-Q:pJ).xͼ8m:QbXA;' W?*01 J+48N$ aeKځM|I &Dt3 c|Y aR*Jç䃬c# _gs) ds <2N FDgaR]L<\|y<֬GV 2ݚ5gAD`A(-_)Dt)P2s ϵ tA)a㩾GvD6&^lN_>"JOս D&R; 6 DV>(E{&D'V>(9ι{ӎF<#bJLnǍX2 1T܀G}MJ>Wh@D䃒9?{_jADRp hx %9wqL}M+,^Wh@DRǡ~=pB1"J~- c%9v轟iADMADm`僒眛\9)4 JL8k\" J;ĕ`AS^.khLL>hdGѨ|ДT$s{Ѩ|ДT$AvF䃦:#1ɐ#G8䃈F䃦 !vDt{|T$nJ;pȅT.49ι q$r!"|&DMQ@*v1)b8#"RÞ$7þęMH +4U0왉ibASanH*` 䃦ja1IW1nbAS"lJDژ|ДOA&"uL>hxODd2V>vq:&D "R䃦;Z""|dy9İMݣvp(1h` g7%" |Ѩ|ݎg&DDd:8䃦GDD0 ""Q1 vDD""""""""""""۱`AtK6L>hdL>hTL>hTL>hTL>hTL>hTL>nF;""oc "|Ș|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|i@DDۘ|k@DDۘ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ^;8Ҏӎ`A.|v!""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ιL;""Ms^;""䃦N;""v̴ "|ݒvDD""""""L;""vdL>hdL>hTL>h8)AL>h87L>hdL>hX "2MGX+L>n ADMs;Y""|TqxL;""&De*䃦.f1 -3|TADd*|ti@D趼yc s{6V>nsn6&49ZvDtۘ|L""Ø|Ѩ|VHL;CD|Ѩ|Ѩ|Ѩ|Ѩ|ݞ'1 =k1)h`+DMF;Þ|*&49J;V1zQvDDL>hU!"Md?ha3vDD1 9w|J9 gM ڱ(ze&Dd 4@3HFyj-Ya2 xM*+&DdYι̝f,'ܾQ2RIENDB`asdf-wcs-schemas-0.5.0/docs/_static/images/logo-dark-mode.png000066400000000000000000001327371502237724000240150ustar00rootroot00000000000000PNG  IHDR}a pHYs  ~ IDATxeUyAc"16Ƈ1xtr3 1Dч8CQ Qq;/CMa2HFK) @ "Awg>U>k}]GIA 4h`0Ȁ Jn*mkРA  0*Mv"v3a 4hРVÑL>%Ҿy+y<Ǜ9 #2 4hРA\+[ҾlVYJ)ӈ4hРA 8Ƕ<(f6q%$`lg)jBrgJh4! 4hőD>"Fs/YbyǃX(#d; hРAG,$qdJYDr ',PI&g{ e8`$47hРA[[|Ka{ 3|(9s?$/M% `rhРA 2x?5oN4{\2+ynL=!Q$#"/ 4hРV&5D6a5l KSqD"q:E<0 }\Kd4hРA[[|B)N} p_wL-Y.Gcdr?c0M񹐦K}@4hРA-D>nNfKvQ=X9L$g%/5'Maqb +D-N)}K:a7Y 4hРV"K O@N^G1rx`0ї''91G#(sdcސ\D29{(kРA H " =||#K?EYpMR'eMt[q: U`dU~m\{M0`,7hРA|d03V=XG}mL `*7VM͉1>&b>#ĩs<02R&BZ_ 4h`Scp,sWA#D6%6ÈYمK' EE Sp%,1D?Aģw* g| 4hX:dEy66xFzC?1c0MǣڝX@K9i"9p'pp,`cS1Jùaڗ4jⱃe)#$f!90*ݷ4〓%7)[: EZ"4 |#;(6xW1:_H،k| Yl4G+*UWbdEx}̲ؔs6}<\͵0rt7<1ʒ}W-] &91p^?MIV'P$:M׏SwTy/=lo  | 'z혙p||DrrF@? z#0M,<+ȩ*S(:̗G#@?Fދy9M0u'F>O(ꂛPil>\xϱ2LqS%5IN {_3ȓ}Ôb>z5!N{ɾI4h`l6֩,bڇbP23?'c`)7cd'Xaպm9Dgև2<#$֑y?E#<iqG+1щD- gSX#VNW$> #d,:[5h3KJL>rᚾS?hB4h,6#pܱX>hLgu`/b_:7 6lF?/HN ꉘYL[)7PNrGTKX4̛9I`ob#w;0`d Ϋٛrkܟ5krxrzx )9O`f4#. +ԈHngf+Ǎ &Lɰ28+ qƖq1D0-3f1UuG +߹Q|8]|4hРIEdJ-ibs3IӒ'ad$4νPҢ{$ +a~I$*I_]Ҟ;$~ICvtUaJ{J:Pڷҙn{>v?| ٟO%}Pu%P~e=?^.>&B,i<9g2K먑FiI|L: 28IgKCFJ e]qHwu=Y'{>$ IFx:WqNΏ=HhL&ۻO[ۡ~6/{Ys &i}.sZE2[n˾\fcPf4H 8L{1ݡ∐7_0u9$iNɸGҝߓpt_uwHe]LW-kStE됉Lֱ} FwHV2T$7;U0Y;cPÒm,=-RyuVQ5hʿ~mc#42R{,lWEAJFZN54$}ViV!Ȉɏ$PzyI5ڇd"KҗRfe8;!_eRP6=H8*oI;LDȯr oҖ3U.EB&Ր>ڪYִ\"B 9F=dbɵ|߫hʘP4|Q7%-) 'ywߑiCR5(jfz'C*4#k]K2.˵ey>&V(x>rEwiUؑ꠫MIeITGGEɂP125ģF5#VGNw✕te 2s}2G%="2 ?_!M)T2< SNue_A䀢)ᥝԂU!< '&\EB3HvDH#*QIuђS|O4$'`kvwtΦjy<$s:qvʙHSze3GH슎bj3v a3*ĻDd!9 "TAϲǠ YJ{}#uޫ^* ђe5Q4:lZt%̩T2jql3b58jGΔ8YN t2,싱f^ػl,$U{@|i ,#}3h?"B< c [Xg4_:q#Xdj,o"=<X'Kүێs 1 n)m`uzұql}#:$qrpuDK.ƈk\f/꿊xV0>&6h`#PeĒk>$W٬$Xϟ ]F.-Ũw} N'UT (:jL1UK<%YouHJ2Er>/.ź;g]?>el!Me?*SK[f_ܗ{i#@jOaJ;tfꟆU郊Sk׋Ge3_:hyxΐ'9T[[=]eʮ萘+)ba;Os_^yTurGe^#yMCֻ.E\| 1X:&^mE[eB{yTt4j6+'`pfL(FCd5ƋV^{xP`tf)a;óc;rR& ;eµVU\1D\ac`r޲G-Hׅ;'S 18P-Yv>|JzfGGId^AeH#lԞUZl+=N5We!j{M+KӲR>05S(TQWu|NwU~̇Hu8XR) ]Y&8_ T *7ӆ81@l+S4-2/RMp7U湔LW+S47uH#lԞ!KK1!#z獮7 oi. ~RAv-L7_iQYylHک ȕ*,H`>;%B-4 ]Em~ |:]+WH}e]p>E7%{+?0C̛LtwF9A\+RG\n}XG]I_XA>jiRpuSYHGW3MUV:C~~[q}λ%{S6xo~ bidlA& "`ɲdg#+tnNy};٩\rwa8pkeeŰ/p2m22rs-U:_:/gӓTt4+*}ǥn6MTC~Y5'uqPC]^ELZM/]sʀm0IGWi\}xemAh4x hpQRԳ߉543~Ayͅ.V Wѯ;{e$[vqq֙*QݩکLo7ʴ_W\@1%wt.嬤rE!{S6f2OWg%U%][%]p߃BtѿFTR{)-E;ƥ X)eq<ɽsvȢV0*AWMSN{de)%0>AQNp?[dp*OgکjktjSUd/#iNfUSf,L#ﶤ9ԗXڣԠw5M{>)ꫭТ˄F YOKw#LWwx5"ւxvk #1-*v,6F;lJ\k[oZ,7O >XoZf_Az% tl? ǙX_Oc? |߷p"buSkOBvHJaw'b | M|bޯkc(.+w}/p߇\IX}=}x ˯a݌(]}۱5\o1vs׺Ye6V׎~X7h0, 9މuHL`nGŮ."b[x1qχ"FyѳVHSw 9K0"pXg9igay>끰U5b 9a[7)vj{*i+9>.PڷxHH2: [0h~+6.? [`,Z,.DZzY <,VfO9 _n,gb.⢏0~Zna+3?X{9"XNao׃-xX#npc*FĎ|K§##>*>?~rdO:n:r̞>g?9XeVok%=zSb\;5?U0p'#'/i2QR^֥L.m {J'isF}u0mJ<Q|ӄ5h0V#%T>jcxߋ}?%0r qac#'c 71z M:U9 a(A 3Gl~rqX+993Q=0oYX^!$e0i܉p 욎'u~qIVX8јĴ)|a=l`جc/ Y>ٟ)l$1}z |k<|D⿇0U(Xr)W6ZZXo LeZޥDF67qqrrػ3 <1yb%0 ۜE_ƿ.fJޓwFN|Z,ˉk^^Os-Ri0l҄&ұ2؉OA^.s6hcwo!'jpBcCLK 'w?Kj #$`u<*QҖ)=a #bd0= fX~xLze8ݘ՘㴟+͕ad02Y"1S~N+\`LY5edQ(YxGb[nb0#ahl$g f3fB3?͍DFl1X^\#HcA?sGNqA! M2nBNZ^G;lcz IDAT_6h0llVGmw'7b#t.ƜaƷK=5fŒ/ 6TE@\LOM}<=acSCOl`ufrFkF 5Xp?b[Fb0qFSr ֮t1": \0,Z%hcﹿϓfַ|za;:ژUA` iՐ`a#p簆Rs}X9Hwk7bv̱u6YynC{Zs#vg0beXfۉSmbQaIF1/eGX~ r?͐Sq^.,Slmrr&#m02p}^"XگMq:Vw9ф)yqQߠa+]2՟Wb#WE<~h~م_FnlsF8fzpKNT Yp;ʻ<[$ta>cxSuv00O*l'=cpGC0g<7~^iŦ<_ Eu<͈S`sthcf&ֆO?'˲6EwWҹG]Ŏ?kڲMH-p::ź eezd\ک*ӑbv HY:H4R fd"O~6S6 UhVEҧdM1?%+j=F|^ǙV✍ uu_$9$|+5P}QvuԴ'x+v$x2L@rEmD* WmiڔG9Ԅjyx\YJ MrHҙcPlq=#谅:Ld;eߞ(T:Z}tjJcntG,`{c~G.S?ZdVA::;H I7$(+Kv< #i]dtrY*f EvoL@R-촢VCrUun&Կ߫UMf֣ 28@3^P}l&o+oؙ\RW[ي#euee6T˪mίzd,t\ϖycw.rYvU,Lqez9*msyuN|CtyAδdõ1] Ty9BH##AҒndɾTO߃p|{I33\UdjYE1oKCVgޠzcZA[I(-snNt2xH҅*KJۊu&1TmKC6y3EŎnw6ɘTX qS}o[[qrhl):k{<@JVHi٢R{ja%r;1%[m[#Q~jLO(\a*>ƹDWn̯Wl=;5{Uݱu3 O<ïw+𺘔kRکԴ+׹Vjojj:s;?WCIut4]z\8B]YHuUV};42=5I[і,q ՋtԜ]SisY]8;N\eupm: MڝZ;QYs g_7':(P\UQi]fSf>d%򬟴K2RpLřv 2N݄;gWSzS3r|G55ݧZ^{GbFE<$#M*k@0쪘 oAt0.wTu rZdpZqĬMVGbdIy3Ϯ|gJ}JhKEgJwxy'j9C)JG`T3 IߒWN1yWq{d6E⑒ L6;f:H^7g"x.yŹ424=GGG^ UbT obhgWL;2o*y=딙~U2+fS==^dr&qL1!ŀxk>[_p82I_¾{|_weD㫲IF^9[k65WTtq"lqy 6K@Dl0>=zs[Kg L(\wpO'x5+S3Oj|~b^Ubu],c;=^M_ dط V3` o 񋁧^&/<)Aq x:\_ 88|VWapWc ykH!-N!5h&~09R/Lol ~sIYU~E kCʾQȮR еU.Q:q|}:Rd8Vozh+DQ(݊ZL5>!{w)r)!)U kp,uTݯh.Ym9(-FY%ns$9Ľa#E֛_Qvb/6߉i2fEhlDZ/4Lbׁ| +}%h>&)|3> 8} ah.4"㎓0-s'?$j0|خzr  +p5ps $)gP ӈ-E#j^Rmk]3Va`gWCCC>6[ b uykܾOND%06H8;Xljq m Ɓl>{XY?+ȁP$8HL׷;(6fj,,6I?x*fY|-F2S Vk## ?yF(Y A!`6*j8k\߇ْF;A#'0ñӺHF| y Q p2NU3XGIJ2a,.L{M3I1Փoaet|&CX=݇i#?KC.l"4lE˛j|' `6`;整K~Gᵀc-GG k;!i ~#G?HXceڎ3usB=6MqvXxF"It>\0m̄doؚA ֍|ԇd~S\dM$`::?a3&f~W)r`y'9>uӐnL3>`Z䘓Upl(نj̀7GG1CJFV4Q/YL-a vWരvvc~ l*;unZ`N$5u`RX}8psL&La0SGp)Yd#Oc Ԏ&G`#͊W-XgȱQSqk8xy=W q)iƇx| Ӹ$ٗS4{Ty,73NiHqJrY紨7ja`~Vf0}L4[^O#4}<ȃ7a̤&$Cso^j`hGDŽu8ޑ%E1't~>KԌ9G#Qw":&j*f\\l/W('0-ȳs怯`oZX`elO'i%2b/ց߅ X}[QAN 'b]+f~yJ #=Gg- !yhIZЀ9gb\:b/FR;VaXC|d{3 F )NƦ:)jzzMT_iVpX$͔LS찝a$}4rֈEi󠼺/dk`Wq }t_W5CLnOGUhwL*}_*}bu*1ַf{/cB1B8H.` e{5"-T+YxL mʫqҬХ1뙌;F(hsM1Aq 6-sUs(OhJ-lT9.S+vKoc+0Z%TܣSMIQP6݁.sQ#c0;1g1MN,z>k{<shv3iL[k452 6)1>.;+^J?u60rQl?H>ϩӌϔfZLX>:9dp/p,GXQt,.㩥gu 52ٷђYFؾ +aSQI F&07b09>  ~{O3.f=yݐ!˙48l4c0iS~޻(N\8g'TL1^3[VҜ}ͿNY=ΠKXT'cJYrmg\x:kc ;w F< eZf|ۯ`k=g !)Ez/83)iFN^s͓{d(,05aɨHd//q-!bI[%Ҿ/)*ے./Kov^&(|d2??t*HH^޻zVHʴUY ykhOUw&ҕxZrZmR+rLEFԞF*ej/reWZkGiwzo}PE2:(\E*:O*:" &;$/KFF;!MΐIY̫<idC1'f0q ͏D w%0Rd{GcFD(LN0a%w\l3FCAR\ű"~_EMbŜi<܂fqzoА  4'ӫ)&K`~NB/{KDQD5Hc|6:g:VvM6#%0޺$ج.Quܞ<",>FNaAlfIB^s'V.o?r"y+Wce7f+#u`АC_?0>]7 /=]$L5hEF{A8V@1ʩ# ~:6bwH`i#5%p YBjk+|j{.OcD CZϣ8巍02-au4'0fEvF i VB j+K{X6tҒ7V/ΟmO[dbEE,};fUtD ϦnҠrVvl؀:6˼b}@|k ʃKվF4 knټkӬHl\a+*%L|8 NǦ} )Hc|<؎iR+OmO!zZWUi44dJ=h3:lLic|@՚UA ߷KQ ے g|)*NMgӔ+8p~li.knQNYϪF?i<y{H".u32WFv縏H*w"/|u}-rNڍ ꨨ=ڡhUP:R|5 l"9JRnTLa+`nE܋MaM1n|#[)o^no} 1 W}!pTջ½_ N u,LǀaH?M+ؔ3t3r)@ṟ iهMzX^6%,k6" TQ2.k|!gnhaz #;WcO=x)'XͿ *x*mbix+FpΤxó.y.k:L<:XEUa}Wn~UmUꦑ&ma%}1+IJg@y9W(Z҈d+] 7#jQ]!m לQ#S1lW=JM-Vc#l4Sm7=ฺQ3} :κq/3[Ii SW 8.6RlD} f*lz,`W`?t>1-űyJl&;Jncڙ \qN9mh| K>̔2O`J[v/ۋ٫7&  L֮B&gYo`{`Y،i #'brr3<.zA]` lFX yY=yWމɻ'&d`34+4c0#ף uSl'vVuAZX^hd \K " ^|+)ÜQoŴ`F'`Z9`wS7xprs=-9̄6K^CC>F=Oq8tKO$baQ17\GY0_u>6CQ,o`Ilcc.HJD7 3<<@$9p̔m9l`ѐ";f7xzJ1l' χc:I}~+yXg ,F>1j܉[dO< L*H1B24dhh1Lx!ң~_w$7t0%cЯcZ5,_#jFΪ90RP lz4ct0qFpSٜABN =ӒVL h)0O_i,#"SwzI>n6rQfR/hc\jpM c.|N(kIJ`|M0"mrr `rQ6FX>܆D; -dFa(/[ 3u']}(_{7>ϤhY8~s])\$H1~e3K{&#OY`0Q(6r8K aUS5lu; ,6&,zj`cp8[YѣôP|L#V,7͐4ԇC>f(:\y}F.HoӨVNu2ȫ& 9۰5Fj=C߃L1|"~\ X&) oޕaN]}: .fyx8Qل8+=L=K.`&AH}*3L/K90J[v/tHR+9'ݞ-l+W?+C~=/i:$=P:gT2U%+qĒ;3 Wbz$C Jm}Uw9dZ&]iIs$]+I?\_qXц52^IodbZ_HJrlkؿ-=I:|i7a\sn^}ڣr߃d1DMD8*9z^ݝ3ZA_FWq ~Խk~ {w/!RLS4Vg`(\wyjڋ~y^r}lwcY`>}.78io\ y./E(f%_NQ2i=ׇ50S$m}`d)cSbg a_3Kߕv&%M&ۻ%(CZ9KڊwpniFH.~ұ{e# ;wP6J+pamyY:춬 0KMO&uAQ|tTUCk$k|܇M+!uog0SgQ3/Hwc^RS{ԋe!:NҰ-ɽ00g䌷c53,y㈩!ܣ)-^|4n4"aڐ q Qa[e*߁6Ӓކo݀iKaʡ̻i䮄`myǷsھ´>{oXOesVMO'vLb}aR}GI#oGN~LRчLueL+5ݭ 7#ImtoY-\RnT6?):>Er:o }*w=ٛܯܗWӴ&Mj4)^i,?ʹѶ/ e\%6/#ڣr^!2˱\x18KEDH墿z]c1uCHVFy*87$p+b>!KXOb&lþb\^M:5%ieQ{Oob1yhޢpmN֠-1M[.Ŵ7q< yڣ:GS9A,ڧNa~Zsa{^X\0+N@<¡R"0ks2(_NfDsA$u):|kOSUyƵzY X=́[45N~Sn4>A̮aNs#Xc.,~N1֫e3oE90՘kFd sT x;a۝p+upiEdwM<c}E}Rv*F] 44ϜdSOݕ{P:|!b?Km(;/+e wcIU!*v+IJctG`P S:a Vep aZ׵T&d#\ bPYr}ȕ 2L"zڸ*U/W;w;s)~wiїݡݿAcW_՗V)EYRfdTdjˍMDz"W8PR 'Wl*jW*(5P];-g"zjy?lpk Oʘ1NZ=w١)+i:QqԔf5# 3Wmt]E@ 1ђ?H_fpC1hDATмJę+Y)\>VU#Ռf!]UV Z;5-ErLP;)<$Wz#AaX8Ag,ixɞ Njz'R jdLm[&ˍro[:fͨ Ŷ?kB #Kj uȠh5{9ׇ~zBohF{J57KE:G~t}U4IydM~}ᆩZșr!b>CeQt0xazFSQSU!W ,[Uʌ319VIf%z[lSh[KY=XMM lZO9tHC2WڿF_D忖}KQVg])o{L%Jet4+ v:{TUFzR<#y(3WTIjn8V3\eO wQq^q눫p?/,imjN=aF5] ݟy)My=u3#vh8=q^lS`NfrL}J{' ob꿹o퀬VU$ULLٔu~@rHN\O M`}fM5.{6K*imcHE)}'8cYcQօF1QyGxG`KpcwbR.ldg17M_=ɭc;k{zIa;mMHož^NDi9bУ:?$`X+o֋>Z㱈 U2=o{?|뿼o)\G,g<ϟ<_ck-g6G?>!gNWJcL-uTF踄eapþp>_J2*1<@kdi4l}|]֒ր{ԉwyGMtۿ9955K}W9ݹ:iPĒH- es 1w*ci_o˴;]ߐ}?$FRtXt~ge:O1AT :fF4\3<͠Dx:(x5!'@h` ?nܰ$ȺUTUZzWWU]ַ]N@O\1\$-q¹re m K ;+XĮr}&]3]ΦվՕEut]\pF #=W k8a=5d88KCZ.V1ƕƨ89|g d\?\;"F"Rq.ZײUólDήl}yuvݚ~痧eaa3or唊mC_\'}]H8a%KJuι8N's˸#=psιO%\Q;6q6.67+\:^Aw\X9/\^=O6N7|~ԥLɾ>R2QivMt\r 8@<&|@R5KKzSOߝ&<+MvI)LM_M!`Xl־g`b|o=Ͼg8t'|"`U|u) 43 B.`IOq|ia(OXSnyrWck..K ;K:>Kv{l; a1s~< GY|܎a#0}a /q+a6Ϟx`f"'! 6؃s| =4c#Qoo1Q(su֬͜.,6Qmu``OWk\xN/+7?)' Zm +=y\niTh򋱧\Sq|cho7XIxëlG |&3|{x;s ib髀b㷤='bSLٖetD zM$NZAekPwUb^Ӄ~ *Zd㮛` ӆB5嵪#Xݜ^᳛1k٥X.({>>2Kgȯ׉f0`oNrv(rXuo1 Dmc?݃OB$Ӕ1.i.Yc,t=xҷm ,M X!} +$X`/ IDATp:"Y"dص&P,+w?>Y|FjƷF~#6 |b891]~ 0O}X8L||xTdpbO<{L325,uZ[~ܣ,>mkW.c}yXCēKB9qpXͯcXZhX(f5ڵL|=,e>qDX8M<nc # ^y?0wo/]Na#XfM^󙜗i24 &6:ݘ< 7G%{"y<6G; F9IkaHsL{~j=QVI0`%SY6-.cr.F݇= 6ݘиd!5,$ $Xbʗqw`.'b7# 51y8tHQ<mzS%:@_>Uy AI7FBcF|L+.sdIt/`.δ'gLHޏi0Cy˘Q'}z,9 Vޣ;TBv_6aϧ:7šmf%v*i ~ By0,ցg,K.ڄJDn`ub9Pa7!Uq?&:n? U~(m,Q5YȞdXB^bb+slW1'1;!œ0kPkBd ɵ- A Xcu&,'sbOO\>#rs|Vt>lbǿS>fXt) BF|ַ> Xݭl&ַ 9Ld9x*v= Vb(>.&{(J;x&V8{j;8SG!{{SIޅ Gan뱂&?yP*0Ӄ9>߅ e (mΚNX 0'0j o{0CS!pֿR$ފ y/# _`΂\ &F/4#0rsX5X*c K_/[dN_B*a'v|g??Fv?D)~)'c V1rU'B<foNӜA.N>L3aHVR#>wX}:[600GY/c:ৰkm}?6 DSE.F~MGW@Y|< E,Ϙu,i${^8_U~f"ascTl8n6mț(&l^ .zbzb>e"!t6w0$^B"2 >B/- 9wI*>U`}XX_X|W=3އs>tmx9aV8#c3ʮ;&6nRLd<$p!x tL遼 *6Qԉߒw܎blz➃.MOG0sW߰ܯc7G&Ӳ1mؓO dG5r6 /I/?t6-kX'nwcCfoְ>w@^ 7߁;=]'[x &bc}uaKx-yۨ -crMwtz./,Wb*҃#,C}oa'?*=i7 | K!5$}20e4#r,3!VG }1z}% |*%Ggc,;_Ƽ _XeL|KcKOw~a~ַ~+q&8.Ŝ 60O)X_|¹<ιq%ι-ܽzkg9Z|=z>qq]䜻9ι3ι[~%]3{st;WιK9wsnrqڮao{wBc7j9^tiaTQkͅ-TkvvY[چ[[s/Isyۖ9Ou}k+\v-g}~s>9K|J ?ϋbhpI᠒;; t[NҺsԖl -pν9-|kG<-J|HjN[-WAx]8~/"g_Y[uNO:H|g}lϙYxos=MιpsojGv^R|t7 m~v+?yzęXȔYمy}{rAͩ 'gނ]Δڑ![ιs9v_o哎[m5F?G!Yx|YTnt~vXxO[z9_rIn\|d;[Kߟm+;<ܷ\~]F<tG?I)nlk RcnJg"r%fbLd%)}!q21ZzDܯXb-fz&L }HNU'FBB9Ou2 /i KgY q^rqR'uYKI{].^F1_,6H '3Q)'~͔YR:g!E/ ` {+t{ta| [Bx܋ wnկlCZv:%.vw8Ge}Ẍ́ YG>1^,}v-Im9"YE"{8MnwhPy2d`S<} '";Y lNpsga(8qoed8OoA7Ÿz),dzy…#>fͯvGKҼΕow&<<ɢ|pFPr|Yԇ#;}.ZouҞp_,oK)29R0<3rNd3\&"=ldKQIg[Vo4pe8Id"/"^ծ@JoFöWA,|yrGS]P1v׸\4d%뫓t_ry_H14q{?ܗ^Ӝhp~+7w ̒ZH(4\m)JaE1s4FyI]Eܴuw7E]Ur 2_'8)9ą/ls~jԃҍܯ ?hVj)lϥ{~5IwGL vuH{9ӜQըN=n,؀d'lV1Ēv }7Sg WvE g<̨0KG M\9`TAWrA}YNIfp>ux-.x_s1hbLvb2etka=W~d@p&jme'.C(7mSl7tL8{ >+}okP驅PB.p:[X:[=}x7Z 5+\$W~\|ؿf@qeBfӰ'9NB-f=QY'.|6y}ax0 Ͷ )Q^ iѡq'$i6]O˾C/U>\ ~iW}bj \BT} z:z^9JxdirtrPLa\|kpl?Gt4(ތ͙/|v56c^66A/Q'm/u?B?^.w<; us \Mr񇷒ͫS[w]ᶲ_B|]_N: o Q.:!qC}3_Ov2yrZ`uc3峰 5$|ؿ9amJ9]6[=Hf| !=lRA&SA&7(&?Yb'센'c&6(N`˲7cNx;}1"Zk'ݛ&C&:;i-<}lLTt1t6pflfz 65 /tEfE0<u MkV)` wQ5"o0+.-ƄJLp*yAz5lsoop1TMm&ۄ5knc{oSȅ؃Imy:k"o_I{-r31yZ?Ոm>{ԁb J%?yæ. }[c;01q6}pƯ*|gFqcI\cu ;*3ŦPo o t}P-b_m xca 1OHF1P\ ג?AbZr#e?V Nc\< z>TGtDŽۇ ǐLΪyA:nӧ]v;pK Ɠ^ri{'2^%񔻊&L+Ƽ8%A t}08/=6dlO ?-)?Lo`/"'ҽ`ᙌu7bAqÜAUcx eZI0`*"COYc$V&sL%>F Ot^RPhS? nȩ?B'G"f\ߧcprwfBCH.FX#V,4mXG4)>g(K-.0EQdaY6Qapt}1x=h'k֐/zbÔd a;1\,1m*t Ӥfp3%ދcUG1e* Kн& !%p vzYv&{uE6C,g0[Q~]LAS^PoƐVqz 7ܒџa]_^ Ⱥy!e/Ts`Ղćyp s˱Ce⭅S8L"|e0pZ Ow綅zMt,6` |w? ?ú>3F ޘx7{wMdW4i9r?} ,&6Lo|y=bN2]*$>D] Q3F4.a^6@ !m,;t2C/G>$>D0fM)4m,oȗo!#cZ;}y=.&ΚKćl$̰tnx m\z', Nb_tqޏ|!r?by?q3) UtQF _mC~x4¯Q7zz@#Fz9ّE&@ߗHe kzcadaV=xo I 3KH[#P$>c{:΢:}}"U6ħSi>FBQ%BbE;4/|Qy]4I4o7y5u0_Lh8塏u1|>=G!\rWt QH|,! 1 4|y>:мTҬ7}AIjaCL 0̰#a_m 3<FIM pa uC@cyp&HL0TH|],D=?nѮyR$r1V0͸-mx=z9.{x"k B@6!zHĀrr^慎\bafdt1c"i(0 xg&c]:*KY0f{ eQ\LUXx]cF f!a Hh> dC=C ]u7c*z Xgq%p&B2 \XX’JGP2o+,~;V[o/,4@X4넗!]o887Yu L;3~EBsn^GZUy-,XR(({:N> xOai!!"`kdBs7A(IZ!zoopۯJiF?q}m!o? 'Bl \oaQeH׿\X%O$5peKH|!6ME.e'ļ=튷W%G X'S=4Ç(-[,`({$^y7E`j}k|<7^&jf+u?HN|#*]2XaBU oJմ|b?#z5o?˩na^c >ryZ%->5>e< d x 67~ k_$> <0]`>njznn/8I08O6Vɽ'fS GF_?F.t/?n{<ϣ8_Qx`cGNpp uw›.BJ K*Nq!MºTiL4M ﷰ\Q \ཅ,r IDATހtLnhB~|'hz)U2]y$".;v?|0mm |&ry_^:s=-dv ka9 MCH>G6HBJ߯a+1**alIc G09!>yb 4M_Rvmzmm5͛gTf]DZJ[䞂mF „ص ܼKmaN?*})yXU>&&~']7 { 6T;9J:- k򎒊\}Ո5l;j̘:`Gp? q4LLla`"3+1rG2gOMoa5Cހ]g~~}'A.HdSP/9!>yx]:e&kkE9Ut` a& O,vZ QC-ۘ5X  )yvM uݚ~6Hϳocy=z ܖn |x&cmۗ5$>h)r'*DCmŢEܥ|:9:검j< \Um1Zlr;7bMtlJ=?/>~v.w}>x ~|AUeK #jh(7২_JLh<ȽaI:Q .#v 6ZOƄFMh뾗ru~3᱖Cu:=FI|a5Cx o,_ҡNۘT~>h><aD<ÿ @Ylc[_kny5>my?1>%^nᑅY{e\}$qk{{(#xN1Q k1M#[T7W=^ ۼ uoy ;wcaC_k}|r 7߹ אY6Rۯtc^ ק? 6`JOxگP]!u1-+PF<a>9x &g}R ص&L^ =V=H)8 VuX(jr3,OO 9Wļ.~OSxo՚E,F?wbr>=^{Mf1_u_:۰0a⠍ c1ӱo'OI`9L`>2sX1Zj0/y-0ArD7$> |0%}{͐QEbHmX} d,dNSy9Yhc)?jy11ǻ߅yJN'1Q)s yxk_M7杘cbfL<6DF6v4z}K|emqAb/B?sHA|հ۱PuعݵiW&_L.6pǀ?ʮX:6XMc>-߇CcذƄ_6< „۰;1q~}[ͩ=O},'nQ$>lǐ$ ķϰn83jZEUXx3X%ӯbk0P#}?v| ɴ0‡1cFr9^~.Lta1,C%L:Ul?~S|cޕba,c==`ޕWb䩘z {%>v#~Aۀ52pq XTuLM3ر=|CqXWXga"WaGĆw`^0w~.b^`ᖓ0/˹MDНxy&vְѭ1\ &w S qw'1;4;(즌F]{ExyOkCy:9vI{F-|2$Lync#f~3,|a#J 1f_X%oc9xi^ dv;oCzdX$$8f6\mdK]:kń^BgaGJZX>,qLk 31a'WEY݂ 25FrKݴɫօiK&s5PGV9$ st^M {kXu-慸+k~KYg@|]ȩdW3%.& zIN"ۀ)Izhi ~9GEFѩqP:5 ֻ6,y^H|f0.I$ HoF0#҈ "b$(wmry`"Ld܁% {}K|f&bI[61Γ#ӎY{y=ދ]ӿ_'pK4| |q?yo`۱d=J6фСOC0l6`NB8wa~wwR2{o8L3Ly<}| |#Noއ` ObS/N$>FNga@+D /q*ꥣ4obj} wa?~ry!.凅vonq2HW~yv$>Ci۷%'џ{Itzi£yr܏]H;l`ٯ%j\lNwc+Ǯ}gC_l`[kGsۀ)8p\ܡ0f-}=e'1] 1܋y=6&{ `J|Nț礹ѿeջ'bFH|Lw4-mr}nfA/"bQgq[F}$VTaX[\Ħ'&>Y 6SEA.F7cBVyEc<}LI۷)1_q9aI ;$4v0?c/csLl򸋀?cxKm\G L??1cbt^B9ۀ)=H1vr>bb}"J5&>aXJ2&JN~v<%0/Go&#ߏ aÒOϪ(' 1N ­z>b->}_<L܍͊{'XxAO`r?<w_\i$ s01Tqo$>&mI|6a-}X#Q~r?,lk?aB,OUǰ\``8&`| WbL_Ÿ I|Lۀ) E| |0\#ߕף.Əy=nc`gu>DŽӀ^\ޅ .NNB(OrO>Y31X(&iqa H5!5,i0_ BqXџ#G k`Lʃ&{6?`UMoļ"K8} 6_ 6&6K{8fl{1Tw#7}LIޏofIOhbI5~{(|.lʓiXE1uXb9oB/WH<%ks^~Vʣ"sSՁς}0%h8⣽+oa lۀ)N<£ !~cɉ&t܇;+1oz61%+o<I m`#TzX>&dGCZd;{< C 0|lW)1}LIO.LI8Ҙw+NRvVP_b!?6u/t*Fc: c/@? u5q!hꃦ'Dp64wO'G .6쵏%}^~XǨa鷓 [룋I0!sY6yH'[ɶ=C<#ۀ~- jn!2TTe&$&Q^`)`^0E8. ykRS^MlK!yX>ll~z5v<6sk&c:b8@㾧_ZjO7>&ۋrŚvݟʼ]혘QaItyg 6[?oV#c!Q,,AuL$^'Jlͻɽ"`_ xG$4zaU>qfUKcxkmmv%+W|M˹ kذړvMN>phc0Ȱ=[XI_&,ރ m!,LDj۽Mrwof`DU6%{p9%<`yB.YƙX:Y4£y~b#[ :X#c~U%5vH;]~>Vw{zAcz3e>%yN&]TQ >u_+sg< YfgxPДe;bh*n`1Nx='ՍX ñ`Qۀ!B:/єsVր{>{0v({>6څ~iN;@c>6i&IqZ0 +4BQCXk`aQQDdR(;ij%h48LJ4=Lx^:d--NI!Xx7s|ecqeLL#4B**5gK(߯} K*>Q3Q5lmj2C$!ygH<qзsr*`^ 2 &@tmN>!4N (z?fe U(TQ,0">#hT& Ql|h`Qד{pb& XZmq*4uBUb-&\!v!Q+g>Ү1z.yoRc99ۆea lY8VlB0,5p;1水}rb |Th- z@tB&#DY6 E^1j6bf I61u},HxTpr=z a#Q-=IXc])+vn~͘X;noΖaz H9J8@n\6Şh =!V:ա}0'!'NCOC>m@M:cn̒{SbۀhNC|׬G,K͏qky J6sC6`bmףGI3ճ+&kcnC$V}A۷s"!Еh6ጵվ Yoq"16,&r&:#Qq8X;÷3[+†g^_Q ԇ܏bb.=;Rs8s 6@DC,Kg!Ǝ$_NA1Km̍.$C'br#=oD,6`&BZ װ z\͉iy6`N: zF mQ,T |- ͹iBkOg]6@E&ʚh*py?y>Obocqz1o>Wx@xHݾ3Vɀfe:+zPRD,|f]&v0AFy:z X:K5.*A=B<UIDATJXZ%Ӻf bD`H|c?q=e6mlDPQ4<Dj]2$>saz]#or!ᗮo@ "laO1R#A׺ DEĪۀziF^*(6@a$d>9͒G| c"$V;y>¤ۀfg-1 {zHxڑ񖝎O:!$>¥ۀ(:DzƐjğx#zFoV oVy=DhK ȗ&8uz!NmĊ.qoV$DEvaۀ<G1:Ьnmk_xCx6`I#\hyȣ*!}/="r퇍~z8@y^!E#. X2xw|h"cO, {B/UE[xF#> X"ҏoC(IG| b1kcA"vo#Xb o}$t 'u(}jRQEGGxm-D-"8$>e%r?džt.C#nz=C|\vEH|ď͎:P]9(GegEY|H0!!t|IJ: ķbfھ Q.壏E1t ۀi6@̄ ef5t\Dr2@Co'ۈQssη ZَP95ܡ~#\HxcyɨtGcHxȑcNmDFᗐmD%@ci76"PC_6jK!2biPec%n: HX*X ,QT#$ZPX:X X(s,J<  HxDbF s HxFC,-|3P'DC,1&e](kh(0YMvQ+  pķMNU.+<طd a$  a!+V]VيWU]ce$<#!XAt}tЈQHxćP(:1YbGCHx(CQiJَ9y!r(s*pn !J!.q%NCDahfZ!F χ(EɧEEɧ{nDc4$<ć(l 8zb(bޠ_3]((AQDPZ!@Cb o#4$ X: hbJvBO6 -9 !F1V[9 Pf yC蠄aD*!1,C 1# IJ"ۀ`?ecLC9C셒Ows&VTk (4EC/rzXN2Acba$>4lʧE܉$4lܝ<(491 [CexۈpBT<b4Kex($<y>ĬP'5L?z75!!fEOwsx?zHxBCQE6߷q*q&#5#χ ,4a徍 !@1/>u !χX>r9a%T:($Ģlʧ6 Ec4BxDQe7g/1 !<#! ۈ8 ?Z ,#!D("mD`h !D!$ACoGt&pF0 χz;^(#!D`!FCoGDSײ !DCAʧt·9%B2ٟ+.zX/rL>]#IBCCE f~T!*̵ !GQ}o#cz?!9;XJCCIގ= ,`-v!@Q'l(ӭ`Hx FC(CԍrFiQt!"BQ7h$(s~/du!"!Dd!@ޏe9BC46 FѝqEJ(C4+%r~tP"uF!C$]HguTa4_Q#χh>po#bY!1[ U/b C4M׷.;ع"r>#GXheuC *^*!!|FE9rǪ9B, Ѥst7@CBCB>6PX*CKXBv>ъ%Sn!HxH|$FX⩼*.R#!|CQ*"&R#!| ȑbP©pbEC@+<"Hxb!B!AޏUDCD o#DHxH|B0"$hΗU@CGCF׷V$<"8\&=9"HP[*XFDGϳBCJ׷bav6B!! mLxlyC |Qݏ8BLD2-૾3!!y>Dl bBC1|Y>1'#!y>Dlc1pB)1m7B̀."X}! y>D,| vq"y>D,$F-BC $<s"!bXGϷBxQE%(V{e۷!BxCĆ{K !ĂH|m sm"~v1 ۈC!De!bۀd !DE!beۈVC!*A+ho˅ćziBQ uWR1K(TQ |Idsuq;BQ9|`Ӻ6@H|6` 9ΫF$>D(z B,7po#!r#χX X"T?EQ;|e` o#GBC,[XXHx!@C, J<]\ !o"0ABڑ˂<mbuADLϷBAC,}DAh*hL(2:oBFQl c}!hy>IJm@d("hl} !GC,}DF߷BCC,Tj}ZcK!EC,#}DB߷BDC,#}DB߷BDCm2G|b+<b;Hx!IJm@H|!!!oGC %e|շso<bYFI8!j#!F3mbL߷"Q&ćXf oćXf?oFeGnCDߍ !Xv6@!D |!ćfBxGC,;l"0$>IJe B!B4ćB!ECb!N߷1mBH|!Q$>B(B!ćB!!BFˎʫ !D`mu<!<B}  !*"$>B(B!h!B4ćB!ECA B bumBćB!FC!"!BFB!DH|!Q$>B(B!h!B4ćB!EC!"!mBćB!FC,;k BQFC,;-!(#!BFB!DH|!Q$>B(B!h!B4ćB!EC!"!BFB!DH|eGՅ"0$>IJ"0$>B(B!h!B4ćB!EC!"!BFB!DH|!Q$>B(B!h!B4ćB!EC!"!BFB!DH|!Q$>B(B!h!B4ćB!EC!"!BFbuh6@!@CUbͷBB!h!B4ćBQmA101hJ R0p\l?~猬J|C@1<P0[P@ a (A|C`( %>1{>:lۖ=ܓ sx(@|Н C]b(H|Йj]jN|C:[%{`(AgW$>c|'@:st-@A~X\ܗ-N|Й:l BWK\'>j0OǙ +wErw0R0R:fudM|Еۖ=׉`( %>yy@aJ|C:Z6AGkŝ&>=@ak]%{`n⃮~fP[3 +qݷ]#{b~Esm۲g{y}S c<ZOɗ8tw%"^=L2l0كknc_(E|0ط!b_gC1f{``?>ڷVIENDB`asdf-wcs-schemas-0.5.0/docs/_static/images/logo-light-mode.png000066400000000000000000001245171502237724000242000ustar00rootroot00000000000000PNG  IHDR|^=% pHYs  ~ IDATx}=Uic%_"sea2V`e74ZHH\KV"g-Ea5Bk%=Q<լ|b֘z쮍H|`2=_7/3ԩ[>}}_騻|SU1DSe 7ƬNKD%Jt0pYU*h ,<˲u4~OD%J(>,(`!(b- R%J(QD[Yͳ,+TPQUOP,ˁƘFM,/D%Jm >D8&YiE5pg&%J(QDBȲlo@! GKBM wh[.Ӥ I(QD; $NaYc\i T(h܅3cjgIxD%Jtڂ,Jwni_;.RNij:nF!rD!I4 $z13/%J(ѵk >PegY6 v@ FAȁ{!驀Ө@(QDn+C| TvtM/" |~47ZcR`>H%J(Qۍ "ҁ h%]Oi%v:ݦ9C_t AN 13զD%JҵXF\, g̱&\kYNuoZ99j9[Ku]t/w%J(ѵ>Jo*ݨ`XP|ܣCx 7%T*iO(QD]!¼  Cj:fYq?^n[#Bq@b# `aYy$(QDnG:ieY;oAp>3 5ρZF~8?<xdYVdYQ%J(ѵX>˲QNMPPgYVF+-VK8kcL+߹?fhS  qqt7K(QD4P`gѴkȲ 9v:nM/}GzC9v6K#ihD4psй (QD+$КcZ3T.8 X^fY6u7ZTchJ^crSkBbJU%J(QXF 6f>"k弖;vBWw[VIu7wXQ+  PJ5 f"G,įQye˾gӑ(QۃN|cY-]L!- 3@Xx~{$\6ڊ 8Z`M9ĝ hRYd- t 9 ʲY0MCDKgYR7.ImЗ$\{&6MZDN|Fӑc2ea, 9Y/!cFW|6 yW.p%q>$xLQe"˲Vcfjђ;WAk]%rTY3^~>{)ZЭTǔm&E(Q=IQZx.pIaN/@W%~pvֵ\;ECnYJG'4!i ]0xQGA>[%Jt.#`\ #3JDpO13|aJ<i^ C9x Q7 fśb&. xh3Tf_3eL4!bD& }+lZ5h7w朱Y_]= Z`|Э ]0Xi%J1'}U 7jj98QDgI 8fvߖ/뀔Xrڜ{-k*~x?ǂ##YbSjek&tc=Z8QlZ C@q*l!5p3㨡KزZ 9g0!~hLU3:`\>rή.tk8%$h6 ^PbE4]ccs ƛ_vs9`G} Bxg'k{0|kftZLg!,f\*9v\FA$~M^@ͬ0Q̍#%Je~QA!(Rv^+ljCܳ !XE׎r|}L8MJ]B1WkN߷\DnW F^:^7s,N+<8Yc:ރ c5FCǀGߑ<5٬~ %ށB|`&NoňNBj^5=)xN軰TQ~&x!9S'(V:yÉqQDQo;T6uDi,ޒ3jĉ1N,Sw|fbwN> 83a/>APί*r>yy@Ho垑zXx+uy}`ý!񲊮%8+oY&43⺙A tDOivL܆'N|{ 87~H#4xLYGKHsع?0r) Xa/˽Ob5 uL}+VT%ͳ.Ԅ#%dJ9*N?s\ EޭCUC=62EF!ڴ`A>ZBRi@O#VGĉ{x\*ѡgwt摭P JĮRXǰxJߨ/cAGoSiXD࢖%\G\T &' 4r V;Zr6($2`;_myŃh Ζ^[U@9T]} oALRq{AJk3t&Nx8Ό1\7R/rt΢+:y> d.9| V~xE,0qx <x 2Sa7Ux&uVcZc 7^XAXJ>WI\cdߛ F xPi7+lJlF+B?pH1.:" P=]zWʽkIJBs63T<8qۋO vferDs"3LpA_h~*rCh~q P@g(~7q~J"!>FgVȖ SBVHxN]FϺu=m$ZW8q 8jfx8A#e{9:gKʡ)5b2F Vœ #Og-<[NÙ4C =^6.H)&`AwbW3j񚑾6Ᾱ\mis8q8cvϗ8w<fF_Į vnWׇxip)?Jm$ +\Vʮ_c^#x`QI%x3 Q#@KJ?iaNdMsN>! -~ ؾ+p+I9|k ?PMJ vyDN |\БT[y ?*}쬕ŮMW_1OaSSeǣ,rkoΣN,uc%[\xߎUqj%[71E<\Uܖ1YZ++p%\:WKu5XSC*^@(QېVxջ{Dpo%Yb;ϗʹގ5| r3ތv%[TxUpzgue!ʼ΂b58>s K/;٥sw ^2m1ur[y_Feު`Tx?Sej\;`7o,Q~Zj"3ϵ:ɹ$Nxw<&P: >Ff ބp~It'Nye.F(wͣ?c:!ES _h6 ]4r^5k,s}9d 59:!~+N|>r[U;s:+U.b8Ph$G 7-ʉؕ5^caoΦx_N'N|<{Ʉd]5 #\^Vb7s+? xYpeT9g?<0hߕ_Iw2nwS7}s{%²&ͷӥB'R[1t[ݱ-@O+ʽƷo]1qepA50xMB=[w5z {"s8qσ' eA˜= %TyN>gpqGpf`fErBhz{QK,y'7]kQ"帖*%ߧbd ŌP3Qf1~t]4R^\N]9păWHJN R73N+Vl% #u8q 9~&7Z+"g@u`O^`JOftVr߉W#f]VX+yMrlT!4Ux0k=tޱ;!F+ET  x5R5RGS,+tu9. K" \j%m<ڀ+ Iڒ@^&ao3c~? f)?3uLk+SdWvzA*8aĻ K& Buk(>t:72|î>`@f™Fi褕P9$VW-p<"o GCp-!IcP;~]ƀpkzgkb|ۯL(mo-.)FR=`V*|FRVxm^Ws}} Fj?fC%q t]cPHXI8j+{c|z!tG7:#kASiI N_ 9a8V|=xrSeNNqYQx-G15D#}'9{xp%sZr6V[5m׍%tfd5`ZJmĉZd 6 =X}bXh0v [Yz x1gߋݵ_ZͥuAimz]zf*Yr]cO;jv:Nh44GWфpƔ%~%yOlt3y9 `G} G/Vb)x6xsK-yJnZˤo;`>Հm:ǃsfE5]R.a$ve/I/a"xoby/=;ɁE#Kyh-lLCV3Y!|-tv9M79Ix|R,˦FPi(yVamu:I>5*3>GW!R4ϙDiyzzG5c)EFIƻ M- D\u2H_V91SW"o(!`t$J46ڗ8*IG@D \Kx鞑r=,Gw BMX?{-GP9zI}weV밻 ?iK]r<<+A@،r\~2,3,*6x0ϲO[B`@7@`b.G&CGkln#M*PA 7rq:ڗD|dYlρyBY9~kYγ,[!%5\KvƇ3 1>^/JNObM+ch'e2l~vUޯP gO:)v^*MZ#akw-?ܡHڴ5wc.{ ܷ؁LeӦ&J$5}]~HP)v+%?{bLgpOe١MNcc{|o-TrXmX3IM,q(>:> Gp/Kl=ʩғr|l/Cҏ@eYci$leM"y,˷h@b9y3sճ5uYM|s%:$Ф,`Zu$ ۶NcV4(7[ص+~`t'Pež:T$5dΌ:~5vT, g^NͿ9Ҩ*i5PO5()/Fu)b-&yeDj,*)%~Kշ' Y@\~?,יpZp&˲ErFM44Pf:c!5#ǎ]ԙb W%vCu[f<=ֹZDZOǮT5j1ީq|IG= 8ޡg`zl[wѾ_OP>'Y.d/ @jXgӕX@Vw vf߇6}9Tb-hG!$}>F%«|fV0N,xSJׄ me}›}ft~;85 IDATy.ׁ\. ֨8<S:2A5kDc+X$^0oHSSyW+ϸV(?x*Dv"3FɨTTᅗ[tl_r}bs^ :r1A.Y>QAw)[J<$\?,7Z.5g=iCbZm3D )-,#2%gy_(Ȗt]K Ƶ\ 9{.˨E}=BqP˭{kuHݓ++_O^3<&DeO[ɹ꧍[u'1x`/䌲t8!g]ގxp+kދ_x/02tSTˇ]>"V<\8{Oy9`Z)YtHI8Y2:_6o%aqvEv*3~WO2A/pPLfDwˮ ?i +^$ j(? ΒN.V;R?p~sƆN\@;56&;gj7*j,Y^;6U<ZħŃ'`oUtGGWS *9ם@>)uX<٨Y;WI9p yS7KzKVOT/b5Po <ԉ+ 듲U+Up SDcpf5q~V7U^y_ޝ -﫳bZןO2$"XuI:JO5sn v͆! ;v ߙ߅W |-¯⌑5y۫\f}! OW nLkwk.ܞP/ Q+kGہ(~ \C.~ÛSJET75oWq~RشY?8Dmp)aF@^C?q@o"JK 4 vĉ̓'(JXM$`< SJu=d8QSn640m[E9~邰îgUDOį%Q1BC։3R+"9N .rY?=5#r\/iQ~>ś\ir6F_$~ڹ@\řxwԄKF?$.;N!BPܠFs㚞o4.`Xc5~h V`:zEvQ~sFx0QM&j9ޜX၄;׀qe6xf*\=*}uz $Ӳq6'(QnuF:RI0.BQKY.NWcs-:R[< ?M&\b}u4=(jXG7%}: WI^[#V8Uy3/Q*BqcB9sVan'Bo#V1s"(br+37xj!^7%߄ӞWrv&佄ĭ:*ږR%0mNw޼%No<so_^#_G+n8SxUؑ 3@(GP'h_}jU}U|ŸFQ vyOˉ ~otXݲX {ړWLG _tv#y.0[ş>O5r,x/+0[Ge\@6~6:q"Gkc8f#I%eOYaN j M zRyx? sr~v`#r5t578/&wS? =hpLkt}TZs xl 9t7rfY z > |w/~=ESXOg,@d-|~v Ư<;7)8sf!q(˲3?{ؔ~7s1me3),+.>1UeSƘ ˲v\gYV3+#K[Ǧ,˦| y5'1u۸2/%NXKƘl1GU̍1Qrz4=N}4ƸkB3vy+䏀o~z=AciDEO:0O |g6\q!Bfe3c "X!WgYVfYVc*cL#YgYVc:2&˲܅_22cJʫmŽ_ ρee XeYH!,u䣑e|Ie}Bi\w_"i_ՂrDi@+@]O-sIKN;'2㮣  tu Й$~a-{"13z}ܳ&D ۑdDX }; Q_V: )g! H;3NU>^/#HX'_Vn*3To}g8Z"f1[^wRf3w=lcD'Cc 2,DSp/6Z)*6Dz,*чZ|  J+| ~+8!1Wcd|/T،Cn,(3Tt]*?UQD>)G0hz&v:;#&~qHDbJf_~5HXF` B~#׍\ϱ1ŨWcpb ֡!t F>\]zMׯfZ{%j&Mhh6& rUf`_$ &$`WD}:hN$h(i>$їGh]RcUkAcZ8gQKhXLS2&˲R9~`$Bu4D4'2I߉ V²^r363lBs]bvrݥĂI]8\9cH4f We߅-ۻ>! ~ sB@򛋶fc7%10 .tpWmUXAԢudJ"#%Ծ[y*{U}~ʁA)3qSs]RXȝ/Ёf29}&I fA%C;n愎p1Pk}(j$u|˞8CSUgCM}hᨑ5X$t3!P4.3{𔐟a#wuV?9vS7kj<ʥsٵH\:;XеHoD.# 5[ct kT.k ft5 ۩+1f1$Zt@X]3&Vb&qm-[sNfF;LəgYƘB|f_kLAc|/\cMVKc\@v.ηE%: %1 C.6aLf^h{!͇2z.րQ;-z֤m `7/T>d,˲871&ĮpPRJݾӤ{l$~Ox.<4ƔnQlvOGP/\ȒB6Sy<~g[6"Ch;&PKtX0x-nsJ)[7r]?w:'R[Jkda{~N۞7OO@B'n;t}8.V5`qMWkMѻKČY- iۭ{"X'/߇5 'RWiVxKnRl1Pնvaƥh&wJKZ-vu:o-ʶ۹n *3%o5~]Y>}uLLyTZN||N>|l;ܹo42Ӈ͑־pdc9'[i ܏hg2Q-|3s,8Y9#}-G35ֹ}{w}1go K <qn]įY#3:r,#hh8dl'; rax0|b֚pnI?pLJʞp v1(F*BG`@ӷ߾"<'a3scLeYe{dY6ɲlR3Uek߅(˲㷕ܤYro7 {yƕT(Qahhs1Z; ];ɘ-GY#zA -r]5r|oT;x@//kR=5Q> ƢKGnOj46EԌ UvZ־OLă ڻe_\ ];X-k\/s6SgO&ZDL > 84 F1pfgAɛSTqՊ)5ߍ#9ٓh!ĉ'vb#ͣaquZ"AOܐ}sƃ99.Wb]r,3V> 94 ?GwA5Q_E'ۅc#sAXX)s1=p'K<q@Z$oTyoĚx<ꝅ/MA -ryNY 1xDubkU)YߚH<<`h7$ݗazzH9_XˊJr9 tr Dm9"[bszvQKL!XfJĉƙ1D,*Cc:cL5t"dF@341f9dz,W#-(~n Gc|_! ;GڎZc7Uv.oi+Όtlqc22cTƘ\*N#a1(.ǁI/>:p2D?h7t+>d M=B1Ⱥ 5 kvn^swoZ EYv1ϒ4>A\Y>S9˲:l%:4%q`CcDt _i=naU8D9 5QbNk.)>6#-V!<1G$ X4fexk?RS Ih̔Iz! :ƘV&~! J.ƛiX?{><Cgz *)&xSڬh7ƼYұ:VfenK=L%<%q@5vSAcWuG'p'R ~ 4.t< %EƘ_# '΄1c:~ێS]8eYVcmމΧ_F3-l|MO:> @#|:M=%QHV` ]"^f~w18*>ixgODi0GDEGqQg VsGJ 81z6̊C~D@e <.װ|ez` %$]x0/r\vfY6 6iSߪ.}tc]㡡p-&CNYeY!\ 7F֔X #::k?St,It>=f$eY6S &M%J rhuP'SAcγy@5 a p,T -t [Ny(*]!P)˲35ƘL\!fYs`/ߏxvm:Ozp/2q&3"eY~~y/CFK{FC8\q@D!4v.1&QaU뱔:ǪH@Mi͆1Ƙ1F/>q#5䴗K,Z7i؅MI6#ߚ*"?#R5ww6e^b5!cu1\F%T1u .(˲3¶5Pc&Nbw?| <(O*?ׄzTq6K)n҆P _Vl:'ZGxE5 4>-]2`;9^pg$WGfTiF01]nҸRs>BCPNŎ/Le3,!U6/%?aw}viH#>%:MZDm"7t뚳'vbY݅1R뉄*lYEw2,2[yJ]gv<^,ZIy%mFP?g+ILxl2Y_Խk X> ;t;;]Ok6XP&B]ؙ:8Qa~U*fM%WkP,袳U!*ahaýF횄+H{~ki~/9gS&ln0^|ZDaɱzlYO+9-gإ9;yz6v·fY-!̑FJWUkc̶jP+XC(_(Qf@,L },Y6X\4:Z"52ƒ2Ci>\k ]hT׸,*G ?>W}:4nrOS\NQ#-e4d5?}?jBWqm!u/FP7-c3tI|3k9@] &[7r[[B+Fǹp/PN7:}~9.pyTh u sa #څ;A:xӆXGc_q|_c;Vb& 83ˌxr9Qr47#/Ifk˲P6}SBYi 9c'ݽ@_75o.RQ.*Z"v$J9/z fזw:@uh@ϮSc q:G␝Ԟr.eFu\u{i^~/ARv x rm#zٖ.(yD=v+\'01#!pkd*>$p=V>%6tcq*y8$A3 TFӈWATxa$K#OOkO<UVѕkśP愚0*l`M-oǮBy>@ D6r^ 'sFqU-TxR5Īm_4{8\zo4quzZ c2,y~yOxkx,fO)hKNrkr?~6F xoV?TV ]i cJ?p֎\=ѺHX)mp~) l+*@]CZ\]"Cq;tw#tGNT*V30깅:*9_MҶs_A#wZMP{m/ gs-]`a#^FnJ{nESFimg־B3d\JeUt ?o.[7PxTŖ<2鵆=Na~Ka4k^GOc5QSI:>C,){^`iq:h_W˼v~^˺/k[&4_ms$t( dA87.nMlS'QyOaU}"gNă|p &5+åO~ ?eKt;vc:\^0ûB[7k8 CkB FuE \q!,uw pm'CRp*B<ڜ)\#8w{55KfQD*z^t%4(g\a89cȸ%!( mnfCQpʾv,o PX;BOhN~I]WR<N. ns˻ :esNw|Ҹ[#Tϸw5Q)0rRԠL%r}+q덦W;T!p_A`x֭ڝ3ʣe<ø~i..j=hì)* Q:еnnI^JUs"-DvޔuO3B C+Hwp|Z5"K­ Yw[19>XAں#P邎#X㧷>x`M%[u[A?t w*x?y\ sqz:PW;ۭu=uDH- ^#G*y4O=3t]*'r* LόL+p)k' -_LhYXs1pZԊ8;uF+}k^ a=ݫaGSx L\{oHaR. K8B3[ykEgiF q4Cw~Wh5!pZmi뚰j=؜:\ʮ#a •S@?9ҳC1~`P&xK}x0KOs/jZ[|)F_`+"'R +=r}Nqdp)简KI[G^ zl5wq{^e_'GG>̗r, q[$4Q|R Bet^m\Nq^9]  =d~/߂0{Pm+rs\l@kD 5޹UF/G$\x?(AV!>.ϽJ*֧r}XKK_4|;]6agcO?b]Sd5ca5*lIh{ 'FW`cF8ףPayN::6k8*{b}O,Ox+GzZ{ rQJ9=l?/w,К -یK\(^Z,`Z2>,S`ZObş\؇h9%agV?ЄqivZq}N|IP32'FD&)ygZ։4/QGx owƂ7bAK[~ *CQaxB74xLNWǾ`3J-&rPq›E4N !2z#Vc[a5ÂC+ġӱ 6˸V>mwLdi&QG`!6꼠fG 6Vfr5t;%o PN?!vPI<~_,!u r]]Q"Tاex͝XzX>cu@YxMz=oߊW}hΥ[Ƙɱ>eY1nk,plt3:,˜ dM1\7X!ȵ1d*~|̽\Ok=ih1\~:c#iS,0IgS Gm ['&Z-ҭVH"2A0`q'pL5< <xUOHuacLqeY6zC;tIrc|D\,b`e4*,#:2yG6#;gW0Gj F"+ w}÷`3>? CDǻ1Y>ΣKgbfwH D2$m>uƘ]:,VIsJk-$MHXetQ2޺J+Nϝ2Qjr-40,XɼGL}3?oYK/jR>3 }.ª}>+z)z[Ϟڪ;`4Yǜ/no,.)sjTIFP.c'} ḅo{V {9EBqK(sz:?x5,$.n7I&oa7y@+wʽb_>1+7CQhFP&%=NjEl}VڅAY/ex5^y0^egtw$l%;zlCCs >J)/[koH+o8%'GPcU= l{H2z 3-۠uYx:nI۱R-~}* 9.y"9=V3Ӓ~0oFQ9Ҡ #p)?T6Ne3QF O͊=!J|j@$=(YY W$ $0@ z1cPSlP!d`ȚYŬqΉfOn:uwu諸yN>WWWw]uW%Uh?,IY?=aEd'Gi!7UsQV6YC/@ǖka [FqH; #LY߶FZYb;%nɨ Փ{=sz]nEE[2 MH)~SnchoR7Uⱝ}aF{K./r;5ɨ'_/!$!aV*uP)޷9Nm^%عs9WH'Mґ{7ERM\VnHw3,o_pJN= |?D( Дp*W G8mvsPcx&1?GHJ67k~/ Lu1CI߻zZ>Yp@[;2}%/sw[YdБɊ*H!qXGhNͩ3 rM.W?O97uj&1Vx]FIvV:b 6DN[ ~lcjf`[T*Sw_#zz\~YOiX#nAHh-3E\RUlgۣ 340=&G3*l~_;wQi ` | gҤn&МSȋ+uAdUD' E#T[⦛),/C^I\܌4勾ޯTHj-SX~ieeГ񷰽-w`HmDoW?n.9}v]Tw :yw~M@f[9_IL|xL~_sG?٠`8s;8A/5~5"g  k&I2ꕱ]])%LnJ,%)Q ڷ6Zu4^/0rT?zX@{538z%Z b;񨿣T/ґsX߮vF,~m9Ss v&tzQuE+@QUI=aQCn[EQ"F+iV^K\2d퍰? ӫDa#:Yrmic`]ZFu8a=UE$ir h"[`wڵs/$/ K4~3^G@ӣPdmgh t.v=o/c&?ϣC}d @3Y튇}VG+y+Ɲ73NWcyyO ;^>\Ex])|-Ϣch[:X.Y9_I8Dcf]#rl'/ߢ9Zxgh΃SCVe&2 ɰ=2v} iul=]|sjo#~k^#Iﱞ_B\aw_zh?[b; (T@24# :}2l,$34ńC͘~M?]Mp'/"/@+"CPTh*$1Ps,%7?o]o N uȥl#}j︳^ CHǖI@Һ_O ׸o?[b;Ȱ=˰OvGhF#h&hӲA3g?xpC{|(@wu". ŬVV2zR#:Qݖ ;_n0F:2P Zv _wl L,~iCزi| [D~xy 4s4@Ϭo+$u&q/N= vl ] }8XY>Z $ɢp9eY¤fw%vDlds8ѽ/Q'&7˹+kߓmeET1^l<aѥl}/7s_F?c.FKoa~-fzX׹yl)S2^+_ ͢Ν@) K43lK4xGI=Gݠ)"`Cwŷa*>p"RE˰_hNGC笔;VvvYH[+b}YQ{D6ߴMf ތrNz{o ^ F'ZgaQ B}Փu"C+@kvK߁"YVTι%Z&/V' ]+V!$/ ?9w'm:N5k\cz|Z}?nJ.4J;#k 9#\X̒ͅW@#p* !( !!(?_ ufzXCbNbɇeg"VVm$ ='l'+DoBV8< ޯ[Ͽ 5|9d~. s=ȗXjrNL,~DӧƐ*uC]ۿƺs2km qG}nڿn{"Gu눗k]^xWy0nRvVÇL`KV:#suy }ǿkJ rN`bE{LH9HN󌰓UOȺɰ[x+Ls7<}]V/E {=@4.8r+rέꡮs0vkT{ׇ$z+-.}ʐK. Y}q"Ӊx7Y+ȱӕ἞7*|xCj]I>mpzV|CJU#4^U=r6?^`_@4н֎v#9kG\-']wc嶧kaO"{Zrwj{7|dtW+PN `y.ThpD g +D''gUgjP$2NjqO~N54[>@1c0>} >ܚ {وU\(hUѲ|>z3TINa&4ojD8 {LH^'ǥPxUoi<ޟz䃆ɑ ɴvʳNUh pDRJIq*V=g$G40&4@g{VAIݘypL)T=6YL>hhua;B,^T|x%L;4<)Tבbգ`&4:Old+`k4*O(|c©Ub xjNX܉b+Qn:ո`Ǽp^Y.co)|+}8 S #|gл:5@ꝿEFu0|KܬzDYOb[`ŪQL>\7͝1qQ!SzByyx-]K*a*NڹKRcT(<'G$ `"fBHL,~hU{} ɧQĴ.-A[|${)yN~#Bo9UDr&Ac1!\]N8 W9l;XaT&PA;|Ld+ 3^+ޖ}D>z_C9s`+òA0H~HeJ:|O>xC3G8!ץy&CSe@\_DN!c@H) dWuι9WS|<(qzEW4
9G4LɜA8kR*(ە%yݏ!GjMÕ9uF3ȾK 縱52km2/_N5ȑs 83Xe̪Gqx lI *l7ܾgjß'ॊ=[ acDndlP J;!>{JSb9E9s|ױ@~ %ZoT>2De4SF?ϱ](<]P`aTt{Ht~x5c^+UXV6̩nV>m1wCD@Tm#ϗlFw0HlT>ci NNƘn)1ꂿ[@sE{0*T^XD%dd )t&s|d[n_ zKB3R ME\qSTޟ' J*HU?|?v"Yy'n>+}WQ7`ZU=! $^D 3]2 :]#Cs uOr[PA(t!{Ъ{__i\r:!Y9{ fHJYȿ+GS9 ݷ_~qvB Q;|hZZhAIZ \てvzm{hsn[Գ3Yι~Q"Th$Br挓{|X ? O{/ϕ!TO{yF7ΤZX~`m >/0&ht*g\2P94RX,Iae齈\>Q L$V!7 |FH_C}ףPW'*G#qͽC/s}~|=Dbq^Y:ʴ_K͵֭mXN.x-v.[͇=lN 8҄+7*Hd9>9DӨZ_ߔ=!T>61O J|uH%iǴo߷ DW'2~߱m)\h>4[2,:rֶMs ;U==B3sn%,[ۮ~ 2")Mh} ͙2 B/1'òՐ?"O=S~Y0?f(Y܇o|g 5x/mHDAiV\䬎/bc=}?rॗeP(d\Ջ$ u ?!x?>BH <_u7/2Y5-ĆL>">\X;SdPU(diIG4dj!`W ڧ ;, |E !f;!$0k,*o}!w*O!$.?-o)븥Z7G~~@3TT]c#^6Õzaɝv=m)GO̖^zi tNM2A( ;ιz^! 7Ջvm(NJ!QKE@?\9cN*N:{)zܵskwuxپB?1߉k!G1_@H>WI[CӣJg&*=jYo4-iУv{<e4G gC$"qOU ;s\GsιFFgX7P!#BGʐKE;ɪb7L>v Q%=J0j8~ Ҝ㝗 h80Rr4h XU0= ?k.&c|hp{(D6橈fŝޥVj/dJE|m1hZ :Cs {4;mKP?OXrq .ԣ)1Œ'X!@dt;~c#mW%;J͢[Lg.*l3>c}|uL>pix {G)}\3/}j$b[ 4Xң1n1߉pMp/7IL>a?TNaqvgIm8.0x!GD#fs}hΚ EnQC#l#c(? IDAT-WFNpDι9lUJ6dx<#L5N%9ykhDcA+߳МREۨpGxJ;K/`K?YA)v6>7d.MUx|aޏ ~cGwtzx`յmKEӵxD-{b)'ܼw ^:Zι%%ipݪPG8o.5]~c!%/B"EXDH& aw RٙfvgRS\zUJ&btms*>j_Ef^(Bg$°ffxeaj22XW Lh~~_qL>S^sD9s*ɥ-W=+iz->(0#\4!w$Bh;@HXIZ9WxWXCNuUrOrc*N*VeiqV&1~h6t&4_D88?l$%BD#GH3v{7BrR(wvGa X9ZIe}#' $@(^3eK-qjS싱WIGH6U?~% !X!| !Ϝske^vKu!\2$ OJ;10,J<_;4#6ƅ=-?| |wh B͕kgDyR(q*ߓfҺ/c4ş{"oO`7 nuricKk TX/[|.Og&' )Tr\~[G~/?L>3d aVPvlţi̕՝>w^e Ự @Q~,{Q~őmOgôDSwѧ ^,ŀ>2~.UO{f൤XJ<2o!'k!?*4I%+&* !YyIflj;r9nZ5yv᧰ F|k^܁I<+  KJzYyk}ՉFZ$)w(U@*zn&DIIyCގaRXP#% 4=yt ۉNR؟gwն@* ة!!_ ^k}.on5d'3SWveb ѩ諸wSqSaߣ:Kz,H˵zvݠ9~=,7&'k/wX{vo`\l* πCn/\M698{j?\(m3b VqFKY*~J\+":~^{$wa >Jr*Z+yo-KJ ;!SXG:AZS[iDl5ZZМFju`p>-vL^CA3vdj{;ǁ4F:VV>SipB9U} G:ؿ*!n#$V\||B5K~V 4a xM!֐/C8Q䜋9uIL>γ:~S(\.^yx@>jFN3KHk8:<#$lv Tx\f.>jKl' E=" (38C#ܝw|kpF7o4[coX<* >;IF͝v}!V z=*D{sͥ]|//7r3وu>|2`,cp˸>/0ڒH<:#QB˰ߘʇ;a:&K-KC\窎AH#|`H0gdC0et=O_x[XȣǙd#:G۲ιB;~:.悔phyL&;+kռs3D=Ry:4eChbR )W2)~/qT;VHgS&4`S L`k|=1=#$o;É)ș'Oϥ>^0uSr)w`IܗS*ev"6(ӭ &+-<p9ƻ><Վ)1Y}`rL%<Ijo רIFۦ9f&vF3uRz”C X9ŠU<-#Ľ'(i걜b]uJ = KrumۻĎSsc't|\! ?9jʑ8K=x2gh0s&Ky>ci,]=B CI.v\[=11t1vJ#zuL>4ZCa)2`j( gw6 L> P+r6>hг)6IzML>1Is^X]qTϰዘ 3[jVX|@>`S9rV"G[4,;ĩ$y"zX9( |G$ b TK*zAL>3ع MS䐉Nif3lc1׎gurJbc8yB;ĔSfK[JJ|kjJw|OiЇ&.R( |H@}nˁ.PGi1QipG}LBF$N~1_JGxι\&{H33{L;Wk.40[&#cѯw8Hv}Jz'ï)Q{tgL>z6:LOޏ6[&&#sy=`zWKL-M'||K;#{&9`Q-쮣EDWac|%x=38BW?># ΩԎzu+CC/KػvK,ai AkqOE.`@yiiӯr]a}"ɇR;ڭO~H^籂>C|sұtq뤼3+z|=>>pXCW_+H(ճz~Ȕofxv4=CsnG>\=q-|M; ]5GB<{ﴃaC_sy+ cV?U"z[Tǜ]pe;H4"m+6Q1DG֯e$rJmJOann;}T%^{0;N-]̳\h(| _\)Nl^^hkiP|Igl l{$bmz- #X0icx YZ^ʇ!8ϼv97rR: Pr^ C&p8xKvک_np9*x<21aDSv ?vWzFڕKV=hL> k>|Ǎ7JsOH{睲':]l*QLZ K}x^;T0110~^q=ra8hhg OG3\ht|h hGX }O;&kRʇq~ nv&kR# K̗0Ͱv.G4& #s~QQ&2IDHS0A; zILLUj0A 96\8&s{$g>LDdz^z `95vPi@'Bh1H|^뷐%L>$wq$GI)p #]8إ3K$/3&k|$JLXF =;=&i뗩18FF1H]F;:':3p #qv|-diȵ "3>cYc8Yhy a1vD l0d0cxG08@SJj;!ι;39^)bi@s|eL)|LqX'IcaL<(I|Lsnv}Et)ܞLIbcrc@"s9x)J ⩷Geq2<uT&$Jʵ0,NR]xP|LzvFreA~ι9ia&ƫ3(r(0M UobaypK&'_Xl>ZJd$CMG7&`ă& ia'2u7)sΕ>֎&4YL>nl>kp˜swx|1Ln\W ǀ;`{1[ sm֎V?Si;ՉZ;" |ܶ\;cXQGy|8 Y2 `& 񌖽x̧mk\EK+0h{păcir6PhBd]O;ABf,]]>s(p=q* &D8B^f>}1:BK7`3&Dݘ|PͧdT`GOvDV1l>aHcģa2|6x鷂3X:&ͧnT*@%8)]rBt&I~!vZxFA嬥D MO7阱Gɧ0؋HXk$0$圛G&D#b.v}ۜ2}/&D#c僮aH_R;.LhaGsΕ>y{ăPodjąͧι7x<,4QFia+4$%2ă V>W<7'Q|Px^5FQLh0#c^!)i0v?LƧB-Q:pJ).xͼ8m:QbXA;' W?*01 J+48N$ aeKځM|I &Dt3 c|Y aR*Jç䃬c# _gs) ds <2N FDgaR]L<\|y<֬GV 2ݚ5gAD`A(-_)Dt)P2s ϵ tA)a㩾GvD6&^lN_>"JOս D&R; 6 DV>(E{&D'V>(9ι{ӎF<#bJLnǍX2 1T܀G}MJ>Wh@D䃒9?{_jADRp hx %9wqL}M+,^Wh@DRǡ~=pB1"J~- c%9v轟iADMADm`僒眛\9)4 JL8k\" J;ĕ`AS^.khLL>hdGѨ|ДT$s{Ѩ|ДT$AvF䃦:#1ɐ#G8䃈F䃦 !vDt{|T$nJ;pȅT.49ι q$r!"|&DMQ@*v1)b8#"RÞ$7þęMH +4U0왉ibASanH*` 䃦ja1IW1nbAS"lJDژ|ДOA&"uL>hxODd2V>vq:&D "R䃦;Z""|dy9İMݣvp(1h` g7%" |Ѩ|ݎg&DDd:8䃦GDD0 ""Q1 vDD""""""""""""۱`AtK6L>hdL>hTL>hTL>hTL>hTL>hTL>nF;""oc "|Ș|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|i@DDۘ|k@DDۘ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ|Ѩ^;8Ҏӎ`A.|v!""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ""Q1 ιL;""Ms^;""䃦N;""v̴ "|ݒvDD""""""L;""vdL>hdL>hTL>h8)AL>h87L>hdL>hX "2MGX+L>n ADMs;Y""|TqxL;""&De*䃦.f1 -3|TADd*|ti@D趼yc s{6V>nsn6&49ZvDtۘ|L""Ø|Ѩ|VHL;CD|Ѩ|Ѩ|Ѩ|Ѩ|ݞ'1 =k1)h`+DMF;Þ|*&49J;V1zQvDDL>hU!"Md?ha3vDD1 9w|J9 gM ڱ(ze&Dd 4@3HFyj-Ya2 xM*+&DdYι̝f,'ܾQ2RIENDB`asdf-wcs-schemas-0.5.0/docs/_templates/000077500000000000000000000000001502237724000177335ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/docs/_templates/autosummary/000077500000000000000000000000001502237724000223215ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/docs/_templates/autosummary/base.rst000066400000000000000000000003731502237724000237700ustar00rootroot00000000000000{% extends "autosummary_core/base.rst" %} {# The template this is inherited from is in astropy/sphinx/ext/templates/autosummary_core. If you want to modify this template, it is strongly recommended that you still inherit from the astropy template. #} asdf-wcs-schemas-0.5.0/docs/_templates/autosummary/class.rst000066400000000000000000000003741502237724000241640ustar00rootroot00000000000000{% extends "autosummary_core/class.rst" %} {# The template this is inherited from is in astropy/sphinx/ext/templates/autosummary_core. If you want to modify this template, it is strongly recommended that you still inherit from the astropy template. #} asdf-wcs-schemas-0.5.0/docs/_templates/autosummary/module.rst000066400000000000000000000003751502237724000243450ustar00rootroot00000000000000{% extends "autosummary_core/module.rst" %} {# The template this is inherited from is in astropy/sphinx/ext/templates/autosummary_core. If you want to modify this template, it is strongly recommended that you still inherit from the astropy template. #} asdf-wcs-schemas-0.5.0/docs/changes.rst000066400000000000000000000001041502237724000177330ustar00rootroot00000000000000.. _change_log: Change Log ========== .. include:: ../CHANGES.rst asdf-wcs-schemas-0.5.0/docs/conf.py000066400000000000000000000200351502237724000170750ustar00rootroot00000000000000# Astropy documentation build configuration file. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this file. # # All configuration values have a default. Some values are defined in # the global Astropy configuration which is loaded here before anything else. # See astropy.sphinx.conf for which values are set there. # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # sys.path.insert(0, os.path.abspath('..')) # IMPORTANT: the above commented section was generated by sphinx-quickstart, but # is *NOT* appropriate for astropy or Astropy affiliated packages. It is left # commented out with this explanation to make it clear why this should not be # done. If the sys.path entry above is added, when the astropy.sphinx.conf # import occurs, it will import the *source* version of astropy instead of the # version installed (if invoked as "make html" or directly with sphinx), or the # version in the build directory (if "python setup.py build_sphinx" is used). # Thus, any C-extensions that are needed to build the documentation will *not* # be accessible, and the documentation will not build correctly. import datetime import os import sys from pathlib import Path # Ensure documentation examples are determinstically random. import numpy import tomli from pkg_resources import get_distribution try: numpy.random.seed(int(os.environ["SOURCE_DATE_EPOCH"])) except KeyError: pass try: from sphinx_astropy.conf.v1 import * # noqa: F403 except ImportError: print("ERROR: the documentation requires the sphinx-astropy package to be installed") sys.exit(1) # Get configuration information from `pyproject.toml` with open(Path(__file__).parent.parent / "pyproject.toml", "rb") as configuration_file: conf = tomli.load(configuration_file) configuration = conf["project"] # -- General configuration ---------------------------------------------------- project = configuration["name"] author = f"{configuration['authors'][0]['name']} <{configuration['authors'][0]['email']}>" copyright = f"{datetime.datetime.now().year}, {author}" release = get_distribution(configuration["name"]).version version = ".".join(release.split(".")[:2]) # If your documentation needs a minimal Sphinx version, state it here. # needs_sphinx = '1.2' intersphinx_mapping["pypa-packaging"] = ("https://packaging.python.org/en/latest/", None) intersphinx_mapping["asdf-astropy"] = ("https://asdf-astropy.readthedocs.io/en/latest/", None) intersphinx_mapping["pytest"] = ("https://docs.pytest.org/en/latest/", None) intersphinx_mapping["gwcs"] = ("https://gwcs.readthedocs.io/en/latest/", None) # Docs are hosted as a "subproject" under the main project's domain: https://www.asdf-format.org/projects # This requires including links to main project (asdf-website) and the other asdf subprojects # See https://docs.readthedocs.io/en/stable/guides/intersphinx.html#using-intersphinx subprojects = { # main project "asdf-website": ("https://www.asdf-format.org/en/latest", None), # other subprojects "asdf": ("https://www.asdf-format.org/projects/asdf/en/stable", None), "asdf-coordinates-schemas": ("https://www.asdf-format.org/projects/asdf-coordinates-schemas/en/latest/", None), "asdf-standard": ("https://asdf-standard.readthedocs.io/en/latest/", None), "asdf-transform-schemas": ("https://www.asdf-format.org/projects/asdf-transform-schemas/en/latest/", None), } intersphinx_mapping.update(subprojects) # noqa: F405 # To perform a Sphinx version check that needs to be more specific than # major.minor, call `check_sphinx_version("x.y.z")` here. # check_sphinx_version("1.2.1") # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns.append("_templates") # This is added to the end of RST files - a good place to put substitutions to # be used globally. rst_epilog += """""" # -- Project information ------------------------------------------------------ # -- Options for HTML output --------------------------------------------------- # A NOTE ON HTML THEMES # The global astropy configuration uses a custom theme, 'bootstrap-astropy', # which is installed along with astropy. A different theme can be used or # the options for this theme can be modified by overriding some of the # variables set in the global configuration. The variables set in the # global configuration are listed below, commented out. # Adds a global navigation in the topbar - consistent across subprojects globalnavlinks = { "ASDF Projects": "https://www.asdf-format.org", "Tutorials": "https://www.asdf-format.org/en/latest/tutorials/index.html", "Community": "https://www.asdf-format.org/en/latest/community/index.html", } topbanner = "" for text, link in globalnavlinks.items(): topbanner += f"
{text}" # Add any paths that contain custom themes here, relative to this directory. # To use a different custom theme, add the directory containing the theme. # html_theme_path = [] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. To override the custom theme, set this to the # name of a builtin theme or the name of a custom theme in html_theme_path. html_theme = "furo" html_static_path = ["_static"] # Custom sidebar templates, maps document names to template names. # Override default settings from sphinx_asdf / sphinx_astropy (incompatible with furo) html_sidebars = {} # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = "_static/images/favicon.ico" html_logo = "" html_theme_options = { "light_logo": "images/logo-light-mode.png", "dark_logo": "images/logo-dark-mode.png", "announcement": topbanner, } pygments_style = "monokai" # NB Dark style pygments is furo-specific at this time pygments_dark_style = "monokai" # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". html_title = f"{project.replace('_', ' ')} v{release}" # Output file base name for HTML help builder. htmlhelp_basename = project + "doc" # Render inheritance diagrams in SVG graphviz_output_format = "svg" graphviz_dot_args = [ "-Nfontsize=10", "-Nfontname=Helvetica Neue, Helvetica, Arial, sans-serif", "-Efontsize=10", "-Efontname=Helvetica Neue, Helvetica, Arial, sans-serif", "-Gbgcolor=white", "-Gfontsize=10", "-Gfontname=Helvetica Neue, Helvetica, Arial, sans-serif", ] # -- Options for LaTeX output -------------------------------------------------- # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [("index", project + ".tex", project + " Documentation", author, "manual")] latex_logo = "_static/images/logo-light-mode.png" # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [("index", project.lower(), project + " Documentation", [author], 1)] sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname("__file__")), "sphinxext")) extensions += ["sphinx_asdf", "sphinx.ext.intersphinx", "sphinx.ext.extlinks"] # noqa: F405 def setup(app): app.add_css_file("custom.css") # -- sphinx_asdf configuration --------------------------------------------- # Top-level directory containing ASDF schemas (relative to current directory) asdf_schema_path = "../resources/schemas/stsci.edu" # This is the prefix common to all schema IDs in this repository asdf_schema_standard_prefix = "gwcs" asdf-wcs-schemas-0.5.0/docs/contributing.rst000066400000000000000000000003231502237724000210350ustar00rootroot00000000000000.. _contributing: Contributing ============ We welcome feedback and contributions of all kinds. Contributions of code, documentation, or general feedback are all appreciated. .. include:: ../CONTRIBUTING.rst asdf-wcs-schemas-0.5.0/docs/frames.rst000066400000000000000000000004761502237724000176140ustar00rootroot00000000000000.. _frame-schemas: Coordinate Frame Schemas ======================== The ``frame`` schemas. Current ------- .. asdf-autoschemas:: celestial_frame-1.0.0 composite_frame-1.0.0 frame-1.0.0 frame2d-1.0.0 spectral_frame-1.0.0 stokes_frame-1.0.0 temporal_frame-1.0.0 Legacy ------ .. asdf-autoschemas:: asdf-wcs-schemas-0.5.0/docs/index.rst000066400000000000000000000021251502237724000174370ustar00rootroot00000000000000.. _asdf-wcs-schemas: **************** ASDF WCS Schemas **************** The ASDf WCS Schemas define a set of schemas for serializing WCS objects for the :ref:`GWCS ` package. These schemas are based upon the schemas in the :ref:`ASDF Standard ` and are packaged for use by the :ref:`asdf ` library. .. note:: This is only a schema package, to use these schemas to serialize WCS objects, one must install the :ref:`GWCS ` package. Included Resources ================== The following are listings of all the schemas provided by this package for ASDF. .. note:: Typically, schemas are used in ASDF via their tag, which can be found in the manifest. When usina a WCS in ASDF it is recommended that you use the tag instead of a direct reference to the schema. Moreover, when doing so make sure you are using the correct manifest version. .. toctree:: :maxdepth: 1 wcs.rst frames.rst transforms.rst manifests.rst Developer Resources =================== .. toctree:: :maxdepth: 1 contributing.rst changes.rst asdf-wcs-schemas-0.5.0/docs/make.bat000066400000000000000000000106411502237724000172050ustar00rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=_build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Astropy.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Astropy.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp if errorlevel 1 exit /b 1 echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub if errorlevel 1 exit /b 1 echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text if errorlevel 1 exit /b 1 echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man if errorlevel 1 exit /b 1 echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) :end asdf-wcs-schemas-0.5.0/docs/manifests.rst000066400000000000000000000006561502237724000203300ustar00rootroot00000000000000.. _manifests: Manifests ========= The ASDF tags (described by schemas) available under each ASDF transform schemas version are all described by a single manifest document for that version. GWCS ---- .. asdf-autoschemas:: :schema_root: ../resources :standard_prefix: manifests gwcs-1.0.1 gwcs-1.1.0 Legacy ------ .. asdf-autoschemas:: :schema_root: ../resources :standard_prefix: manifests gwcs-1.0.0 asdf-wcs-schemas-0.5.0/docs/transforms.rst000066400000000000000000000010421502237724000205230ustar00rootroot00000000000000.. _transform-schemas: Transform Schemas ================= The ``transform`` schemas. Current ------- .. asdf-autoschemas:: direction_cosines-1.1.0 grating_equation-1.1.0 label_mapper-1.1.0 regions_selector-1.1.0 sellmeier_glass-1.1.0 sellmeier_zemax-1.1.0 snell3d-1.1.0 spherical_cartesian-1.1.0 Legacy ------ .. asdf-autoschemas:: direction_cosines-1.0.0 grating_equation-1.0.0 label_mapper-1.0.0 regions_selector-1.0.0 sellmeier_glass-1.0.0 sellmeier_zemax-1.0.0 snell3d-1.0.0 spherical_cartesian-1.0.0 asdf-wcs-schemas-0.5.0/docs/wcs.rst000066400000000000000000000003021502237724000171170ustar00rootroot00000000000000.. _wcs-schemas: WCS Schemas =========== The ``wcs`` schemas. Current ------- .. asdf-autoschemas:: step-1.1.0 wcs-1.1.0 Legacy ------ .. asdf-autoschemas:: step-1.0.0 wcs-1.0.0 asdf-wcs-schemas-0.5.0/pyproject.toml000066400000000000000000000040061502237724000175620ustar00rootroot00000000000000[project] name = 'asdf_wcs_schemas' description = 'ASDF WCS schemas' readme = 'README.md' requires-python = '>=3.9' license-files = ['LICENSE'] authors = [{ name = 'The ASDF Developers', email = 'help@stsci.edu' }] classifiers = [ 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Development Status :: 5 - Production/Stable', ] dependencies = [ 'asdf-standard >= 1.1.0', 'asdf-transform-schemas >= 0.6.0', 'asdf-coordinates-schemas >= 0.4.0', ] dynamic = ['version'] [build-system] requires = [ "setuptools>77", "setuptools_scm[toml]>=3.4", "wheel" ] build-backend = "setuptools.build_meta" [project.optional-dependencies] docs = [ 'tomli', 'sphinx', 'sphinx-asdf >= 0.1.3', 'sphinx-astropy', 'astropy >= 5.0.4', 'graphviz', 'matplotlib', 'docutils', 'furo', ] test = [ 'pytest >= 4.6.0', 'asdf >= 2.8.0', 'asdf-astropy', ] [project.urls] 'tracker' = 'https://github.com/asdf-format/asdf-wcs-schemas/issues' 'documentation' = 'https://www.asdf-format.org/projects/asdf-wcs-schemas/en/latest' 'repository' = 'https://github.com/asdf-format/asdf-wcs-schemas' [project.entry-points] 'asdf.resource_mappings' = { asdf_wcs_schemas = 'asdf_wcs_schemas.integration:get_resource_mappings' } [tool.setuptools_scm] write_to = "src/asdf_wcs_schemas/_version.py" [tool.setuptools] packages = ["asdf_wcs_schemas", "asdf_wcs_schemas.resources"] [tool.setuptools.package-data] "asdf_wcs_schemas.resources" = ["resources/**/*.yaml"] [tool.setuptools.package-dir] '' = "src" "asdf_wcs_schemas.resources" = "resources" [tool.pytest.ini_options] asdf_schema_root = 'resources/schemas' asdf_schema_tests_enabled = 'true' asdf_schema_ignore_unrecognized_tag = 'true' testpaths = """ tests resources """ addopts = '--color=yes' [tool.black] line-length = 120 force-exclude = ''' ^/( ( \.eggs | \.git | \.pytest_cache | \.tox | build | dist )/ ) ''' [tool.isort] profile = "black" filter_files = true line_length = 120 asdf-wcs-schemas-0.5.0/resources/000077500000000000000000000000001502237724000166605ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/resources/__init__.py000066400000000000000000000000001502237724000207570ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/resources/manifests/000077500000000000000000000000001502237724000206515ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/resources/manifests/gwcs-1.0.0.yaml000066400000000000000000000205501502237724000231340ustar00rootroot00000000000000%YAML 1.1 --- id: asdf://asdf-format.org/astronomy/gwcs/manifests/gwcs-1.0.0 extension_uri: asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.0.0 title: gwcs extension 1.0 description: |- A set of tags for serializing STScI gwcs models. asdf_standard_requirement: gte: 1.1.0 tags: - tag_uri: tag:stsci.edu:gwcs/celestial_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/celestial_frame-1.0.0 title: A celestial frame description: |- Represents a celestial frame - tag_uri: tag:stsci.edu:gwcs/composite_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/composite_frame-1.0.0 title: A set of frames description: |- Represents a set of frames - tag_uri: "tag:stsci.edu:gwcs/direction_cosines-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/direction_cosines-1.0.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. - tag_uri: "tag:stsci.edu:gwcs/direction_cosines-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/direction_cosines-1.1.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. - tag_uri: "tag:stsci.edu:gwcs/frame2d-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame2d-1.0.0" title: > Represents a 2D frame. description: | Represents a 2D frame. - tag_uri: "tag:stsci.edu:gwcs/frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame-1.0.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. - tag_uri: "tag:stsci.edu:gwcs/grating_equation-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/grating_equation-1.0.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. - tag_uri: "tag:stsci.edu:gwcs/grating_equation-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/grating_equation-1.1.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. - tag_uri: "tag:stsci.edu:gwcs/label_mapper-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/label_mapper-1.0.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.0.0). The [label_mapper](ref:label_mapper-1.0.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.0.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. - tag_uri: "tag:stsci.edu:gwcs/label_mapper-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/label_mapper-1.1.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.1.0). The [label_mapper](ref:label_mapper-1.1.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.1.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. - tag_uri: "tag:stsci.edu:gwcs/regions_selector-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/regions_selector-1.0.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. - tag_uri: "tag:stsci.edu:gwcs/regions_selector-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/regions_selector-1.1.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. - tag_uri: "tag:stsci.edu:gwcs/sellmeier_glass-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.0.0" title: > Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ - tag_uri: "tag:stsci.edu:gwcs/sellmeier_glass-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.1.0" title: > Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ - tag_uri: "tag:stsci.edu:gwcs/sellmeier_zemax-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.0.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax - tag_uri: "tag:stsci.edu:gwcs/sellmeier_zemax-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.1.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax - tag_uri: "tag:stsci.edu:gwcs/snell3d-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/snell3d-1.0.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. - tag_uri: "tag:stsci.edu:gwcs/snell3d-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/snell3d-1.1.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. - tag_uri: "tag:stsci.edu:gwcs/spectral_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/spectral_frame-1.0.0" title: > Represents a spectral frame. description: > - tag_uri: "tag:stsci.edu:gwcs/spherical_cartesian-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.0.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. - tag_uri: "tag:stsci.edu:gwcs/spherical_cartesian-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.1.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. - tag_uri: "tag:stsci.edu:gwcs/step-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/step-1.0.0" title: > Describes a single step of a WCS transform pipeline. description: > - tag_uri: "tag:stsci.edu:gwcs/step-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/step-1.1.0" title: > Describes a single step of a WCS transform pipeline. description: > - tag_uri: "tag:stsci.edu:gwcs/stokes_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/stokes_frame-1.0.0" title: > Represents a stokes frame description: > - tag_uri: "tag:stsci.edu:gwcs/temporal_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/temporal_frame-1.0.0" title: > Represents a temporal frame. description: > - tag_uri: "tag:stsci.edu:gwcs/wcs-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/wcs-1.0.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. - tag_uri: "tag:stsci.edu:gwcs/wcs-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/wcs-1.1.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ... asdf-wcs-schemas-0.5.0/resources/manifests/gwcs-1.0.1.yaml000066400000000000000000000120231502237724000231310ustar00rootroot00000000000000%YAML 1.1 --- id: asdf://asdf-format.org/astronomy/gwcs/manifests/gwcs-1.0.1 extension_uri: asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.0.1 title: gwcs extension 1.0.1 description: |- A set of tags for serializing STScI gwcs models. asdf_standard_requirement: gte: 1.1.0 tags: - tag_uri: tag:stsci.edu:gwcs/celestial_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/celestial_frame-1.0.0 title: A celestial frame description: |- Represents a celestial frame - tag_uri: tag:stsci.edu:gwcs/composite_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/composite_frame-1.0.0 title: A set of frames description: |- Represents a set of frames - tag_uri: "tag:stsci.edu:gwcs/direction_cosines-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/direction_cosines-1.0.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. - tag_uri: "tag:stsci.edu:gwcs/frame2d-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame2d-1.0.0" title: > Represents a 2D frame. description: | Represents a 2D frame. - tag_uri: "tag:stsci.edu:gwcs/frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame-1.0.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. - tag_uri: "tag:stsci.edu:gwcs/grating_equation-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/grating_equation-1.0.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. - tag_uri: "tag:stsci.edu:gwcs/label_mapper-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/label_mapper-1.0.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.0.0). The [label_mapper](ref:label_mapper-1.0.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.0.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. - tag_uri: "tag:stsci.edu:gwcs/regions_selector-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/regions_selector-1.0.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. - tag_uri: "tag:stsci.edu:gwcs/sellmeier_glass-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.0.0" title: > Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ - tag_uri: "tag:stsci.edu:gwcs/sellmeier_zemax-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.0.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax - tag_uri: "tag:stsci.edu:gwcs/snell3d-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/snell3d-1.0.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. - tag_uri: "tag:stsci.edu:gwcs/spectral_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/spectral_frame-1.0.0" title: > Represents a spectral frame. description: > - tag_uri: "tag:stsci.edu:gwcs/spherical_cartesian-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.0.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. - tag_uri: "tag:stsci.edu:gwcs/step-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/step-1.0.0" title: > Describes a single step of a WCS transform pipeline. description: > - tag_uri: "tag:stsci.edu:gwcs/stokes_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/stokes_frame-1.0.0" title: > Represents a stokes frame description: > - tag_uri: "tag:stsci.edu:gwcs/temporal_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/temporal_frame-1.0.0" title: > Represents a temporal frame. description: > - tag_uri: "tag:stsci.edu:gwcs/wcs-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/wcs-1.0.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ... asdf-wcs-schemas-0.5.0/resources/manifests/gwcs-1.1.0.yaml000066400000000000000000000120231502237724000231310ustar00rootroot00000000000000%YAML 1.1 --- id: asdf://asdf-format.org/astronomy/gwcs/manifests/gwcs-1.1.0 extension_uri: asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.1.0 title: gwcs extension 1.1.0 description: |- A set of tags for serializing STScI gwcs models. asdf_standard_requirement: gte: 1.1.0 tags: - tag_uri: tag:stsci.edu:gwcs/celestial_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/celestial_frame-1.0.0 title: A celestial frame description: |- Represents a celestial frame - tag_uri: tag:stsci.edu:gwcs/composite_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/composite_frame-1.0.0 title: A set of frames description: |- Represents a set of frames - tag_uri: "tag:stsci.edu:gwcs/direction_cosines-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/direction_cosines-1.1.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. - tag_uri: "tag:stsci.edu:gwcs/frame2d-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame2d-1.0.0" title: > Represents a 2D frame. description: | Represents a 2D frame. - tag_uri: "tag:stsci.edu:gwcs/frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame-1.0.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. - tag_uri: "tag:stsci.edu:gwcs/grating_equation-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/grating_equation-1.1.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. - tag_uri: "tag:stsci.edu:gwcs/label_mapper-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/label_mapper-1.1.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.1.0). The [label_mapper](ref:label_mapper-1.1.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.1.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. - tag_uri: "tag:stsci.edu:gwcs/regions_selector-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/regions_selector-1.1.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. - tag_uri: "tag:stsci.edu:gwcs/sellmeier_glass-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.1.0" title: > Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ - tag_uri: "tag:stsci.edu:gwcs/sellmeier_zemax-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.1.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax - tag_uri: "tag:stsci.edu:gwcs/snell3d-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/snell3d-1.1.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. - tag_uri: "tag:stsci.edu:gwcs/spectral_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/spectral_frame-1.0.0" title: > Represents a spectral frame. description: > - tag_uri: "tag:stsci.edu:gwcs/spherical_cartesian-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.1.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. - tag_uri: "tag:stsci.edu:gwcs/step-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/step-1.1.0" title: > Describes a single step of a WCS transform pipeline. description: > - tag_uri: "tag:stsci.edu:gwcs/stokes_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/stokes_frame-1.0.0" title: > Represents a stokes frame description: > - tag_uri: "tag:stsci.edu:gwcs/temporal_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/temporal_frame-1.0.0" title: > Represents a temporal frame. description: > - tag_uri: "tag:stsci.edu:gwcs/wcs-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/wcs-1.1.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ... asdf-wcs-schemas-0.5.0/resources/manifests/gwcs-1.2.0.yaml000066400000000000000000000120231502237724000231320ustar00rootroot00000000000000%YAML 1.1 --- id: asdf://asdf-format.org/astronomy/gwcs/manifests/gwcs-1.2.0 extension_uri: asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.2.0 title: gwcs extension 1.2.0 description: |- A set of tags for serializing STScI gwcs models. asdf_standard_requirement: gte: 1.1.0 tags: - tag_uri: tag:stsci.edu:gwcs/celestial_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/celestial_frame-1.0.0 title: A celestial frame description: |- Represents a celestial frame - tag_uri: tag:stsci.edu:gwcs/composite_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/composite_frame-1.0.0 title: A set of frames description: |- Represents a set of frames - tag_uri: "tag:stsci.edu:gwcs/direction_cosines-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/direction_cosines-1.1.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. - tag_uri: "tag:stsci.edu:gwcs/frame2d-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame2d-1.0.0" title: > Represents a 2D frame. description: | Represents a 2D frame. - tag_uri: "tag:stsci.edu:gwcs/frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame-1.0.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. - tag_uri: "tag:stsci.edu:gwcs/grating_equation-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/grating_equation-1.1.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. - tag_uri: "tag:stsci.edu:gwcs/label_mapper-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/label_mapper-1.1.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.1.0). The [label_mapper](ref:label_mapper-1.1.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.1.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. - tag_uri: "tag:stsci.edu:gwcs/regions_selector-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/regions_selector-1.1.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. - tag_uri: "tag:stsci.edu:gwcs/sellmeier_glass-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.1.0" title: > Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ - tag_uri: "tag:stsci.edu:gwcs/sellmeier_zemax-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.1.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax - tag_uri: "tag:stsci.edu:gwcs/snell3d-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/snell3d-1.1.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. - tag_uri: "tag:stsci.edu:gwcs/spectral_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/spectral_frame-1.0.0" title: > Represents a spectral frame. description: > - tag_uri: "tag:stsci.edu:gwcs/spherical_cartesian-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.1.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. - tag_uri: "tag:stsci.edu:gwcs/step-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/step-1.1.0" title: > Describes a single step of a WCS transform pipeline. description: > - tag_uri: "tag:stsci.edu:gwcs/stokes_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/stokes_frame-1.0.0" title: > Represents a stokes frame description: > - tag_uri: "tag:stsci.edu:gwcs/temporal_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/temporal_frame-1.0.0" title: > Represents a temporal frame. description: > - tag_uri: "tag:stsci.edu:gwcs/wcs-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/wcs-1.2.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ... asdf-wcs-schemas-0.5.0/resources/manifests/gwcs-1.3.0.yaml000066400000000000000000000120231502237724000231330ustar00rootroot00000000000000%YAML 1.1 --- id: asdf://asdf-format.org/astronomy/gwcs/manifests/gwcs-1.3.0 extension_uri: asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.3.0 title: gwcs extension 1.3.0 description: |- A set of tags for serializing STScI gwcs models. asdf_standard_requirement: gte: 1.6.0 tags: - tag_uri: tag:stsci.edu:gwcs/celestial_frame-1.1.0 schema_uri: http://stsci.edu/schemas/gwcs/celestial_frame-1.1.0 title: A celestial frame description: |- Represents a celestial frame - tag_uri: tag:stsci.edu:gwcs/composite_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/composite_frame-1.0.0 title: A set of frames description: |- Represents a set of frames - tag_uri: "tag:stsci.edu:gwcs/direction_cosines-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/direction_cosines-1.2.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. - tag_uri: "tag:stsci.edu:gwcs/frame2d-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame2d-1.1.0" title: > Represents a 2D frame. description: | Represents a 2D frame. - tag_uri: "tag:stsci.edu:gwcs/frame-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame-1.1.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. - tag_uri: "tag:stsci.edu:gwcs/grating_equation-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/grating_equation-1.2.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. - tag_uri: "tag:stsci.edu:gwcs/label_mapper-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/label_mapper-1.2.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.2.0). The [label_mapper](ref:label_mapper-1.2.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.2.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. - tag_uri: "tag:stsci.edu:gwcs/regions_selector-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/regions_selector-1.2.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. - tag_uri: "tag:stsci.edu:gwcs/sellmeier_glass-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.2.0" title: > Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ - tag_uri: "tag:stsci.edu:gwcs/sellmeier_zemax-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.2.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax - tag_uri: "tag:stsci.edu:gwcs/snell3d-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/snell3d-1.2.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. - tag_uri: "tag:stsci.edu:gwcs/spectral_frame-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/spectral_frame-1.1.0" title: > Represents a spectral frame. description: > - tag_uri: "tag:stsci.edu:gwcs/spherical_cartesian-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.2.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. - tag_uri: "tag:stsci.edu:gwcs/step-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/step-1.2.0" title: > Describes a single step of a WCS transform pipeline. description: > - tag_uri: "tag:stsci.edu:gwcs/stokes_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/stokes_frame-1.0.0" title: > Represents a stokes frame description: > - tag_uri: "tag:stsci.edu:gwcs/temporal_frame-1.1.0" schema_uri: "http://stsci.edu/schemas/gwcs/temporal_frame-1.1.0" title: > Represents a temporal frame. description: > - tag_uri: "tag:stsci.edu:gwcs/wcs-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/wcs-1.3.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ... asdf-wcs-schemas-0.5.0/resources/manifests/gwcs-1.4.0.yaml000066400000000000000000000127321502237724000231430ustar00rootroot00000000000000%YAML 1.1 --- id: asdf://asdf-format.org/astronomy/gwcs/manifests/gwcs-1.4.0 extension_uri: asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.4.0 title: gwcs extension description: |- A set of tags for serializing STScI gwcs models. asdf_standard_requirement: gte: 1.6.0 tags: - tag_uri: tag:stsci.edu:gwcs/celestial_frame-1.2.0 schema_uri: http://stsci.edu/schemas/gwcs/celestial_frame-1.2.0 title: A celestial frame description: |- Represents a celestial frame - tag_uri: tag:stsci.edu:gwcs/composite_frame-1.0.0 schema_uri: http://stsci.edu/schemas/gwcs/composite_frame-1.0.0 title: A set of frames description: |- Represents a set of frames - tag_uri: "tag:stsci.edu:gwcs/direction_cosines-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/direction_cosines-1.3.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. - tag_uri: "tag:stsci.edu:gwcs/fitswcs_imaging-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/fitswcs_imaging-1.0.0" title: FITS WCS Imaging Transform. description: > This transform represents a FITS WCS standard Imaging transform. It is defined by the typical FITS WCS parameters (CRPIX, CRVAL, CDELT, PC and projection) and implemented using astropy.modeling transforms. Unlike the FITS implementation inputs and CRPIX are 0-indexed. - tag_uri: "tag:stsci.edu:gwcs/frame-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame-1.2.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. - tag_uri: "tag:stsci.edu:gwcs/frame2d-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/frame2d-1.2.0" title: > Represents a 2D frame. description: | Represents a 2D frame. - tag_uri: "tag:stsci.edu:gwcs/grating_equation-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/grating_equation-1.3.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. - tag_uri: "tag:stsci.edu:gwcs/label_mapper-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/label_mapper-1.3.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.3.0). The [label_mapper](ref:label_mapper-1.3.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.3.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. - tag_uri: "tag:stsci.edu:gwcs/regions_selector-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/regions_selector-1.3.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. - tag_uri: "tag:stsci.edu:gwcs/sellmeier_glass-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.3.0" title: > Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ - tag_uri: "tag:stsci.edu:gwcs/sellmeier_zemax-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.3.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax - tag_uri: "tag:stsci.edu:gwcs/snell3d-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/snell3d-1.3.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. - tag_uri: "tag:stsci.edu:gwcs/spectral_frame-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/spectral_frame-1.2.0" title: > Represents a spectral frame. description: > - tag_uri: "tag:stsci.edu:gwcs/spherical_cartesian-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.3.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. - tag_uri: "tag:stsci.edu:gwcs/step-1.3.0" schema_uri: "http://stsci.edu/schemas/gwcs/step-1.3.0" title: > Describes a single step of a WCS transform pipeline. description: > - tag_uri: "tag:stsci.edu:gwcs/stokes_frame-1.0.0" schema_uri: "http://stsci.edu/schemas/gwcs/stokes_frame-1.0.0" title: > Represents a stokes frame description: > - tag_uri: "tag:stsci.edu:gwcs/temporal_frame-1.2.0" schema_uri: "http://stsci.edu/schemas/gwcs/temporal_frame-1.2.0" title: > Represents a temporal frame. description: > - tag_uri: "tag:stsci.edu:gwcs/wcs-1.4.0" schema_uri: "http://stsci.edu/schemas/gwcs/wcs-1.4.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ... asdf-wcs-schemas-0.5.0/resources/schemas/000077500000000000000000000000001502237724000203035ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/000077500000000000000000000000001502237724000222045ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/000077500000000000000000000000001502237724000231475ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/celestial_frame-1.0.0.yaml000066400000000000000000000006311502237724000276040ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/celestial_frame-1.0.0" title: > Represents a celestial frame. allOf: - type: object properties: axes_names: minItems: 2 maxItems: 3 axes_order: minItems: 2 maxItems: 3 unit: minItems: 2 maxItems: 3 - $ref: frame-1.0.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/celestial_frame-1.1.0.yaml000066400000000000000000000006311502237724000276050ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/celestial_frame-1.1.0" title: > Represents a celestial frame. allOf: - type: object properties: axes_names: minItems: 2 maxItems: 3 axes_order: minItems: 2 maxItems: 3 unit: minItems: 2 maxItems: 3 - $ref: frame-1.1.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/celestial_frame-1.2.0.yaml000066400000000000000000000006311502237724000276060ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/celestial_frame-1.2.0" title: > Represents a celestial frame. allOf: - type: object properties: axes_names: minItems: 2 maxItems: 3 axes_order: minItems: 2 maxItems: 3 unit: minItems: 2 maxItems: 3 - $ref: frame-1.2.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/composite_frame-1.0.0.yaml000066400000000000000000000006271502237724000276460ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/composite_frame-1.0.0" title: > Represents a set of frames. allOf: - type: object properties: name: description: Name of composite frame. type: string frames: description: List of frames in the composite frame. type: array ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/direction_cosines-1.0.0.yaml000066400000000000000000000016671502237724000302020ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/direction_cosines-1.0.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. examples: - - Convert direction cosines to vectors. - | ! transform_type: from_direction_cosines - - Convert vectors to directional cosines. - | ! transform_type: to_direction_cosines allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - object: properties: transform_type: description: | The type of transform/class to initialize. type: string enum: [to_direction_cosines, from_direction_cosines] required: [transform_type] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/direction_cosines-1.1.0.yaml000066400000000000000000000016671502237724000302030ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/direction_cosines-1.1.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. examples: - - Convert direction cosines to vectors. - | ! transform_type: from_direction_cosines - - Convert vectors to directional cosines. - | ! transform_type: to_direction_cosines allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - object: properties: transform_type: description: | The type of transform/class to initialize. type: string enum: [to_direction_cosines, from_direction_cosines] required: [transform_type] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/direction_cosines-1.2.0.yaml000066400000000000000000000017511502237724000301760ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/direction_cosines-1.2.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. examples: - - Convert direction cosines to vectors. - asdf-standard-1.6.0 - | ! transform_type: from_direction_cosines - - Convert vectors to directional cosines. - asdf-standard-1.6.0 - | ! transform_type: to_direction_cosines allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - object: properties: transform_type: description: | The type of transform/class to initialize. type: string enum: [to_direction_cosines, from_direction_cosines] required: [transform_type] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/direction_cosines-1.3.0.yaml000066400000000000000000000017511502237724000301770ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/direction_cosines-1.3.0" title: > Convert coordinates between vector and direction cosine form. description: | This schema is for transforms which convert to and from direction cosines. examples: - - Convert direction cosines to vectors. - asdf-standard-1.6.0 - | ! transform_type: from_direction_cosines - - Convert vectors to directional cosines. - asdf-standard-1.6.0 - | ! transform_type: to_direction_cosines allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - object: properties: transform_type: description: | The type of transform/class to initialize. type: string enum: [to_direction_cosines, from_direction_cosines] required: [transform_type] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/fitswcs_imaging-1.0.0.yaml000066400000000000000000000041441502237724000276450ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/fitswcs_imaging-1.0.0" title: FITS WCS Imaging Transform description: | This transform represents a FITS WCS standard Imaging transform. It is defined by the typical FITS WCS parameters (CRPIX, CRVAL, CDELT, PC and projection) and implemented using astropy.modeling transforms. Unlike the FITS implementation inputs and CRPIX are 0-indexed. allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - object: properties: crpix: title: CRPIX description: | Pixel coordinate of the reference point, 0-indexed. tag: "tag:stsci.edu:asdf/core/ndarray-1.*" ndim: 1 datatype: float64 shape: [2] crval: title: CRVAL description: | Celestial longitude and latitude of the fiducial point (in degrees). tag: "tag:stsci.edu:asdf/core/ndarray-1.*" ndim: 1 datatype: float64 shape: [2] cdelt: title: CDELT description: | Coordinate scales. tag: "tag:stsci.edu:asdf/core/ndarray-1.*" ndim: 1 datatype: float64 shape: [2] pc: title: PC matrix description: | Linear transformation matrix. tag: "tag:stsci.edu:asdf/core/ndarray-1.*" ndim: 2 datatype: float64 shape: [2, 2] projection: title: Celestial sphere projection description: | An instance of one of the classes in astropy.modeling.projections. anyOf: - $ref: "http://stsci.edu/schemas/asdf/transform/zenithal-1.4.0" - $ref: "http://stsci.edu/schemas/asdf/transform/conic-1.5.0" - $ref: "http://stsci.edu/schemas/asdf/transform/quadcube-1.4.0" - $ref: "http://stsci.edu/schemas/asdf/transform/pseudoconic-1.4.0" - $ref: "http://stsci.edu/schemas/asdf/transform/pseudocylindrical-1.4.0" - $ref: "http://stsci.edu/schemas/asdf/transform/cylindrical-1.4.0" required: [crpix, crval, cdelt, pc, projection] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/frame-1.0.0.yaml000066400000000000000000000041021502237724000255540ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/frame-1.0.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. examples: - - | A celestial frame in the ICRS reference frame. - | ! axes_names: [lon, lat] name: CelestialFrame reference_frame: ! frame_attributes: {} unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg] - - | A pixel frame in three dimensions - | ! axes_names: [raster position, slit position, wavelength] axes_order: [0, 1, 2] axes_type: [SPATIAL, SPATIAL, SPECTRAL] name: pixel naxes: 3 unit: [!unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel] type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer axes_names: description: | The name of each axis in this frame. type: array items: anyOf: - type: string - type: 'null' reference_frame: description: | The reference frame. $ref: "http://astropy.org/schemas/astropy/coordinates/frames/baseframe-1.0.0" unit: description: | Units for each axis. type: array items: $ref: "http://stsci.edu/schemas/asdf/unit/unit-1.0.0" axis_physical_types: description: | An iterable of strings describing the physical type for each world axis. These should be names from the VO UCD1+ controlled Vocabulary (http://www.ivoa.net/documents/latest/UCDlist.html). type: array items: type: string required: [name] additionalProperties: true ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/frame-1.1.0.yaml000066400000000000000000000041661502237724000255670ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/frame-1.1.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. examples: - - | A celestial frame in the ICRS reference frame. - asdf-standard-1.6.0 - | ! axes_names: [lon, lat] name: CelestialFrame reference_frame: ! frame_attributes: {} unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg] - - | A pixel frame in three dimensions - asdf-standard-1.6.0 - | ! axes_names: [raster position, slit position, wavelength] axes_order: [0, 1, 2] axes_type: [SPATIAL, SPATIAL, SPECTRAL] name: pixel naxes: 3 unit: [!unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel] type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer axes_names: description: | The name of each axis in this frame. type: array items: anyOf: - type: string - type: 'null' reference_frame: description: | The reference frame. $ref: "http://astropy.org/schemas/astropy/coordinates/frames/baseframe-1.1.0" unit: description: | Units for each axis. type: array items: $ref: "http://stsci.edu/schemas/asdf/unit/unit-1.0.0" axis_physical_types: description: | An iterable of strings describing the physical type for each world axis. These should be names from the VO UCD1+ controlled Vocabulary (http://www.ivoa.net/documents/latest/UCDlist.html). type: array items: type: string required: [name] additionalProperties: true ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/frame-1.2.0.yaml000066400000000000000000000042611502237724000255640ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/frame-1.2.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. examples: - - | A celestial frame in the ICRS reference frame. - asdf-standard-1.6.0 - | ! axes_names: [lon, lat] name: CelestialFrame reference_frame: ! frame_attributes: {} unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg] - - | A pixel frame in three dimensions - asdf-standard-1.6.0 - | ! axes_names: [raster position, slit position, wavelength] axes_order: [0, 1, 2] axes_type: [SPATIAL, SPATIAL, SPECTRAL] name: pixel naxes: 3 unit: [!unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel] type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer axes_names: description: | The name of each axis in this frame. type: array items: anyOf: - type: string - type: 'null' reference_frame: description: | The reference frame. $ref: "http://astropy.org/schemas/astropy/coordinates/frames/baseframe-1.2.0" unit: description: | Units for each axis. type: array items: anyOf: - tag: "tag:stsci.edu:asdf/unit/unit-1.*" - tag: "tag:astropy.org:astropy/units/unit-1.*" axis_physical_types: description: | An iterable of strings describing the physical type for each world axis. These should be names from the VO UCD1+ controlled Vocabulary (http://www.ivoa.net/documents/latest/UCDlist.html). type: array items: type: string required: [name] additionalProperties: true ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/frame2d-1.0.0.yaml000066400000000000000000000011701502237724000260040ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/frame2d-1.0.0" title: > Represents a 2D frame. examples: - - | A two dimensional spatial frame - | ! axes_names: [lon, lat] name: Frame2D unit: [!unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel] allOf: - type: object properties: axes_names: minItems: 2 maxItems: 2 axes_order: minItems: 2 maxItems: 2 unit: minItems: 2 maxItems: 2 - $ref: frame-1.0.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/frame2d-1.1.0.yaml000066400000000000000000000011701502237724000260050ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/frame2d-1.1.0" title: > Represents a 2D frame. examples: - - | A two dimensional spatial frame - | ! axes_names: [lon, lat] name: Frame2D unit: [!unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel] allOf: - type: object properties: axes_names: minItems: 2 maxItems: 2 axes_order: minItems: 2 maxItems: 2 unit: minItems: 2 maxItems: 2 - $ref: frame-1.1.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/frame2d-1.2.0.yaml000066400000000000000000000011701502237724000260060ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/frame2d-1.2.0" title: > Represents a 2D frame. examples: - - | A two dimensional spatial frame - | ! axes_names: [lon, lat] name: Frame2D unit: [!unit/unit-1.0.0 pixel, !unit/unit-1.0.0 pixel] allOf: - type: object properties: axes_names: minItems: 2 maxItems: 2 axes_order: minItems: 2 maxItems: 2 unit: minItems: 2 maxItems: 2 - $ref: frame-1.2.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/grating_equation-1.0.0.yaml000066400000000000000000000025141502237724000300270ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/grating_equation-1.0.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. examples: - - AnglesFromGratingEquation3D model. - | ! groove_density: 2700.0 order: 2.0 output: angle - - WavelengthFromGratingEquation model. - | ! groove_density: 2700.0 order: 2.0 output: wavelength allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - type: object properties: groove_density: description: | The groove density of the grating anyOf: - type: number - $ref: "http://stsci.edu/schemas/asdf/unit/quantity-1.1.0" order: description: | Spectral order type: number output: type: string description: | indicates which quantity the grating equation is solved for. enum: [wavelength, angle] required: [groove_density, order, output] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/grating_equation-1.1.0.yaml000066400000000000000000000025141502237724000300300ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/grating_equation-1.1.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. examples: - - AnglesFromGratingEquation3D model. - | ! groove_density: 2700.0 order: 2.0 output: angle - - WavelengthFromGratingEquation model. - | ! groove_density: 2700.0 order: 2.0 output: wavelength allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - type: object properties: groove_density: description: | The groove density of the grating anyOf: - type: number - $ref: "http://stsci.edu/schemas/asdf/unit/quantity-1.1.0" order: description: | Spectral order type: number output: type: string description: | indicates which quantity the grating equation is solved for. enum: [wavelength, angle] required: [groove_density, order, output] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/grating_equation-1.2.0.yaml000066400000000000000000000025761502237724000300410ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/grating_equation-1.2.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. examples: - - AnglesFromGratingEquation3D model. - asdf-standard-1.6.0 - | ! groove_density: 2700.0 order: 2.0 output: angle - - WavelengthFromGratingEquation model. - asdf-standard-1.6.0 - | ! groove_density: 2700.0 order: 2.0 output: wavelength allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - type: object properties: groove_density: description: | The groove density of the grating anyOf: - type: number - $ref: "http://stsci.edu/schemas/asdf/unit/quantity-1.2.0" order: description: | Spectral order type: number output: type: string description: | indicates which quantity the grating equation is solved for. enum: [wavelength, angle] required: [groove_density, order, output] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/grating_equation-1.3.0.yaml000066400000000000000000000025601502237724000300330ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/grating_equation-1.3.0" title: > A grating equation model. description: | Supports two models: - Given incident angle and wavelength compute the refraction/difraction angle. - Given an incident angle and a refraction angle compute the wavelength. examples: - - AnglesFromGratingEquation3D model. - asdf-standard-1.6.0 - | ! groove_density: 2700.0 order: 2.0 output: angle - - WavelengthFromGratingEquation model. - asdf-standard-1.6.0 - | ! groove_density: 2700.0 order: 2.0 output: wavelength allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - type: object properties: groove_density: description: | The groove density of the grating anyOf: - type: number - tag: "tag:stsci.edu:asdf/unit/quantity-1.*" order: description: | Spectral order type: number output: type: string description: | indicates which quantity the grating equation is solved for. enum: [wavelength, angle] required: [groove_density, order, output] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/label_mapper-1.0.0.yaml000066400000000000000000000077661502237724000271300ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/label_mapper-1.0.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.0.0). The [label_mapper](ref:label_mapper-1.0.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.0.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. examples: - - Map array indices are to labels. - asdf-standard-1.5.0 - | ! mapper: !core/ndarray-1.0.0 data: - [1, 0, 2] - [1, 0, 2] - [1, 0, 2] datatype: int64 shape: [3, 3] no_label: 0 - - Map numbers dictionary to transforms which return labels. - | ! atol: 1.0e-08 inputs: [x, y] inputs_mapping: !transform/remap_axes-1.1.0 mapping: [0] n_inputs: 2 mapper: !!omap - !!omap labels: [-1.67833272, -1.9580548, -1.118888] - !!omap models: - !transform/shift-1.1.0 {offset: 6.0} - !transform/shift-1.1.0 {offset: 2.0} - !transform/shift-1.1.0 {offset: 4.0} no_label: 0 - - Map a number within a range of numbers to transforms which return labels. - | ! mapper: !!omap - !!omap labels: - [3.2, 4.1] - [2.67, 2.98] - [1.95, 2.3] - !!omap models: - !transform/shift-1.1.0 {offset: 6.0} - !transform/shift-1.1.0 {offset: 2.0} - !transform/shift-1.1.0 {offset: 4.0} inputs: [x, y] inputs_mapping: !transform/remap_axes-1.1.0 mapping: [0] n_inputs: 2 allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - type: object properties: mapper: description: | A mapping of inputs to labels. In the general case this is a `astropy.modeling.core.Model`. It could be a numpy array with the shape of the detector/observation. Pixel values are of type integer or string and represent region labels. Pixels which are not within any region have value ``no_label``. It could be a dictionary which maps tuples to labels or floating point numbers to labels. anyOf: - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - type: object properties: labels: type: array items: anyOf: - type: number - type: array items: type: number minLength: 2 maxLength: 2 models: type: array items: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" inputs: type: array items: type: string description: | Names of inputs. inputs_mapping: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" description: | [mapping](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/remap_axes-1.1.0.html) atol: type: number description: | absolute tolerance to compare keys in mapper. no_label: description: | Fill in value for missing output. anyOf: - type: number - type: string required: [mapper] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/label_mapper-1.1.0.yaml000066400000000000000000000077661502237724000271310ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/label_mapper-1.1.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.1.0). The [label_mapper](ref:label_mapper-1.1.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.1.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. examples: - - Map array indices are to labels. - asdf-standard-1.5.0 - | ! mapper: !core/ndarray-1.0.0 data: - [1, 0, 2] - [1, 0, 2] - [1, 0, 2] datatype: int64 shape: [3, 3] no_label: 0 - - Map numbers dictionary to transforms which return labels. - | ! atol: 1.0e-08 inputs: [x, y] inputs_mapping: !transform/remap_axes-1.3.0 mapping: [0] n_inputs: 2 mapper: !!omap - !!omap labels: [-1.67833272, -1.9580548, -1.118888] - !!omap models: - !transform/shift-1.2.0 {offset: 6.0} - !transform/shift-1.2.0 {offset: 2.0} - !transform/shift-1.2.0 {offset: 4.0} no_label: 0 - - Map a number within a range of numbers to transforms which return labels. - | ! mapper: !!omap - !!omap labels: - [3.2, 4.1] - [2.67, 2.98] - [1.95, 2.3] - !!omap models: - !transform/shift-1.2.0 {offset: 6.0} - !transform/shift-1.2.0 {offset: 2.0} - !transform/shift-1.2.0 {offset: 4.0} inputs: [x, y] inputs_mapping: !transform/remap_axes-1.3.0 mapping: [0] n_inputs: 2 allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - type: object properties: mapper: description: | A mapping of inputs to labels. In the general case this is a `astropy.modeling.core.Model`. It could be a numpy array with the shape of the detector/observation. Pixel values are of type integer or string and represent region labels. Pixels which are not within any region have value ``no_label``. It could be a dictionary which maps tuples to labels or floating point numbers to labels. anyOf: - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - type: object properties: labels: type: array items: anyOf: - type: number - type: array items: type: number minLength: 2 maxLength: 2 models: type: array items: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" inputs: type: array items: type: string description: | Names of inputs. inputs_mapping: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" description: | [mapping](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/remap_axes-1.3.0.html) atol: type: number description: | absolute tolerance to compare keys in mapper. no_label: description: | Fill in value for missing output. anyOf: - type: number - type: string required: [mapper] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/label_mapper-1.2.0.yaml000066400000000000000000000100501502237724000271060ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/label_mapper-1.2.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.2.0). The [label_mapper](ref:label_mapper-1.2.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.2.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. examples: - - Map array indices are to labels. - asdf-standard-1.6.0 - | ! mapper: !core/ndarray-1.1.0 data: - [1, 0, 2] - [1, 0, 2] - [1, 0, 2] datatype: int64 shape: [3, 3] no_label: 0 - - Map numbers dictionary to transforms which return labels. - asdf-standard-1.6.0 - | ! atol: 1.0e-08 inputs: [x, y] inputs_mapping: !transform/remap_axes-1.4.0 mapping: [0] n_inputs: 2 mapper: !!omap - !!omap labels: [-1.67833272, -1.9580548, -1.118888] - !!omap models: - !transform/shift-1.2.0 {offset: 6.0} - !transform/shift-1.2.0 {offset: 2.0} - !transform/shift-1.2.0 {offset: 4.0} no_label: 0 - - Map a number within a range of numbers to transforms which return labels. - asdf-standard-1.6.0 - | ! mapper: !!omap - !!omap labels: - [3.2, 4.1] - [2.67, 2.98] - [1.95, 2.3] - !!omap models: - !transform/shift-1.3.0 {offset: 6.0} - !transform/shift-1.3.0 {offset: 2.0} - !transform/shift-1.3.0 {offset: 4.0} inputs: [x, y] inputs_mapping: !transform/remap_axes-1.4.0 mapping: [0] n_inputs: 2 allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - type: object properties: mapper: description: | A mapping of inputs to labels. In the general case this is a `astropy.modeling.core.Model`. It could be a numpy array with the shape of the detector/observation. Pixel values are of type integer or string and represent region labels. Pixels which are not within any region have value ``no_label``. It could be a dictionary which maps tuples to labels or floating point numbers to labels. anyOf: - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0" - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - type: object properties: labels: type: array items: anyOf: - type: number - type: array items: type: number minLength: 2 maxLength: 2 models: type: array items: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" inputs: type: array items: type: string description: | Names of inputs. inputs_mapping: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" description: | [mapping](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/remap_axes-1.4.0.html) atol: type: number description: | absolute tolerance to compare keys in mapper. no_label: description: | Fill in value for missing output. anyOf: - type: number - type: string required: [mapper] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/label_mapper-1.3.0.yaml000066400000000000000000000100321502237724000271070ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/label_mapper-1.3.0" title: > Represents a mapping from a coordinate value to a label. description: | A label mapper instance maps inputs to a label. It is used together with [regions_selector](ref:regions_selector-1.3.0). The [label_mapper](ref:label_mapper-1.3.0) returns the label corresponding to given inputs. The [regions_selector](ref:regions_selector-1.3.0) returns the transform corresponding to this label. This maps inputs (e.g. pixels on a detector) to transforms uniquely. examples: - - Map array indices are to labels. - asdf-standard-1.6.0 - | ! mapper: !core/ndarray-1.1.0 data: - [1, 0, 2] - [1, 0, 2] - [1, 0, 2] datatype: int64 shape: [3, 3] no_label: 0 - - Map numbers dictionary to transforms which return labels. - asdf-standard-1.6.0 - | ! atol: 1.0e-08 inputs: [x, y] inputs_mapping: !transform/remap_axes-1.4.0 mapping: [0] n_inputs: 2 mapper: !!omap - !!omap labels: [-1.67833272, -1.9580548, -1.118888] - !!omap models: - !transform/shift-1.2.0 {offset: 6.0} - !transform/shift-1.2.0 {offset: 2.0} - !transform/shift-1.2.0 {offset: 4.0} no_label: 0 - - Map a number within a range of numbers to transforms which return labels. - asdf-standard-1.6.0 - | ! mapper: !!omap - !!omap labels: - [3.2, 4.1] - [2.67, 2.98] - [1.95, 2.3] - !!omap models: - !transform/shift-1.3.0 {offset: 6.0} - !transform/shift-1.3.0 {offset: 2.0} - !transform/shift-1.3.0 {offset: 4.0} inputs: [x, y] inputs_mapping: !transform/remap_axes-1.4.0 mapping: [0] n_inputs: 2 allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - type: object properties: mapper: description: | A mapping of inputs to labels. In the general case this is a `astropy.modeling.core.Model`. It could be a numpy array with the shape of the detector/observation. Pixel values are of type integer or string and represent region labels. Pixels which are not within any region have value ``no_label``. It could be a dictionary which maps tuples to labels or floating point numbers to labels. anyOf: - tag: "tag:stsci.edu:asdf/core/ndarray-1.*" - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - type: object properties: labels: type: array items: anyOf: - type: number - type: array items: type: number minLength: 2 maxLength: 2 models: type: array items: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" inputs: type: array items: type: string description: | Names of inputs. inputs_mapping: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" description: | [mapping](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/remap_axes-1.4.0.html) atol: type: number description: | absolute tolerance to compare keys in mapper. no_label: description: | Fill in value for missing output. anyOf: - type: number - type: string required: [mapper] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/regions_selector-1.0.0.yaml000066400000000000000000000063651502237724000300450ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/regions_selector-1.0.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. examples: - - Create a regions_selector schema for 2 regions, labeled "1" and "2". - asdf-standard-1.5.0 - | ! inputs: [x, y] label_mapper: ! mapper: !core/ndarray-1.0.0 datatype: int8 data: - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] datatype: int64 shape: [5, 6] no_label: 0 outputs: [ra, dec, lam] selector: !!omap - !!omap labels: [1, 2] - !!omap transforms: - !transform/compose-1.1.0 forward: - !transform/remap_axes-1.1.0 mapping: [0, 1, 1] - !transform/concatenate-1.1.0 forward: - !transform/concatenate-1.1.0 forward: - !transform/shift-1.1.0 {offset: 1.0} - !transform/shift-1.1.0 {offset: 2.0} - !transform/shift-1.1.0 {offset: 3.0} - !transform/compose-1.1.0 forward: - !transform/remap_axes-1.1.0 mapping: [0, 1, 1] - !transform/concatenate-1.1.0 forward: - !transform/concatenate-1.1.0 forward: - !transform/scale-1.1.0 {factor: 2.0} - !transform/scale-1.1.0 {factor: 3.0} - !transform/scale-1.1.0 {factor: 3.0} undefined_transform_value: .nan allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - type: object properties: label_mapper: description: | An instance of [label_mapper-1.1.0](ref:label_mapper-1.0.0) $ref: "./label_mapper-1.0.0" inputs: description: | Names of inputs. type: array items: type: string outputs: description: | Names of outputs. type: array items: type: string selector: description: | A mapping of regions to trransforms. type: object properties: labels: description: | An array of unique region labels. type: array items: type: - integer - string transforms: description: | A transform for each region. The order should match the order of labels. type: array items: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" undefined_transform_value: description: | Value to be returned if there's no transform defined for the inputs. type: number required: [label_mapper, inputs, outputs, selector] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/regions_selector-1.1.0.yaml000066400000000000000000000063651502237724000300460ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/regions_selector-1.1.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. examples: - - Create a regions_selector schema for 2 regions, labeled "1" and "2". - asdf-standard-1.5.0 - | ! inputs: [x, y] label_mapper: ! mapper: !core/ndarray-1.0.0 datatype: int8 data: - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] datatype: int64 shape: [5, 6] no_label: 0 outputs: [ra, dec, lam] selector: !!omap - !!omap labels: [1, 2] - !!omap transforms: - !transform/compose-1.2.0 forward: - !transform/remap_axes-1.3.0 mapping: [0, 1, 1] - !transform/concatenate-1.2.0 forward: - !transform/concatenate-1.2.0 forward: - !transform/shift-1.2.0 {offset: 1.0} - !transform/shift-1.2.0 {offset: 2.0} - !transform/shift-1.2.0 {offset: 3.0} - !transform/compose-1.2.0 forward: - !transform/remap_axes-1.3.0 mapping: [0, 1, 1] - !transform/concatenate-1.2.0 forward: - !transform/concatenate-1.2.0 forward: - !transform/scale-1.2.0 {factor: 2.0} - !transform/scale-1.2.0 {factor: 3.0} - !transform/scale-1.2.0 {factor: 3.0} undefined_transform_value: .nan allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - type: object properties: label_mapper: description: | An instance of [label_mapper-1.1.0](ref:label_mapper-1.1.0) $ref: "./label_mapper-1.1.0" inputs: description: | Names of inputs. type: array items: type: string outputs: description: | Names of outputs. type: array items: type: string selector: description: | A mapping of regions to trransforms. type: object properties: labels: description: | An array of unique region labels. type: array items: type: - integer - string transforms: description: | A transform for each region. The order should match the order of labels. type: array items: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" undefined_transform_value: description: | Value to be returned if there's no transform defined for the inputs. type: number required: [label_mapper, inputs, outputs, selector] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/regions_selector-1.2.0.yaml000066400000000000000000000063651502237724000300470ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/regions_selector-1.2.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. examples: - - Create a regions_selector schema for 2 regions, labeled "1" and "2". - asdf-standard-1.6.0 - | ! inputs: [x, y] label_mapper: ! mapper: !core/ndarray-1.1.0 datatype: int8 data: - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] datatype: int64 shape: [5, 6] no_label: 0 outputs: [ra, dec, lam] selector: !!omap - !!omap labels: [1, 2] - !!omap transforms: - !transform/compose-1.3.0 forward: - !transform/remap_axes-1.4.0 mapping: [0, 1, 1] - !transform/concatenate-1.3.0 forward: - !transform/concatenate-1.3.0 forward: - !transform/shift-1.3.0 {offset: 1.0} - !transform/shift-1.3.0 {offset: 2.0} - !transform/shift-1.3.0 {offset: 3.0} - !transform/compose-1.3.0 forward: - !transform/remap_axes-1.4.0 mapping: [0, 1, 1] - !transform/concatenate-1.3.0 forward: - !transform/concatenate-1.3.0 forward: - !transform/scale-1.3.0 {factor: 2.0} - !transform/scale-1.3.0 {factor: 3.0} - !transform/scale-1.3.0 {factor: 3.0} undefined_transform_value: .nan allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - type: object properties: label_mapper: description: | An instance of [label_mapper-1.1.0](ref:label_mapper-1.2.0) $ref: "./label_mapper-1.2.0" inputs: description: | Names of inputs. type: array items: type: string outputs: description: | Names of outputs. type: array items: type: string selector: description: | A mapping of regions to trransforms. type: object properties: labels: description: | An array of unique region labels. type: array items: type: - integer - string transforms: description: | A transform for each region. The order should match the order of labels. type: array items: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" undefined_transform_value: description: | Value to be returned if there's no transform defined for the inputs. type: number required: [label_mapper, inputs, outputs, selector] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/regions_selector-1.3.0.yaml000066400000000000000000000064021502237724000300400ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/regions_selector-1.3.0" title: > Represents a discontinuous transform. description: | Maps regions to transgorms and evaluates the transforms with the corresponding inputs. examples: - - Create a regions_selector schema for 2 regions, labeled "1" and "2". - asdf-standard-1.6.0 - | ! inputs: [x, y] label_mapper: ! mapper: !core/ndarray-1.1.0 datatype: int8 data: - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] - [0, 1, 1, 0, 2, 0] datatype: int64 shape: [5, 6] no_label: 0 outputs: [ra, dec, lam] selector: !!omap - !!omap labels: [1, 2] - !!omap transforms: - !transform/compose-1.3.0 forward: - !transform/remap_axes-1.4.0 mapping: [0, 1, 1] - !transform/concatenate-1.3.0 forward: - !transform/concatenate-1.3.0 forward: - !transform/shift-1.3.0 {offset: 1.0} - !transform/shift-1.3.0 {offset: 2.0} - !transform/shift-1.3.0 {offset: 3.0} - !transform/compose-1.3.0 forward: - !transform/remap_axes-1.4.0 mapping: [0, 1, 1] - !transform/concatenate-1.3.0 forward: - !transform/concatenate-1.3.0 forward: - !transform/scale-1.3.0 {factor: 2.0} - !transform/scale-1.3.0 {factor: 3.0} - !transform/scale-1.3.0 {factor: 3.0} undefined_transform_value: .nan allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - type: object properties: label_mapper: description: | An instance of [label_mapper-1.3.0](ref:label_mapper-1.3.0) tag: "tag:stsci.edu:gwcs/label_mapper-1*" inputs: description: | Names of inputs. type: array items: type: string outputs: description: | Names of outputs. type: array items: type: string selector: description: | A mapping of regions to trransforms. type: object properties: labels: description: | An array of unique region labels. type: array items: type: - integer - string transforms: description: | A transform for each region. The order should match the order of labels. type: array items: $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" undefined_transform_value: description: | Value to be returned if there's no transform defined for the inputs. type: number required: [label_mapper, inputs, outputs, selector] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/sellmeier_glass-1.0.0.yaml000066400000000000000000000020311502237724000276330ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.0.0" title: Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - type: object properties: B_coef: description: | B coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 C_coef: description: | C coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/sellmeier_glass-1.1.0.yaml000066400000000000000000000020311502237724000276340ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.1.0" title: Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - type: object properties: B_coef: description: | B coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 C_coef: description: | C coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/sellmeier_glass-1.2.0.yaml000066400000000000000000000020311502237724000276350ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.2.0" title: Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - type: object properties: B_coef: description: | B coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0" items: type: number minItems: 3 maxItems: 3 C_coef: description: | C coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0" items: type: number minItems: 3 maxItems: 3 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/sellmeier_glass-1.3.0.yaml000066400000000000000000000017751502237724000276540ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/sellmeier_glass-1.3.0" title: Sellmeier equation for glass description: | Sellmeier equation for glass. $$ n(\\lambda)^2 = 1 + \\frac{(B1 * \\lambda^2 )}{(\\lambda^2 - C1)} + \\frac{(B2 * \\lambda^2 )}{(\\lambda^2 - C2)} + \\frac{(B3 * \\lambda^2 )}{(\\lambda^2 - C3)} $$ allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - type: object properties: B_coef: description: | B coefficients in Sellmeier equation. anyOf: - type: array - tag: "tag:stsci.edu:asdf/core/ndarray-1.*" items: type: number minItems: 3 maxItems: 3 C_coef: description: | C coefficients in Sellmeier equation. anyOf: - type: array - tag: "tag:stsci.edu:asdf/core/ndarray-1.*" items: type: number minItems: 3 maxItems: 3 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/sellmeier_zemax-1.0.0.yaml000066400000000000000000000037011502237724000276530ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.0.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - type: object properties: B_coef: description: | B coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 C_coef: description: | C coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 D_coef: description: | Thermal D coefficients of the glass. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 E_coef: description: | Thermal E coefficients of the glass. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 ref_temperature: description: | Reference temperature of the glass in Kelvin. type: number ref_pressure: description: | Reference pressure of the glass in ATM. type: number temperature: description: | System temperature in Kelvin. type: number pressure: description: | System pressure in ATM. type: number required: [B_coef, C_coef, D_coef, E_coef, ref_temperature, ref_pressure, temperature, pressure] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/sellmeier_zemax-1.1.0.yaml000066400000000000000000000037011502237724000276540ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.1.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - type: object properties: B_coef: description: | B coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 C_coef: description: | C coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 D_coef: description: | Thermal D coefficients of the glass. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 E_coef: description: | Thermal E coefficients of the glass. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" items: type: number minItems: 3 maxItems: 3 ref_temperature: description: | Reference temperature of the glass in Kelvin. type: number ref_pressure: description: | Reference pressure of the glass in ATM. type: number temperature: description: | System temperature in Kelvin. type: number pressure: description: | System pressure in ATM. type: number required: [B_coef, C_coef, D_coef, E_coef, ref_temperature, ref_pressure, temperature, pressure] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/sellmeier_zemax-1.2.0.yaml000066400000000000000000000037011502237724000276550ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.2.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - type: object properties: B_coef: description: | B coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0" items: type: number minItems: 3 maxItems: 3 C_coef: description: | C coefficients in Sellmeier equation. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0" items: type: number minItems: 3 maxItems: 3 D_coef: description: | Thermal D coefficients of the glass. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0" items: type: number minItems: 3 maxItems: 3 E_coef: description: | Thermal E coefficients of the glass. anyOf: - type: array - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0" items: type: number minItems: 3 maxItems: 3 ref_temperature: description: | Reference temperature of the glass in Kelvin. type: number ref_pressure: description: | Reference pressure of the glass in ATM. type: number temperature: description: | System temperature in Kelvin. type: number pressure: description: | System pressure in ATM. type: number required: [B_coef, C_coef, D_coef, E_coef, ref_temperature, ref_pressure, temperature, pressure] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/sellmeier_zemax-1.3.0.yaml000066400000000000000000000036111502237724000276560ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/sellmeier_zemax-1.3.0" title: Sellmeier equation for glass used by Zemax description: | Sellmeier equation for glass used by Zemax allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - type: object properties: B_coef: description: | B coefficients in Sellmeier equation. anyOf: - type: array - tag: "tag:stsci.edu:asdf/core/ndarray-1.*" items: type: number minItems: 3 maxItems: 3 C_coef: description: | C coefficients in Sellmeier equation. anyOf: - type: array - tag: "tag:stsci.edu:asdf/core/ndarray-1.*" items: type: number minItems: 3 maxItems: 3 D_coef: description: | Thermal D coefficients of the glass. anyOf: - type: array - tag: "tag:stsci.edu:asdf/core/ndarray-1.*" items: type: number minItems: 3 maxItems: 3 E_coef: description: | Thermal E coefficients of the glass. anyOf: - type: array - tag: "tag:stsci.edu:asdf/core/ndarray-1.*" items: type: number minItems: 3 maxItems: 3 ref_temperature: description: | Reference temperature of the glass in Kelvin. type: number ref_pressure: description: | Reference pressure of the glass in ATM. type: number temperature: description: | System temperature in Kelvin. type: number pressure: description: | System pressure in ATM. type: number required: [B_coef, C_coef, D_coef, E_coef, ref_temperature, ref_pressure, temperature, pressure] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/snell3d-1.0.0.yaml000066400000000000000000000005271502237724000260350ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/snell3d-1.0.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/snell3d-1.1.0.yaml000066400000000000000000000005271502237724000260360ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/snell3d-1.1.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/snell3d-1.2.0.yaml000066400000000000000000000005271502237724000260370ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/snell3d-1.2.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/snell3d-1.3.0.yaml000066400000000000000000000005271502237724000260400ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/snell3d-1.3.0" title: Snell Law in 3D space description: | Snell Law in 3D. Inputs are index of refraction and direction cosines. Outputs are direction cosines. $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/spectral_frame-1.0.0.yaml000066400000000000000000000011051502237724000274510ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/spectral_frame-1.0.0" title: > Represents a spectral frame. allOf: - type: object properties: reference_position: description: | The position of the reference frame. enum: [geocenter, barycenter, heliocenter] default: geocenter axes_names: minItems: 1 maxItems: 1 axes_order: minItems: 1 maxItems: 1 unit: minItems: 1 maxItems: 1 - $ref: frame-1.0.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/spectral_frame-1.1.0.yaml000066400000000000000000000011051502237724000274520ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/spectral_frame-1.1.0" title: > Represents a spectral frame. allOf: - type: object properties: reference_position: description: | The position of the reference frame. enum: [geocenter, barycenter, heliocenter] default: geocenter axes_names: minItems: 1 maxItems: 1 axes_order: minItems: 1 maxItems: 1 unit: minItems: 1 maxItems: 1 - $ref: frame-1.1.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/spectral_frame-1.2.0.yaml000066400000000000000000000011051502237724000274530ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/spectral_frame-1.2.0" title: > Represents a spectral frame. allOf: - type: object properties: reference_position: description: | The position of the reference frame. enum: [geocenter, barycenter, heliocenter] default: geocenter axes_names: minItems: 1 maxItems: 1 axes_order: minItems: 1 maxItems: 1 unit: minItems: 1 maxItems: 1 - $ref: frame-1.2.0 ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/spherical_cartesian-1.0.0.yaml000066400000000000000000000023421502237724000304710ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.0.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. examples: - - Convert spherical coordinates to Cartesian coordinates. - asdf-standard-1.5.0 - | ! transform_type: spherical_to_cartesian - - Convert Cartesian coordinates to spherical coordinates. - asdf-standard-1.5.0 - | ! transform_type: cartesian_to_spherical allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - object: properties: wrap_lon_at: description: Angle at which to wrap the longitude angle. type: integer enum: [180, 360] default: 360 transform_type: description: The type of transform/class to initialize. type: string enum: [spherical_to_cartesian, cartesian_to_spherical] required: [transform_type, wrap_lon_at] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/spherical_cartesian-1.1.0.yaml000066400000000000000000000023431502237724000304730ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.1.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. examples: - - Convert spherical coordinates to Cartesian coordinates. - asdf-standard-1.5.0 - | ! transform_type: spherical_to_cartesian - - Convert Cartesian coordinates to spherical coordinates. - asdf-standard-1.5.0 - | ! transform_type: cartesian_to_spherical allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - object: properties: wrap_lon_at: description: Angle at which to wrap the longitude angle. type: integer enum: [180, 360] default: 360 transform_type: description: The type of transform/class to initialize. type: string enum: [spherical_to_cartesian, cartesian_to_spherical] required: [transform_type, wrap_lon_at] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/spherical_cartesian-1.2.0.yaml000066400000000000000000000024301502237724000304710ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.2.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. examples: - - Convert spherical coordinates to Cartesian coordinates. - asdf-standard-1.6.0 - | ! transform_type: spherical_to_cartesian wrap_lon_at: 360 - - Convert Cartesian coordinates to spherical coordinates. - asdf-standard-1.6.0 - | ! transform_type: cartesian_to_spherical wrap_lon_at: 360 allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - object: properties: wrap_lon_at: description: Angle at which to wrap the longitude angle. type: integer enum: [180, 360] default: 360 transform_type: description: The type of transform/class to initialize. type: string enum: [spherical_to_cartesian, cartesian_to_spherical] required: [transform_type, wrap_lon_at] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/spherical_cartesian-1.3.0.yaml000066400000000000000000000024301502237724000304720ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/spherical_cartesian-1.3.0" title: > Convert coordinates between spherical and Cartesian coordinates. description: | This schema is for transforms which convert between spherical coordinates (on the unit sphere) and Cartesian coordinates. examples: - - Convert spherical coordinates to Cartesian coordinates. - asdf-standard-1.6.0 - | ! transform_type: spherical_to_cartesian wrap_lon_at: 360 - - Convert Cartesian coordinates to spherical coordinates. - asdf-standard-1.6.0 - | ! transform_type: cartesian_to_spherical wrap_lon_at: 360 allOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - object: properties: wrap_lon_at: description: Angle at which to wrap the longitude angle. type: integer enum: [180, 360] default: 360 transform_type: description: The type of transform/class to initialize. type: string enum: [spherical_to_cartesian, cartesian_to_spherical] required: [transform_type, wrap_lon_at] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/step-1.0.0.yaml000066400000000000000000000013531502237724000254420ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/step-1.0.0" title: > Describes a single step of a WCS transform pipeline. description: > examples: [] type: object properties: frame: description: | The frame of the inputs to the transform. anyOf: - type: string - $ref: frame-1.0.0 transform: description: | The transform from this step to the next one. The last step in a WCS should not have a transform, but exists only to describe the frames and units of the final output axes. anyOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.1.0" - type: 'null' default: null required: [frame] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/step-1.1.0.yaml000066400000000000000000000013531502237724000254430ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/step-1.1.0" title: > Describes a single step of a WCS transform pipeline. description: > examples: [] type: object properties: frame: description: | The frame of the inputs to the transform. anyOf: - type: string - $ref: frame-1.0.0 transform: description: | The transform from this step to the next one. The last step in a WCS should not have a transform, but exists only to describe the frames and units of the final output axes. anyOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0" - type: 'null' default: null required: [frame] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/step-1.2.0.yaml000066400000000000000000000013531502237724000254440ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/step-1.2.0" title: > Describes a single step of a WCS transform pipeline. description: > examples: [] type: object properties: frame: description: | The frame of the inputs to the transform. anyOf: - type: string - $ref: frame-1.1.0 transform: description: | The transform from this step to the next one. The last step in a WCS should not have a transform, but exists only to describe the frames and units of the final output axes. anyOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.3.0" - type: 'null' default: null required: [frame] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/step-1.3.0.yaml000066400000000000000000000013531502237724000254450ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/step-1.3.0" title: > Describes a single step of a WCS transform pipeline. description: > examples: [] type: object properties: frame: description: | The frame of the inputs to the transform. anyOf: - type: string - $ref: frame-1.2.0 transform: description: | The transform from this step to the next one. The last step in a WCS should not have a transform, but exists only to describe the frames and units of the final output axes. anyOf: - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.4.0" - type: 'null' default: null required: [frame] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/stokes_frame-1.0.0.yaml000066400000000000000000000006061502237724000271510ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/stokes_frame-1.0.0" title: > Represents a stokes frame type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/temporal_frame-1.0.0.yaml000066400000000000000000000021721502237724000274640ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/temporal_frame-1.0.0" title: > Represents a temporal frame. type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer axes_names: description: | The name of each axis in this frame. type: array items: anyOf: - type: string - type: 'null' reference_frame: description: | The reference frame. $ref: "http://stsci.edu/schemas/asdf/time/time-1.1.0" unit: description: | Units for each axis. type: array items: $ref: "http://stsci.edu/schemas/asdf/unit/unit-1.0.0" axis_physical_types: description: | An iterable of strings describing the physical type for each world axis. These should be names from the VO UCD1+ controlled Vocabulary (http://www.ivoa.net/documents/latest/UCDlist.html). type: array items: type: string required: [name] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/temporal_frame-1.1.0.yaml000066400000000000000000000021721502237724000274650ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/temporal_frame-1.1.0" title: > Represents a temporal frame. type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer axes_names: description: | The name of each axis in this frame. type: array items: anyOf: - type: string - type: 'null' reference_frame: description: | The reference frame. $ref: "http://stsci.edu/schemas/asdf/time/time-1.2.0" unit: description: | Units for each axis. type: array items: $ref: "http://stsci.edu/schemas/asdf/unit/unit-1.0.0" axis_physical_types: description: | An iterable of strings describing the physical type for each world axis. These should be names from the VO UCD1+ controlled Vocabulary (http://www.ivoa.net/documents/latest/UCDlist.html). type: array items: type: string required: [name] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/temporal_frame-1.2.0.yaml000066400000000000000000000022471502237724000274710ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/temporal_frame-1.2.0" title: > Represents a temporal frame. type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer axes_names: description: | The name of each axis in this frame. type: array items: anyOf: - type: string - type: 'null' reference_frame: description: | The reference frame. tag: "tag:stsci.edu:asdf/time/time-1.*" unit: description: | Units for each axis. type: array items: anyOf: - tag: "tag:stsci.edu:asdf/unit/unit-1.*" - tag: "tag:astropy.org:astropy/units/unit-1.*" axis_physical_types: description: | An iterable of strings describing the physical type for each world axis. These should be names from the VO UCD1+ controlled Vocabulary (http://www.ivoa.net/documents/latest/UCDlist.html). type: array items: type: string required: [name] ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/wcs-1.0.0.yaml000066400000000000000000000020231502237724000252560ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/wcs-1.0.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. type: object properties: name: description: | A descriptive name for this WCS. type: string steps: description: | A list of steps in the forward transformation from detector to world coordinates. The inverse transformation is determined automatically by reversing this list, and inverting each of the individual transforms according to the rules described in [inverse](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/transform-1.1.0.html#inverse). type: array items: $ref: step-1.0.0 required: [name, steps] additionalProperties: true ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/wcs-1.1.0.yaml000066400000000000000000000020231502237724000252570ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/wcs-1.1.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. type: object properties: name: description: | A descriptive name for this WCS. type: string steps: description: | A list of steps in the forward transformation from detector to world coordinates. The inverse transformation is determined automatically by reversing this list, and inverting each of the individual transforms according to the rules described in [inverse](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/transform-1.2.0.html#inverse). type: array items: $ref: step-1.1.0 required: [name, steps] additionalProperties: true ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/wcs-1.2.0.yaml000066400000000000000000000025401502237724000252640ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/wcs-1.2.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. type: object properties: name: description: | A descriptive name for this WCS. type: string pixel_shape: description: | The optional shape of the data that the WCS applies to as an array in ``(x, y)`` order (where for an image, ``x`` is the horizontal coordinate and ``y`` is the vertical coordinate) or ``None`` if not defined for this WCS. anyOf: - type: 'null' - type: array steps: description: | A list of steps in the forward transformation from detector to world coordinates. The inverse transformation is determined automatically by reversing this list, and inverting each of the individual transforms according to the rules described in [inverse](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/transform-1.2.0.html#inverse). type: array items: $ref: step-1.1.0 required: [name, steps] additionalProperties: true ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/wcs-1.3.0.yaml000066400000000000000000000025401502237724000252650ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/wcs-1.3.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. type: object properties: name: description: | A descriptive name for this WCS. type: string pixel_shape: description: | The optional shape of the data that the WCS applies to as an array in ``(x, y)`` order (where for an image, ``x`` is the horizontal coordinate and ``y`` is the vertical coordinate) or ``None`` if not defined for this WCS. anyOf: - type: 'null' - type: array steps: description: | A list of steps in the forward transformation from detector to world coordinates. The inverse transformation is determined automatically by reversing this list, and inverting each of the individual transforms according to the rules described in [inverse](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/transform-1.2.0.html#inverse). type: array items: $ref: step-1.2.0 required: [name, steps] additionalProperties: true ... asdf-wcs-schemas-0.5.0/resources/schemas/stsci.edu/gwcs/wcs-1.4.0.yaml000066400000000000000000000025601502237724000252700ustar00rootroot00000000000000%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/gwcs/wcs-1.4.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. type: object properties: name: description: | A descriptive name for this WCS. type: string pixel_shape: description: | The optional shape of the data that the WCS applies to as an array in ``(x, y)`` order (where for an image, ``x`` is the horizontal coordinate and ``y`` is the vertical coordinate) or ``None`` if not defined for this WCS. anyOf: - type: 'null' - type: array steps: description: | A list of steps in the forward transformation from detector to world coordinates. The inverse transformation is determined automatically by reversing this list, and inverting each of the individual transforms according to the rules described in [inverse](https://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf/transform/transform-1.4.0.html#inverse). type: array items: tag: tag:stsci.edu:gwcs/step-1.* required: [name, steps] additionalProperties: true ... asdf-wcs-schemas-0.5.0/src/000077500000000000000000000000001502237724000154355ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/src/asdf_wcs_schemas/000077500000000000000000000000001502237724000207315ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/src/asdf_wcs_schemas/__init__.py000066400000000000000000000001101502237724000230320ustar00rootroot00000000000000from ._version import version as __version__ __all__ = ["__version__"] asdf-wcs-schemas-0.5.0/src/asdf_wcs_schemas/integration.py000066400000000000000000000023101502237724000236220ustar00rootroot00000000000000import sys from pathlib import Path from asdf_standard import DirectoryResourceMapping if sys.version_info < (3, 9): import importlib_resources else: import importlib.resources as importlib_resources import asdf_wcs_schemas def get_resource_mappings(): """ Get the resource mapping instances for the datamodel schemas and manifests. This method is registered with the asdf.resource_mappings entry point. Returns ------- list of collections.abc.Mapping """ resources_root = importlib_resources.files(asdf_wcs_schemas) / "resources" if not resources_root.is_dir(): # In an editable install, the resources directory will exist off the # repository root: resources_root = Path(__file__).parent.parent.parent / "resources" if not resources_root.is_dir(): raise RuntimeError("Missing resources directory") return [ DirectoryResourceMapping( resources_root / "schemas" / "stsci.edu" / "gwcs", "http://stsci.edu/schemas/gwcs/", ), DirectoryResourceMapping( resources_root / "manifests", "asdf://asdf-format.org/astronomy/gwcs/manifests/", ), ] asdf-wcs-schemas-0.5.0/tests/000077500000000000000000000000001502237724000160105ustar00rootroot00000000000000asdf-wcs-schemas-0.5.0/tests/conftest.py000066400000000000000000000035421502237724000202130ustar00rootroot00000000000000from pathlib import Path import asdf import pytest import yaml def get_latest_schema_uris(resource_paths): by_base_uri = {} for resource_path in resource_paths: # skip manifests if "manifests" in resource_path.parts: continue # get uri from schema id with resource_path.open("rb") as f: schema_uri = yaml.safe_load(f.read())["id"] # get base uri and version base, version = schema_uri.rsplit("-", maxsplit=1) if base not in by_base_uri: by_base_uri[base] = {} by_base_uri[base][version] = schema_uri return [by_version[max(by_version.keys())] for _, by_version in by_base_uri.items()] RESOURCE_PATHS = list((Path(__file__).parent.parent / "resources").glob("**/*.yaml")) SCHEMA_PATHS = [p for p in RESOURCE_PATHS if "schemas" in p.parts] MANIFEST_PATHS = [p for p in RESOURCE_PATHS if "manifests" in p.parts] LATEST_SCHEMA_URIS = get_latest_schema_uris(RESOURCE_PATHS) @pytest.fixture(params=RESOURCE_PATHS) def resource_path(request): yield request.param @pytest.fixture(params=SCHEMA_PATHS) def schema_path(request): yield request.param @pytest.fixture(params=MANIFEST_PATHS) def manifest_path(request): yield request.param @pytest.fixture def latest_manifest_path(): yield max(MANIFEST_PATHS) @pytest.fixture def latest_manifest(latest_manifest_path): with latest_manifest_path.open("rb") as f: yield yaml.safe_load(f.read()) @pytest.fixture def latest_schema_uris(): yield LATEST_SCHEMA_URIS @pytest.fixture(params=LATEST_SCHEMA_URIS) def latest_schema_uri(request): yield request.param @pytest.fixture() def latest_schema(latest_schema_uri): yield asdf.schema.load_schema(latest_schema_uri) @pytest.fixture() def schema(schema_path): with schema_path.open() as f: yield yaml.safe_load(f.read()) asdf-wcs-schemas-0.5.0/tests/test_integration.py000066400000000000000000000017501502237724000217470ustar00rootroot00000000000000import asdf import yaml def test_resource_id(resource_path): resource_manager = asdf.get_config().resource_manager with resource_path.open("rb") as f: resource_content = f.read() resource = yaml.safe_load(resource_content) resource_uri = resource["id"] assert resource_manager[resource_uri] == resource_content def test_manifest(manifest_path): resource_manager = asdf.get_config().resource_manager with manifest_path.open("rb") as f: manifest_content = f.read() manifest = yaml.safe_load(manifest_content) manifest_schema = asdf.schema.load_schema("asdf://asdf-format.org/core/schemas/extension_manifest-1.0.0") # The manifest must be valid against its own schema: asdf.schema.validate(manifest, schema=manifest_schema) for tag_definition in manifest["tags"]: # The tag's schema must be available: assert tag_definition["schema_uri"] in resource_manager assert manifest["id"].endswith(manifest_path.stem) asdf-wcs-schemas-0.5.0/tests/test_manifest.py000066400000000000000000000013621502237724000212310ustar00rootroot00000000000000def test_manifest_tag_order(latest_manifest): """Tags should be sorted alphabetically""" tag_uris = [tag_def["tag_uri"] for tag_def in latest_manifest["tags"]] assert tag_uris == sorted(tag_uris) def test_tags_match_schemas(latest_manifest): """Check that tag and schema versions match""" for tag_def in latest_manifest["tags"]: tag_uri = tag_def["tag_uri"] schema_uri = tag_def["schema_uri"] assert tag_uri.split(":")[-1] in schema_uri def test_uses_latest_schemas(latest_manifest, latest_schema_uris): """The latest manifest should always use the latest schemas""" for tag_def in latest_manifest["tags"]: schema_uri = tag_def["schema_uri"] assert schema_uri in latest_schema_uris asdf-wcs-schemas-0.5.0/tests/test_schemas.py000066400000000000000000000070471502237724000210540ustar00rootroot00000000000000import re import asdf import pytest ALLOWED_REFS = ( r"^http://stsci.edu/schemas/asdf/transform/transform-[0-9.]+$", r"^http://astropy.org/schemas/astropy/coordinates/frames/baseframe-[0-9.]+$", r"^frame-[0-9.]+$", r"^http://stsci.edu/schemas/asdf/transform/zenithal-[0-9.]+$", r"^http://stsci.edu/schemas/asdf/transform/conic-[0-9.]+$", r"^http://stsci.edu/schemas/asdf/transform/quadcube-[0-9.]+$", r"^http://stsci.edu/schemas/asdf/transform/pseudoconic-[0-9.]+$", r"^http://stsci.edu/schemas/asdf/transform/pseudocylindrical-[0-9.]+$", r"^http://stsci.edu/schemas/asdf/transform/cylindrical-[0-9.]+$", r"^#.*$", ) UNIT_TAGS = {"tag:stsci.edu:asdf/unit/unit-1.*", "tag:astropy.org:astropy/units/unit-1.*"} def test_only_known_refs(latest_schema): """Latest schemas should only contain specific refs""" for node in asdf.treeutil.iter_tree(latest_schema): if not isinstance(node, dict): continue if "$ref" in node: uri = node["$ref"] if not any(re.match(pattern, uri) for pattern in ALLOWED_REFS): assert False, f"Unexpected $ref: {uri}" def test_wildcard_tags(latest_schema): """Latest schemas should only contain wildcarded tags""" for node in asdf.treeutil.iter_tree(latest_schema): if not isinstance(node, dict): continue if "tag" in node: pattern = node["tag"] if "*" not in pattern: assert False, f"tag pattern missing wildcard: {pattern}" def test_required_properties(schema): assert schema["$schema"] == "http://stsci.edu/schemas/yaml-schema/draft-01" assert "id" in schema assert "title" in schema def test_required(schema): def callback(node): if isinstance(node, dict) and "required" in node: assert node.get("type") in ["object", "string", None] property_names = set(node.get("properties", {}).keys()) required_names = set(node["required"]) if not required_names.issubset(property_names): missing_list = ", ".join(required_names - property_names) message = "required references names that do not exist: " + missing_list assert False, message asdf.treeutil.walk(schema, callback) @pytest.mark.parametrize("tag_set", (UNIT_TAGS,)) def test_tags_in_allof(latest_schema, tag_set): """ Test that some tags (unit) where the tag used depends on the value are always referenced in an allof containing all tags. """ # we walk_and_modify here to use postorder def callback(node): if not isinstance(node, dict): return node if "anyOf" in node: # check if this anyof includes a tag in the set seen = set() for sub in node["anyOf"]: if not isinstance(sub, dict): continue if "tag" not in sub: continue if sub["tag"] in tag_set: seen.add(sub["tag"]) if seen: # if a tag was found, check both were found assert seen == tag_set, f"anyOf {node} missing: {tag_set - seen}" # remove the anyof so the code below can check for tags not in the anyof return {k: v for k, v in node.items() if k != "anyOf"} if tag := node.get("tag"): assert tag not in tag_set, f"tag {tag} must be in an anyOf with: {tag_set}" return node asdf.treeutil.walk_and_modify(latest_schema, callback, postorder=False) asdf-wcs-schemas-0.5.0/tox.ini000066400000000000000000000013541502237724000161640ustar00rootroot00000000000000[tox] envlist= py39,py310,py311,py312,py313,twine,black,flake8,bandit isolated_build = True [testenv] extras= test commands= pytest [testenv:egg_info] deps= commands= python setup.py egg_info [testenv:twine] deps= twine commands= twine check {work_dir}/{package_env}/dist/* [testenv:black] deps = black commands= black --check src tests [testenv:flake8] deps= flake8 commands= flake8 --count src tests [testenv:bandit] deps= bandit commands= bandit -r -ll src [testenv:codestyle] skip_install = true description = Run all style and file checks with pre-commit deps = pre-commit commands = pre-commit install-hooks pre-commit run {posargs:--color always --all-files --show-diff-on-failure}