<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://sunpy.org/</id>
  <title>Blog - Posts tagged sunpy</title>
  <updated>2026-04-16T16:25:24.133606+00:00</updated>
  <link href="https://sunpy.org/"/>
  <link href="https://sunpy.org/blog/tag/sunpy/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.13">ABlog</generator>
  <entry>
    <id>https://sunpy.org/posts/2021/2021-10-08_nasa_osftl_grant/</id>
    <title>SunPy Awarded NASA Grant</title>
    <updated>2021-11-03T00:00:00+00:00</updated>
    <author>
      <name>Stuart Mumford</name>
    </author>
    <content type="html">&lt;section id="sunpy-awarded-nasa-grant"&gt;

&lt;p&gt;&lt;strong&gt;As part of the NASA “Open Source Tools, Frameworks, and Libraries” program, the SunPy proposal “Strengthening the Foundations of the SunPy Ecosystem” has been funded for the next three years.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This proposal was submitted in January 2021, and sought funding for both the core &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/sunpy.html#module-sunpy" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; package and wider goals of the project.
After &lt;a class="reference external" href="https://github.com/sunpy/sunpy-project/issues/9"&gt;early community input was collected&lt;/a&gt;, Albert Shih led the proposal itself, with NASA GSFC as the primary institution.
&lt;a class="reference external" href="https://docs.google.com/document/d/1_gf1HM7iIUVqgHAdDUFQfCUHzHkrEFUTJZP8O3PEoqw"&gt;The proposed effort&lt;/a&gt; focuses on three main areas:&lt;/p&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;&lt;p&gt;Improving the technical infrastructure.&lt;/p&gt;
&lt;p&gt;This focuses on the tools that the wider project needs to scale up as we adopt more coordinated and affiliated packages.
To support multiple active projects with a common development workflow, more tooling and infrastructure is needed, both for maintainers of existing packages and developers new to writing affiliated packages.
As part of this work templates for setting up new packages will be improved, documentation will be written, and new automation and monitoring bots will be developed to ease the burden on the SunPy maintainers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Augmenting science-enabling functionality.&lt;/p&gt;
&lt;p&gt;This section aims to improve the tools provided by the core package to better support future challenges in solar physics data.
The two main components of this are supporting multi-point observations with improvements to the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/coordinates/index.html#module-sunpy.coordinates" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.coordinates&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; package, and improving the support for very large datasets in &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/sunpy.html#module-sunpy" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and sponsored packages by leveraging the scaling and parallelism tools available from &lt;a class="reference external" href="https://dask.org"&gt;Dask&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Providing training and outreach&lt;/p&gt;
&lt;p&gt;This section will improve example galleries across both &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/sunpy.html#module-sunpy" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; core and affiliated packages, develop training materials for solar physics graduate students, and perform outreach activities with instrument teams and package developers.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;section id="what-will-the-money-pay-for"&gt;
&lt;h2&gt;What will the money pay for?&lt;/h2&gt;
&lt;p&gt;The money awarded to this proposal will pay for:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Albert Shih will manage the project and augment parts of &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/coordinates/index.html#module-sunpy.coordinates" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.coordinates&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stuart Mumford will work on infrastructure for all sponsored and affiliated packages as discussed in &lt;a class="reference external" href="https://github.com/sunpy/sunpy-project/issues/2"&gt;sunpy/sunpy-project#2&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Will Barnes will work on the training/outreach and large-dataset-support components of the project.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="finally"&gt;
&lt;h2&gt;Finally&lt;/h2&gt;
&lt;p&gt;This is a major milestone for SunPy - it is the first significant amount of funding dedicated to directly working on the long term sustainability of the project.
This funding will help to significantly grow SunPy, both the core package and the ecosystem of associated packages.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2021/2021-10-08_nasa_osftl_grant/"/>
    <summary>As part of the NASA “Open Source Tools, Frameworks, and Libraries” program, the SunPy proposal “Strengthening the Foundations of the SunPy Ecosystem” has been funded for the next three years.</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2021-11-03T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2021/2021-10-29_sunpy_31_ndcube_20/</id>
    <title>October Release Announcements</title>
    <updated>2021-10-29T00:00:00+00:00</updated>
    <author>
      <name>Stuart Mumford</name>
    </author>
    <content type="html">&lt;section id="october-release-announcements"&gt;

