diff --git a/docs/CODE_OF_CONDUCT.rst b/docs/CODE_OF_CONDUCT.rst index 49621ee5..b271d8bc 100644 --- a/docs/CODE_OF_CONDUCT.rst +++ b/docs/CODE_OF_CONDUCT.rst @@ -1,50 +1,51 @@ -.. currentmodule:: xrtpy - .. _CODE_OF_CONDUCT: -******************* +*************** Code of Conduct -******************* +*************** -XRTpy follows the Contributor Covenant Code of Conduct, which is a widely adopted standard for fostering an inclusive -and respectful community. Below are the key principles and standards that all contributors and community members are -expected to adhere to. +XRTpy follows the Contributor Covenant Code of Conduct, which is a widely adopted standard for fostering an inclusive and respectful community. +Below are the key principles and standards that all contributors and community members are expected to adhere to. Our Pledge ========== -We, as contributors and maintainers of XRTpy, pledge to make participation in our project and community a harassment-free -experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of -experience, education, socioeconomic status, nationality, personal appearance, race, religion, or sexual identity and -orientation. + +We, as contributors and maintainers of XRTpy, pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socioeconomic status, nationality, personal appearance, race, religion, or sexual identity and orientation. Respectful Communication -========================= -We expect all participants to communicate respectfully and constructively. This includes being polite, considerate, and welcoming, -while avoiding any form of harassment, discrimination, or offensive behavior. +======================== + +We expect all participants to communicate respectfully and constructively. +This includes being polite, considerate, and welcoming, while avoiding any form of harassment, discrimination, or offensive behavior. Diversity and Inclusion -========================= -XRTpy values diversity and is dedicated to creating an inclusive environment. We welcome contributions from people of all backgrounds, -regardless of gender, disability, ethnicity, religion, nationality, sexual orientation, or any other characteristic. +======================= + +XRTpy values diversity and is dedicated to creating an inclusive environment. +We welcome contributions from people of all backgrounds, regardless of gender, disability, ethnicity, religion, nationality, sexual orientation, or any other characteristic. Constructive Criticism -========================= -Feedback is essential for the growth and improvement of XRTpy. We encourage everyone to provide and receive feedback in a constructive manner. +====================== + +Feedback is essential for the growth and improvement of XRTpy. +We encourage everyone to provide and receive feedback in a constructive manner. Criticism should focus on improving the project and fostering learning, with an emphasis on what is best for the overall community. Conflict Resolution and Enforcement -===================================== -Conflicts may arise in any collaborative environment. Participants should engage respectfully and with an open mind. -If unresolved, project maintainers will mediate to ensure a fair resolution. Violations of this Code of Conduct will result -in appropriate consequences, including warnings, temporary bans, or permanent removal. Community leaders are responsible for -enforcing these rules and taking corrective action as needed. +=================================== + +Conflicts may arise in any collaborative environment. +Participants should engage respectfully and with an open mind. +If unresolved, project maintainers will mediate to ensure a fair resolution. +Violations of this Code of Conduct will result in appropriate consequences, including warnings, temporary bans, or permanent removal. +Community leaders are responsible for enforcing these rules and taking corrective action as needed. **Enforcement and Reporting** -- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at xrtpy@cfa.harvard.edu. All complaints will be reviewed and investigated promptly and fairly. +- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at ``xrtpy@cfa.harvard.edu``. + All complaints will be reviewed and investigated promptly and fairly. - Community leaders are obligated to respect the privacy and security of the reporter of any incident. - This Code of Conduct is adapted from the `Contributor Covenant`_, version 2.1. .. _Contributor Covenant : https://www.contributor-covenant.org/version/2/1/code_of_conduct.html diff --git a/docs/_static/css/admonition_color_contrast.css b/docs/_static/css/admonition_color_contrast.css deleted file mode 100644 index f91be52b..00000000 --- a/docs/_static/css/admonition_color_contrast.css +++ /dev/null @@ -1,144 +0,0 @@ -/* - The following sections were adapted from the file - sphinx_rtd_theme_ext_color_contrast/_static/sphinx_rtd_theme_ext_color_contrast.css - in the following repository: - https://github.com/AaltoSciComp/sphinx_rtd_theme_ext_color_contrast - The license is in our licenses directory. - - These customizations will be able to be removed if sphinx_rtd_theme - defaults end up getting changed to meet accessibility guidelines. -*/ - - -/* warning */ -.wy-alert.wy-alert-warning .wy-alert-title, -.rst-content .wy-alert-warning.note .wy-alert-title, -.rst-content .attention .wy-alert-title, -.rst-content .caution .wy-alert-title, -.rst-content .wy-alert-warning.danger .wy-alert-title, -.rst-content .wy-alert-warning.error .wy-alert-title, -.rst-content .wy-alert-warning.hint .wy-alert-title, -.rst-content .wy-alert-warning.important .wy-alert-title, -.rst-content .wy-alert-warning.tip .wy-alert-title, -.rst-content .warning .wy-alert-title, -.rst-content .wy-alert-warning.seealso .wy-alert-title, -.rst-content .admonition-todo .wy-alert-title, -.rst-content .wy-alert-warning.admonition .wy-alert-title, -.wy-alert.wy-alert-warning .rst-content .admonition-title, -.rst-content .wy-alert.wy-alert-warning .admonition-title, -.rst-content .wy-alert-warning.note .admonition-title, -.rst-content .attention .admonition-title, -.rst-content .caution .admonition-title, -.rst-content .wy-alert-warning.danger .admonition-title, -.rst-content .wy-alert-warning.error .admonition-title, -.rst-content .wy-alert-warning.hint .admonition-title, -.rst-content .wy-alert-warning.important .admonition-title, -.rst-content .wy-alert-warning.tip .admonition-title, -.rst-content .warning .admonition-title, .rst-content -.wy-alert-warning.seealso .admonition-title, -.rst-content .admonition-todo .admonition-title, -.rst-content .wy-alert-warning.admonition .admonition-title { - background: #B15E16; -} - -/* important */ - -.wy-alert.wy-alert-success .wy-alert-title, -.rst-content .wy-alert-success.note .wy-alert-title, -.rst-content .wy-alert-success.attention .wy-alert-title, -.rst-content .wy-alert-success.caution .wy-alert-title, -.rst-content .wy-alert-success.danger .wy-alert-title, -.rst-content .wy-alert-success.error .wy-alert-title, -.rst-content .hint .wy-alert-title, -.rst-content .important .wy-alert-title, -.rst-content .tip .wy-alert-title, -.rst-content .wy-alert-success.warning .wy-alert-title, -.rst-content .wy-alert-success.seealso .wy-alert-title, -.rst-content .wy-alert-success.admonition-todo .wy-alert-title, -.rst-content .wy-alert-success.admonition .wy-alert-title, -.wy-alert.wy-alert-success .rst-content .admonition-title, -.rst-content .wy-alert.wy-alert-success .admonition-title, -.rst-content .wy-alert-success.note .admonition-title, -.rst-content .wy-alert-success.attention .admonition-title, -.rst-content .wy-alert-success.caution .admonition-title, -.rst-content .wy-alert-success.danger .admonition-title, -.rst-content .wy-alert-success.error .admonition-title, -.rst-content .hint .admonition-title, -.rst-content .important .admonition-title, -.rst-content .tip .admonition-title, -.rst-content .wy-alert-success.warning .admonition-title, -.rst-content .wy-alert-success.seealso .admonition-title, -.rst-content .wy-alert-success.admonition-todo .admonition-title, -.rst-content .wy-alert-success.admonition .admonition-title { - background: #12826C; -} - -/* seealso, note, etc */ - -.wy-alert.wy-alert-info .wy-alert-title, -.rst-content .note .wy-alert-title, -.rst-content .wy-alert-info.attention .wy-alert-title, -.rst-content .wy-alert-info.caution .wy-alert-title, -.rst-content .wy-alert-info.danger .wy-alert-title, -.rst-content .wy-alert-info.error .wy-alert-title, -.rst-content .wy-alert-info.hint .wy-alert-title, -.rst-content .wy-alert-info.important .wy-alert-title, -.rst-content .wy-alert-info.tip .wy-alert-title, -.rst-content .wy-alert-info.warning .wy-alert-title, -.rst-content .seealso .wy-alert-title, -.rst-content .wy-alert-info.admonition-todo .wy-alert-title, -.rst-content .wy-alert-info.admonition .wy-alert-title, -.wy-alert.wy-alert-info .rst-content .admonition-title, -.rst-content .wy-alert.wy-alert-info .admonition-title, -.rst-content .note .admonition-title, -.rst-content .wy-alert-info.attention .admonition-title, -.rst-content .wy-alert-info.caution .admonition-title, -.rst-content .wy-alert-info.danger .admonition-title, -.rst-content .wy-alert-info.error .admonition-title, -.rst-content .wy-alert-info.hint .admonition-title, -.rst-content .wy-alert-info.important .admonition-title, -.rst-content .wy-alert-info.tip .admonition-title, -.rst-content .wy-alert-info.warning .admonition-title, -.rst-content .seealso .admonition-title, -.rst-content .wy-alert-info.admonition-todo .admonition-title, -.rst-content .wy-alert-info.admonition .admonition-title { - background: #277CB4; -} - -/* error, danger */ - -.rst-content .danger .admonition-title, -.rst-content .danger .wy-alert-title, -.rst-content .error .admonition-title, -.rst-content .error .wy-alert-title, -.rst-content .wy-alert-danger.admonition-todo .admonition-title, -.rst-content .wy-alert-danger.admonition-todo .wy-alert-title, -.rst-content .wy-alert-danger.admonition .admonition-title, -.rst-content .wy-alert-danger.admonition .wy-alert-title, -.rst-content .wy-alert-danger.attention .admonition-title, -.rst-content .wy-alert-danger.attention .wy-alert-title, -.rst-content .wy-alert-danger.caution .admonition-title, -.rst-content .wy-alert-danger.caution .wy-alert-title, -.rst-content .wy-alert-danger.hint .admonition-title, -.rst-content .wy-alert-danger.hint .wy-alert-title, -.rst-content .wy-alert-danger.important .admonition-title, -.rst-content .wy-alert-danger.important .wy-alert-title, -.rst-content .wy-alert-danger.note .admonition-title, -.rst-content .wy-alert-danger.note .wy-alert-title, -.rst-content .wy-alert-danger.seealso .admonition-title, -.rst-content .wy-alert-danger.seealso .wy-alert-title, -.rst-content .wy-alert-danger.tip .admonition-title, -.rst-content .wy-alert-danger.tip .wy-alert-title, -.rst-content .wy-alert-danger.warning .admonition-title, -.rst-content .wy-alert-danger.warning .wy-alert-title, -.rst-content .wy-alert.wy-alert-danger .admonition-title, -.wy-alert.wy-alert-danger .rst-content .admonition-title, -.wy-alert.wy-alert-danger .wy-alert-title { - background: #e31704; -} - -/* Generic admonition titles */ - -.wy-alert-title, .rst-content .admonition-title { - background: #277CB4; -} diff --git a/docs/_static/css/plasmapy.css b/docs/_static/css/plasmapy.css deleted file mode 100644 index b59e85f7..00000000 --- a/docs/_static/css/plasmapy.css +++ /dev/null @@ -1,186 +0,0 @@ -/* - This file contains styles rules for PlasmaPy's documentation, which - includes new rules as well as rules that override styles from the - Sphinx Read the Docs theme (sphinx_rtd_theme). - - The CSS style rule syntax is: - - selectors-list { - properties-list - } - - The code in selectors-list selects the patterns for the elements to be - styled. The code in properties-list sets the style of these elements. - The CSS rule to be applied is generally the one that has the most - specific selectors. - - For more information on CSS, go to: https://www.w3schools.com/css - - Most web browsers have inspection tools that help with adding new CSS - rules. Right-click or ctrl-click on an element of a website, and - choose "inspect" to see the HTML code along with CSS selectors and - properties. - - When creating a new rule, use increased specificity instead of - !important when possible. Using !important can make debugging more - difficult. Use relative units like rem (root font size) to help with - accessibility and scaling. Please add descriptive comments for new - rules that are understandable to someone who is unfamiliar with CSS. - - CSS files can be validated at: https://jigsaw.w3.org/css-validator -*/ - -/* ----------------------------------------------------------------------------- - * RTD Overrides - */ - -/* Style for toctree in a table */ -td .toctree-wrapper ul { - font-size: 16px; - line-height: 18px !important; - list-style: none !important; - margin-bottom: 0 !important; -} - -td .toctree-wrapper ul li { - list-style: none !important; - margin-left: 0 !important; -} - -/* Unordered list nested in ordered list */ -.section li ul { - margin-bottom: 12px !important; -} - -/* Add margin-bottom to inheritance diagrams */ -div.graphviz { - margin-bottom: 24px !important; -} - -/* - * Remove bottom margin for the autosummary table in a directive:option:: - * section - */ -.rst-content dl.rst table p, -.rst-content dl.std table p, -.rst-content dl.py table p { - margin-bottom: 0 !important; -} - -/* Remove excess bottom margin for table headings */ -.rst-content table.docutils thead p { - margin-bottom: 0; -} - -/* Remove excess bottom margin for for multiline table entries when using line-block */ -.rst-content table.docutils div.line-block { - margin-bottom: 0; -} - -/* Allow text wrapping for last column of a table. */ -.rst-content table.docutils td:last-child p { - white-space: normal; - line-height: 140%; -} - -/* Reduce top/bottom margin for equations in tables */ -table div.MathJax_Display { - margin: 0.5em 0; -} - -/* - * Adjustments to the Glossary styling - */ -dl.glossary dd ul { - margin-bottom: 12px !important; -} -dl.glossary dd { - margin-top: 4px; - margin-bottom: 18px; -} -dl.glossary dt { - margin-bottom: 2px; -} - -/* Styles for text in the footer chosen to improve contrast. */ - -footer p { - color: #141414; -} - -/* - Styles for hyperlinks. The colors must meet the WCAG AA standard - for contrast. Link colors can be tested for accessibility at: - https://webaim.org/resources/linkcontrastchecker -*/ - -div.wy-nav-content a:link { - color: #0069d6; -} -div.wy-nav-content a:visited { - color: #9151b6; -} -div.wy-nav-content a:hover { - text-decoration:underline; -} - -/* - The style for generic code literals, in particular text that is - enclosed in double back ticks in reST (e.g., ``make -j 32``). -*/ - -div.wy-nav-content .rst-content code.literal { - background-color: #f6f6f6; - color: #db2424; -} - -/* - The style for links to Python objects, in particular text enclosed in - single back ticks in reST (e.g., `~plasmapy.particles`). -*/ - -div.wy-nav-content .rst-content code.literal.xref { - color: #0069d6; - font-weight: bold; -} - -/* - The style for literal text that shows the location of a file, in - particular when used by the reST role :file: (e.g., - :file:`docs/_static/css/plasmapy.css`). -*/ -div.wy-nav-content .rst-content code.literal.file { - color: #b84d00; - background-color: #F9F1F0; -} - -/* ----------------------------------------------------------------------------- - * RTD layout styling additions - */ - -/* Style for module/index links in sidebar below the search field. */ -div.pkgnav { - color: white; - font-size: 1em; - margin-top: 12px; - text-align: center; -} - -div.pkgnav ul { - list-style: none; -} - -div.pkgnav ul li { - display: inline; -} - -div.pkgnav ul li a { - color: #f9f9f0; - margin: 0; - text-shadow: 0 0 1px rgba(0, 0, 0, 0.5); -} - -div.pkgnav ul li a:hover { - color: #f50404; - text-shadow: 0 0 1px rgba(255, 255, 255, 0.5); -} diff --git a/docs/images/XRT_composite_image_full_disk_14February2015.png b/docs/_static/images/XRT_composite_image_full_disk_14February2015.png similarity index 100% rename from docs/images/XRT_composite_image_full_disk_14February2015.png rename to docs/_static/images/XRT_composite_image_full_disk_14February2015.png diff --git a/docs/images/XRT_filter_wheels_Sun_View_Diagram.png b/docs/_static/images/XRT_filter_wheels_Sun_View_Diagram.png similarity index 100% rename from docs/images/XRT_filter_wheels_Sun_View_Diagram.png rename to docs/_static/images/XRT_filter_wheels_Sun_View_Diagram.png diff --git a/docs/images/XRTpy_logo.png b/docs/_static/images/XRTpy_logo.png similarity index 100% rename from docs/images/XRTpy_logo.png rename to docs/_static/images/XRTpy_logo.png diff --git a/docs/_static/notebook_images/hinode_satellite.png b/docs/_static/images/hinode_satellite.png similarity index 100% rename from docs/_static/notebook_images/hinode_satellite.png rename to docs/_static/images/hinode_satellite.png diff --git a/docs/_static/notebook_images/astropy_logo_notext.png b/docs/_static/notebook_images/astropy_logo_notext.png deleted file mode 100644 index bcff0ed6..00000000 Binary files a/docs/_static/notebook_images/astropy_logo_notext.png and /dev/null differ diff --git a/docs/_substitutions.rst b/docs/_substitutions.rst index bd3f806b..c866378c 100644 --- a/docs/_substitutions.rst +++ b/docs/_substitutions.rst @@ -1,4 +1,4 @@ -.. |bibliography| replace:: :ref:`bibliography`\ +.. |bibliography| replace:: :ref:`xrtpy-bibliography`\ .. |Channel| replace:: :class:`~xrtpy.response.channel.Channel` .. |EffectiveAreaFundamental| replace:: :class:`~xrtpy.response.effective_area.EffectiveAreaFundamental` .. |glossary| replace:: :ref:`glossary`\ diff --git a/docs/about_xrt.rst b/docs/about_xrt.rst index d6cbee4c..1bf07567 100644 --- a/docs/about_xrt.rst +++ b/docs/about_xrt.rst @@ -1,57 +1,55 @@ -.. _about-xrt: - -.. image:: images/hinode_satellite.png - :alt: Hinode Satellite - :align: right - :scale: 64% - +.. _xrtpy-about-xrt: ******************************* About the X-Ray Telescope (XRT) ******************************* -.. contents:: Contents - :local: - Hinode ====== -Hinode is a joint mission involving the space agencies of Japan, the United States, Europe, and the United Kingdom. It is depicted in the *illustration shown above*. + +.. image:: _static/images/hinode_satellite.png + :alt: Hinode Satellite + :align: center + +Hinode is a joint mission involving the space agencies of Japan, the United States, Europe, and the United Kingdom. +It is depicted in the *illustration shown above*. The spacecraft is equipped with three instruments: the Solar Optical Telescope (SOT), the Extreme Ultraviolet Imaging Spectrometer (EIS), and the X-Ray Telescope (XRT). -These instruments are designed to provide multi-wavelength data from the photosphere to the upper corona. The solar spacecraft spacecraft was launched at 6:36 a.m on -September 23, 2006 (Japan Standard Time) and placed into a polar, sun-synchronous orbit, enabling continuous observations of the Sun. For further information, visit `NASA's Hinode space mission to the Sun`_. +These instruments are designed to provide multi-wavelength data from the photosphere to the upper corona. +The solar spacecraft spacecraft was launched at 6:36 a.m on September 23, 2006 (Japan Standard Time) and placed into a polar, sun-synchronous orbit, enabling continuous observations of the Sun. +For further information, visit `NASA's Hinode space mission to the Sun`_. The X-Ray Telescope -==================== -The X-Ray Telescope (XRT), depicted as a long linear black tube on the Hinode spacecraft (illustration at the top of the page), is a crucial instrument for observing the solar corona's most intense regions, with temperatures ranging from 1,000,000 to 10,000,000 Kelvin. -The image below is a synoptic composite from February 14, 2015, created using the Al-Mesh/Be-Thin/Al-Med filters. -This method combines images taken with different filters, each set to a distinct color in the RGB color model to highlight various thermal conditions within the corona. -For a comprehensive overview of XRT's mission and capabilities, please visit the official xrt-cfa-harvard_ website. +=================== -.. image:: images/XRT_composite_image_full_disk_14February2015.png +.. image:: _static/images/XRT_composite_image_full_disk_14February2015.png :alt: XRT Composite Image :align: center - :scale: 40% + :scale: 50% + +The X-Ray Telescope (XRT), depicted as a long linear black tube on the Hinode spacecraft is a crucial instrument for observing the solar corona's most intense regions, with temperatures ranging from 1,000,000 to 10,000,000 Kelvin. +The image below is a synoptic composite from February 14, 2015, created using the Al-Mesh/Be-Thin/Al-Med filters. +This method combines images taken with different filters, each set to a distinct color in the RGB color model to highlight various thermal conditions within the corona. +For a comprehensive overview of XRT's mission and capabilities, please visit the official xrt-cfa-harvard_ website. + +.. tip:: + + Visit the `XRT Picture of the Week`_ and the `Hinode-XRT YouTube`_ page for captivating visual content showcasing the XRT's solar observations. SolarSoft XRT Analysis Guide ============================ + The `SolarSoft XRT Analysis Guide`_ is a comprehensive resource for analysis of XRT data. -It includes both an Instrument Guide and an overview of the X-Ray telescope's hardware components. -The XRT software was originally created in Interactive Data Language (IDL). -IDL is a software programming language used to analyze and create meaningful information from numerical data. +It includes both an instrument guide and an overview of the x-ray telescope's hardware components. +The XRT software was originally created in the Interactive Data Language (IDL). .. note:: + Please note that the `SolarSoft XRT Analysis Guide`_ does not serve as a guide for using XRTpy. It focuses solely on the analysis of XRT data using the IDL software. -.. tip:: - Visit the `XRT Picture of the Week`_ and the `Hinode-XRT YouTube`_ page for captivating visual content showcasing the XRT's solar observations. - -.. _NASA's Hinode space mission to the Sun: https://www.nasa.gov/mission_pages/hinode/mission.html +.. _Hinode-XRT YouTube: https://www.youtube.com/user/xrtpow .. _Interactive Data Language: https://www.l3harrisgeospatial.com/Software-Technology/IDL - +.. _NASA's Hinode space mission to the Sun: https://www.nasa.gov/mission_pages/hinode/mission.html .. _SolarSoft XRT Analysis Guide: https://xrt.cfa.harvard.edu/resources/documents/XAG/XAG.pdf -.. _xrt-cfa-harvard: https://xrt.cfa.harvard.edu/index.php -.. _Artist's concept of the Hinode: https://www.nasa.gov/mission_pages/sunearth/missions/mission-hinode.html - -.. _Hinode-XRT YouTube: https://www.youtube.com/user/xrtpow .. _XRT Picture of the Week: https://xrt.cfa.harvard.edu/xpow +.. _xrt-cfa-harvard: https://xrt.cfa.harvard.edu/index.php diff --git a/docs/contributing/acknowledging_xrtpy.rst b/docs/acknowledging_xrtpy.rst similarity index 67% rename from docs/contributing/acknowledging_xrtpy.rst rename to docs/acknowledging_xrtpy.rst index 3b371b07..cc1fdd2e 100644 --- a/docs/contributing/acknowledging_xrtpy.rst +++ b/docs/acknowledging_xrtpy.rst @@ -1,30 +1,33 @@ -.. _citation_guide: +.. _xrtpy-citation: -=============================================== +********************************************** Citing XRTpy in Publications and Presentations -=============================================== +********************************************** - -If XRTpy has been useful in your research, we encourage you to consider including a citation or acknowledgment in your work. Below are suggested formats to credit XRTpy in your scientific papers, posters, or presentations. While this is not required, it is greatly appreciated. - -Suggested Citations -=================== +If XRTpy has been useful in your research, we encourage you to consider including a citation or acknowledgment in your work. +Below are suggested formats to credit XRTpy in your scientific papers, posters, or presentations. +While this is not required, it is greatly appreciated. For a scientific paper ----------------------- +====================== + You may use the following format to cite XRTpy in your publications: +.. code-block:: text + "We acknowledge the use of XRTpy (v0.4.1) for Hinode X-Ray Telescope data analysis, available at https://xrtpy.readthedocs.io/ (Velasquez et al. 2024, JOSS, DOI: 10.21105/joss.06396)." For a poster or presentation ----------------------------- +============================ + If you are presenting work that involves XRTpy in a poster or presentation, you may use the following acknowledgment: +.. code-block:: text + "This work made use of XRTpy (v0.4.1), a Python package for solar Hinode X-Ray Telescope data analysis, available at https://xrtpy.readthedocs.io/ (Velasquez et al. 2024, JOSS, DOI: 10.21105/joss.06396)." References ========== -Velasquez, J., Murphy, N., Reeves, K. K., Slavin, J., Weber, M., & Barnes, W. (2024). XRTpy: A Hinode-X-Ray Telescope Python Package. The Journal of Open Source Software, 9(100), 6396. https://doi.org/10.21105/joss.06396 -.. _joss_citation: https://doi.org/10.21105/joss.06396 +Velasquez, J., Murphy, N., Reeves, K. K., Slavin, J., Weber, M., & Barnes, W. (2024). XRTpy: A Hinode-X-Ray Telescope Python Package. The Journal of Open Source Software, 9(100), 6396. https://doi.org/10.21105/joss.06396 diff --git a/docs/api_static/xrtpy.image_correction.deconvolve.rst b/docs/api_static/xrtpy.image_correction.deconvolve.rst deleted file mode 100644 index 5f874e05..00000000 --- a/docs/api_static/xrtpy.image_correction.deconvolve.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.image_correction.deconvolve` -=================================== - -.. currentmodule:: xrtpy.image_correction.deconvolve - -.. automodapi:: xrtpy.image_correction.deconvolve diff --git a/docs/api_static/xrtpy.image_correction.rst b/docs/api_static/xrtpy.image_correction.rst deleted file mode 100644 index 3b136aff..00000000 --- a/docs/api_static/xrtpy.image_correction.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.image_correction` -======================== - -.. currentmodule:: xrtpy.image_correction - -.. automodapi:: xrtpy.image_correction diff --git a/docs/api_static/xrtpy.response.channel.rst b/docs/api_static/xrtpy.response.channel.rst deleted file mode 100644 index be53692b..00000000 --- a/docs/api_static/xrtpy.response.channel.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.response.channel` -======================== - -.. currentmodule:: xrtpy.response.channel - -.. automodapi:: xrtpy.response.channel diff --git a/docs/api_static/xrtpy.response.rst b/docs/api_static/xrtpy.response.rst deleted file mode 100644 index 80adc6fa..00000000 --- a/docs/api_static/xrtpy.response.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.response` -================ - -.. currentmodule:: xrtpy.response - -.. automodapi:: xrtpy.response diff --git a/docs/api_static/xrtpy.response.temperature_from_filter_ratio.rst b/docs/api_static/xrtpy.response.temperature_from_filter_ratio.rst deleted file mode 100644 index a4bf0d0b..00000000 --- a/docs/api_static/xrtpy.response.temperature_from_filter_ratio.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.response.temperature_from_filter_ratio` -============================================== - -.. currentmodule:: xrtpy.response.temperature_from_filter_ratio - -.. automodapi:: xrtpy.response.temperature_from_filter_ratio diff --git a/docs/api_static/xrtpy.response.temperature_response.rst b/docs/api_static/xrtpy.response.temperature_response.rst deleted file mode 100644 index 4da3ad44..00000000 --- a/docs/api_static/xrtpy.response.temperature_response.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.response.temperature_response` -===================================== - -.. currentmodule:: xrtpy.response.temperature_response - -.. automodapi:: xrtpy.response.temperature_response diff --git a/docs/api_static/xrtpy.rst b/docs/api_static/xrtpy.rst deleted file mode 100644 index 91fb98a5..00000000 --- a/docs/api_static/xrtpy.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy` -======= - -.. currentmodule:: xrtpy - -.. automodapi:: xrtpy diff --git a/docs/api_static/xrtpy.util.make_exposure_map.rst b/docs/api_static/xrtpy.util.make_exposure_map.rst deleted file mode 100644 index 804ac0d2..00000000 --- a/docs/api_static/xrtpy.util.make_exposure_map.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.util.make_exposure_map` -============================== - -.. currentmodule:: xrtpy.util.make_exposure_map - -.. automodapi:: xrtpy.util.make_exposure_map diff --git a/docs/api_static/xrtpy.util.rst b/docs/api_static/xrtpy.util.rst deleted file mode 100644 index 9ad5963e..00000000 --- a/docs/api_static/xrtpy.util.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.util` -============ - -.. currentmodule:: xrtpy.util - -.. automodapi:: xrtpy.util diff --git a/docs/api_static/xrtpy.util.time.rst b/docs/api_static/xrtpy.util.time.rst deleted file mode 100644 index 31fa124b..00000000 --- a/docs/api_static/xrtpy.util.time.rst +++ /dev/null @@ -1,8 +0,0 @@ -:orphan: - -`xrtpy.util.time` -================= - -.. currentmodule:: xrtpy.util.time - -.. automodapi:: xrtpy.util.time diff --git a/docs/bibliography.rst b/docs/bibliography.rst index 54b204ac..f4200833 100644 --- a/docs/bibliography.rst +++ b/docs/bibliography.rst @@ -1,10 +1,10 @@ -.. _bibliography: +.. _xrtpy-bibliography: ############ Bibliography ############ -.. The bibliography is built from references contained within - bibliography.bib. Add new references to bibliography.bib. +.. The bibliography is built from references contained within bibliography.bib. + Add new references to bibliography.bib. .. bibliography:: diff --git a/docs/conf.py b/docs/conf.py index a436e659..bf42dbd5 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,175 +1,206 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# http://www.sphinx-doc.org/en/master/config +""" +Configuration file for the Sphinx documentation builder. +""" +# -- stdlib imports ------------------------------------------------------------ import os -from datetime import datetime - -from sphinx.application import Sphinx - -# -- Project information ----------------------------------------------------- - +import warnings +from datetime import UTC, datetime +from pathlib import Path + +from packaging.version import Version + +# -- Read the Docs Specific Configuration -------------------------------------- +# This needs to be done before xrtpy is imported +on_rtd = os.environ.get("READTHEDOCS", None) == "True" +if on_rtd: + os.environ["SUNPY_CONFIGDIR"] = "/home/docs/" + os.environ["HOME"] = "/home/docs/" + os.environ["LANG"] = "C" + os.environ["LC_ALL"] = "C" + os.environ["PARFIVE_HIDE_PROGRESS"] = "True" + +# -- Imports ------------------------------------------------------------------- +from astropy.utils.exceptions import AstropyDeprecationWarning # NOQA: E402 +from matplotlib import MatplotlibDeprecationWarning # NOQA: E402 +from sunpy.util.exceptions import ( # NOQA: E402 + SunpyDeprecationWarning, + SunpyPendingDeprecationWarning, +) + +# -- Project information ------------------------------------------------------- project = "xrtpy" author = "Joy Velasquez, Nick Murphy, and Jonathan Slavin" -copyright = f"2021–{datetime.utcnow().year}, {author}" +copyright = f"2021-{datetime.now(tz=UTC).year}, {author}" # The full version, including alpha/beta/rc tags -# from xrtpy import __version__ -# release = __version__ +from xrtpy import __version__ # NOQA: E402 -release = "0.4.0" +release = __version__ +version = Version(__version__) +is_release = not (version.is_prerelease or version.is_devrelease) # -- General configuration --------------------------------------------------- +# We want to make sure all the following warnings fail the build +warnings.filterwarnings("error", category=SunpyDeprecationWarning) +warnings.filterwarnings("error", category=SunpyPendingDeprecationWarning) +warnings.filterwarnings("error", category=MatplotlibDeprecationWarning) +warnings.filterwarnings("error", category=AstropyDeprecationWarning) + +# For the linkcheck +linkcheck_allowed_redirects = { + r"https://doi\.org/.+": r"https://.+", # DOI links are more persistent + r"https://docs.+\.org": r"https://docs.+\.org/en/.+", + r"https://docs.+\.io": r"https://docs.+\.io/en/.+", + r"https://docs.+\.com": r"https://docs.+\.com/en/.+", + r"https://docs.+\.dev": r"https://docs.+\.dev/en/.+", + r"https://.+\.readthedocs\.io": r"https://.+\.readthedocs\.io/en/.+", + r"https://.+/github\.io": r"https://.+/github\.io/en/.+", + r"https://pip\.pypa\.io": r"https://pip\.pypa\.io/en/.+", + r"https://www.python.org/dev/peps/pep.+": "https://peps.python.org/pep.+", +} +linkcheck_anchors = True +linkcheck_anchors_ignore = [] + +# sphinxext-opengraph +ogp_image = "https://raw.githubusercontent.com/HinodeXRT/xrtpy/main/docs/_static/images/XRTpy_logo.png" +ogp_use_first_image = True +ogp_description_length = 160 +ogp_custom_meta_tags = [ + '', +] + +# Suppress warnings about overriding directives as we overload some of the +# doctest extensions. +suppress_warnings = [ + "app.add_directive", +] + # Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# extensions coming with Sphinx (named "sphinx.ext.*") or your custom # ones. extensions = [ + "matplotlib.sphinxext.plot_directive", "sphinx_automodapi.automodapi", + "sphinx_automodapi.smart_resolver", + "sphinx_gallery.gen_gallery", "sphinx.ext.autodoc", + "sphinx.ext.coverage", + "sphinx.ext.doctest", + "sphinx.ext.inheritance_diagram", "sphinx.ext.intersphinx", - "sphinx.ext.graphviz", "sphinx.ext.mathjax", "sphinx.ext.napoleon", "sphinx.ext.todo", - "nbsphinx", - "sphinx_changelog", + "sphinx.ext.viewcode", + "sphinxext.opengraph", + "sphinx_design", "sphinx_copybutton", - "sphinx_gallery.load_style", - "IPython.sphinxext.ipython_console_highlighting", - "sphinx_changelog", - "sphinx_issues", - "sphinxcontrib.bibtex", "hoverxref.extension", - "sphinx_copybutton", - "sphinx_codeautolink", - "sphinx.ext.viewcode", ] -bibtex_bibfiles = ["bibliography.bib"] -bibtex_default_style = "plain" -bibtex_reference_style = "author_year" -bibtex_cite_id = "{key}" +# Set automodapi to generate files inside the generated directory +automodapi_toctreedirnm = "generated/api" # Add any paths that contain templates here, relative to this directory. -# templates_path = ['_templates'] +# templates_path = ["_templates"] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. -exclude_patterns = [ - ".DS_Store", - "_build", - "_links.rst", - "_substitutions.rst", - "Thumbs.db", -] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +# html_extra_path = ['robots.txt'] + +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: source_suffix = ".rst" -# The root toctree document. -root_doc = "index" +# The master toctree document. +master_doc = "index" -# -- nbsphinx configuration -------------------------------------------------- +# The reST default role (used for this markup: `text`) to use for all +# documents. Set to the "smart" one. +default_role = "obj" -nbsphinx_allow_errors = True # Allow errors in Jupyter notebooks +# Disable having a separate return type row +napoleon_use_rtype = False -# -- Options for intersphinx extension --------------------------------------- +# Disable google style docstrings +napoleon_google_docstring = False -intersphinx_mapping = { - "astropy": ("https://docs.astropy.org/en/stable/", None), - "ndcube": ("https://docs.sunpy.org/projects/ndcube/en/stable/", None), - "numpy": ("https://numpy.org/doc/stable/", None), - "python": ("https://docs.python.org/3", None), - "scipy": ("https://docs.scipy.org/doc/scipy/reference/", None), - "sunpy": ("https://docs.sunpy.org/en/stable/", None), -} +# Disable the use of param, which prevents a distinct "Other Parameters" section +napoleon_use_param = False -hoverxref_intersphinx = [ - "astropy", - "ndcube", - "numpy", - "python", - "scipy", - "sunpy", -] - -autoclass_content = "both" -autodoc_typehints_format = "short" - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = "sphinx_rtd_theme" - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] +# Enable nitpicky mode, which forces links to be non-broken +nitpicky = True +# This is not used. See docs/nitpick-exceptions file for the actual listing. +nitpick_ignore = [] +with Path("nitpick-exceptions").open() as f: + for line in f: + if line.strip() == "" or line.startswith("#"): + continue + dtype, target = line.split(None, 1) + target = target.strip() + nitpick_ignore.append((dtype, target)) -linkcheck_allowed_redirects = { - r"https://doi\.org/.+": r"https://.+", # DOI links are more persistent - r"https://docs.+\.org": r"https://docs.+\.org/en/.+", - r"https://docs.+\.io": r"https://docs.+\.io/en/.+", - r"https://docs.+\.com": r"https://docs.+\.com/en/.+", - r"https://docs.+\.dev": r"https://docs.+\.dev/en/.+", - r"https://.+\.readthedocs\.io": r"https://.+\.readthedocs\.io/en/.+", - r"https://.+/github\.io": r"https://.+/github\.io/en/.+", - r"https://pip\.pypa\.io": r"https://pip\.pypa\.io/en/.+", - r"https://www.python.org/dev/peps/pep.+": "https://peps.python.org/pep.+", -} +bibtex_bibfiles = ["bibliography.bib"] +bibtex_default_style = "plain" +bibtex_reference_style = "author_year" +bibtex_cite_id = "{key}" -linkcheck_anchors = True -linkcheck_anchors_ignore = [ - "/room", - r".+openastronomy.+", - "L[0-9].+", - "!forum/plasmapy", -] +# This is added to the end of RST files — a good place to put substitutions to be used globally. +rst_epilog = "" +for epilog_file in ["_links.rst", "_substitutions.rst"]: + with Path(epilog_file).open() as file: + rst_epilog += file.read() -# Use a code highlighting style that meets the WCAG AA contrast standard -pygments_style = "default" +# -- Options for intersphinx extension --------------------------------------- -nbsphinx_thumbnails = { - "notebooks/getting_started/units": ( - "_static/notebook_images/astropy_logo_notext.png" - ), # CC BY-SA - "notebooks/getting_started/A_Practical_Guide_to_Data_Extraction_and_Visualization": ( - "_static/notebook_images/hinode_satellite.png" +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + "python": ( + "https://docs.python.org/3/", + (None, "http://www.astropy.org/astropy-data/intersphinx/python3.inv"), + ), + "numpy": ( + "https://numpy.org/doc/stable/", + (None, "http://www.astropy.org/astropy-data/intersphinx/numpy.inv"), ), + "scipy": ( + "https://docs.scipy.org/doc/scipy/reference/", + (None, "http://www.astropy.org/astropy-data/intersphinx/scipy.inv"), + ), + "astropy": ("https://docs.astropy.org/en/stable/", None), + "matplotlib": ("https://matplotlib.org/stable", None), + "ndcube": ("https://docs.sunpy.org/projects/ndcube/en/stable/", None), } -# adapted from sphinx-hoverxref conf.py +# -- Options for hoverxref ----------------------------------------------------- if os.environ.get("READTHEDOCS"): - # Building on Read the Docs hoverxref_api_host = "https://readthedocs.org" if os.environ.get("PROXIED_API_ENDPOINT"): # Use the proxied API endpoint - # - A RTD thing to avoid a CSRF block when docs are using a - # custom domain + # A RTD thing to avoid a CSRF block when docs are using a custom domain hoverxref_api_host = "/_" -hoverxref_tooltip_maxwidth = 600 # RTD main window is 696px hoverxref_auto_ref = True -hoverxref_mathjax = True -hoverxref_sphinxtabs = True - -# hoverxref has to be applied to these hoverxref_domains = ["py", "cite"] -hoverxref_roles = ["confval", "term"] - +hoverxref_mathjax = True +hoverxref_modal_hover_delay = 500 +hoverxref_tooltip_maxwidth = 600 # RTD main window is 696px +hoverxref_intersphinx = list(intersphinx_mapping.keys()) hoverxref_role_types = { - # roles with cite domain + # Roles with cite domain "p": "tooltip", "t": "tooltip", - # - # roles with py domain + # Roles within the py domain "attr": "tooltip", "class": "tooltip", "const": "tooltip", @@ -179,50 +210,55 @@ "meth": "tooltip", "mod": "tooltip", "obj": "tooltip", - # - # roles with std domain + # Roles within the std domain "confval": "tooltip", "hoverxref": "tooltip", - "ref": "tooltip", + "ref": "tooltip", # Would be used by hoverxref_auto_ref if we set it to True "term": "tooltip", } -# Configure sphinx-issues - -issues_github_path = "HinodeXRT/xrtpy" - -# Specify patterns to ignore when doing a nitpicky documentation build. - -python_role = "py:.*" - -nitpick_ignore_regex = [ - (python_role, "and"), - (python_role, "array .*"), - (python_role, "array_like"), - (python_role, "callable"), - (python_role, "function"), - (python_role, ".*integer.*"), - (python_role, "iterable"), - (python_role, "key"), - (python_role, "keyword-only"), - (python_role, ".* object"), - (python_role, "optional"), - (python_role, "or"), - (python_role, ".*real number.*"), - (python_role, ".*Unit.*"), -] -# This is added to the end of RST files — a good place to put substitutions to -# be used globally. -rst_epilog = "" -for epilog_file in ["_links.rst", "_substitutions.rst"]: - with open(epilog_file) as file: # noqa: PTH123 - rst_epilog += file.read() +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = "sphinx_rtd_theme" -# Add the nbsphinx_allow_errors option -nbsphinx_allow_errors = True +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ["_static"] + +# 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", + "-Gfontsize=10", + "-Gfontname=Helvetica Neue, Helvetica, Arial, sans-serif", +] + +# -- Sphinx Gallery ------------------------------------------------------------ + +sphinx_gallery_conf = { + "backreferences_dir": Path("generated") / "modules", + "filename_pattern": "^((?!skip_).)*$", + "examples_dirs": Path("..") / "examples", + "within_subsection_order": "ExampleTitleSortKey", + "gallery_dirs": Path("generated") / "gallery", + "matplotlib_animations": True, + "default_thumb_file": "https://raw.githubusercontent.com/HinodeXRT/xrtpy/main/docs/_static/images/XRTpy_logo.png", + "abort_on_example_error": False, + "plot_gallery": "True", + "remove_config_comments": True, + "doc_module": ("xrtpy"), + "only_warn_on_example_error": True, +} +# -- Options for sphinx-copybutton --------------------------------------------- -def setup(app: Sphinx) -> None: - app.add_config_value("revision", "", True) # noqa: FBT003 - app.add_css_file("css/admonition_color_contrast.css") - app.add_css_file("css/plasmapy.css", priority=600) +# Python Repl + continuation, Bash, ipython and qtconsole + continuation, jupyter-console + continuation +copybutton_prompt_text = r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: " +copybutton_prompt_is_regexp = True diff --git a/docs/contributing/index.rst b/docs/contributing/index.rst index f7530cd2..29d228dc 100644 --- a/docs/contributing/index.rst +++ b/docs/contributing/index.rst @@ -1,4 +1,4 @@ -.. _contributor guide: +.. _xrtpy_contributing: ***************** Contributor Guide @@ -10,4 +10,3 @@ Contributor Guide contributing installation_for_development release_guide - acknowledging_xrtpy diff --git a/docs/examples.rst b/docs/examples.rst index 64499aa5..95495371 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -1,10 +1,11 @@ +.. _xrtpy-examples: + Examples ======== -In this section, we provide a catalog of example Jupyter notebooks that -demonstrate the various functionalities offered by `XRTpy`. These notebooks -serve as practical guides for utilizing the features and capabilities of XRTpy -in different scenarios. By exploring these examples, users can gain a better -understanding of how to effectively use XRTpy for their analysis tasks. + +In this section, we provide a catalog of example Jupyter notebooks that demonstrate the various functionalities offered by XRTpy. +These notebooks serve as practical guides for utilizing the features and capabilities of XRTpy in different scenarios. +By exploring these examples, users can gain a better understanding of how to effectively use XRTpy for their analysis tasks. .. contents:: :local: @@ -13,17 +14,17 @@ Getting started --------------- .. nbgallery:: - :glob: + :glob: - notebooks/getting_started/* + notebooks/getting_started/* Computing response functions ---------------------------- .. nbgallery:: - :glob: + :glob: - notebooks/computing_functions/* + notebooks/computing_functions/* Data analysis ------------- diff --git a/docs/feedback_communication.rst b/docs/feedback_communication.rst index 514be42c..8ed18b8f 100644 --- a/docs/feedback_communication.rst +++ b/docs/feedback_communication.rst @@ -1,28 +1,29 @@ -.. currentmodule:: xrtpy +.. _xrytpy-feedback-communication: -.. _feedback_communication: +************************ +Communicating with XRTpy +************************ -******************** -Communication Routes -******************** - -XRTpy has several methods of contact to get direct intel of XRTpy's current -works, reporting bugs, giving feedback, and asking questions. Please direct any comments, questions, or suggestions to `xrtpy@cfa.harvard.edu`_. +XRTpy has several methods that one can use to get contact with XRTpy developers, giving feedback or giving feedback. Feedback ======== -We appreciate any feedback describing your experience using XRTpy. We welcome other methods and ideas towards the development of XRTpy. You may contact us via `email`_ or through `GitHub Hinode XRT`_. -Bug Encounters -============== -In the event that you come across a direct XRTpy error, flaw, or unexpected operation, please report it to us directly via `email`_ or by creating a `GitHub-issue`_. +We appreciate any feedback describing your experience using XRTpy. +We welcome other methods and ideas towards the development of XRTpy. +You may contact us via `GitHub Hinode XRT`_ or `email`_. + +Bugs +==== + +If you encounter a XRTpy error, flaw, or unexpected operation, please report it to us by creating a `GitHub-issue`_ or by sending an `email`_. Contributing ============ -We welcome contributions from the community! For detailed guidelines on how to contribute, please see our `Contributing Guide` page section `Contributing to XRTpy` . +We welcome contributions from the community! +For detailed guidelines on how to contribute, please see :ref:`xrtpy_contributing`. -.. _xrtpy@cfa.harvard.edu: xrtpy@cfa.harvard.edu .. _email: xrtpy@cfa.harvard.edu -.. _GitHub-issue: https://github.com/HinodeXRT/xrtpy/issues .. _GitHub Hinode XRT : https://github.com/HinodeXRT/xrtpy +.. _GitHub-issue: https://github.com/HinodeXRT/xrtpy/issues diff --git a/docs/getting_started.rst b/docs/getting_started.rst index 999d6ed5..733a24e8 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -1,86 +1,93 @@ +.. _xrtpy-getting-started: + =============== Getting Started =============== -XRTpy is a Python package being developed for the analysis of observations made by the X-Ray Telescope (XRT) -on the board Hinode spacecraft. This page is intended for new users of `xrtpy`. For more background information about XRT please refer to the `SolarSoft XRT Analysis Guide`_. +XRTpy is a Python package being developed for the analysis of observations made by the X-Ray Telescope (XRT) on the board Hinode spacecraft. +This page is intended for new users of `xrtpy`. For more background information about XRT please refer to the `SolarSoft XRT Analysis Guide`_. +XRTpy Objects +************* -XRTpy Objects: -************** -XRTpy currently offers *Channel*, *Effective Area*, and *Temperature Response* classes. We have also introduced new functionality, including -the ablility to derive temperatures and emission measures for a pair of images, sharpen images using the point spread function, and -a function to correct synoptic images for the light leak (visible stray light) that XRT has developed. +XRTpy currently offers *Channel*, *Effective Area*, and *Temperature Response* classes. +There is the ability to to derive temperatures and emission measures for a pair of images, sharpen images using a Point Spread Function (PSF) deconvolution, and to correct synoptic images for the light leak (visible stray light) that XRT has developed. Visit our Example page for detail notebook example guides on how to use the XRTpy classes and functions. - Channel ------- -|Channel| is an instrument configuration class that contains the properties of particular XRT filters. It provides a detailed information on the filter channel, including the Charge-Coupled Device (CCD), Entrance Filter, Focus-Filter(s), Geometry, and Mirror(s). +|Channel| is an instrument configuration class that contains the properties of particular XRT filters. +It provides a detailed information on the filter channel, including the Charge-Coupled Device (CCD), Entrance Filter, Focus-Filter(s), Geometry, and Mirror(s). Effective Area -------------- + XRTpy calculates the effective areas for a set of XRT filter channels paired with thicknesses of the CCD contamination layer. For more information about the instrumental spectral responses, refer to the `SolarSoft XRT Analysis Guide`_. - Temperature Response -------------------- -XRTpy calculates the temperature response for each XRT filter channel, assuming a spectral emission model, refer to :cite:t:`narukage:2011` and :cite:t:`narukage:2014`. -The XRT default emission model is `CHIANTI`_ atomic database version 10.0 with coronal abundances :cite:t:`feldman:1992`. This structure contains data and information about a plasma emission model, as a function of wavelength and temperature. +XRTpy calculates the temperature response for each XRT filter channel, assuming a spectral emission model, refer to :cite:t:`narukage:2011` and :cite:t:`narukage:2014`. +The XRT default emission model is `CHIANTI`_ atomic database version 10.0 with coronal abundances :cite:t:`feldman:1992`. +This structure contains data and information about a plasma emission model, as a function of wavelength and temperature. Deriving Temperature and Emission Measure for a Pair of Images -------------------------------------------------------------- -XRTpy provides a routine, *temperature_from_filter_ratio*, that employs the objects listed above to derive the temperature and emission -measure in for a given pair of images using the filter ratio method. This uses the same methods as in the SolarSoft IDL -routine of the same name. Familiarize yourself with the utilization of this function through the notebook example provided on our Example page. +XRTpy provides a routine, *temperature_from_filter_ratio*, that employs the objects listed above to derive the temperature and emission measure in for a given pair of images using the filter ratio method. +This uses the same methods as in the SolarSoft IDL routine of the same name. +Familiarize yourself with the utilization of this function through the notebook example provided on our Example page. Enhancing Images Sharpness with Point Spread Function - Deconvolution --------------------------------------------------------------------- + Deconvolution is a powerful technique used to enhance image sharpness by mitigating the blurring effect -caused by the telescope's point spread function (PSF). It is particularly useful for removing the blurring -around sharp objects or features in the XRT image. To learn how to use *deconvolve*, refer to the notebook examples provided on our Example page. +caused by the telescope's point spread function (PSF). +It is particularly useful for removing the blurring around sharp objects or features in the XRT image. +To learn how to use *deconvolve*, refer to the notebook examples provided on our Example page. Subtracting Light Leak from XRT Synoptic Composite Images --------------------------------------------------------- -We have developed a specialized function designed to subtract light leak, *remove_lightleak*, which refers to visible stray -light, from XRT synoptic composite images. By applying this function, you can effectively remove the -unwanted artifacts caused by light leak, resulting in cleaner and more accurate images for further analysis and interpretation. + +We have developed a specialized function designed to subtract light leak, *remove_lightleak*, which refers to visible stray light, from XRT synoptic composite images. +By applying this function, you can effectively remove the unwanted artifacts caused by light leak, resulting in cleaner and more accurate images for further analysis and interpretation. Explore our Example page for a notebook example that demonstrate the usage of this function. Abundance Model --------------- + The standard XRT temperature response routines are calculated assuming `CHIANTI`_ coronal abundances, :cite:t:`feldman:1992`. -Additionally, XRTpy offers the ability to choose two other sets of `CHIANTI`_ abundances i.e. Hybrid and Photospheric. -The Hybrid abundances are base on :cite:t:`Fludra:1999` and Photospheric abundances are base on :cite:t:`Grevesse:2007`. +Additionally, XRTpy offers the ability to choose two other sets of `CHIANTI`_ abundances i.e., Hybrid and Photospheric. +The Hybrid abundances are based on :cite:t:`Fludra:1999` and Photospheric abundances are base on :cite:t:`Grevesse:2007`. The `CHIANTI`_ files contain data and information about a plasma emission model, as a function of wavelength and temperature. Visit `XRT temperature response with other choice of abundances`_ for future detailed information. .. note:: + XRTpy has future plans to accept other plasma emission spectra models. -XRTpy defaults to using CHIANTI `"coronal"` abundance. You can specify the other abundances by defining the abundance type name, -such as `"hybrid"` or `"photospheric"` in the `abundance_model` parameter. For example: +XRTpy defaults to using CHIANTI's `"coronal"` abundance. +You can specify the other abundances by defining the abundance type name, such as `"hybrid"` or `"photospheric"` in the `abundance_model` parameter. -.. code-block:: bash +For example: - xrtpy.response.TemperatureResponseFundamental( - 'Al-poly', - '2022/07/04T23:43:12', - abundance_model = 'Hybrid' - ) +.. code-block:: python -The `abundance_model` parameter is used in the same format in `temperature_from_filter_ratio`. + xrtpy.response.TemperatureResponseFundamental( + "Al-poly", "2022/07/04T23:43:12", abundance_model="Hybrid" + ) +The ``abundance_model`` parameter is used in the same format in `temperature_from_filter_ratio`. Data Products ************* + The XRT website provides readily available `XRT data products`_, including both Level 1 and Level 2 data. -The `Level 1 Data`_ section contains an extensive archive of all Level 1 XRT data that has been calibrated using the `xrt_prep`_ routine, with units expressed in instrumental Data Numbers. -Additionally, for users interested in synoptic images, `Level 2 Synoptics`_ data is available, which consists of composite images from the twice-daily synoptic program. These images have been processed and are available in the archive. +The `Level 1 Data`_ section contains an extensive archive of all Level 1 XRT data that has been calibrated using the `xrt_prep`_ routine, with units expressed in Data Numbers. +Additionally, for users interested in synoptic images, `Level 2 Synoptics`_ data is available, which consists of composite images from the twice-daily synoptic program. +These images have been processed and are available in the archive. For more detailed information about our XRT data products, please visit the `XRT data products`_ site, where you can find comprehensive data resources and references. .. _Level 1 Data: https://xrt.cfa.harvard.edu/level1/ @@ -89,10 +96,11 @@ For more detailed information about our XRT data products, please visit the `XRT .. _xrt_prep: https://xrt.cfa.harvard.edu/resources/documents/XAG/XAG.pdf X-Ray Filter Channel -********************* +******************** -The XRT controls filter imaging using two sequentially positioned filter wheels, as shown in the diagram below. Each wheel houses a variety of filters. By rotating these wheels, scientists can select different filters to study the sun in multiple wavelengths, thereby enhancing the resolution and quality of solar images. -Refer to Section 3 in the `X-Ray Telescope Instrument Guide` in the `SolarSoft XRT Analysis Guide`_ for more information about the XRT filters. +XRT uses two sequentially positioned filter wheels, as shown in the diagram below, where each wheel houses a variety of filters. +By rotating these wheels, scientists can select different filters to study the Sun in different wavelengths, thereby enhancing the resolution and quality of solar images. +Refer to Section 3 in the `X-Ray Telescope Instrument Guide` in the `SolarSoft XRT Analysis Guide`_ for more information abo[ut the XRT filters. The existing filters are structured as follows: #. Filter Configuration @@ -112,20 +120,21 @@ The existing filters are structured as follows: - Aluminum Thick (*Al-thick*) - Beryllium Thick (*Be-thick*) #. *Open* - Each filter wheel has an empty position, named 'Open'. The open position is in place when a filter on the other filter wheel is being used. + Each filter wheel has an empty position, named 'Open'. + The open position is in place when a filter on the other filter wheel is being used. #. *G-band* - The G-Band filter allows visible light into the telescope and onto the CCD. XRTpy does not - calculate the effective area or the temperature response for the G-Band filter. + The G-Band filter allows visible light into the telescope and onto the CCD. + XRTpy does not calculate the effective area or the temperature response for the G-Band filter. .. note:: - Filters are expressed by their abbreviation when used in XRTpy. For example, if we want to explore the filter channel - that selects the titanium-on-polyimide filter, then the string would be ``'Ti-poly'``. The process is the same for all XRT - filter channels. -.. image:: images/XRT_filter_wheels_Sun_View_Diagram.png + Filters are expressed by their abbreviation when used in XRTpy. + For example, if we want to explore the filter channel that selects the Titanium Polyimide filter, then the string would be ``'Ti-poly'``. + The process is the same for all XRT filter channels. + +.. image:: _static/images/XRT_filter_wheels_Sun_View_Diagram.png :alt: Diagram of the XRT Filter Wheels :align: center - :scale: 25% .. _CHIANTI: https://www.chiantidatabase.org/chianti_database_history.html .. _SolarSoft XRT Analysis Guide: https://xrt.cfa.harvard.edu/resources/documents/XAG/XAG.pdf diff --git a/docs/glossary.rst b/docs/glossary.rst index 715638b4..ad72dac6 100644 --- a/docs/glossary.rst +++ b/docs/glossary.rst @@ -1,6 +1,4 @@ -.. currentmodule:: xrtpy - -.. _glossary: +.. _xrtpy-glossary: ******** Glossary diff --git a/docs/images/XRTpy_logo copy.png b/docs/images/XRTpy_logo copy.png deleted file mode 100644 index 44be6548..00000000 Binary files a/docs/images/XRTpy_logo copy.png and /dev/null differ diff --git a/docs/images/hinode_satellite.png b/docs/images/hinode_satellite.png deleted file mode 100644 index b7cb2493..00000000 Binary files a/docs/images/hinode_satellite.png and /dev/null differ diff --git a/docs/index.rst b/docs/index.rst index 678f2edc..213cc318 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,38 +1,27 @@ -:tocdepth: 2 - .. _xrtpy-documentation: -.. image:: images/XRTpy_logo.png - :alt: XRTpy logo - :align: right - :scale: 40% - -################### +******************* XRTpy Documentation -################### +******************* -This is the documentation for XRTpy: a Python_ package being developed -for the analysis of observations made by the `X-Ray Telescope`_ (XRT) -:cite:p:`golub:2007` on the Hinode_ spacecraft :cite:p:`kosugi:2007`. +.. image:: _static/images/XRTpy_logo.png + :alt: XRTpy logo + +This is the documentation for XRTpy: a Python_ package being developed for the analysis of observations made by the `X-Ray Telescope`_ (XRT) :cite:p:`golub:2007` on the Hinode_ spacecraft :cite:p:`kosugi:2007`. .. toctree:: :maxdepth: 2 :caption: Contents: - install about_xrt + install getting_started examples + reference/index + acknowledging_xrtpy bibliography glossary - changelog/index feedback_communication - CODE_OF_CONDUCT contributing/index - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` + CODE_OF_CONDUCT + changelog/index diff --git a/docs/install.rst b/docs/install.rst index dda5da8b..a9aacafc 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -4,220 +4,132 @@ Installing XRTpy **************** -.. contents:: Contents - :local: - Installing Python ================= -XRTpy requires Python_ |minpython| or newer. If you do not have Python_ -installed already, here are the instructions to `download Python`_ and -install it. +There are many ways to install Python, but even if you have Python installed somewhere on your computer we recommend following these instructions anyway. +That's because we will create a new Python environment. +As well as containing a Python installation, this environment provides an isolated place to install Python packages (like ``xrtpy``) without affecting any other current Python installation. +If you already have Python and ``conda`` working you can skip the next section. +Please note that XRTpy requires Python_ |minpython| or newer. .. tip:: - New versions of Python_ are released annually in October, and it can - take a few months for the scientific Python ecosystem to catch up. If - you have trouble installing `xrtpy` on the most recent Python_ - version between October and ∼March, then try installing it on the - second most recent version. - -.. _install-pip: + New versions of Python_ are released annually in October, and it can take a few months for the scientific Python ecosystem to catch up. + If you have trouble installing `xrtpy` on the most recent Python_ version between October and ∼March, then try installing it on the second most recent version. -Installing XRTpy with pip -============================ +`If you are using Anaconda, we recommend that you uninstall it as the default package channel(s) have a restrictive license which means you might not be able to use it for free `__. +Instead, we recommend that you use miniforge which is a minimal installer that setups conda with the conda-forge channel, which is free to use for everyone. +If you are using miniforge, you can skip the next section -To install the most recent release of `xrtpy` on PyPI_ with pip_ into -an existing Python_ |minpython|\ + environment on macOS or Linux, open a -terminal and run: +Installing miniforge +-------------------- -.. code-block:: bash +If you don't already have a Python installation then we recommend installing Python with `miniforge `__. +This will install ``conda`` and automatically configure the default channel (a channel is a remote software repository) to be ``conda-forge``, which is where ``sunpy`` is available. - python -m pip install xrtpy +First, download the installer for your system and architecture from the links below: -On some systems, it might be necessary to specify the Python_ version -number by using ``python3``, ``python3.9``, ``python3.10``, or -``python3.11`` instead of ``python``. +.. grid:: 3 -To install XRTpy on Windows, run: + .. grid-item-card:: Linux -.. code-block:: bash + `x86-64 `__ - py -3.10 -m pip install xrtpy + `aarch64 `__ -The version of Python_ may be changed from ``3.10`` to another supported -Python |minpython|\ + release that has been installed on your computer. + `ppc64le `__ -For more detailed information, please refer to this tutorial on -`installing packages`_. + .. grid-item-card:: Windows + :link: https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe -.. _install-conda: + `x86-64 `__ -Installing XRTpy with Conda -============================== + .. grid-item-card:: Mac -Conda_ is a package management system and environment manager that is -commonly used in the scientific Python_ ecosystem. Conda_ lets us create -and switch between Python_ environments that are isolated from each -other and the system installation. Conda_ can also be used for packages -written in languages other than Python_. + `x86-64 `__ -After `installing Conda`_ or miniconda_, `xrtpy` can be installed -into an activated Conda_ environment by opening a terminal and running: + `arm64 (Apple + Silicon) `__ -.. code-block:: bash +Then select your platform to install miniforge: - conda install -c conda-forge xrtpy +.. tab-set:: -Here ``-c conda-forge`` indicates that `xrtpy` should be installed -from the conda-forge_ channel. + .. tab-item:: Linux & Mac + :sync: platform -To install `xrtpy` into another existing Conda_ environment, append -:samp:`-n {env_name}` to the previous command, where :samp:`{env_name}` -is replaced with the name of the environment. + Linux & Mac Run the script downloaded above, with + ``bash ``. The following should work: -To create a new environment with `xrtpy` installed in it, run: + .. code-block:: console -.. code-block:: bash + bash Miniforge3-$(uname)-$(uname -m).sh - conda create -n env_name -c conda-forge xrtpy + Once the installer has completed, close and reopen your terminal. -where :samp:`{env_name}` is replaced by the name of the environment. To -activate this environment, run: + .. tab-item:: Windows + :sync: platform -.. code-block:: bash + Double click the executable file downloaded from + the links above. - conda activate env_name + Once the installer has completed you should have a new "miniforge + Prompt" entry in your start menu. -To update `xrtpy` to the most recent version within a currently -activated Conda_ environment, run: +In a new terminal (miniforge Prompt on Windows) run ``conda list`` to test that the install has worked. -.. code-block:: bash - - conda update xrtpy - -.. tip:: - - Creating a Conda_ environment can sometimes take a few minutes. If it - takes longer than that, try updating to the newest version of Conda_ - with ``conda update conda`` or checking out these tips for - `improving Conda performance`_. - -Installing XRTpy with Anaconda Navigator -=========================================== - -.. note:: +Installing xrtpy +---------------- - This section contains instructions on how to install XRTpy with - `Anaconda Navigator`_ at the time of writing. For the most up-to-date - information, please go to the official documentation on `installing - Anaconda Navigator`_ and `managing packages`_. +To install ``xrtpy``, start by launching a terminal (under a UNIX-like system) or the miniforge Prompt (under Windows). +Now we will create and activate a new virtual environment to install ``xrtpy`` into: -`Anaconda Navigator`_ is a graphical user interface (GUI) for Conda_ -that can be used to install Python packages. It is installed -automatically with newer versions of Conda_. If you are using Miniconda_ -or a different Conda_ environment, you can install it with -``conda install anaconda-navigator``. After that it can be opened by -entering ``anaconda-navigator`` in the terminal. - -First, go to the :guilabel:`Environments` tab and select -:guilabel:`Channels`. If ``conda-forge`` is not listed, then go to -:guilabel:`Add`, enter ``https://conda.anaconda.org/conda-forge``, and -click on :guilabel:`Update channels` and then :guilabel:`Update index`. - -Next, while on the :guilabel:`Environments` tab, select the environment -that you would like to install `xrtpy` in. The default is generally -``base (root)``. Optionally, you may select :guilabel:`Create` to start -a new environment. In the search bar, enter ``xrtpy``. Click on the -checkbox next to ``xrtpy``, and select :guilabel:`Apply` to begin the -installation process. - -To test the installation, click on the :guilabel:`▶` icon that should be -present next to the activated environment, and select -:guilabel:`Open terminal`. Enter ``python`` in the terminal, and then -``import xrtpy`` to make sure it works. - -Installing XRTpy from source code -==================================== - -Obtaining official releases ---------------------------- - -A ZIP_ file containing the source code for official releases of -`xrtpy` can be obtained `from PyPI`_ or `from Zenodo`_. - -Alternatively, official releases can be downloaded from the -releases_ page on `XRTpy's GitHub repository`_. - -Obtaining source code from GitHub ---------------------------------- +.. code-block:: bash -If you have git_ installed on your computer, you may clone `XRTpy's -GitHub repository`_ and access the source code from the most recent -development version by running: + $ conda create --name xrtpy + # Only run the following two lines + # if you have NOT installed miniforge or added conda-forge to your channels + # Do not run these lines if you are using Anaconda + $ conda config --add channels conda-forge + $ conda config --set channel_priority strict + $ conda activate xrtpy -.. code:: bash +In this case the environment is named 'xrtpy'. +Feel free to change this to a different environment name. - git clone https://github.com/xrtpy/xrtpy.git +The benefit of using a virtual environment is that it allows you to install packages without affecting any other Python installation on your system. +This also means you can work on multiple projects (research or coding) with different package requirements without them interfering with each other. -The repository will be cloned inside a new subdirectory called -:file:`xrtpy`. +Now we have a fresh environment we can install ``xrtpy``: -If you do not have git_ installed on your computer, then you may download -the most recent source code from `XRTpy's GitHub repository`_ by -going to :guilabel:`Code` and selecting :guilabel:`Download ZIP`. -`Unzipping `__ the file will -create a subdirectory called :file:`XRTpy` that contains the source -code. +.. code-block:: bash -Building and installing ------------------------ + $ conda install xrtpy -To install the downloaded version of `xrtpy`, enter the :file:`xrtpy` -directory and run: +This will install ``xrtpy`` and all of its dependencies. +If you want to install another package later, you can run ``conda install ``. -.. code-block:: bash +pip +~~~ - pip install . +This is for installing ``xrtpy`` within a Python environment, where ``pip`` has been used to install all previous packages. +You will want to make sure you are using a `Python virtual environment `__. -If you expect to occasionally edit the source code, instead run: +Once the environment active, to acquire a full ``xrtpy`` installation: .. code-block:: bash - # For Bash - pip install -e .[developer] + $ pip install xrtpy - # For Zsh - pip install -e ".[developer]" - -The ``-e`` flag makes the installation editable and ``[developer]`` -indicates that all of the dependencies needed for developing XRTpy -will be installed. - -.. note:: - If you noticed any places where the installation instructions could - be improved or have become out of date, please create an issue on - `XRTpy's GitHub repository`_. It would really help! +.. warning:: + If you get a ``PermissionError`` this means that you do not have the required administrative access to install new packages to your Python installation. + Do **not** install any Python packages using ``sudo``. + This error implies you have an incorrectly configured virtual environment or it is not activated. .. note:: - If you noticed any places where the installation instructions could - be improved or have become out of date, please create an issue on - `XRTpy's GitHub repository`_. It would really help! - -.. _Anaconda Navigator: https://www.anaconda.com/products/individual -.. _clone a repository using SSH: https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-ssh-urls -.. _conda-forge: https://conda-forge.org -.. _download Python: https://www.python.org/downloads/ -.. _from PyPI: https://pypi.org/project/xrtpy -.. _from Zenodo: https://doi.org/10.5281/zenodo.1436011 -.. _improving Conda performance: https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/conda-performance.html#improving-conda-performance -.. _installing Anaconda Navigator: https://docs.anaconda.com/anaconda/navigator/install/ -.. _installing Conda: https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html -.. _installing packages: https://packaging.python.org/en/latest/tutorials/installing-packages/#installing-from-vcs -.. _managing packages: https://docs.anaconda.com/anaconda/navigator/tutorials/manage-packages/#installing-a-package -.. _miniconda: https://docs.conda.io/en/latest/miniconda.html -.. _releases: https://github.com/xrtpy/xrtpy/releases -.. _ZIP: https://en.wikipedia.org/wiki/ZIP_(file_format) + If you noticed any places where the installation instructions could be improved or have become out of date, please create an issue on `XRTpy's GitHub repository`_. + It would really help! diff --git a/docs/nitpick-exceptions b/docs/nitpick-exceptions new file mode 100644 index 00000000..9d9486a4 --- /dev/null +++ b/docs/nitpick-exceptions @@ -0,0 +1,6 @@ +# Prevents sphinx nitpicky mode picking up on optional +# (see https://github.com/sphinx-doc/sphinx/issues/6861) +# Even if it was "fixed", still broken +py:class optional +# See https://github.com/numpy/numpy/issues/10039 +py:obj numpy.datetime64 diff --git a/docs/reference/image_correction.rst b/docs/reference/image_correction.rst new file mode 100644 index 00000000..a5add193 --- /dev/null +++ b/docs/reference/image_correction.rst @@ -0,0 +1,5 @@ +************************ +`xrtpy.image_correction` +************************ + +.. automodapi:: xrtpy.image_correction diff --git a/docs/reference/index.rst b/docs/reference/index.rst new file mode 100644 index 00000000..fd6b8fe1 --- /dev/null +++ b/docs/reference/index.rst @@ -0,0 +1,10 @@ +******************* +xrtpy API Reference +******************* + +.. toctree:: + :maxdepth: 1 + :caption: Contents: + :glob: + + * diff --git a/docs/reference/response.rst b/docs/reference/response.rst new file mode 100644 index 00000000..ec4c9282 --- /dev/null +++ b/docs/reference/response.rst @@ -0,0 +1,5 @@ +**************** +`xrtpy.response` +**************** + +.. automodapi:: xrtpy.response diff --git a/docs/reference/util.rst b/docs/reference/util.rst new file mode 100644 index 00000000..266e10c6 --- /dev/null +++ b/docs/reference/util.rst @@ -0,0 +1,5 @@ +************ +`xrtpy.util` +************ + +.. automodapi:: xrtpy.util diff --git a/docs/reference/xrtpy.rst b/docs/reference/xrtpy.rst new file mode 100644 index 00000000..c1bbe85c --- /dev/null +++ b/docs/reference/xrtpy.rst @@ -0,0 +1,5 @@ +******* +`xrtpy` +******* + +.. automodapi:: xrtpy diff --git a/docs/response/index.html b/docs/response/index.html deleted file mode 100644 index 3cbb92aa..00000000 --- a/docs/response/index.html +++ /dev/null @@ -1,30 +0,0 @@ -.. _xrtpy-response: - -*************************** -Response (`xrtpy.response`) -*************************** - -.. py:module:: xrtpy.response -.. currentmodule:: xrtpy.response - -Introduction -============ - -The `xrtpy.response` subpackage includes functionality for describing -XRT_ channels & filters, finding the effective area, and calculating the -temperature response function. - -Submodules -========== - -.. toctree:: - :maxdepth: 2 - - channel - -API -=== - -.. automodapi:: xrtpy.response - :noindex: - :no-main-docstring: diff --git a/docs/notebooks/computing_functions/effective_area.ipynb b/examples/notebooks/computing_functions/effective_area.ipynb similarity index 100% rename from docs/notebooks/computing_functions/effective_area.ipynb rename to examples/notebooks/computing_functions/effective_area.ipynb diff --git a/docs/notebooks/computing_functions/temperature_response.ipynb b/examples/notebooks/computing_functions/temperature_response.ipynb similarity index 100% rename from docs/notebooks/computing_functions/temperature_response.ipynb rename to examples/notebooks/computing_functions/temperature_response.ipynb diff --git a/docs/notebooks/data_analysis/Deconvolving_XRT_images.ipynb b/examples/notebooks/data_analysis/Deconvolving_XRT_images.ipynb similarity index 100% rename from docs/notebooks/data_analysis/Deconvolving_XRT_images.ipynb rename to examples/notebooks/data_analysis/Deconvolving_XRT_images.ipynb diff --git a/docs/notebooks/data_analysis/Remove_lightleak.ipynb b/examples/notebooks/data_analysis/Remove_lightleak.ipynb similarity index 100% rename from docs/notebooks/data_analysis/Remove_lightleak.ipynb rename to examples/notebooks/data_analysis/Remove_lightleak.ipynb diff --git a/docs/notebooks/data_analysis/Temperature_using_composites.ipynb b/examples/notebooks/data_analysis/Temperature_using_composites.ipynb similarity index 100% rename from docs/notebooks/data_analysis/Temperature_using_composites.ipynb rename to examples/notebooks/data_analysis/Temperature_using_composites.ipynb diff --git a/docs/notebooks/data_analysis/Using_temperature_from_filter_ratio.ipynb b/examples/notebooks/data_analysis/Using_temperature_from_filter_ratio.ipynb similarity index 100% rename from docs/notebooks/data_analysis/Using_temperature_from_filter_ratio.ipynb rename to examples/notebooks/data_analysis/Using_temperature_from_filter_ratio.ipynb diff --git a/docs/notebooks/getting_started/A_Practical_Guide_to_Data_Extraction_and_Visualization.ipynb b/examples/notebooks/getting_started/A_Practical_Guide_to_Data_Extraction_and_Visualization.ipynb similarity index 100% rename from docs/notebooks/getting_started/A_Practical_Guide_to_Data_Extraction_and_Visualization.ipynb rename to examples/notebooks/getting_started/A_Practical_Guide_to_Data_Extraction_and_Visualization.ipynb diff --git a/docs/notebooks/getting_started/channel.ipynb b/examples/notebooks/getting_started/channel.ipynb similarity index 100% rename from docs/notebooks/getting_started/channel.ipynb rename to examples/notebooks/getting_started/channel.ipynb diff --git a/docs/notebooks/getting_started/units.ipynb b/examples/notebooks/getting_started/units.ipynb similarity index 100% rename from docs/notebooks/getting_started/units.ipynb rename to examples/notebooks/getting_started/units.ipynb diff --git a/pyproject.toml b/pyproject.toml index f2c2631b..70798b45 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,15 +73,23 @@ docs = [ "pillow >= 9.1.0", "pygments >= 2.12.0", "sphinx >= 7.3.0", + "sphinx_automodapi >= 0.17.0", + "sphinx_rtd_theme >= 2.0.0", + "sphinx-automodapi>=0.14.1", "sphinx-changelog >= 1.5.0", + "sphinx-changelog>=1.5.0", "sphinx-codeautolink >= 0.15.2", "sphinx-copybutton >= 0.5.2", + "sphinx-copybutton>=0.5.0", + "sphinx-design>=0.2.0", "sphinx-gallery >= 0.16.0", + "sphinx-gallery>=0.13.0", "sphinx-hoverxref >= 1.4.0", + "sphinx-hoverxref>=1.3.0", "sphinx-issues >= 4.1.0", - "sphinx_automodapi >= 0.17.0", - "sphinx_rtd_theme >= 2.0.0", "sphinxcontrib-bibtex >= 2.6.2", + "sphinxext-opengraph>=0.6.0", + "sunpy-sphinx-theme>=2.0.3", "sunpy[net] >= 4.0.0", "towncrier >= 23.11.0", ]