&lt;p&gt;Today we have a quadruple release announcement for you!
It’s been a very busy week in SunPy land getting both the core and ndcube releases over the line; I hope you enjoy them!&lt;/p&gt;
&lt;section id="sunpy-3-1"&gt;
&lt;h2&gt;sunpy 3.1&lt;/h2&gt;
&lt;p&gt;The next scheduled release of the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy&lt;/span&gt;&lt;/code&gt; core package actually comes &lt;em&gt;a week&lt;/em&gt; early according to our &lt;a class="reference external" href="https://github.com/sunpy/sunpy/wiki/Release-Calendar"&gt;release calendar&lt;/a&gt;, but we couldn’t resist bringing you this end of month release party.&lt;/p&gt;
&lt;p&gt;The 3.1 release contains many new features and improvements, having merged 145 pull requests from 16 people including 8 new contributors.&lt;/p&gt;
&lt;p&gt;Some of the highlights from the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/whatsnew/3.1.html#whatsnew-3-1" title="(in sunpy v4.13.0)"&gt;&lt;span&gt;What’s New in SunPy 3.1?&lt;/span&gt;&lt;/a&gt; page are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Increased in-situ data support&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new limb drawing function&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new WISPR map source&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Propagating solar-surface coordinates in time&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Convenient reprojection of maps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JSOC keyword filtering with Fido&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arithmetic operations with maps&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My personal favourites being the new &lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;limb&lt;/span&gt; &lt;span class="pre"&gt;drawing&lt;/span&gt; &lt;span class="pre"&gt;function&lt;/span&gt;&lt;/code&gt;
and the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/generated/api/sunpy.map.GenericMap.html#sunpy.map.GenericMap.reproject_to" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;reproject_to&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; method on all maps.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="ndcube-2-0"&gt;
&lt;h2&gt;ndcube 2.0&lt;/h2&gt;
&lt;p&gt;Even more excitingly, for me personally, is the long awaited 2.0 release of ndcube.&lt;/p&gt;
&lt;p&gt;ndcube is the sunpy sponsored package for working with multi-dimensional data with an associated WCS object.
For an introduction to ndcube and motivation for the 2.0 rework see &lt;a class="reference external" href="https://docs.sunpy.org/projects/ndcube/en/stable/introduction.html#ndcube-introduction" title="(in ndcube v2.4.0)"&gt;&lt;span&gt;An introduction to ndcube&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We started working on ndcube 2.0 back in 2019 when we had Yash Sharma do the initial work of porting the code base to use the &lt;a class="reference external" href="https://zenodo.org/record/1188875"&gt;APE 14&lt;/a&gt; APIs as his &lt;a class="reference external" href="https://yashrsharma44.medium.com/google-summer-of-code-2019-final-report-openastronomy-ndcube-65068b8571d8"&gt;Google Summer of Code project&lt;/a&gt;.
Little did any of us think that it would take over two years from that point to hit the final release.&lt;/p&gt;
&lt;p&gt;The road to ndcube 2.0 has been long and arduous; all involved have put in a lot of work and what we have made is something that I am personally very proud of.
ndcube 2.0 would not have happened without Dan Ryan, who as the co-maintainer for ndcube has spent many hours on video calls with me designing APIs, and many more hours besides working out problems you would only encounter in one in a million WCS objects!
I would also be remiss if I didn’t specifically thank the DKIST data center who have, by paying for my time, funded a lot of the development work on ndcube 2.0, even when the scope increased beyond their direct requirements.&lt;/p&gt;
&lt;p&gt;I hope that many packages will start using ndcube 2.0 as the base for their code.
There are already many who have helped to shape the release such as the &lt;a class="reference external" href="https://github.com/DKISTDC/dkist"&gt;DKIST User Tools&lt;/a&gt;, &lt;a class="reference external" href="https://github.com/astropy/specutils"&gt;specutils&lt;/a&gt; and &lt;a class="reference external" href="https://github.com/sunpy/sunraster"&gt;sunraster&lt;/a&gt; as well as others I know are in the works.&lt;/p&gt;
&lt;p&gt;For all the gory details of the changes in ndcube 2.0 see &lt;a class="reference external" href="https://docs.sunpy.org/projects/ndcube/en/stable/whatsnew/changelog.html#id11"&gt;the changelog&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="pfsspy-1-0"&gt;
&lt;h2&gt;pfsspy 1.0&lt;/h2&gt;
&lt;p&gt;The SunPy-affiliated potential field source surface extrapolation package &lt;a class="reference external" href="https://pfsspy.readthedocs.io/"&gt;pfsspy&lt;/a&gt; maintained by &lt;a class="reference external" href="https://github.com/dstansby/"&gt;David Stansby&lt;/a&gt; has had a 1.0 release, which includes promises of API stability.
You can read about all the changes in &lt;a class="reference external" href="https://pfsspy.readthedocs.io/en/stable/changes.html"&gt;the changelog&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="aiapy-0-6"&gt;
&lt;h2&gt;aiapy 0.6&lt;/h2&gt;
&lt;p&gt;The SunPy-affiliated aiapy package, which provides tools for working with SDO/AIA data and is maintained by the AIA instrument team, has a new 0.6 release which includes support for sunpy core 3.1.
In addition to a number of bug fixes, v0.6 also includes the ability to calculate uncertainties on AIA images via the &lt;a class="reference external" href="https://aiapy.readthedocs.io/en/stable/api/aiapy.calibrate.estimate_error.html#aiapy.calibrate.estimate_error" title="(in aiapy v0.12.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;estimate_error&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; function.
A complete list of changes is available &lt;a class="reference external" href="https://aiapy.readthedocs.io/en/stable/whatsnew/changelog.html"&gt;in the changelog&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2021/2021-10-29_sunpy_31_ndcube_20/"/>
    <summary>Today we have a quadruple release announcement for you!
It’s been a very busy week in SunPy land getting both the core and ndcube releases over the line; I hope you enjoy them!</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2021-10-29T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2020/2020-08-17_affiliated_packages/</id>
    <title>The What, Why, and How of SunPy Affiliated Packages</title>
    <updated>2020-08-18T00:00:00+00:00</updated>
    <author>
      <name>Laura Hayes</name>
    </author>
    <content type="html">&lt;section id="the-what-why-and-how-of-sunpy-affiliated-packages"&gt;

&lt;section id="what-are-sunpy-affiliated-packages"&gt;
&lt;h2&gt;What are SunPy affiliated packages?&lt;/h2&gt;
&lt;p&gt;SunPy affiliated packages are well-maintained, open-source software packages that build upon or extend the functionality of the SunPy core library.
The main idea behind affiliated packages is to provide additional tools and functionality to the solar physics community that is considered outside the scope of the SunPy core library, but builds upon it.
Affiliated packages are aimed to integrate well with the SunPy ecosystem and together with the core library offer a diverse software ecosystem for which to perform solar data analysis.
Affiliated packages are reviewed and registered with the SunPy project.&lt;/p&gt;
&lt;p&gt;There are two types of affiliated packages - &lt;em&gt;sponsored&lt;/em&gt; and &lt;em&gt;non-sponsored&lt;/em&gt;.
A sponsored affiliated package is an affiliated package that is maintained and overseen by the SunPy project, examples of these include &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/"&gt;sunpy core&lt;/a&gt; and &lt;a class="reference external" href="https://docs.sunpy.org/projects/ndcube/en/stable/"&gt;ndcube&lt;/a&gt;.
Non-sponsored affiliated packages on the other hand remain under the control and maintenance of the original developers, but must meet a set of standards.
Examples of non-sponsored affiliated packages would be instrument-specific affiliated packages such as &lt;a class="reference external" href="https://pypi.org/project/aiapy/"&gt;AIApy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this blog post we want to outline our new streamline process for becoming an affiliated package and we want to encourage package developers, particularly instrument teams interested in developing a Python package, to submit their package for review for SunPy affiliate status!&lt;/p&gt;
&lt;/section&gt;
&lt;section id="why-would-a-package-want-to-become-an-affiliated-package"&gt;
&lt;h2&gt;Why would a package want to become an affiliated package?&lt;/h2&gt;
&lt;p&gt;SunPy supports the development of affiliated packages through our community development efforts and by providing our package template.
The SunPy project will also ensure that affiliated packages are publicized to encourage community development.
For example, affiliated packages are listed on the SunPy website, and SunPy adverstises them at conferences and workshops.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="call-to-instrument-mission-teams"&gt;
&lt;h2&gt;Call to instrument/mission teams!&lt;/h2&gt;
&lt;p&gt;We invite instrument and mission teams that are interested in developing a Python package to become a SunPy affiliated package.
Integrating mission/instrument-specific software within the SunPy ecosystem will be of great benefit to the solar community and will allow for a simplified and unified process for users to perform solar data analysis.
For example, a package may consist of instrument-specific calibration routines which would be outside the scope of SunPy core package, but could build upon the functionality provided by core such as the data containers and file readers.
Developing a mission/instrument specific package as a SunPy affiliated package will allow the code to live and integrate within the SunPy ecosystem.&lt;/p&gt;
&lt;p&gt;Furthermore, for mission/instrument teams that would like to begin developing specific Python software, the SunPy project offers support through our package template and community resources for the package to be ‘incubated’ until it is at the level of affiliate status.
We would really like to encourage instrument/mission teams to reach out!&lt;/p&gt;
&lt;/section&gt;
&lt;section id="package-template"&gt;
&lt;h2&gt;Package template&lt;/h2&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: INFO/1 (&lt;span class="docutils literal"&gt;/home/docs/checkouts/readthedocs.org/user_builds/sunpyorg/checkouts/489/posts/2020/2020-08-17_affiliated_packages.rst&lt;/span&gt;, line 7); &lt;em&gt;&lt;a href="#id1"&gt;backlink&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Duplicate implicit target name: “package template”.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;The SunPy project is currently developing a &lt;a class="reference external" href="https://github.com/sunpy/package-template"&gt;package template&lt;/a&gt; that is designed to help developers create new Python packages within the SunPy ecosystem.
The template is still in development, and we are working towards creating more documentation to make it accessible for developers to use.
The idea is that this template will provide a simplified way to standardized packaging, testing, and documentation using the same framework as the SunPy core package.
The SunPy package template will make it easier for package developers to meet the standards required by SunPy to become an affiliated package!&lt;/p&gt;
&lt;/section&gt;
&lt;section id="how-does-a-package-become-an-affiliated-package"&gt;
&lt;h2&gt;How does a package become an affiliated package?&lt;/h2&gt;
&lt;p&gt;To become a SunPy affiliated package, a set of criteria need to be met to ensure that affiliated packages provide useful functionality to the community at a standard of quality similar to the core SunPy package.
We now have a new review process for becoming an affiliated package, aimed at being open, approachable and streamlined!&lt;/p&gt;
&lt;p&gt;The reviews are performed as an open process through GitHub issues on the &lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;https://github.com/sunpy/sunpy.org&lt;/span&gt;&lt;/code&gt; repository.
To submit a package for review to become an affiliated package, an issue should be opened on this repository.
We now have an &lt;a class="reference external" href="https://github.com/sunpy/sunpy.org/issues/new?assignees=Cadair&amp;amp;labels=Affiliated+Package+Review&amp;amp;template=new_affiliated_package.md"&gt;issue template&lt;/a&gt; for submitting a package for review to make it easier to provide all the required information and to start a dialogue about the process.&lt;/p&gt;
&lt;p&gt;Once an issue is open, the Affiliate Package Liaison will check that the package meets the baseline requirements of an affiliated package.
These include checking to see that it is compatible with the SunPy &lt;a class="reference external" href="https://sunpy.org/coc"&gt;Code of Conduct&lt;/a&gt;,  has an appropriate licence, provides a Python interface, is on PyPI, and is useful to the solar physics community.
Following this, a reviewer independent to the package is assigned and a review is undertaken based on the criteria listed below.&lt;/p&gt;
&lt;p&gt;The review criteria that are assessed are listed as follows with the associated gradings:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Functionality&lt;/strong&gt;  Does the package provide functionality that is useful and relevant to the solar physics community?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration&lt;/strong&gt;  - Does that package integrate well within the SunPy ecosystem? for example does it make use of all appropriate features in the core library, including the applicable data structures and dependencies?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;  - Does the package have satisfactory documentation that is up to the standard of the core sunpy library including a user guide and examples?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testing&lt;/strong&gt; - Does the package use a testing suite to verify the code functionality within its codebase? Does it provide integration tests?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Duplication&lt;/strong&gt; - Does the package duplicate functionality within sunpy core or any of the other affiliated packages or other relevant packages?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;  - Is the package openly developed with active input and engagement from users within the community? Does the package have a code of conduct and does this reflect the same values as the SunPy project?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Development Status&lt;/strong&gt; - Is the package well maintained? Are contribution responded to by developers? Is the package still under development with large API changes?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These criteria are reviewed on a ‘traffic light’ system and ranked ‘green’, ‘orange’, or ‘red’ based on the submitted package.
For full details of how each of criteria are ranked please check out the &lt;a class="reference external" href="https://sunpy.org/affiliated#affiliated-package-review"&gt;Review Criteria&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For a submitted package to be accepted to affiliate package status, the package must be ‘green’ in &lt;strong&gt;Functionality&lt;/strong&gt;, and one other category.
It must also not list any ‘red’ scores.&lt;/p&gt;
&lt;p&gt;If the package in its current state does not pass the criteria, it can be listed as &lt;em&gt;Provisional&lt;/em&gt; once it does not list ‘red’ in the &lt;strong&gt;Functionality&lt;/strong&gt;, &lt;strong&gt;Duplication&lt;/strong&gt; or &lt;strong&gt;Community&lt;/strong&gt; criteria.
The idea is that the package can be listed as Provisional as it is working towards addressing the criteria for which it did not pass the review in.&lt;/p&gt;
&lt;p&gt;We would really like to encourage packages interested in becoming an affiliated SunPy package to please submit an issue and open up a review dialogue.
We will have an Affiliated Package Liaison that will help you through each step of this process :).
Even if you are unsure about whether you want to submit a package, please feel free to open an issue and informally discuss your package.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="reach-out"&gt;
&lt;h2&gt;Reach out!&lt;/h2&gt;
&lt;p&gt;If you are a developer of a package that you think fits nicely into the SunPy ecosystem and will of benefit to the solar physics community and want to chat to us about it please reach out!
This can be of course regardless of how far along the package is - from concept to maturity!
Join us our live chat &lt;a class="reference external" href="https://app.element.io/#/room/#sunpy:openastronomy.org"&gt;Matrix room&lt;/a&gt; or join in on the SunPy weekly community meetings which occur each Wednesday (see &lt;a class="reference external" href="https://calendar.google.com/calendar?cid=ZzljOWVha2c5OGI1Y2JvZ2Q3bTV0YTZoOHNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ"&gt;our calendar&lt;/a&gt; for the time in your timezone) and are hosted on &lt;a class="reference external" href="https://sunpy.org/meeting"&gt;jitsi&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2020/2020-08-17_affiliated_packages/"/>
    <summary>SunPy affiliated packages are well-maintained, open-source software packages that build upon or extend the functionality of the SunPy core library.
The main idea behind affiliated packages is to provide additional tools and functionality to the solar physics community that is considered outside the scope of the SunPy core library, but builds upon it.
Affiliated packages are aimed to integrate well with the SunPy ecosystem and together with the core library offer a diverse software ecosystem for which to perform solar data analysis.
Affiliated packages are reviewed and registered with the SunPy project.</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2020-08-18T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2020/2020-06-12-20_released/</id>
    <title>SunPy 2.0 Released</title>
    <updated>2020-06-12T00:00:00+00:00</updated>
    <author>
      <name>Stuart Mumford</name>
    </author>
    <content type="html">&lt;section id="sunpy-2-0-released"&gt;

&lt;p&gt;The SunPy project is happy to announce the release of SunPy 2.0!
SunPy is an open-source Python library for Solar Physics data analysis and visualization.&lt;/p&gt;
&lt;p&gt;This release is our second long(er) term support release, that we will be supporting with bug fixes until 3.0 in roughly a year’s time.
With this release, the 1.0 and 1.1 releases will no longer receive bug fixes and we encourage everyone to upgrade to 2.0.&lt;/p&gt;
&lt;p&gt;The major highlights of this release are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://docs.sunpy.org/en/stable/generated/api/sunpy.net.Fido.html#sunpy.net.Fido" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;Fido&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; now supports tab completion of search attributes.
This allows you to do &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;a.Instrument.AIA&lt;/span&gt;&lt;/code&gt;, and print &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;a.Instrument&lt;/span&gt;&lt;/code&gt; to see the list of known supported instruments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;aiaprep&lt;/span&gt;&lt;/code&gt; has been deprecated in favor of the functionality in the &lt;a class="reference external" href="https://aiapy.readthedocs.io/en/stable/"&gt;aiapy&lt;/a&gt; package.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Various fixes and clarifications to pixel indexing in the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/map.html#module-sunpy.map" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.map&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; subpackage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Standardization of specifying rectangles in coordinate space in the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/generated/api/sunpy.map.GenericMap.html#sunpy.map.GenericMap.submap" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-meth docutils literal notranslate"&gt;&lt;span class="pre"&gt;submap()&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and &lt;code class="xref py py-meth docutils literal notranslate"&gt;&lt;span class="pre"&gt;draw_rectangle()&lt;/span&gt;&lt;/code&gt; methods of &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/generated/api/sunpy.map.GenericMap.html#sunpy.map.GenericMap" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;GenericMap&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HTML quicklook previews of &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/generated/api/sunpy.map.GenericMap.html#sunpy.map.GenericMap" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;GenericMap&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/generated/api/sunpy.map.MapSequence.html#sunpy.map.MapSequence" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;MapSequence&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; instances are available with the new &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/generated/api/sunpy.map.GenericMap.html#sunpy.map.GenericMap.quicklook" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-meth docutils literal notranslate"&gt;&lt;span class="pre"&gt;quicklook()&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/generated/api/sunpy.map.MapSequence.html#sunpy.map.MapSequence.quicklook" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-meth docutils literal notranslate"&gt;&lt;span class="pre"&gt;quicklook()&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; methods, respectively.
This is also the default display in &lt;a class="reference external" href="https://jupyter.org/"&gt;Jupyter&lt;/a&gt; notebooks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration of differential rotation into the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/coordinates/index.html#module-sunpy.coordinates" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.coordinates&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; framework.
This enables, amongst other things, the warping of images with the &lt;a class="reference external" href="https://reproject.readthedocs.io/"&gt;reproject&lt;/a&gt; package and the plotting of rotated grid lines with &lt;a class="reference external" href="https://docs.astropy.org/en/stable/visualization/wcsaxes/index.html#wcsaxes" title="(in Astropy v7.2)"&gt;&lt;span class="xref std std-ref"&gt;WCSAxes&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/whatsnew/2.0.html"&gt;What’s New in SunPy 2.0&lt;/a&gt; for more details and the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/whatsnew/changelog.html"&gt;Full Changelog&lt;/a&gt; for the full list of over 100 changes in 2.0.&lt;/p&gt;
&lt;p&gt;This release of SunPy contains 1044 commits in 290 merged pull requests closing 144 issues from 33 people, 16 of which are first-time contributors to SunPy.&lt;/p&gt;
&lt;p&gt;The people who have contributed to the code for this release are:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Abhijeet Manhas  *
Abijith B  *
Albert Y. Shih
Amogh J  *
Arfon Smith  *
Arib Alam  *
David Pérez-Suárez
David Stansby
Deepankar Sharma
Jack Ireland
Jai Ram Rideout
James Paul Mason
Kris Akira Stern  *
Laura Hayes
Lazar Zivadinovic  *
Mark Cheung  *
Monica Bobra
Nabil Freij
Ole Streicher
Pankaj Mishra  *
Raahul Singh
Rajiv Ranjan Singh
Rutuja Surve  *
Sarthak Jain
Sashank Mishra  *
Steven Christe
Stuart Mumford
Swapnil Kannojia  *
Utkarsh Parkhi  *
Will Barnes
abijith-bahuleyan  *
honey  *
mridulpandey  *&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Where a * indicates their first contribution to SunPy.&lt;/p&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2020/2020-06-12-20_released/"/>
    <summary>The SunPy project is happy to announce the release of SunPy 2.0!
SunPy is an open-source Python library for Solar Physics data analysis and visualization.</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2020-06-12T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2020/2020-06-03_hdee_sunpy/</id>
    <title>SunPy awarded a NASA HDEE Grant</title>
    <updated>2020-06-05T00:00:00+00:00</updated>
    <author>
      <name>Jack Ireland</name>
    </author>
    <content type="html">&lt;section id="sunpy-awarded-a-nasa-hdee-grant"&gt;

&lt;p&gt;A NASA Heliophysics Data Environment Enhancement (HDEE) grant has been
awarded to a proposal submitted to support SunPy development. The
grant was awarded through NASA’s 2019 ROSES grant solicitation.&lt;/p&gt;
&lt;p&gt;The grant supports the following development goals:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Creation of a report on the state of the SunPy codebase by analyzing
output from code coverage and API inspection tools, etc, identifying
areas in the existing codebase that need more coverage, can be
consolidated or removed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide the ability to read spectroscopic data into a spectral data
object, thereby enabling its later scientific analysis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement a number of heliophysical coordinate systems using the
existing SunPy and Astropy-based coordinate system framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create example code snippets that use SunPy and packages from the
Python in Heliophysics Community; these examples will be shared via
the Python in Heliophysics Community.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PI of the grant is Jack Ireland, and the co-I of the grant is Andy
Terrel (NumFOCUS). The grant has a one year duration. The bulk of
the code development will be undertaken by a developer hired through
NuMFOCUS. We look forward to supporting the development of SunPy
through this grant.&lt;/p&gt;
&lt;p&gt;Jack&lt;/p&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2020/2020-06-03_hdee_sunpy/"/>
    <summary>A NASA Heliophysics Data Environment Enhancement (HDEE) grant has been
awarded to a proposal submitted to support SunPy development. The
grant was awarded through NASA’s 2019 ROSES grant solicitation.</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2020-06-05T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2020/2020-04-27-SunPy_Survey/</id>
    <title>SunPy Survey</title>
    <updated>2020-04-27T00:00:00+00:00</updated>
    <author>
      <name>Monica Bobra</name>
    </author>
    <content type="html">&lt;section id="sunpy-survey"&gt;

&lt;p&gt;The SunPy project is happy to announce the results of the solar physics community survey!&lt;/p&gt;
&lt;p&gt;For six months last year, between February and July 2019, the SunPy Project asked the solar physics community to fill out a 13-question survey about software and hardware. Some of the questions were: Do you use software in your research? Have you had formal training in programming? Have you cited software papers in your published research?&lt;/p&gt;
&lt;p&gt;We deliberately asked some of the same questions as &lt;a class="reference external" href="https://arxiv.org/abs/1507.03989"&gt;Momcheva and Tollerud (2015)&lt;/a&gt;, who informally surveyed 1142 members of the astrophysics community, to compare software preferences between the two communities. A total of 364 community members, across 35 countries, took our survey.&lt;/p&gt;
&lt;section id="what-we-found"&gt;
&lt;h2&gt;What we found&lt;/h2&gt;
&lt;p&gt;We found that 99±0.5% of people who responded to our survey use software in their research. Nearly everyone in the solar physics community relies on scientific software. A large fraction (66%) of respondents use Python. Most respondents use both Interactive Data Language (IDL) and Python.&lt;/p&gt;
&lt;img alt="https://sunpy.org/_images/2020-04-27-SunPy_Survey_Figure1.jpg" src="https://sunpy.org/_images/2020-04-27-SunPy_Survey_Figure1.jpg" /&gt;
&lt;p&gt;However, students are twice as likely as faculty, staff scientists, and researchers to use Python. This breakdown is pretty different from the astrophysics community, where Momcheva and Tollerud (2015) found that Python is the most popular programming language within every individual career category.&lt;/p&gt;
&lt;img alt="https://sunpy.org/_images/2020-04-27-SunPy_Survey_Figure2.jpg" src="https://sunpy.org/_images/2020-04-27-SunPy_Survey_Figure2.jpg" /&gt;
&lt;p&gt;We also found that most respondents (63±4%) haven’t taken any computer science courses at an undergraduate or graduate level. Momcheva and Tollerud (2015) also found that most astrophysicists also lack formal training in software development.&lt;/p&gt;
&lt;img alt="https://sunpy.org/_images/2020-04-27-SunPy_Survey_Figure3.jpg" src="https://sunpy.org/_images/2020-04-27-SunPy_Survey_Figure3.jpg" /&gt;
&lt;p&gt;Most of the people who responded to our survey work with observational data taken by ground-based or space-based instruments (82%). And about half (47%) work with numerical simulations. Some work in both sub-disciplines. Although some instruments and numerical models in solar physics generate sizeable data volumes, only a small fraction of respondents use a regional cluster, national cluster, or the commercial cloud for their research.&lt;/p&gt;
&lt;img alt="https://sunpy.org/_images/2020-04-27-SunPy_Survey_Figure4.jpg" src="https://sunpy.org/_images/2020-04-27-SunPy_Survey_Figure4.jpg" /&gt;
&lt;p&gt;Finally, we found that 42±3% of respondents regularly cite scientific software. Half the respondents who don’t cite software said they didn’t know how.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="our-paper"&gt;
&lt;h2&gt;Our paper&lt;/h2&gt;
&lt;p&gt;Please check out our paper! We detailed all of these results, and more, in a paper published on April 20, 2020 (DOI: &lt;a class="reference external" href="https://doi.org/10.1007/s11207-020-01622-2"&gt;10.1007/s11207-020-01622-2&lt;/a&gt;). We also included an appendix on how to cite scientific software. You can also take a look at all the raw survey responses (anonymized and randomized), along with the code to analyze these data, at &lt;a class="reference external" href="https://github.com/sunpy/survey"&gt;github.com/sunpy/survey&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2020/2020-04-27-SunPy_Survey/"/>
    <summary>The SunPy project is happy to announce the results of the solar physics community survey!</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2020-04-27T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2020/2020-01-10-11_released/</id>
    <title>SunPy 1.1 Released</title>
    <updated>2020-01-10T00:00:00+00:00</updated>
    <author>
      <name>Stuart Mumford</name>
    </author>
    <content type="html">&lt;section id="sunpy-1-1-released"&gt;

&lt;p&gt;The SunPy project is happy to announce the release of SunPy 1.1!
SunPy is an open-source Python library for Solar Physics data analysis and visualization.&lt;/p&gt;
&lt;p&gt;This release is our first major release post-1.0 and part of our new &lt;a class="reference external" href="https://github.com/sunpy/sunpy-SEP/blob/master/SEP-0009.md"&gt;release pattern&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The major highlights of this release are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;The &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/coordinates/index.html#module-sunpy.coordinates" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;coordinates&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; subpackage now supports four additional coordinate frames (HCI, HEE, GSE, and GEI).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new subpackage &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/data.html#module-sunpy.data.data_manager" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.data.data_manager&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; has been added to support versioned data for functions and methods.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support in &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/map.html#module-sunpy.map" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.map&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/net.html#module-sunpy.net" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.net&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; for the SUVI instrument on GOES satellites.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Initial support for WISPR data from Parker Solar Probe in &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/map.html#module-sunpy.map" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.map&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The import times for &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/sunpy.html#module-sunpy" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and some subpackages are significantly shorter, with no loss of functionality.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/whatsnew/1.1.html"&gt;What’s New in SunPy 1.1&lt;/a&gt; for more details and the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/whatsnew/changelog.html"&gt;Full Changelog&lt;/a&gt; for the full list of over 100 changes in 1.1.&lt;/p&gt;
&lt;p&gt;If you use conda, you can update to this release by running:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ conda install -c conda-forge sunpy
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;or, if you use pip, by running:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ pip install -U sunpy
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you haven’t already installed SunPy we recommend you follow our &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/tutorial/installation.html"&gt;Installation Guide&lt;/a&gt;.&lt;/p&gt;
&lt;section id="by-the-numbers"&gt;
&lt;h2&gt;By the numbers&lt;/h2&gt;
&lt;p&gt;This release of SunPy contains 1137 commits in 242 merged pull requests closing 106 issues from 24 people, 10 of which are first time contributors to SunPy.&lt;/p&gt;
&lt;p&gt;The people who have contributed to the code for this release are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Albert Y. Shih&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arthur Eigenbrot&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brigitta Sipocz&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;David Pérez-Suárez&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;David Stansby&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dominik Stańczak  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Guntbert Reiter  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Himanshu Pathak  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jack Ireland&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Juanjo Bazán  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Laura Hayes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael S Kirk&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nabil Freij&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quinn Arbolante  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Raahul Singh  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rajiv Ranjan Singh  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Steven Christe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stuart Mumford&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tom Augspurger  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vishnunarayan K I.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Will Barnes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yash Sharma&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;neerajkulk  *&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Where a * indicates their first contribution to SunPy.&lt;/p&gt;
&lt;p&gt;Happy Pythoning,&lt;/p&gt;
&lt;p&gt;Stuart&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2020/2020-01-10-11_released/"/>
    <summary>The SunPy project is happy to announce the release of SunPy 1.1!
SunPy is an open-source Python library for Solar Physics data analysis and visualization.</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2020-01-10T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-07-01-SunPy-Releasing/</id>
    <title>SunPy Release Schedule and Version Numbering</title>
    <updated>2019-06-27T00:00:00+00:00</updated>
    <author>
      <name>Stuart Mumford</name>
    </author>
    <content type="html">&lt;section id="sunpy-release-schedule-and-version-numbering"&gt;

&lt;p&gt;In this blog post I want to outline how, and more over why, we are going to
number the SunPy releases and when we are going to release them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TLDR&lt;/strong&gt;; we are going to move to a 6 month release cadence, with a Long Term
Support (one year of support) release in May and a Short Term Support (6 months
of support) in November. We will increment the major version number for each LTS
release.&lt;/p&gt;
&lt;section id="background"&gt;
&lt;h2&gt;Background&lt;/h2&gt;
&lt;p&gt;As part of the 1.0 release planning the SunPy developers and the board spent a
long time discussing how we want to version SunPy and what we want to use our
versioning a release schedule to achieve. We went through two major iterations
of this plan, the first can be found in the abandoned PR to the SunPy
Enhancement Proposal repository &lt;a class="reference external" href="https://github.com/sunpy/sunpy-SEP/pull/30"&gt;#30&lt;/a&gt;,
and the second one which was accepted in
&lt;a class="reference external" href="https://github.com/sunpy/sunpy-SEP/pull/40"&gt;#40&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="objectives"&gt;
&lt;h2&gt;Objectives&lt;/h2&gt;
&lt;p&gt;In moving SunPy out of the 0.y series of releases we knew that our users would
be expecting us to make breaking changes less, and for them to be able to rely
on SunPy for longer.&lt;/p&gt;
&lt;p&gt;We wanted to balance the desire for people to be able to start using SunPy for a
project and be able to see that project through without having to constantly
adjust to many changes in new releases. On the other hand, we wanted to also
allow the development of SunPy to continue without having to delay people
contributing improvements to SunPy because of a strict versioning scheme.&lt;/p&gt;
&lt;p&gt;We also have to consider that, currently, SunPy core is developed entirely by
volunteers, and supporting old versions of the library is a time consuming and
sometimes thankless job.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="releases"&gt;
&lt;h2&gt;Releases&lt;/h2&gt;
&lt;p&gt;The solution we landed on is to provide a Long Term Support release that we will
support for one year (i.e. until the following LTS release). This gives people
who want stability a release schedule where they get bug fixes for a year. While
also allowing SunPy to do releases on a six month cycle to get new features out
for people to use.&lt;/p&gt;
&lt;p&gt;To make it clear which releases are Long Term Support releases, we will
increment the major version (the first number) for each LTS release. This means
SunPy 1.0 is a LTS release which we will be supporting until the release of 2.0
in May 2020.&lt;/p&gt;
&lt;p&gt;The all the non-LTS releases between the LTS releases will increment the minor
version number, as there is only one release planned between LTS releases the
normal release number will be 1.0, 1.1, 2.0, 2.1 etc.&lt;/p&gt;
&lt;img alt="https://sunpy.org/_images/sunpy-release-schedule.jpg" src="https://sunpy.org/_images/sunpy-release-schedule.jpg" /&gt;
&lt;/section&gt;
&lt;section id="deprecations"&gt;
&lt;h2&gt;Deprecations&lt;/h2&gt;
&lt;p&gt;We still expect, and have plans for, changes to many parts of SunPy. We believe
these changes will enable even more people to find SunPy useful in their work.&lt;/p&gt;
&lt;p&gt;To enable people to prepare for changes and to not be in for big surprises when
updating SunPy we will endeavour to emit a deprecation warning for any
breaking changes for &lt;em&gt;one LTS release&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The upshot of this is that, if now after 1.0, we want to change something in a
backwards incompatible way we would continue to provide both the old and new
ways until after the 2.0 release. The 2.0 release would emit a deprecation
warning, to give people who go from LTS to LTS a year to update their code
before the next LTS.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I hope this blog post gives you some insight into how we made this decision and
why, if you have any comments please don’t hesitate to get in touch using any of
the usual ways.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-07-01-SunPy-Releasing/"/>
    <summary>In this blog post I want to outline how, and more over why, we are going to
number the SunPy releases and when we are going to release them.</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2019-06-27T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-06-01-10_released/</id>
    <title>SunPy 1.0 Released</title>
    <updated>2019-06-01T00:00:00+00:00</updated>
    <author>
      <name>Stuart Mumford</name>
    </author>
    <content type="html">&lt;section id="sunpy-1-0-released"&gt;

&lt;p&gt;The SunPy project is happy to announce the release of SunPy 1.0.0!&lt;/p&gt;
&lt;p&gt;This release has been in development for 14 months, and is a large change from the 0.x series of SunPy releases with a lot of old functionality removed and some exciting new features.&lt;/p&gt;
&lt;p&gt;The major highlights of this release are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;A complete transition of the whole code base to use &lt;a class="reference external" href="https://docs.astropy.org/en/stable/api/astropy.time.Time.html#astropy.time.Time" title="(in Astropy v7.2)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.time.Time&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;, which was implemented by Vishnunarayan K I as part of Google Summer of Code 2018.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A rewrite of how all the clients in &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/reference/net.html#module-sunpy.net" title="(in sunpy v4.13.0)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.net&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; download files from the internet. This means vastly improved progress bars, skipping downloads if files are present, and better visibility and retrying of download errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A rewrite of the differential rotation and image warping code to correctly account for observer location using the Astropy coordinate functionality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Removal of many deprecated functions and submodules; we have used the 1.0 release as a chance to clean out SunPy reducing the number of lines of Python code in the project by almost 3,000!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The first release of SunPy to be Python 3 only, requiring Python 3.6+.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/whatsnew/1.0.html"&gt;What’s New in SunPy 1.0&lt;/a&gt; for more details and the &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/whatsnew/changelog.html"&gt;Full Changelog&lt;/a&gt; for the full list of over 150 changes in SunPy 1.0.&lt;/p&gt;
&lt;p&gt;This release includes many breaking changes and may require your code to be updated to support it.
We hope you see the value in having the extra features these changes have enabled and a code base that is easier to maintain.
We will be continuing to release bug fixes to the 0.9.z series until the end of 2019.
We hope this gives you enough time to update your code and start enjoying all the improvements in SunPy 1.0.&lt;/p&gt;
&lt;p&gt;If you use conda, you can update to this release by running:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ conda install -c conda-forge sunpy
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;or, if you use pip, by running:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ pip install -U sunpy
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you haven’t already installed SunPy we recommend you follow our &lt;a class="reference external" href="https://docs.sunpy.org/en/stable/tutorial/installation.html"&gt;Installation Guide&lt;/a&gt;.&lt;/p&gt;
&lt;section id="by-the-numbers"&gt;
&lt;h2&gt;By the numbers&lt;/h2&gt;
&lt;p&gt;This release of SunPy contains 1913 commits in 332 merged pull requests closing 582 issues from 46 people, 25 of which are first time contributors to SunPy.&lt;/p&gt;
&lt;p&gt;The people who have contributed to the code for this release are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Abhigyan Bose  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Airmansmith97  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Albert Y. Shih&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Andre Chicrala  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Andrew Hill  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Andrew Inglis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Andrew Leonard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arthur Eigenbrot  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bernhard M. Wiedemann  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brandon Stone  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brigitta Sipocz&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel D’Avella&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Daniel Ryan&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;David Pérez-Suárez&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;David Stansby&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deepankar Sharma  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Emmanuel Arias  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Harsh Mathur  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jack Ireland&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jacob  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jai Ram Rideout  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Larry Manley&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Laura Hayes  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manas Mangaonkar  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matthew Mendero  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Md Akramul Haque  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael S Kirk&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mickaël Schoentgen  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monica Bobra  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nabil Freij&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Naman9639  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prateek Chanda&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Punyaslok Pattnaik&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reid Gomillion  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sarthak Jain  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shane Maloney&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shresth Verma&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sourav Ghosh  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Steven Christe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stuart Mumford&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vishnunarayan K I.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Will Barnes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yash Jain&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yash Krishan  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yash Sharma  *&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;jamescalixto  *&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Where a * indicates their first contribution to SunPy.&lt;/p&gt;
&lt;p&gt;On a personal note, I am very excited to see SunPy reach this milestone; watching the community around this project grow since I got involved has been incredible.
The sunpy library is almost unrecognisable from where it was when I got involved shortly after the 0.2 release, which is the result of countless hours of work by over 100 people.
I want to thank everyone who has contributed to SunPy in any way that helped us get to the point where we felt the library deserved the 1.0 label.
I especially want to thank Nabil Freij who has done so much behind the scenes work to keep things moving forward, and done such a good job helping new contributors get pull requests into SunPy.&lt;/p&gt;
&lt;p&gt;I am very excited to see where SunPy goes next.&lt;/p&gt;
&lt;p&gt;Happy Pythoning,&lt;/p&gt;
&lt;p&gt;Stuart&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-06-01-10_released/"/>
    <summary>The SunPy project is happy to announce the release of SunPy 1.0.0!</summary>
    <category term="sunpy" label="sunpy"/>
    <published>2019-06-01T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2018/2018-10-20-time/</id>
    <title>Transition from datetime to astropy.time</title>
    <updated>2018-10-20T00:00:00+00:00</updated>
    <author>
      <name>Vishnunarayan K I</name>
    </author>
    <content type="html">&lt;div class="admonition note"&gt;
&lt;p&gt;This blog post was written in a &lt;a class="reference external" href="https://github.com/sunpy/sunpy.org/blob/main/posts/2018/2018-10-20-time.ipynb"&gt;Jupyter notebook&lt;/a&gt;.
Click here for an interactive version:
&lt;span class="raw-html"&gt;&lt;a href="https://mybinder.org/v2/gh/sunpy/sunpy.org/main?filepath=posts/2018/2018-10-20-time.ipynb"&gt;&lt;img alt="Binder badge" src="https://mybinder.org/badge.svg" style="vertical-align:text-bottom"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;section id="Transition-from-datetime-to-astropy.time"&gt;

&lt;p&gt;The SunPy project is very happy to announce that the time handling in SunPy will be transitioned from python &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime&lt;/span&gt;&lt;/code&gt; module to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.time&lt;/span&gt;&lt;/code&gt; module. The changes for this transition are under review in the pull request &lt;a class="reference external" href="https://github.com/sunpy/sunpy/pull/2691"&gt;#2691&lt;/a&gt;. These changes are scheduled for &lt;strong&gt;SunPy 1.0&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This comes with numerous benefits:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Support for non-UTC time scales&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;UTC as well as non-UTC time scales like TAI, TT, UT1 etc. can be used with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.time.Time&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;div class="nbinput docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[1]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="input_area highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;astropy.time&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Time&lt;/span&gt;

&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;2012-06-18T02:00:05.453&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;tai&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;t&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nboutput nblast docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[1]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="output_area docutils container"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;
&amp;lt;Time object: scale=&amp;#39;tai&amp;#39; format=&amp;#39;isot&amp;#39; value=2012-06-18T02:00:05.453&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~astropy.time.Time&lt;/span&gt;&lt;/code&gt; also provides easy conversion between different scales.&lt;/p&gt;
&lt;div class="nbinput docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[2]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="input_area highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;utc&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nboutput nblast docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[2]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="output_area docutils container"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;
&amp;lt;Time object: scale=&amp;#39;utc&amp;#39; format=&amp;#39;isot&amp;#39; value=2012-06-18T01:59:31.453&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Support for high precision times.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~astropy.time.Time&lt;/span&gt;&lt;/code&gt; can provide sub-nanosecond precision for time objects while python &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime&lt;/span&gt;&lt;/code&gt; was restricted to microseconds.&lt;/p&gt;
&lt;div class="nbinput docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[3]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="input_area highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;precision&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;
&lt;span class="n"&gt;t&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nboutput nblast docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[3]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="output_area docutils container"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;
&amp;lt;Time object: scale=&amp;#39;tai&amp;#39; format=&amp;#39;isot&amp;#39; value=2012-06-18T02:00:05.453000000&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Support for leap seconds&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This was one of the bigger motivation for the transition to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.time.Time&lt;/span&gt;&lt;/code&gt;. &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime&lt;/span&gt;&lt;/code&gt; has no support for leap second while &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~astropy.time.Time&lt;/span&gt;&lt;/code&gt; supports leap seconds. A leap second is a one-second adjustment applied to UTC to keep it close to the mean solar time.&lt;/p&gt;
&lt;div class="nbinput docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[4]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="input_area highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;astropy.units&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;u&lt;/span&gt;

&lt;span class="n"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;2016-12-31T23:59:60&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;2016-12-31T23:59:59&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nboutput nblast docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[4]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="output_area docutils container"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;
(&amp;lt;Time object: scale=&amp;#39;utc&amp;#39; format=&amp;#39;isot&amp;#39; value=2016-12-31T23:59:60.000&amp;gt;,
 &amp;lt;Time object: scale=&amp;#39;utc&amp;#39; format=&amp;#39;isot&amp;#39; value=2016-12-31T23:59:60.000&amp;gt;)
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Support for numerous formats&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~astropy.time.Time&lt;/span&gt;&lt;/code&gt; can parse numerous formats including python &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;div class="nbinput docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[5]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="input_area highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;Time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FORMATS&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nboutput nblast docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[5]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="output_area docutils container"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;
OrderedDict([(&amp;#39;jd&amp;#39;, astropy.time.formats.TimeJD),
             (&amp;#39;mjd&amp;#39;, astropy.time.formats.TimeMJD),
             (&amp;#39;decimalyear&amp;#39;, astropy.time.formats.TimeDecimalYear),
             (&amp;#39;unix&amp;#39;, astropy.time.formats.TimeUnix),
             (&amp;#39;cxcsec&amp;#39;, astropy.time.formats.TimeCxcSec),
             (&amp;#39;gps&amp;#39;, astropy.time.formats.TimeGPS),
             (&amp;#39;plot_date&amp;#39;, astropy.time.formats.TimePlotDate),
             (&amp;#39;datetime&amp;#39;, astropy.time.formats.TimeDatetime),
             (&amp;#39;iso&amp;#39;, astropy.time.formats.TimeISO),
             (&amp;#39;isot&amp;#39;, astropy.time.formats.TimeISOT),
             (&amp;#39;yday&amp;#39;, astropy.time.formats.TimeYearDayTime),
             (&amp;#39;datetime64&amp;#39;, astropy.time.formats.TimeDatetime64),
             (&amp;#39;fits&amp;#39;, astropy.time.formats.TimeFITS),
             (&amp;#39;byear&amp;#39;, astropy.time.formats.TimeBesselianEpoch),
             (&amp;#39;jyear&amp;#39;, astropy.time.formats.TimeJulianEpoch),
             (&amp;#39;byear_str&amp;#39;, astropy.time.formats.TimeBesselianEpochString),
             (&amp;#39;jyear_str&amp;#39;, astropy.time.formats.TimeJulianEpochString)])
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nbinput docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[6]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="input_area highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;datetime&lt;/span&gt;

&lt;span class="n"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tz&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;timezone&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;utc&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="nboutput nblast docutils container"&gt;
&lt;div class="prompt highlight-none notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[6]:
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="output_area docutils container"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;
&amp;lt;Time object: scale=&amp;#39;utc&amp;#39; format=&amp;#39;datetime&amp;#39; value=2019-03-20 19:19:05.112429&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;section id="Changes-to-SunPy"&gt;
&lt;h2&gt;Changes to SunPy&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;All functions which used to return&lt;/strong&gt; &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime&lt;/span&gt;&lt;/code&gt; &lt;strong&gt;now return&lt;/strong&gt; &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~astropy.time.Time&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;All functions which return &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime.timedelta&lt;/span&gt;&lt;/code&gt; now return &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.time.TimeDelta&lt;/span&gt;&lt;/code&gt;. For example, the properties of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.time.TimeRange&lt;/span&gt;&lt;/code&gt; which used to return &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime.datetime&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime.timedelta&lt;/span&gt;&lt;/code&gt; now return &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.time.Time&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.time.TimeDelta&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Changes to&lt;/strong&gt; &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sunpy.time.parse_time&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~sunpy.time.parse_time&lt;/span&gt;&lt;/code&gt; has been reduced to a tiny wrapper over&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~astropy.time.Time&lt;/span&gt;&lt;/code&gt;. The API of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~sunpy.time.parse_time&lt;/span&gt;&lt;/code&gt; is mostly similar to that of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~astropy.time.Time&lt;/span&gt;&lt;/code&gt;. &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~sunpy.time.parse_time&lt;/span&gt;&lt;/code&gt; supports parsing a few more formats than &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;~astropy.time.Time&lt;/span&gt;&lt;/code&gt;, which are &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;numpy.datetime64&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pandas.Series&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pandas.DatetimeIndex&lt;/span&gt;&lt;/code&gt;, “UTime” and a few other time formats.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The work on the transition from &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;datetime&lt;/span&gt;&lt;/code&gt; to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.time.Time&lt;/span&gt;&lt;/code&gt; was done as a part of Vishnunarayan’s Google Summer of Code 2018 project. To see more about the project:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://medium.com/&amp;#64;appukuttancr"&gt;Vishnunarayan’s Medium Blog Posts&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2018/2018-10-20-time/"/>
    <summary>This blog post was written in a Jupyter notebook.
Click here for an interactive version:
&lt;a href="https://mybinder.org/v2/gh/sunpy/sunpy.org/main?filepath=posts/2018/2018-10-20-time.ipynb"&gt;&lt;img alt="Binder badge" src="https://mybinder.org/badge.svg" style="vertical-align:text-bottom"&gt;&lt;/a&gt;</summary>
    <category term="gsoc" label="gsoc"/>
    <category term="sunpy" label="sunpy"/>
    <category term="time" label="time"/>
    <published>2018-10-20T00:00:00+00:00</published>
  </entry>
</feed>
